)",
- "id": "plans_2026_07_18_observable_agent_loop_codeblock_13"
+ "label": ".test_rejects_script_injection()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L38",
+ "community": 253,
+ "norm_label": ".test_rejects_script_injection()",
+ "id": "tests_test_stocks_api_fields_testfieldregexpattern_test_rejects_script_injection"
},
{
- "label": "code:javascript (import AgentLoop from './components/AgentLoop';)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
- "source_location": "L288",
- "community": 31,
- "norm_label": "code:javascript (import agentloop from './components/agentloop';)",
- "id": "plans_2026_07_18_observable_agent_loop_codeblock_14"
+ "label": "TestFundamentalFieldValidation",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L49",
+ "community": 129,
+ "norm_label": "testfundamentalfieldvalidation",
+ "id": "tests_test_stocks_api_fields_testfundamentalfieldvalidation"
},
{
- "label": "code:bash (git add frontend/src/App.jsx)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
- "source_location": "L294",
- "community": 31,
- "norm_label": "code:bash (git add frontend/src/app.jsx)",
- "id": "plans_2026_07_18_observable_agent_loop_codeblock_15"
+ "label": ".test_pslashl_not_422()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L52",
+ "community": 129,
+ "norm_label": ".test_pslashl_not_422()",
+ "id": "tests_test_stocks_api_fields_testfundamentalfieldvalidation_test_pslashl_not_422"
},
{
- "label": "Task 5: Frontend \u2014 Add CSS styles",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
- "source_location": "L301",
- "community": 31,
- "norm_label": "task 5: frontend \u2014 add css styles",
- "id": "plans_2026_07_18_observable_agent_loop_task_5_frontend_add_css_styles"
+ "label": ".test_dot_field_not_422()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L57",
+ "community": 167,
+ "norm_label": ".test_dot_field_not_422()",
+ "id": "tests_test_stocks_api_fields_testfundamentalfieldvalidation_test_dot_field_not_422"
},
{
- "label": "code:css (/* Agent Loop */)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
- "source_location": "L314",
- "community": 31,
- "norm_label": "code:css (/* agent loop */)",
- "id": "plans_2026_07_18_observable_agent_loop_codeblock_16"
+ "label": ".test_mixed_fields_not_422()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L62",
+ "community": 166,
+ "norm_label": ".test_mixed_fields_not_422()",
+ "id": "tests_test_stocks_api_fields_testfundamentalfieldvalidation_test_mixed_fields_not_422"
},
{
- "label": "code:bash (git add frontend/src/App.css)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
- "source_location": "L337",
- "community": 31,
- "norm_label": "code:bash (git add frontend/src/app.css)",
- "id": "plans_2026_07_18_observable_agent_loop_codeblock_17"
+ "label": "TestHistoricalFieldValidation",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L68",
+ "community": 191,
+ "norm_label": "testhistoricalfieldvalidation",
+ "id": "tests_test_stocks_api_fields_testhistoricalfieldvalidation"
},
{
- "label": "Task 6: Integration test",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
- "source_location": "L344",
- "community": 31,
- "norm_label": "task 6: integration test",
- "id": "plans_2026_07_18_observable_agent_loop_task_6_integration_test"
+ "label": ".test_pslashl_not_422()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L71",
+ "community": 191,
+ "norm_label": ".test_pslashl_not_422()",
+ "id": "tests_test_stocks_api_fields_testhistoricalfieldvalidation_test_pslashl_not_422"
},
{
- "label": "code:bash (docker compose up -d --build)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
- "source_location": "L355",
- "community": 31,
- "norm_label": "code:bash (docker compose up -d --build)",
- "id": "plans_2026_07_18_observable_agent_loop_codeblock_18"
- },
- {
- "label": "code:bash (cd frontend && npx vitest run)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
- "source_location": "L374",
- "community": 31,
- "norm_label": "code:bash (cd frontend && npx vitest run)",
- "id": "plans_2026_07_18_observable_agent_loop_codeblock_19"
- },
- {
- "label": "code:bash (git add -A && git commit -m \"observable agent loop: backend )",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
- "source_location": "L382",
- "community": 31,
- "norm_label": "code:bash (git add -a && git commit -m \"observable agent loop: backend )",
- "id": "plans_2026_07_18_observable_agent_loop_codeblock_20"
+ "label": ".test_dot_field_not_422()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L76",
+ "community": 167,
+ "norm_label": ".test_dot_field_not_422()",
+ "id": "tests_test_stocks_api_fields_testhistoricalfieldvalidation_test_dot_field_not_422"
},
{
- "label": "STOCKS_API",
- "file_type": "document",
- "source_file": "TODO.md",
- "source_location": "L77",
- "community": 187,
- "norm_label": "stocks_api",
- "id": "server_todo_stocks_api"
+ "label": ".test_comma_separated_with_slash_not_422()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L81",
+ "community": 166,
+ "norm_label": ".test_comma_separated_with_slash_not_422()",
+ "id": "tests_test_stocks_api_fields_testhistoricalfieldvalidation_test_comma_separated_with_slash_not_422"
},
{
- "label": "Prometheus",
- "file_type": "document",
- "source_file": "TODO.md",
- "source_location": "L80",
- "community": 187,
- "norm_label": "prometheus",
- "id": "server_todo_prometheus"
+ "label": "TestFundamentalDateFiltering",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L87",
+ "community": 179,
+ "norm_label": "testfundamentaldatefiltering",
+ "id": "tests_test_stocks_api_fields_testfundamentaldatefiltering"
},
{
- "label": "2026-07-17-prometheus-forgevm-sandbox.md",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L1",
- "community": 15,
- "norm_label": "2026-07-17-prometheus-forgevm-sandbox.md",
- "id": "docs_superpowers_plans_2026_07_17_prometheus_forgevm_sandbox_md"
+ "label": ".test_single_date_returns_per_ticker_closest()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L90",
+ "community": 179,
+ "norm_label": ".test_single_date_returns_per_ticker_closest()",
+ "id": "tests_test_stocks_api_fields_testfundamentaldatefiltering_test_single_date_returns_per_ticker_closest"
},
{
- "label": "Prometheus ForgeVM Sandbox \u2014 Implementation Plan",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "label": "Tests for stocks API field validation \u2014 verifies the fields parameter accepts a",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_fields.py",
"source_location": "L1",
- "community": 15,
- "norm_label": "prometheus forgevm sandbox \u2014 implementation plan",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_prometheus_forgevm_sandbox_implementation_plan"
+ "community": 129,
+ "norm_label": "tests for stocks api field validation \u2014 verifies the fields parameter accepts a",
+ "id": "tests_test_stocks_api_fields_rationale_1"
},
{
- "label": "code:block1 (User 123: \"Analyze PETR4 vs VALE3 correlation\")",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L9",
- "community": 15,
- "norm_label": "code:block1 (user 123: \"analyze petr4 vs vale3 correlation\")",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_1"
+ "label": "Direct tests on the regex pattern used for the `fields` query param.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L16",
+ "community": 128,
+ "norm_label": "direct tests on the regex pattern used for the `fields` query param.",
+ "id": "tests_test_stocks_api_fields_rationale_16"
},
{
- "label": "Global Constraints",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L43",
- "community": 15,
- "norm_label": "global constraints",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_global_constraints"
+ "label": "P/L must be accepted \u2014 it's a standard valuation metric.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L19",
+ "community": 128,
+ "norm_label": "p/l must be accepted \u2014 it's a standard valuation metric.",
+ "id": "tests_test_stocks_api_fields_rationale_19"
},
{
- "label": "File Map",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L59",
- "community": 15,
- "norm_label": "file map",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_file_map"
+ "label": "MARG. LIQUIDA must be accepted \u2014 returned by /stocks/fields.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L23",
+ "community": 254,
+ "norm_label": "marg. liquida must be accepted \u2014 returned by /stocks/fields.",
+ "id": "tests_test_stocks_api_fields_rationale_23"
},
{
- "label": "Phase 1: Config + ForgeVM Setup",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L75",
- "community": 15,
- "norm_label": "phase 1: config + forgevm setup",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_phase_1_config_forgevm_setup"
+ "label": "P/VP and similar combos must be accepted.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L27",
+ "community": 128,
+ "norm_label": "p/vp and similar combos must be accepted.",
+ "id": "tests_test_stocks_api_fields_rationale_27"
},
{
- "label": "Task 1: Config \u2014 Add ForgeVM Settings",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L77",
- "community": 15,
- "norm_label": "task 1: config \u2014 add forgevm settings",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_task_1_config_add_forgevm_settings"
+ "label": "Basic fields like ROE must still pass.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L31",
+ "community": 255,
+ "norm_label": "basic fields like roe must still pass.",
+ "id": "tests_test_stocks_api_fields_rationale_31"
},
{
- "label": "code:python (class PrometheusSettings(BaseMansaSettings):)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L84",
- "community": 15,
- "norm_label": "code:python (class prometheussettings(basemansasettings):)",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_2"
+ "label": "Comma-separated list containing slash fields must pass.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L35",
+ "community": 252,
+ "norm_label": "comma-separated list containing slash fields must pass.",
+ "id": "tests_test_stocks_api_fields_rationale_35"
},
{
- "label": "code:bash (git add config.py)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L97",
- "community": 15,
- "norm_label": "code:bash (git add config.py)",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_3"
+ "label": "Pattern must reject potential injection \u2014 no angle brackets.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L39",
+ "community": 253,
+ "norm_label": "pattern must reject potential injection \u2014 no angle brackets.",
+ "id": "tests_test_stocks_api_fields_rationale_39"
},
{
- "label": "Task 2: Docker Compose \u2014 Add ForgeVM Service",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L104",
- "community": 15,
- "norm_label": "task 2: docker compose \u2014 add forgevm service",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_task_2_docker_compose_add_forgevm_service"
+ "label": "Integration: /stocks/fundamental must accept slash and dot fields.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L50",
+ "community": 129,
+ "norm_label": "integration: /stocks/fundamental must accept slash and dot fields.",
+ "id": "tests_test_stocks_api_fields_rationale_50"
},
{
- "label": "code:yaml (services:)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L111",
- "community": 15,
- "norm_label": "code:yaml (services:)",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_4"
+ "label": "GET /fundamental?fields=P/L must not return 422 (validation error).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L53",
+ "community": 129,
+ "norm_label": "get /fundamental?fields=p/l must not return 422 (validation error).",
+ "id": "tests_test_stocks_api_fields_rationale_53"
},
{
- "label": "code:bash (git add docker-compose.yml)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L139",
- "community": 15,
- "norm_label": "code:bash (git add docker-compose.yml)",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_5"
+ "label": "GET /fundamental?fields=MARG. LIQUIDA must not return 422.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L58",
+ "community": 167,
+ "norm_label": "get /fundamental?fields=marg. liquida must not return 422.",
+ "id": "tests_test_stocks_api_fields_rationale_58"
},
{
- "label": "Phase 2: SandboxManager",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L146",
- "community": 15,
- "norm_label": "phase 2: sandboxmanager",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_phase_2_sandboxmanager"
+ "label": "GET /fundamental?fields=P/L,ROE,DY must not return 422.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L63",
+ "community": 166,
+ "norm_label": "get /fundamental?fields=p/l,roe,dy must not return 422.",
+ "id": "tests_test_stocks_api_fields_rationale_63"
},
{
- "label": "Task 3: ForgeVM REST API Client",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L148",
- "community": 15,
- "norm_label": "task 3: forgevm rest api client",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_task_3_forgevm_rest_api_client"
+ "label": "Integration: /stocks/historical must accept slash and dot fields.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L69",
+ "community": 191,
+ "norm_label": "integration: /stocks/historical must accept slash and dot fields.",
+ "id": "tests_test_stocks_api_fields_rationale_69"
},
{
- "label": "code:python (import pytest)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L160",
- "community": 15,
- "norm_label": "code:python (import pytest)",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_6"
+ "label": "GET /historical?fields=P/L must not return 422.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L72",
+ "community": 191,
+ "norm_label": "get /historical?fields=p/l must not return 422.",
+ "id": "tests_test_stocks_api_fields_rationale_72"
},
{
- "label": "code:python (import logging)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L270",
- "community": 15,
- "norm_label": "code:python (import logging)",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_7"
+ "label": "GET /historical?fields=MARG. LIQUIDA must not return 422.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L77",
+ "community": 167,
+ "norm_label": "get /historical?fields=marg. liquida must not return 422.",
+ "id": "tests_test_stocks_api_fields_rationale_77"
},
{
- "label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox.py)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L377",
- "community": 15,
- "norm_label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox.py)",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_8"
+ "label": "GET /historical?fields=LUCRO LIQUIDO,P/L must not return 422.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L82",
+ "community": 166,
+ "norm_label": "get /historical?fields=lucro liquido,p/l must not return 422.",
+ "id": "tests_test_stocks_api_fields_rationale_82"
},
{
- "label": "Phase 3: Sandbox Tools",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L384",
- "community": 15,
- "norm_label": "phase 3: sandbox tools",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_phase_3_sandbox_tools"
+ "label": "Integration: /stocks/fundamental date filter should work per-ticker.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L88",
+ "community": 179,
+ "norm_label": "integration: /stocks/fundamental date filter should work per-ticker.",
+ "id": "tests_test_stocks_api_fields_rationale_88"
},
{
- "label": "Task 4: Tool Definitions \u2014 Sandbox Tools in TOOL_REGISTRY",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L386",
- "community": 15,
- "norm_label": "task 4: tool definitions \u2014 sandbox tools in tool_registry",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_task_4_tool_definitions_sandbox_tools_in_tool_registry"
+ "label": "When tickers have different date coverage, each should get its closest snapshot.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L91",
+ "community": 179,
+ "norm_label": "when tickers have different date coverage, each should get its closest snapshot.",
+ "id": "tests_test_stocks_api_fields_rationale_91"
},
{
- "label": "code:python (import pytest)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L396",
- "community": 15,
- "norm_label": "code:python (import pytest)",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_9"
+ "label": "test_stocks_api_util_coverage.py",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L1",
+ "community": 477,
+ "norm_label": "test_stocks_api_util_coverage.py",
+ "id": "tests_test_stocks_api_util_coverage_py"
},
{
- "label": "code:python (from main.app.prometheus.sandbox import SandboxManager)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L455",
- "community": 15,
- "norm_label": "code:python (from main.app.prometheus.sandbox import sandboxmanager)",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_10"
+ "label": "TestCategorizeColumns",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L9",
+ "community": 147,
+ "norm_label": "testcategorizecolumns",
+ "id": "tests_test_stocks_api_util_coverage_testcategorizecolumns"
},
{
- "label": "code:python (TOOL_REGISTRY: dict[str, Any] = {)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L524",
- "community": 15,
- "norm_label": "code:python (tool_registry: dict[str, any] = {)",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_11"
+ "label": ".test_historical_and_fundamental()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L10",
+ "community": 147,
+ "norm_label": ".test_historical_and_fundamental()",
+ "id": "tests_test_stocks_api_util_coverage_testcategorizecolumns_test_historical_and_fundamental"
},
{
- "label": "code:python (async def dispatchToolCall()",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L539",
- "community": 15,
- "norm_label": "code:python (async def dispatchtoolcall()",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_12"
+ "label": ".test_only_fundamental()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L19",
+ "community": 147,
+ "norm_label": ".test_only_fundamental()",
+ "id": "tests_test_stocks_api_util_coverage_testcategorizecolumns_test_only_fundamental"
},
{
- "label": "code:bash (git add main/app/prometheus/tools.py tests/test_sandbox_tool)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L567",
- "community": 15,
- "norm_label": "code:bash (git add main/app/prometheus/tools.py tests/test_sandbox_tool)",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_13"
+ "label": ".test_reserved_words_excluded()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L25",
+ "community": 147,
+ "norm_label": ".test_reserved_words_excluded()",
+ "id": "tests_test_stocks_api_util_coverage_testcategorizecolumns_test_reserved_words_excluded"
},
{
- "label": "Phase 4: Agent Integration",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L574",
- "community": 15,
- "norm_label": "phase 4: agent integration",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_phase_4_agent_integration"
+ "label": ".test_single_year()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L31",
+ "community": 147,
+ "norm_label": ".test_single_year()",
+ "id": "tests_test_stocks_api_util_coverage_testcategorizecolumns_test_single_year"
},
{
- "label": "Task 5: Agent \u2014 On-Demand Sandbox + Premium Gating",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L576",
- "community": 15,
- "norm_label": "task 5: agent \u2014 on-demand sandbox + premium gating",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_task_5_agent_on_demand_sandbox_premium_gating"
+ "label": ".test_no_year_suffix()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L36",
+ "community": 147,
+ "norm_label": ".test_no_year_suffix()",
+ "id": "tests_test_stocks_api_util_coverage_testcategorizecolumns_test_no_year_suffix"
},
{
- "label": "code:python (import pytest)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L586",
- "community": 15,
- "norm_label": "code:python (import pytest)",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_14"
+ "label": "TestParseDateRange",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L43",
+ "community": 73,
+ "norm_label": "testparsedaterange",
+ "id": "tests_test_stocks_api_util_coverage_testparsedaterange"
},
{
- "label": "code:python (from main.app.prometheus.sandbox import SandboxManager)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L617",
- "community": 15,
- "norm_label": "code:python (from main.app.prometheus.sandbox import sandboxmanager)",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_15"
+ "label": ".test_empty_string()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L44",
+ "community": 73,
+ "norm_label": ".test_empty_string()",
+ "id": "tests_test_stocks_api_util_coverage_testparsedaterange_test_empty_string"
},
{
- "label": "code:python (async def streamMessage(self, query=None, sessionId=None, db)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L623",
- "community": 15,
- "norm_label": "code:python (async def streammessage(self, query=none, sessionid=none, db)",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_16"
+ "label": ".test_none()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L47",
+ "community": 73,
+ "norm_label": ".test_none()",
+ "id": "tests_test_stocks_api_util_coverage_testparsedaterange_test_none"
},
{
- "label": "code:python (## Code Sandbox (On-Demand))",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L723",
- "community": 15,
- "norm_label": "code:python (## code sandbox (on-demand))",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_17"
+ "label": ".test_single_year()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L50",
+ "community": 73,
+ "norm_label": ".test_single_year()",
+ "id": "tests_test_stocks_api_util_coverage_testparsedaterange_test_single_year"
},
{
- "label": "code:bash (git add main/app/prometheus/agent.py tests/test_agent_sandbo)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L751",
- "community": 15,
- "norm_label": "code:bash (git add main/app/prometheus/agent.py tests/test_agent_sandbo)",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_18"
+ "label": ".test_year_range()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L59",
+ "community": 73,
+ "norm_label": ".test_year_range()",
+ "id": "tests_test_stocks_api_util_coverage_testparsedaterange_test_year_range"
},
{
- "label": "Phase 5: Docker Image + Final Verification",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L758",
- "community": 15,
- "norm_label": "phase 5: docker image + final verification",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_phase_5_docker_image_final_verification"
+ "label": ".test_spaces()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L64",
+ "community": 73,
+ "norm_label": ".test_spaces()",
+ "id": "tests_test_stocks_api_util_coverage_testparsedaterange_test_spaces"
},
{
- "label": "Task 6: Dockerfile.sandbox \u2014 Python Data Science Image",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L760",
- "community": 15,
- "norm_label": "task 6: dockerfile.sandbox \u2014 python data science image",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_task_6_dockerfile_sandbox_python_data_science_image"
+ "label": ".test_three_values_raises()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L69",
+ "community": 73,
+ "norm_label": ".test_three_values_raises()",
+ "id": "tests_test_stocks_api_util_coverage_testparsedaterange_test_three_values_raises"
},
{
- "label": "code:dockerfile (FROM python:3.11-slim)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L767",
- "community": 15,
- "norm_label": "code:dockerfile (from python:3.11-slim)",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_19"
+ "label": ".test_month_start()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L74",
+ "community": 73,
+ "norm_label": ".test_month_start()",
+ "id": "tests_test_stocks_api_util_coverage_testparsedaterange_test_month_start"
},
{
- "label": "code:bash (git add Dockerfile.sandbox)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L785",
- "community": 15,
- "norm_label": "code:bash (git add dockerfile.sandbox)",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_20"
+ "label": ".test_full_date()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L81",
+ "community": 73,
+ "norm_label": ".test_full_date()",
+ "id": "tests_test_stocks_api_util_coverage_testparsedaterange_test_full_date"
},
{
- "label": "Task 7: Full CI Verification",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L792",
- "community": 15,
- "norm_label": "task 7: full ci verification",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_task_7_full_ci_verification"
+ "label": "Tests for main/app/stocks_api/util.py.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L1",
+ "community": 477,
+ "norm_label": "tests for main/app/stocks_api/util.py.",
+ "id": "tests_test_stocks_api_util_coverage_rationale_1"
},
{
- "label": "code:bash (docker-compose up -d --build)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L801",
- "community": 15,
- "norm_label": "code:bash (docker-compose up -d --build)",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_21"
+ "label": "test_stocks_mcp.py",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L1",
+ "community": 34,
+ "norm_label": "test_stocks_mcp.py",
+ "id": "tests_test_stocks_mcp_py"
},
{
- "label": "Summary",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L811",
- "community": 15,
- "norm_label": "summary",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_summary"
+ "label": "_build_app_with_all_routers()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L29",
+ "community": 34,
+ "norm_label": "_build_app_with_all_routers()",
+ "id": "tests_test_stocks_mcp_build_app_with_all_routers"
},
{
- "label": "What This Enables",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L827",
- "community": 15,
- "norm_label": "what this enables",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_what_this_enables"
+ "label": "_make_mcp()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L39",
+ "community": 34,
+ "norm_label": "_make_mcp()",
+ "id": "tests_test_stocks_mcp_make_mcp"
},
{
- "label": "What This Does NOT Do (By Design)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
- "source_location": "L838",
- "community": 15,
- "norm_label": "what this does not do (by design)",
- "id": "plans_2026_07_17_prometheus_forgevm_sandbox_what_this_does_not_do_by_design"
+ "label": "TestMCPToolScoping",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L48",
+ "community": 34,
+ "norm_label": "testmcptoolscoping",
+ "id": "tests_test_stocks_mcp_testmcptoolscoping"
},
{
- "label": "2026-07-17-sandbox-persistence.md",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L1",
- "community": 35,
- "norm_label": "2026-07-17-sandbox-persistence.md",
- "id": "docs_superpowers_plans_2026_07_17_sandbox_persistence_md"
+ "label": ".test_mcp_exactly_five_tools()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L51",
+ "community": 34,
+ "norm_label": ".test_mcp_exactly_five_tools()",
+ "id": "tests_test_stocks_mcp_testmcptoolscoping_test_mcp_exactly_five_tools"
},
{
- "label": "Sandbox Persistence Implementation Plan",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L1",
- "community": 35,
- "norm_label": "sandbox persistence implementation plan",
- "id": "plans_2026_07_17_sandbox_persistence_sandbox_persistence_implementation_plan"
+ "label": ".test_mcp_excludes_health()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L57",
+ "community": 34,
+ "norm_label": ".test_mcp_excludes_health()",
+ "id": "tests_test_stocks_mcp_testmcptoolscoping_test_mcp_excludes_health"
},
{
- "label": "Global Constraints",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L11",
- "community": 35,
- "norm_label": "global constraints",
- "id": "plans_2026_07_17_sandbox_persistence_global_constraints"
+ "label": ".test_mcp_excludes_generate_key()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L64",
+ "community": 34,
+ "norm_label": ".test_mcp_excludes_generate_key()",
+ "id": "tests_test_stocks_mcp_testmcptoolscoping_test_mcp_excludes_generate_key"
},
{
- "label": "File Structure",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L23",
- "community": 35,
- "norm_label": "file structure",
- "id": "plans_2026_07_17_sandbox_persistence_file_structure"
+ "label": ".test_mcp_excludes_non_stocks_endpoints()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L71",
+ "community": 34,
+ "norm_label": ".test_mcp_excludes_non_stocks_endpoints()",
+ "id": "tests_test_stocks_mcp_testmcptoolscoping_test_mcp_excludes_non_stocks_endpoints"
},
{
- "label": "Task 1: Database Model + Migration",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L38",
- "community": 35,
- "norm_label": "task 1: database model + migration",
- "id": "plans_2026_07_17_sandbox_persistence_task_1_database_model_migration"
+ "label": ".test_mcp_tool_names_match_endpoints()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L79",
+ "community": 34,
+ "norm_label": ".test_mcp_tool_names_match_endpoints()",
+ "id": "tests_test_stocks_mcp_testmcptoolscoping_test_mcp_tool_names_match_endpoints"
},
{
- "label": "code:python (# tests/test_sandbox_persistence.py)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L52",
- "community": 35,
- "norm_label": "code:python (# tests/test_sandbox_persistence.py)",
- "id": "plans_2026_07_17_sandbox_persistence_codeblock_1"
+ "label": ".test_mcp_descriptions_are_meaningful()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L87",
+ "community": 34,
+ "norm_label": ".test_mcp_descriptions_are_meaningful()",
+ "id": "tests_test_stocks_mcp_testmcptoolscoping_test_mcp_descriptions_are_meaningful"
},
{
- "label": "code:python (# main/models/sandbox.py)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L101",
- "community": 35,
- "norm_label": "code:python (# main/models/sandbox.py)",
- "id": "plans_2026_07_17_sandbox_persistence_codeblock_2"
+ "label": ".test_mcp_mount_returns_valid_response()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L94",
+ "community": 34,
+ "norm_label": ".test_mcp_mount_returns_valid_response()",
+ "id": "tests_test_stocks_mcp_testmcptoolscoping_test_mcp_mount_returns_valid_response"
},
{
- "label": "code:python (# main/models/__init__.py \u2014 add import)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L120",
- "community": 35,
- "norm_label": "code:python (# main/models/__init__.py \u2014 add import)",
- "id": "plans_2026_07_17_sandbox_persistence_codeblock_3"
+ "label": ".test_wrong_operation_ids_match_nothing()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L106",
+ "community": 34,
+ "norm_label": ".test_wrong_operation_ids_match_nothing()",
+ "id": "tests_test_stocks_mcp_testmcptoolscoping_test_wrong_operation_ids_match_nothing"
},
{
- "label": "code:python (# migrations/env.py \u2014 add import after line 14)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L133",
- "community": 35,
- "norm_label": "code:python (# migrations/env.py \u2014 add import after line 14)",
- "id": "plans_2026_07_17_sandbox_persistence_codeblock_4"
+ "label": ".test_listfields_tool_exists()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L116",
+ "community": 34,
+ "norm_label": ".test_listfields_tool_exists()",
+ "id": "tests_test_stocks_mcp_testmcptoolscoping_test_listfields_tool_exists"
},
{
- "label": "code:bash (git add main/models/sandbox.py main/models/__init__.py migra)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L150",
- "community": 35,
- "norm_label": "code:bash (git add main/models/sandbox.py main/models/__init__.py migra)",
- "id": "plans_2026_07_17_sandbox_persistence_codeblock_5"
+ "label": ".test_listfields_description_mentions_discovery()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L123",
+ "community": 34,
+ "norm_label": ".test_listfields_description_mentions_discovery()",
+ "id": "tests_test_stocks_mcp_testmcptoolscoping_test_listfields_description_mentions_discovery"
},
{
- "label": "Task 2: SandboxManager Persistence Logic",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L157",
- "community": 35,
- "norm_label": "task 2: sandboxmanager persistence logic",
- "id": "plans_2026_07_17_sandbox_persistence_task_2_sandboxmanager_persistence_logic"
+ "label": ".test_historical_dates_format_in_description()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L132",
+ "community": 34,
+ "norm_label": ".test_historical_dates_format_in_description()",
+ "id": "tests_test_stocks_mcp_testmcptoolscoping_test_historical_dates_format_in_description"
},
{
- "label": "code:python (# tests/test_sandbox_persistence.py \u2014 append to existing fil)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L170",
- "community": 35,
- "norm_label": "code:python (# tests/test_sandbox_persistence.py \u2014 append to existing fil)",
- "id": "plans_2026_07_17_sandbox_persistence_codeblock_6"
+ "label": "Tests for MCP tool scoping in stocksapi_service.py. Verifies that FastApiMCP ex",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L1",
+ "community": 34,
+ "norm_label": "tests for mcp tool scoping in stocksapi_service.py. verifies that fastapimcp ex",
+ "id": "tests_test_stocks_mcp_rationale_1"
},
{
- "label": "code:python (# main/app/prometheus/sandbox.py \u2014 full rewrite)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L284",
- "community": 35,
- "norm_label": "code:python (# main/app/prometheus/sandbox.py \u2014 full rewrite)",
- "id": "plans_2026_07_17_sandbox_persistence_codeblock_7"
+ "label": "Build a FastAPI app with all service routers \u2014 mimics production shared port.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L30",
+ "community": 34,
+ "norm_label": "build a fastapi app with all service routers \u2014 mimics production shared port.",
+ "id": "tests_test_stocks_mcp_rationale_30"
},
{
- "label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox_pe)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L533",
- "community": 35,
- "norm_label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox_pe)",
- "id": "plans_2026_07_17_sandbox_persistence_codeblock_8"
+ "label": "Create MCP matching production config.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L40",
+ "community": 34,
+ "norm_label": "create mcp matching production config.",
+ "id": "tests_test_stocks_mcp_rationale_40"
},
{
- "label": "Task 3: Agent Integration \u2014 Persistent Sandbox Lifecycle",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L540",
- "community": 35,
- "norm_label": "task 3: agent integration \u2014 persistent sandbox lifecycle",
- "id": "plans_2026_07_17_sandbox_persistence_task_3_agent_integration_persistent_sandbox_lifecycle"
+ "label": "Verify FastApiMCP exposes exactly the 5 data query tools.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L49",
+ "community": 34,
+ "norm_label": "verify fastapimcp exposes exactly the 5 data query tools.",
+ "id": "tests_test_stocks_mcp_rationale_49"
},
{
- "label": "code:python (# tests/test_agent_sandbox_integration.py \u2014 append)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L552",
- "community": 35,
- "norm_label": "code:python (# tests/test_agent_sandbox_integration.py \u2014 append)",
- "id": "plans_2026_07_17_sandbox_persistence_codeblock_9"
+ "label": "MCP should expose exactly 5 tools: fields, historical, fundamental, cotations, l",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L52",
+ "community": 34,
+ "norm_label": "mcp should expose exactly 5 tools: fields, historical, fundamental, cotations, l",
+ "id": "tests_test_stocks_mcp_rationale_52"
},
{
- "label": "code:python (# In streamMessage \u2014 replace sandbox_id = None with:)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L586",
- "community": 35,
- "norm_label": "code:python (# in streammessage \u2014 replace sandbox_id = none with:)",
- "id": "plans_2026_07_17_sandbox_persistence_codeblock_10"
+ "label": "Health endpoint should not be an MCP tool.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L58",
+ "community": 34,
+ "norm_label": "health endpoint should not be an mcp tool.",
+ "id": "tests_test_stocks_mcp_rationale_58"
},
{
- "label": "code:bash (git add main/app/prometheus/agent.py tests/test_agent_sandbo)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L627",
- "community": 35,
- "norm_label": "code:bash (git add main/app/prometheus/agent.py tests/test_agent_sandbo)",
- "id": "plans_2026_07_17_sandbox_persistence_codeblock_11"
+ "label": "Key generation endpoint should not be an MCP tool.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L65",
+ "community": 34,
+ "norm_label": "key generation endpoint should not be an mcp tool.",
+ "id": "tests_test_stocks_mcp_rationale_65"
},
{
- "label": "Task 4: Cleanup Job \u2014 Expired Sandbox Sweeper",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L634",
- "community": 35,
- "norm_label": "task 4: cleanup job \u2014 expired sandbox sweeper",
- "id": "plans_2026_07_17_sandbox_persistence_task_4_cleanup_job_expired_sandbox_sweeper"
+ "label": "Auth, user, and prometheus tools should not appear.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L72",
+ "community": 34,
+ "norm_label": "auth, user, and prometheus tools should not appear.",
+ "id": "tests_test_stocks_mcp_rationale_72"
},
{
- "label": "code:python (# tests/test_sandbox_persistence.py \u2014 append)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L646",
- "community": 35,
- "norm_label": "code:python (# tests/test_sandbox_persistence.py \u2014 append)",
- "id": "plans_2026_07_17_sandbox_persistence_codeblock_12"
+ "label": "Each MCP tool should correspond to a data endpoint.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L80",
+ "community": 34,
+ "norm_label": "each mcp tool should correspond to a data endpoint.",
+ "id": "tests_test_stocks_mcp_rationale_80"
},
{
- "label": "code:python (# main/app/prometheus/sandbox_cleanup.py)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L700",
- "community": 35,
- "norm_label": "code:python (# main/app/prometheus/sandbox_cleanup.py)",
- "id": "plans_2026_07_17_sandbox_persistence_codeblock_13"
+ "label": "Tool descriptions should be more than just the function name.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L88",
+ "community": 34,
+ "norm_label": "tool descriptions should be more than just the function name.",
+ "id": "tests_test_stocks_mcp_rationale_88"
},
{
- "label": "code:bash (git add main/app/prometheus/sandbox_cleanup.py tests/test_sa)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L746",
- "community": 35,
- "norm_label": "code:bash (git add main/app/prometheus/sandbox_cleanup.py tests/test_sa)",
- "id": "plans_2026_07_17_sandbox_persistence_codeblock_14"
+ "label": "MCP endpoint should respond \u2014 confirms mount is registered.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L95",
+ "community": 34,
+ "norm_label": "mcp endpoint should respond \u2014 confirms mount is registered.",
+ "id": "tests_test_stocks_mcp_rationale_95"
},
{
- "label": "Task 5: Full CI Verification",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L753",
- "community": 35,
- "norm_label": "task 5: full ci verification",
- "id": "plans_2026_07_17_sandbox_persistence_task_5_full_ci_verification"
+ "label": "Short function names (the original bug) should match 0 tools.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L107",
+ "community": 34,
+ "norm_label": "short function names (the original bug) should match 0 tools.",
+ "id": "tests_test_stocks_mcp_rationale_107"
},
{
- "label": "code:bash (git add -A)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L764",
- "community": 35,
- "norm_label": "code:bash (git add -a)",
- "id": "plans_2026_07_17_sandbox_persistence_codeblock_15"
+ "label": "The listFields discovery tool should be included.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L117",
+ "community": 34,
+ "norm_label": "the listfields discovery tool should be included.",
+ "id": "tests_test_stocks_mcp_rationale_117"
},
{
- "label": "Task 6: Docker Compose \u2014 Workspace Volume for Persistence",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L771",
- "community": 35,
- "norm_label": "task 6: docker compose \u2014 workspace volume for persistence",
- "id": "plans_2026_07_17_sandbox_persistence_task_6_docker_compose_workspace_volume_for_persistence"
+ "label": "The listFields tool description should guide LLMs to call it first.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L124",
+ "community": 34,
+ "norm_label": "the listfields tool description should guide llms to call it first.",
+ "id": "tests_test_stocks_mcp_rationale_124"
},
{
- "label": "code:yaml (# docker-compose.yml \u2014 add to api service volumes)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L782",
- "community": 35,
- "norm_label": "code:yaml (# docker-compose.yml \u2014 add to api service volumes)",
- "id": "plans_2026_07_17_sandbox_persistence_codeblock_16"
+ "label": "Historical tool description should mention YYYY date format.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_mcp.py",
+ "source_location": "L133",
+ "community": 34,
+ "norm_label": "historical tool description should mention yyyy date format.",
+ "id": "tests_test_stocks_mcp_rationale_133"
},
{
- "label": "code:yaml (# docker-compose.yml \u2014 add to api environment)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L797",
- "community": 35,
- "norm_label": "code:yaml (# docker-compose.yml \u2014 add to api environment)",
- "id": "plans_2026_07_17_sandbox_persistence_codeblock_17"
+ "label": "test_stocks_util.py",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L1",
+ "community": 73,
+ "norm_label": "test_stocks_util.py",
+ "id": "tests_test_stocks_util_py"
},
{
- "label": "code:bash (git add docker-compose.yml)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L809",
- "community": 35,
- "norm_label": "code:bash (git add docker-compose.yml)",
- "id": "plans_2026_07_17_sandbox_persistence_codeblock_18"
+ "label": "TestCategorizeColumns",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L12",
+ "community": 147,
+ "norm_label": "testcategorizecolumns",
+ "id": "tests_test_stocks_util_testcategorizecolumns"
},
{
- "label": "Summary",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
- "source_location": "L816",
- "community": 35,
- "norm_label": "summary",
- "id": "plans_2026_07_17_sandbox_persistence_summary"
+ "label": ".test_categorize_columns_historical_only()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L13",
+ "community": 147,
+ "norm_label": ".test_categorize_columns_historical_only()",
+ "id": "tests_test_stocks_util_testcategorizecolumns_test_categorize_columns_historical_only"
},
{
- "label": "task-1-report.md",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/task-1-report.md",
- "source_location": "L1",
- "community": 175,
- "norm_label": "task-1-report.md",
- "id": "docs_superpowers_plans_task_1_report_md"
- },
- {
- "label": "Task 1 Report: PrometheusSandbox Model & Migration",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/task-1-report.md",
- "source_location": "L1",
- "community": 175,
- "norm_label": "task 1 report: prometheussandbox model & migration",
- "id": "plans_task_1_report_task_1_report_prometheussandbox_model_migration"
+ "label": ".test_categorize_columns_fundamental_only()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L22",
+ "community": 147,
+ "norm_label": ".test_categorize_columns_fundamental_only()",
+ "id": "tests_test_stocks_util_testcategorizecolumns_test_categorize_columns_fundamental_only"
},
{
- "label": "Files Created/Modified",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/task-1-report.md",
- "source_location": "L5",
- "community": 175,
- "norm_label": "files created/modified",
- "id": "plans_task_1_report_files_created_modified"
+ "label": ".test_categorize_columns_mixed()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L31",
+ "community": 147,
+ "norm_label": ".test_categorize_columns_mixed()",
+ "id": "tests_test_stocks_util_testcategorizecolumns_test_categorize_columns_mixed"
},
{
- "label": "Test Results",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/task-1-report.md",
- "source_location": "L15",
- "community": 175,
- "norm_label": "test results",
- "id": "plans_task_1_report_test_results"
+ "label": ".test_categorize_columns_excludes_special()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L39",
+ "community": 147,
+ "norm_label": ".test_categorize_columns_excludes_special()",
+ "id": "tests_test_stocks_util_testcategorizecolumns_test_categorize_columns_excludes_special"
},
{
- "label": "code:block1 (tests/test_sandbox_persistence.py::TestPrometheusSandboxMode)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/task-1-report.md",
- "source_location": "L17",
- "community": 175,
- "norm_label": "code:block1 (tests/test_sandbox_persistence.py::testprometheussandboxmode)",
- "id": "plans_task_1_report_codeblock_1"
+ "label": ".test_categorize_columns_empty()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L47",
+ "community": 147,
+ "norm_label": ".test_categorize_columns_empty()",
+ "id": "tests_test_stocks_util_testcategorizecolumns_test_categorize_columns_empty"
},
{
- "label": "Commits",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/task-1-report.md",
- "source_location": "L25",
- "community": 175,
- "norm_label": "commits",
- "id": "plans_task_1_report_commits"
+ "label": "TestParseDateRange",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L53",
+ "community": 73,
+ "norm_label": "testparsedaterange",
+ "id": "tests_test_stocks_util_testparsedaterange"
},
{
- "label": "code:block2 (7fe4c6d feat: add PrometheusSandbox model for per-user sandb)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/task-1-report.md",
- "source_location": "L27",
- "community": 175,
- "norm_label": "code:block2 (7fe4c6d feat: add prometheussandbox model for per-user sandb)",
- "id": "plans_task_1_report_codeblock_2"
+ "label": ".test_parse_year_single()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L54",
+ "community": 73,
+ "norm_label": ".test_parse_year_single()",
+ "id": "tests_test_stocks_util_testparsedaterange_test_parse_year_single"
},
{
- "label": "Concerns",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/task-1-report.md",
- "source_location": "L31",
- "community": 175,
- "norm_label": "concerns",
- "id": "plans_task_1_report_concerns"
+ "label": ".test_parse_year_range()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L63",
+ "community": 73,
+ "norm_label": ".test_parse_year_range()",
+ "id": "tests_test_stocks_util_testparsedaterange_test_parse_year_range"
},
{
- "label": "streamMessage should create a HarnessState and pass it to buildSystemPrompt.",
- "file_type": "rationale",
- "source_file": "tests/test_agent_state_integration.py",
- "source_location": "L82",
- "community": 324,
- "norm_label": "streammessage should create a harnessstate and pass it to buildsystemprompt.",
- "id": "tests_test_agent_state_integration_rationale_82"
+ "label": ".test_parse_year_none()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L68",
+ "community": 73,
+ "norm_label": ".test_parse_year_none()",
+ "id": "tests_test_stocks_util_testparsedaterange_test_parse_year_none"
},
{
- "label": "streamMessage should pass state to dispatchToolCall.",
- "file_type": "rationale",
- "source_file": "tests/test_agent_state_integration.py",
- "source_location": "L122",
- "community": 325,
- "norm_label": "streammessage should pass state to dispatchtoolcall.",
- "id": "tests_test_agent_state_integration_rationale_122"
+ "label": ".test_parse_year_empty_string()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L73",
+ "community": 73,
+ "norm_label": ".test_parse_year_empty_string()",
+ "id": "tests_test_stocks_util_testparsedaterange_test_parse_year_empty_string"
},
{
- "label": "System prompt should instruct LLM about harness state usage.",
- "file_type": "rationale",
- "source_file": "tests/test_agent_state_integration.py",
- "source_location": "L182",
- "community": 93,
- "norm_label": "system prompt should instruct llm about harness state usage.",
- "id": "tests_test_agent_state_integration_rationale_182"
+ "label": ".test_parse_month()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L78",
+ "community": 73,
+ "norm_label": ".test_parse_month()",
+ "id": "tests_test_stocks_util_testparsedaterange_test_parse_month"
},
{
- "label": "System prompt should instruct LLM about memory vs state.",
- "file_type": "rationale",
- "source_file": "tests/test_agent_state_integration.py",
- "source_location": "L190",
- "community": 93,
- "norm_label": "system prompt should instruct llm about memory vs state.",
- "id": "tests_test_agent_state_integration_rationale_190"
+ "label": ".test_parse_full_date()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L85",
+ "community": 73,
+ "norm_label": ".test_parse_full_date()",
+ "id": "tests_test_stocks_util_testparsedaterange_test_parse_full_date"
},
{
- "label": "Covers lines 114-115, 117-120, 122: existing session with verified ownership.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1042",
- "community": 101,
- "norm_label": "covers lines 114-115, 117-120, 122: existing session with verified ownership.",
- "id": "tests_test_controllers_coverage_rationale_1042"
+ "label": ".test_parse_two_values()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L89",
+ "community": 73,
+ "norm_label": ".test_parse_two_values()",
+ "id": "tests_test_stocks_util_testparsedaterange_test_parse_two_values"
},
{
- "label": "Covers lines 114-115: session ownership check fails.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1083",
- "community": 104,
- "norm_label": "covers lines 114-115: session ownership check fails.",
- "id": "tests_test_controllers_coverage_rationale_1083"
+ "label": ".test_parse_three_values_raises()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L96",
+ "community": 73,
+ "norm_label": ".test_parse_three_values_raises()",
+ "id": "tests_test_stocks_util_testparsedaterange_test_parse_three_values_raises"
},
{
- "label": "Generic Exception in chat propagates to FastAPI's default 500 handler.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1120",
- "community": 101,
- "norm_label": "generic exception in chat propagates to fastapi's default 500 handler.",
- "id": "tests_test_controllers_coverage_rationale_1120"
+ "label": "test_streammessage_no_chatsession.py",
+ "file_type": "code",
+ "source_file": "tests/test_streammessage_no_chatsession.py",
+ "source_location": "L1",
+ "community": 138,
+ "norm_label": "test_streammessage_no_chatsession.py",
+ "id": "tests_test_streammessage_no_chatsession_py"
},
{
- "label": "Covers line 18: GET /stocks/health.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1138",
- "community": 498,
- "norm_label": "covers line 18: get /stocks/health.",
- "id": "tests_test_controllers_coverage_rationale_1138"
+ "label": "FakeChunk",
+ "file_type": "code",
+ "source_file": "tests/test_streammessage_no_chatsession.py",
+ "source_location": "L18",
+ "community": 138,
+ "norm_label": "fakechunk",
+ "id": "tests_test_streammessage_no_chatsession_fakechunk"
},
{
- "label": "Covers line 35: GET /stocks/historical.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1152",
- "community": 14,
- "norm_label": "covers line 35: get /stocks/historical.",
- "id": "tests_test_controllers_coverage_rationale_1152"
+ "label": ".__init__()",
+ "file_type": "code",
+ "source_file": "tests/test_streammessage_no_chatsession.py",
+ "source_location": "L19",
+ "community": 138,
+ "norm_label": ".__init__()",
+ "id": "tests_test_streammessage_no_chatsession_fakechunk_init"
},
{
- "label": "Covers line 47: GET /stocks/fundamental.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1166",
- "community": 14,
- "norm_label": "covers line 47: get /stocks/fundamental.",
- "id": "tests_test_controllers_coverage_rationale_1166"
+ "label": "TestStreamMessageNoChatSession",
+ "file_type": "code",
+ "source_file": "tests/test_streammessage_no_chatsession.py",
+ "source_location": "L24",
+ "community": 138,
+ "norm_label": "teststreammessagenochatsession",
+ "id": "tests_test_streammessage_no_chatsession_teststreammessagenochatsession"
},
{
- "label": "Covers lines 52-53, 57-63: GET /stocks/key/generate. NOTE: stocksapi_cont",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1180",
- "community": 85,
- "norm_label": "covers lines 52-53, 57-63: get /stocks/key/generate. note: stocksapi_cont",
- "id": "tests_test_controllers_coverage_rationale_1180"
+ "label": "test_stream_message_yields_text_chunks()",
+ "file_type": "code",
+ "source_file": "tests/test_streammessage_no_chatsession.py",
+ "source_location": "L32",
+ "community": 138,
+ "norm_label": "test_stream_message_yields_text_chunks()",
+ "id": "tests_test_streammessage_no_chatsession_test_stream_message_yields_text_chunks"
},
{
- "label": "Covers lines 52-53: user without GENERATE_API_KEYS permission gets 403.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1188",
- "community": 14,
- "norm_label": "covers lines 52-53: user without generate_api_keys permission gets 403.",
- "id": "tests_test_controllers_coverage_rationale_1188"
+ "label": "test_stream_message_does_not_call_chatSession()",
+ "file_type": "code",
+ "source_file": "tests/test_streammessage_no_chatsession.py",
+ "source_location": "L76",
+ "community": 138,
+ "norm_label": "test_stream_message_does_not_call_chatsession()",
+ "id": "tests_test_streammessage_no_chatsession_test_stream_message_does_not_call_chatsession"
},
{
- "label": "Covers lines 57-60: admin bypasses permission check and generates key.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1196",
- "community": 85,
- "norm_label": "covers lines 57-60: admin bypasses permission check and generates key.",
- "id": "tests_test_controllers_coverage_rationale_1196"
+ "label": "test_stream_message_handles_function_calls_without_chatsession()",
+ "file_type": "code",
+ "source_file": "tests/test_streammessage_no_chatsession.py",
+ "source_location": "L97",
+ "community": 138,
+ "norm_label": "test_stream_message_handles_function_calls_without_chatsession()",
+ "id": "tests_test_streammessage_no_chatsession_test_stream_message_handles_function_calls_without_chatsession"
},
{
- "label": "Covers lines 61-63: exception during key generation (admin path).",
+ "label": "GREEN test: streamMessage works without chatSession \u2014 MCP setup is inlined. Aft",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1208",
- "community": 85,
- "norm_label": "covers lines 61-63: exception during key generation (admin path).",
- "id": "tests_test_controllers_coverage_rationale_1208"
+ "source_file": "tests/test_streammessage_no_chatsession.py",
+ "source_location": "L1",
+ "community": 138,
+ "norm_label": "green test: streammessage works without chatsession \u2014 mcp setup is inlined. aft",
+ "id": "tests_test_streammessage_no_chatsession_rationale_1"
},
{
- "label": "Covers lines 13, 17, 19-20, 22-27: UserManager.addRoleToUser.",
+ "label": "streamMessage inlines MCP setup \u2014 chatSession no longer exists.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1223",
- "community": 137,
- "norm_label": "covers lines 13, 17, 19-20, 22-27: usermanager.addroletouser.",
- "id": "tests_test_controllers_coverage_rationale_1223"
+ "source_file": "tests/test_streammessage_no_chatsession.py",
+ "source_location": "L25",
+ "community": 138,
+ "norm_label": "streammessage inlines mcp setup \u2014 chatsession no longer exists.",
+ "id": "tests_test_streammessage_no_chatsession_rationale_25"
},
{
- "label": "Covers lines 17, 22-27: user found, role not present, role added.",
+ "label": "streamMessage yields text chunks via inlined MCP setup.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1226",
- "community": 137,
- "norm_label": "covers lines 17, 22-27: user found, role not present, role added.",
- "id": "tests_test_controllers_coverage_rationale_1226"
+ "source_file": "tests/test_streammessage_no_chatsession.py",
+ "source_location": "L33",
+ "community": 321,
+ "norm_label": "streammessage yields text chunks via inlined mcp setup.",
+ "id": "tests_test_streammessage_no_chatsession_rationale_33"
},
{
- "label": "Covers line 27: user already has the role.",
+ "label": "chatSession attribute must not exist \u2014 MCP setup is inlined.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1243",
- "community": 488,
- "norm_label": "covers line 27: user already has the role.",
- "id": "tests_test_controllers_coverage_rationale_1243"
+ "source_file": "tests/test_streammessage_no_chatsession.py",
+ "source_location": "L77",
+ "community": 322,
+ "norm_label": "chatsession attribute must not exist \u2014 mcp setup is inlined.",
+ "id": "tests_test_streammessage_no_chatsession_rationale_77"
},
{
- "label": "Covers lines 19-20: user not found raises 404.",
+ "label": "streamMessage handles function call loops via inlined MCP setup.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1257",
- "community": 528,
- "norm_label": "covers lines 19-20: user not found raises 404.",
- "id": "tests_test_controllers_coverage_rationale_1257"
+ "source_file": "tests/test_streammessage_no_chatsession.py",
+ "source_location": "L100",
+ "community": 323,
+ "norm_label": "streammessage handles function call loops via inlined mcp setup.",
+ "id": "tests_test_streammessage_no_chatsession_rationale_100"
},
{
- "label": "Covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: UserManager.getC",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1269",
- "community": 493,
- "norm_label": "covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: usermanager.getc",
- "id": "tests_test_controllers_coverage_rationale_1269"
+ "label": "test_thread_safety.py",
+ "file_type": "code",
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L1",
+ "community": 172,
+ "norm_label": "test_thread_safety.py",
+ "id": "tests_test_thread_safety_py"
},
{
- "label": "Covers lines 42-44: session validation fails.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1301",
- "community": 488,
- "norm_label": "covers lines 42-44: session validation fails.",
- "id": "tests_test_controllers_coverage_rationale_1301"
+ "label": "TestGetSession",
+ "file_type": "code",
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L21",
+ "community": 522,
+ "norm_label": "testgetsession",
+ "id": "tests_test_thread_safety_testgetsession"
},
{
- "label": "Covers lines 48-49: user not in DB.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1317",
- "community": 482,
- "norm_label": "covers lines 48-49: user not in db.",
- "id": "tests_test_controllers_coverage_rationale_1317"
+ "label": ".test_same_session_within_same_thread()",
+ "file_type": "code",
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L24",
+ "community": 522,
+ "norm_label": ".test_same_session_within_same_thread()",
+ "id": "tests_test_thread_safety_testgetsession_test_same_session_within_same_thread"
},
{
- "label": "Covers lines 65-67: unexpected exception.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1334",
- "community": 538,
- "norm_label": "covers lines 65-67: unexpected exception.",
- "id": "tests_test_controllers_coverage_rationale_1334"
+ "label": ".test_different_sessions_in_different_threads()",
+ "file_type": "code",
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L32",
+ "community": 522,
+ "norm_label": ".test_different_sessions_in_different_threads()",
+ "id": "tests_test_thread_safety_testgetsession_test_different_sessions_in_different_threads"
},
{
- "label": "Covers lines 37-38, 46, 51, 58 (sessionId is None): skips session validation.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1351",
- "community": 529,
- "norm_label": "covers lines 37-38, 46, 51, 58 (sessionid is none): skips session validation.",
- "id": "tests_test_controllers_coverage_rationale_1351"
+ "label": ".test_isolation_under_high_concurrency()",
+ "file_type": "code",
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L52",
+ "community": 522,
+ "norm_label": ".test_isolation_under_high_concurrency()",
+ "id": "tests_test_thread_safety_testgetsession_test_isolation_under_high_concurrency"
},
{
- "label": "Covers line 16: empty password raises ValueError.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1375",
- "community": 486,
- "norm_label": "covers line 16: empty password raises valueerror.",
- "id": "tests_test_controllers_coverage_rationale_1375"
+ "label": ".test_session_is_requests_session()",
+ "file_type": "code",
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L73",
+ "community": 522,
+ "norm_label": ".test_session_is_requests_session()",
+ "id": "tests_test_thread_safety_testgetsession_test_session_is_requests_session"
},
{
- "label": "Covers lines 45-51: verifyAccessToken with expired and invalid tokens.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1385",
- "community": 525,
- "norm_label": "covers lines 45-51: verifyaccesstoken with expired and invalid tokens.",
- "id": "tests_test_controllers_coverage_rationale_1385"
+ "label": "TestDiscordHandlerThreadPool",
+ "file_type": "code",
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L87",
+ "community": 122,
+ "norm_label": "testdiscordhandlerthreadpool",
+ "id": "tests_test_thread_safety_testdiscordhandlerthreadpool"
},
{
- "label": "Covers lines 48-49: jwt.ExpiredSignatureError.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1388",
- "community": 525,
- "norm_label": "covers lines 48-49: jwt.expiredsignatureerror.",
- "id": "tests_test_controllers_coverage_rationale_1388"
+ "label": ".test_executor_exists_and_is_bounded()",
+ "file_type": "code",
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L90",
+ "community": 122,
+ "norm_label": ".test_executor_exists_and_is_bounded()",
+ "id": "tests_test_thread_safety_testdiscordhandlerthreadpool_test_executor_exists_and_is_bounded"
},
{
- "label": "Covers lines 50-51: jwt.InvalidTokenError.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1404",
- "community": 525,
- "norm_label": "covers lines 50-51: jwt.invalidtokenerror.",
- "id": "tests_test_controllers_coverage_rationale_1404"
+ "label": ".test_emit_submits_to_executor()",
+ "file_type": "code",
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L98",
+ "community": 122,
+ "norm_label": ".test_emit_submits_to_executor()",
+ "id": "tests_test_thread_safety_testdiscordhandlerthreadpool_test_emit_submits_to_executor"
},
{
- "label": "Covers line 67: extractTokenPayload re-raises HTTPException from verifyAccessTok",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1416",
- "community": 114,
- "norm_label": "covers line 67: extracttokenpayload re-raises httpexception from verifyaccesstok",
- "id": "tests_test_controllers_coverage_rationale_1416"
+ "label": ".test_concurrent_emits_do_not_spawn_unbounded_threads()",
+ "file_type": "code",
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L128",
+ "community": 122,
+ "norm_label": ".test_concurrent_emits_do_not_spawn_unbounded_threads()",
+ "id": "tests_test_thread_safety_testdiscordhandlerthreadpool_test_concurrent_emits_do_not_spawn_unbounded_threads"
},
{
- "label": "Covers line 67: HTTPException raised by verifyAccessToken is re-raised.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1419",
- "community": 114,
- "norm_label": "covers line 67: httpexception raised by verifyaccesstoken is re-raised.",
- "id": "tests_test_controllers_coverage_rationale_1419"
+ "label": "TestConcurrentGetSession",
+ "file_type": "code",
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L175",
+ "community": 172,
+ "norm_label": "testconcurrentgetsession",
+ "id": "tests_test_thread_safety_testconcurrentgetsession"
},
{
- "label": "Covers line 13: UserManager.__init__.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1435",
- "community": 21,
- "norm_label": "covers line 13: usermanager.__init__.",
- "id": "tests_test_controllers_coverage_rationale_1435"
+ "label": ".test_getSession_returns_thread_local_sessions()",
+ "file_type": "code",
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L178",
+ "community": 172,
+ "norm_label": ".test_getsession_returns_thread_local_sessions()",
+ "id": "tests_test_thread_safety_testconcurrentgetsession_test_getsession_returns_thread_local_sessions"
},
{
- "label": "streamMessage must yield dict chunks from async iterator.",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L157",
- "community": 326,
- "norm_label": "streammessage must yield dict chunks from async iterator.",
- "id": "tests_test_prometheus_auth_coverage_rationale_157"
- },
- {
- "label": "streamMessage must handle function_calls as a list (not dict).",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L208",
- "community": 327,
- "norm_label": "streammessage must handle function_calls as a list (not dict).",
- "id": "tests_test_prometheus_auth_coverage_rationale_208"
+ "label": ".test_connectivity_uses_getSession()",
+ "file_type": "code",
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L199",
+ "community": 172,
+ "norm_label": ".test_connectivity_uses_getsession()",
+ "id": "tests_test_thread_safety_testconcurrentgetsession_test_connectivity_uses_getsession"
},
{
- "label": "Cover all methods in chat.py (lines 11-120).",
+ "label": "Tests for thread safety utilities (Issues 5 & 6). Issue 5: DiscordHandler use",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L278",
- "community": 52,
- "norm_label": "cover all methods in chat.py (lines 11-120).",
- "id": "tests_test_prometheus_auth_coverage_rationale_278"
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L1",
+ "community": 172,
+ "norm_label": "tests for thread safety utilities (issues 5 & 6). issue 5: discordhandler use",
+ "id": "tests_test_thread_safety_rationale_1"
},
{
- "label": "Cover all methods in authentication.py (lines 13-75).",
+ "label": "Verify that getSession() returns per-thread Session instances.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L502",
- "community": 88,
- "norm_label": "cover all methods in authentication.py (lines 13-75).",
- "id": "tests_test_prometheus_auth_coverage_rationale_502"
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L22",
+ "community": 522,
+ "norm_label": "verify that getsession() returns per-thread session instances.",
+ "id": "tests_test_thread_safety_rationale_22"
},
{
- "label": "Cover all methods in session.py (lines 14-154).",
+ "label": "Calling getSession() twice in the same thread returns the same object.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L679",
- "community": 60,
- "norm_label": "cover all methods in session.py (lines 14-154).",
- "id": "tests_test_prometheus_auth_coverage_rationale_679"
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L25",
+ "community": 522,
+ "norm_label": "calling getsession() twice in the same thread returns the same object.",
+ "id": "tests_test_thread_safety_rationale_25"
},
{
- "label": "Exercises the tzinfo-is-None branch (line 144-148).",
+ "label": "Two threads must NOT share a Session object.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L914",
- "community": 190,
- "norm_label": "exercises the tzinfo-is-none branch (line 144-148).",
- "id": "tests_test_prometheus_auth_coverage_rationale_914"
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L33",
+ "community": 522,
+ "norm_label": "two threads must not share a session object.",
+ "id": "tests_test_thread_safety_rationale_33"
},
{
- "label": "Exercises the expiresAt-is-None branch (line 143).",
+ "label": "With 20 concurrent threads, every thread must get its own Session.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L928",
- "community": 165,
- "norm_label": "exercises the expiresat-is-none branch (line 143).",
- "id": "tests_test_prometheus_auth_coverage_rationale_928"
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L53",
+ "community": 522,
+ "norm_label": "with 20 concurrent threads, every thread must get its own session.",
+ "id": "tests_test_thread_safety_rationale_53"
},
{
- "label": "Cover getGoogleSSO (lines 6-14).",
+ "label": "The returned object must be a real requests.Session.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L947",
- "community": 68,
- "norm_label": "cover getgooglesso (lines 6-14).",
- "id": "tests_test_prometheus_auth_coverage_rationale_947"
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L74",
+ "community": 522,
+ "norm_label": "the returned object must be a real requests.session.",
+ "id": "tests_test_thread_safety_rationale_74"
},
{
- "label": "chatSession attribute must not exist \u2014 MCP setup is inlined.",
+ "label": "Verify that DiscordHandler submits to a bounded executor, not raw threads.",
"file_type": "rationale",
- "source_file": "tests/test_streammessage_no_chatsession.py",
- "source_location": "L78",
- "community": 328,
- "norm_label": "chatsession attribute must not exist \u2014 mcp setup is inlined.",
- "id": "tests_test_streammessage_no_chatsession_rationale_78"
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L88",
+ "community": 122,
+ "norm_label": "verify that discordhandler submits to a bounded executor, not raw threads.",
+ "id": "tests_test_thread_safety_rationale_88"
},
{
- "label": "streamMessage handles function call loops via inlined MCP setup.",
+ "label": "The module-level discordExecutor must exist with max_workers <= 5.",
"file_type": "rationale",
- "source_file": "tests/test_streammessage_no_chatsession.py",
- "source_location": "L101",
- "community": 329,
- "norm_label": "streammessage handles function call loops via inlined mcp setup.",
- "id": "tests_test_streammessage_no_chatsession_rationale_101"
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L91",
+ "community": 122,
+ "norm_label": "the module-level discordexecutor must exist with max_workers <= 5.",
+ "id": "tests_test_thread_safety_rationale_91"
},
{
- "label": "Search user's saved memories, preferences, and past analysis context. Use",
+ "label": "DiscordHandler.emit() must use discordExecutor.submit, not Thread.start.",
"file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L16",
- "community": 86,
- "norm_label": "search user's saved memories, preferences, and past analysis context. use",
- "id": "prometheus_tools_rationale_16"
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L99",
+ "community": 122,
+ "norm_label": "discordhandler.emit() must use discordexecutor.submit, not thread.start.",
+ "id": "tests_test_thread_safety_rationale_99"
},
{
- "label": "Store a memory about the user's preferences, analysis results, or feedback.",
+ "label": "Many concurrent emit() calls must not create more threads than max_workers.",
"file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L42",
- "community": 503,
- "norm_label": "store a memory about the user's preferences, analysis results, or feedback.",
- "id": "prometheus_tools_rationale_42"
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L129",
+ "community": 122,
+ "norm_label": "many concurrent emit() calls must not create more threads than max_workers.",
+ "id": "tests_test_thread_safety_rationale_129"
},
{
- "label": "Retrieve values from the harness state. Use this to recall intermediate results,",
+ "label": "Verify getSession returns thread-local sessions under concurrency.",
"file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L79",
- "community": 99,
- "norm_label": "retrieve values from the harness state. use this to recall intermediate results,",
- "id": "prometheus_tools_rationale_79"
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L176",
+ "community": 172,
+ "norm_label": "verify getsession returns thread-local sessions under concurrency.",
+ "id": "tests_test_thread_safety_rationale_176"
},
{
- "label": "Store a value in the harness state for this session. Use this to save inter",
+ "label": "getSession() must give each thread its own Session.",
"file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L94",
- "community": 526,
- "norm_label": "store a value in the harness state for this session. use this to save inter",
- "id": "prometheus_tools_rationale_94"
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L179",
+ "community": 172,
+ "norm_label": "getsession() must give each thread its own session.",
+ "id": "tests_test_thread_safety_rationale_179"
},
{
- "label": "Execute Python code in an isolated sandbox. Use for quantitative analysis,",
+ "label": "connectivity.checkServiceConnection must call getSession(), not use a global Ses",
"file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L112",
- "community": 512,
- "norm_label": "execute python code in an isolated sandbox. use for quantitative analysis,",
- "id": "prometheus_tools_rationale_112"
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L200",
+ "community": 172,
+ "norm_label": "connectivity.checkserviceconnection must call getsession(), not use a global ses",
+ "id": "tests_test_thread_safety_rationale_200"
},
{
- "label": "Read a file from the workspace. Args: path: Path to the file (e.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L147",
- "community": 523,
- "norm_label": "read a file from the workspace. args: path: path to the file (e.",
- "id": "prometheus_tools_rationale_147"
+ "label": "test_type_aware_decay.py",
+ "file_type": "code",
+ "source_file": "tests/test_type_aware_decay.py",
+ "source_location": "L1",
+ "community": 54,
+ "norm_label": "test_type_aware_decay.py",
+ "id": "tests_test_type_aware_decay_py"
},
{
- "label": "Write a file to the workspace. Use this to save data files (CSV, JSON, scri",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L158",
- "community": 152,
- "norm_label": "write a file to the workspace. use this to save data files (csv, json, scri",
- "id": "prometheus_tools_rationale_158"
+ "label": "_create()",
+ "file_type": "code",
+ "source_file": "tests/test_type_aware_decay.py",
+ "source_location": "L11",
+ "community": 54,
+ "norm_label": "_create()",
+ "id": "tests_test_type_aware_decay_create"
},
{
- "label": "List files in the workspace directory. Args: path: Directory pat",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L171",
- "community": 152,
- "norm_label": "list files in the workspace directory. args: path: directory pat",
- "id": "prometheus_tools_rationale_171"
+ "label": "TestTypeAwareDecay",
+ "file_type": "code",
+ "source_file": "tests/test_type_aware_decay.py",
+ "source_location": "L29",
+ "community": 54,
+ "norm_label": "testtypeawaredecay",
+ "id": "tests_test_type_aware_decay_testtypeawaredecay"
},
{
- "label": "Keys with Jaccard > 0.8 should merge.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_dedup.py",
+ "label": ".test_preference_decays_slowly()",
+ "file_type": "code",
+ "source_file": "tests/test_type_aware_decay.py",
"source_location": "L30",
- "community": 186,
- "norm_label": "keys with jaccard > 0.8 should merge.",
- "id": "tests_test_memory_dedup_rationale_30"
+ "community": 54,
+ "norm_label": ".test_preference_decays_slowly()",
+ "id": "tests_test_type_aware_decay_testtypeawaredecay_test_preference_decays_slowly"
},
{
- "label": "Keys with low similarity should not merge.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_dedup.py",
- "source_location": "L40",
- "community": 186,
- "norm_label": "keys with low similarity should not merge.",
- "id": "tests_test_memory_dedup_rationale_40"
+ "label": ".test_context_decays_fast()",
+ "file_type": "code",
+ "source_file": "tests/test_type_aware_decay.py",
+ "source_location": "L36",
+ "community": 54,
+ "norm_label": ".test_context_decays_fast()",
+ "id": "tests_test_type_aware_decay_testtypeawaredecay_test_context_decays_fast"
},
{
- "label": "Keys with Jaccard <= 0.8 should not merge.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_dedup.py",
- "source_location": "L67",
- "community": 186,
- "norm_label": "keys with jaccard <= 0.8 should not merge.",
- "id": "tests_test_memory_dedup_rationale_67"
+ "label": ".test_analysis_decays_normally()",
+ "file_type": "code",
+ "source_file": "tests/test_type_aware_decay.py",
+ "source_location": "L42",
+ "community": 54,
+ "norm_label": ".test_analysis_decays_normally()",
+ "id": "tests_test_type_aware_decay_testtypeawaredecay_test_analysis_decays_normally"
},
{
- "label": "Wire up mock forgevm AsyncClient that returns sandbox with all methods.",
- "file_type": "rationale",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L9",
- "community": 4,
- "norm_label": "wire up mock forgevm asyncclient that returns sandbox with all methods.",
- "id": "tests_test_sandbox_persistence_rationale_9"
+ "label": ".test_feedback_decays_medium()",
+ "file_type": "code",
+ "source_file": "tests/test_type_aware_decay.py",
+ "source_location": "L48",
+ "community": 54,
+ "norm_label": ".test_feedback_decays_medium()",
+ "id": "tests_test_type_aware_decay_testtypeawaredecay_test_feedback_decays_medium"
},
{
- "label": "Enforce one active sandbox per user via application logic.",
- "file_type": "rationale",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L52",
- "community": 4,
- "norm_label": "enforce one active sandbox per user via application logic.",
- "id": "tests_test_sandbox_persistence_rationale_52"
+ "label": ".test_unknown_type_uses_default()",
+ "file_type": "code",
+ "source_file": "tests/test_type_aware_decay.py",
+ "source_location": "L54",
+ "community": 54,
+ "norm_label": ".test_unknown_type_uses_default()",
+ "id": "tests_test_type_aware_decay_testtypeawaredecay_test_unknown_type_uses_default"
},
{
- "label": "syncToSandbox pushes host files into the sandbox.",
- "file_type": "rationale",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L116",
- "community": 330,
- "norm_label": "synctosandbox pushes host files into the sandbox.",
- "id": "tests_test_sandbox_persistence_rationale_116"
+ "label": ".test_mixed_types_all_correct()",
+ "file_type": "code",
+ "source_file": "tests/test_type_aware_decay.py",
+ "source_location": "L60",
+ "community": 54,
+ "norm_label": ".test_mixed_types_all_correct()",
+ "id": "tests_test_type_aware_decay_testtypeawaredecay_test_mixed_types_all_correct"
},
{
- "label": "syncFromSandbox pulls sandbox files to host.",
- "file_type": "rationale",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L135",
- "community": 331,
- "norm_label": "syncfromsandbox pulls sandbox files to host.",
- "id": "tests_test_sandbox_persistence_rationale_135"
+ "label": ".test_preference_survives_longer()",
+ "file_type": "code",
+ "source_file": "tests/test_type_aware_decay.py",
+ "source_location": "L76",
+ "community": 54,
+ "norm_label": ".test_preference_survives_longer()",
+ "id": "tests_test_type_aware_decay_testtypeawaredecay_test_preference_survives_longer"
},
{
- "label": "syncToSandbox returns 0 when workspace is empty.",
+ "label": "After 10 cycles, preference (0.99^10) > context (0.90^10).",
"file_type": "rationale",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L155",
- "community": 332,
- "norm_label": "synctosandbox returns 0 when workspace is empty.",
- "id": "tests_test_sandbox_persistence_rationale_155"
+ "source_file": "tests/test_type_aware_decay.py",
+ "source_location": "L77",
+ "community": 54,
+ "norm_label": "after 10 cycles, preference (0.99^10) > context (0.90^10).",
+ "id": "tests_test_type_aware_decay_rationale_77"
},
{
- "label": "sandbox_cleanup.py",
+ "label": "test_user_deps.py",
"file_type": "code",
- "source_file": "main/app/prometheus/sandbox_cleanup.py",
+ "source_file": "tests/test_user_deps.py",
"source_location": "L1",
- "community": 4,
- "norm_label": "sandbox_cleanup.py",
- "id": "main_app_prometheus_sandbox_cleanup_py"
+ "community": 500,
+ "norm_label": "test_user_deps.py",
+ "id": "tests_test_user_deps_py"
},
{
- "label": "cleanup_expired_sandboxes()",
+ "label": "TestExtractTokenPayload",
"file_type": "code",
- "source_file": "main/app/prometheus/sandbox_cleanup.py",
- "source_location": "L9",
- "community": 4,
- "norm_label": "cleanup_expired_sandboxes()",
- "id": "prometheus_sandbox_cleanup_cleanup_expired_sandboxes"
+ "source_file": "tests/test_user_deps.py",
+ "source_location": "L11",
+ "community": 98,
+ "norm_label": "testextracttokenpayload",
+ "id": "tests_test_user_deps_testextracttokenpayload"
},
{
- "label": "Remove DB mappings for sandboxes that no longer exist in ForgeVM.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/sandbox_cleanup.py",
- "source_location": "L10",
- "community": 4,
- "norm_label": "remove db mappings for sandboxes that no longer exist in forgevm.",
- "id": "prometheus_sandbox_cleanup_rationale_10"
+ "label": "._make_request()",
+ "file_type": "code",
+ "source_file": "tests/test_user_deps.py",
+ "source_location": "L14",
+ "community": 98,
+ "norm_label": "._make_request()",
+ "id": "tests_test_user_deps_testextracttokenpayload_make_request"
},
{
- "label": "test_agent_import_sandbox_manager()",
+ "label": ".test_missing_token_raises_401()",
"file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L53",
- "community": 24,
- "norm_label": "test_agent_import_sandbox_manager()",
- "id": "tests_test_agent_sandbox_integration_test_agent_import_sandbox_manager"
+ "source_file": "tests/test_user_deps.py",
+ "source_location": "L19",
+ "community": 98,
+ "norm_label": ".test_missing_token_raises_401()",
+ "id": "tests_test_user_deps_testextracttokenpayload_test_missing_token_raises_401"
},
{
- "label": "test_destroy_still_available()",
+ "label": ".test_x_access_token_header_used()",
"file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L60",
- "community": 24,
- "norm_label": "test_destroy_still_available()",
- "id": "tests_test_agent_sandbox_integration_test_destroy_still_available"
+ "source_file": "tests/test_user_deps.py",
+ "source_location": "L28",
+ "community": 98,
+ "norm_label": ".test_x_access_token_header_used()",
+ "id": "tests_test_user_deps_testextracttokenpayload_test_x_access_token_header_used"
},
{
- "label": "destroy() still exists for explicit user requests.",
- "file_type": "rationale",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L61",
- "community": 333,
- "norm_label": "destroy() still exists for explicit user requests.",
- "id": "tests_test_agent_sandbox_integration_rationale_61"
+ "label": ".test_authorization_bearer_header_used()",
+ "file_type": "code",
+ "source_file": "tests/test_user_deps.py",
+ "source_location": "L38",
+ "community": 98,
+ "norm_label": ".test_authorization_bearer_header_used()",
+ "id": "tests_test_user_deps_testextracttokenpayload_test_authorization_bearer_header_used"
},
{
- "label": "Verify agent.py no longer calls SandboxManager.create directly.",
- "file_type": "rationale",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L66",
- "community": 334,
- "norm_label": "verify agent.py no longer calls sandboxmanager.create directly.",
- "id": "tests_test_agent_sandbox_integration_rationale_66"
+ "label": ".test_x_access_token_takes_priority_over_bearer()",
+ "file_type": "code",
+ "source_file": "tests/test_user_deps.py",
+ "source_location": "L48",
+ "community": 98,
+ "norm_label": ".test_x_access_token_takes_priority_over_bearer()",
+ "id": "tests_test_user_deps_testextracttokenpayload_test_x_access_token_takes_priority_over_bearer"
},
{
- "label": "TestSandboxCleanup",
+ "label": ".test_invalid_token_raises_401()",
"file_type": "code",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L164",
- "community": 4,
- "norm_label": "testsandboxcleanup",
- "id": "tests_test_sandbox_persistence_testsandboxcleanup"
+ "source_file": "tests/test_user_deps.py",
+ "source_location": "L58",
+ "community": 98,
+ "norm_label": ".test_invalid_token_raises_401()",
+ "id": "tests_test_user_deps_testextracttokenpayload_test_invalid_token_raises_401"
},
{
- "label": "test_cleanup_removes_dead_mappings()",
+ "label": ".test_empty_user_id_raises_401()",
"file_type": "code",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L167",
- "community": 4,
- "norm_label": "test_cleanup_removes_dead_mappings()",
- "id": "tests_test_sandbox_persistence_test_cleanup_removes_dead_mappings"
+ "source_file": "tests/test_user_deps.py",
+ "source_location": "L68",
+ "community": 98,
+ "norm_label": ".test_empty_user_id_raises_401()",
+ "id": "tests_test_user_deps_testextracttokenpayload_test_empty_user_id_raises_401"
},
{
- "label": "test_cleanup_keeps_alive_sandboxes()",
+ "label": ".test_empty_bearer_value_raises_401()",
"file_type": "code",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L187",
- "community": 4,
- "norm_label": "test_cleanup_keeps_alive_sandboxes()",
- "id": "tests_test_sandbox_persistence_test_cleanup_keeps_alive_sandboxes"
+ "source_file": "tests/test_user_deps.py",
+ "source_location": "L77",
+ "community": 98,
+ "norm_label": ".test_empty_bearer_value_raises_401()",
+ "id": "tests_test_user_deps_testextracttokenpayload_test_empty_bearer_value_raises_401"
},
{
- "label": "Mappings for dead sandboxes are removed.",
+ "label": ".test_non_bearer_auth_header_raises_401()",
+ "file_type": "code",
+ "source_file": "tests/test_user_deps.py",
+ "source_location": "L86",
+ "community": 98,
+ "norm_label": ".test_non_bearer_auth_header_raises_401()",
+ "id": "tests_test_user_deps_testextracttokenpayload_test_non_bearer_auth_header_raises_401"
+ },
+ {
+ "label": "Tests for extractTokenPayload \u2014 the standalone token extraction dependency.",
"file_type": "rationale",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L168",
- "community": 335,
- "norm_label": "mappings for dead sandboxes are removed.",
- "id": "tests_test_sandbox_persistence_rationale_168"
+ "source_file": "tests/test_user_deps.py",
+ "source_location": "L12",
+ "community": 98,
+ "norm_label": "tests for extracttokenpayload \u2014 the standalone token extraction dependency.",
+ "id": "tests_test_user_deps_rationale_12"
},
{
- "label": "Mappings for alive sandboxes are kept.",
+ "label": "Create a mock Starlette Request with given headers.",
"file_type": "rationale",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L188",
- "community": 336,
- "norm_label": "mappings for alive sandboxes are kept.",
- "id": "tests_test_sandbox_persistence_rationale_188"
+ "source_file": "tests/test_user_deps.py",
+ "source_location": "L15",
+ "community": 98,
+ "norm_label": "create a mock starlette request with given headers.",
+ "id": "tests_test_user_deps_rationale_15"
},
{
- "label": "PrometheusMemory",
- "file_type": "code",
- "source_file": "main/models/memory.py",
- "source_location": "L7",
- "community": 140,
- "norm_label": "prometheusmemory",
- "id": "models_memory_usermemory"
+ "label": "Authorization: Bearer (empty) \u2014 no token after Bearer.",
+ "file_type": "rationale",
+ "source_file": "tests/test_user_deps.py",
+ "source_location": "L78",
+ "community": 98,
+ "norm_label": "authorization: bearer (empty) \u2014 no token after bearer.",
+ "id": "tests_test_user_deps_rationale_78"
},
{
- "label": ".sendMessage()",
- "file_type": "code",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L181",
- "community": 116,
- "norm_label": ".sendmessage()",
- "id": "prometheus_agent_prometheus_sendmessage"
+ "label": "Authorization: Basic xxx \u2014 not Bearer, so no token found.",
+ "file_type": "rationale",
+ "source_file": "tests/test_user_deps.py",
+ "source_location": "L87",
+ "community": 98,
+ "norm_label": "authorization: basic xxx \u2014 not bearer, so no token found.",
+ "id": "tests_test_user_deps_rationale_87"
},
{
- "label": "syncWorkspace()",
+ "label": "test_vector_utils.py",
"file_type": "code",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L135",
- "community": 69,
- "norm_label": "syncworkspace()",
- "id": "prometheus_sandbox_syncworkspace"
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L1",
+ "community": 112,
+ "norm_label": "test_vector_utils.py",
+ "id": "tests_test_vector_utils_py"
},
{
- "label": "restoreWorkspace()",
+ "label": "TestBatchCosineSimilarity",
"file_type": "code",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L149",
- "community": 69,
- "norm_label": "restoreworkspace()",
- "id": "prometheus_sandbox_restoreworkspace"
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L6",
+ "community": 13,
+ "norm_label": "testbatchcosinesimilarity",
+ "id": "tests_test_vector_utils_testbatchcosinesimilarity"
},
{
- "label": "_saveBackup()",
+ "label": ".test_empty_matrix()",
"file_type": "code",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L160",
- "community": 69,
- "norm_label": "_savebackup()",
- "id": "prometheus_sandbox_savebackup"
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L7",
+ "community": 13,
+ "norm_label": ".test_empty_matrix()",
+ "id": "tests_test_vector_utils_testbatchcosinesimilarity_test_empty_matrix"
},
{
- "label": "_loadBackup()",
+ "label": ".test_single_row()",
"file_type": "code",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L169",
- "community": 69,
- "norm_label": "_loadbackup()",
- "id": "prometheus_sandbox_loadbackup"
- },
- {
- "label": "Return existing sandbox if alive, otherwise create a new one. When a DB",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L45",
- "community": 337,
- "norm_label": "return existing sandbox if alive, otherwise create a new one. when a db",
- "id": "prometheus_sandbox_rationale_45"
- },
- {
- "label": "Snapshot every file in /workspace as a {path: content} dict.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L136",
- "community": 338,
- "norm_label": "snapshot every file in /workspace as a {path: content} dict.",
- "id": "prometheus_sandbox_rationale_136"
- },
- {
- "label": "Write a {path: content} dict back into the sandbox.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L150",
- "community": 339,
- "norm_label": "write a {path: content} dict back into the sandbox.",
- "id": "prometheus_sandbox_rationale_150"
- },
- {
- "label": "Persist workspace files to the host volume as JSON.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L161",
- "community": 340,
- "norm_label": "persist workspace files to the host volume as json.",
- "id": "prometheus_sandbox_rationale_161"
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L11",
+ "community": 13,
+ "norm_label": ".test_single_row()",
+ "id": "tests_test_vector_utils_testbatchcosinesimilarity_test_single_row"
},
{
- "label": "Load workspace backup from host volume, or return {} if none.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L170",
- "community": 341,
- "norm_label": "load workspace backup from host volume, or return {} if none.",
- "id": "prometheus_sandbox_rationale_170"
+ "label": ".test_multiple_rows()",
+ "file_type": "code",
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L17",
+ "community": 13,
+ "norm_label": ".test_multiple_rows()",
+ "id": "tests_test_vector_utils_testbatchcosinesimilarity_test_multiple_rows"
},
{
- "label": "Destroy a sandbox and optionally remove its DB mapping.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L179",
- "community": 342,
- "norm_label": "destroy a sandbox and optionally remove its db mapping.",
- "id": "prometheus_sandbox_rationale_179"
+ "label": ".test_zero_query()",
+ "file_type": "code",
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L32",
+ "community": 13,
+ "norm_label": ".test_zero_query()",
+ "id": "tests_test_vector_utils_testbatchcosinesimilarity_test_zero_query"
},
{
- "label": "Read a file from the sandbox filesystem. Args: path: Absolute pa",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L131",
- "community": 523,
- "norm_label": "read a file from the sandbox filesystem. args: path: absolute pa",
- "id": "prometheus_tools_rationale_131"
+ "label": "TestContentHash",
+ "file_type": "code",
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L38",
+ "community": 112,
+ "norm_label": "testcontenthash",
+ "id": "tests_test_vector_utils_testcontenthash"
},
{
- "label": "chat()",
+ "label": ".test_deterministic()",
"file_type": "code",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L111",
- "community": 84,
- "norm_label": "chat()",
- "id": "controller_prometheus_controller_chat"
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L39",
+ "community": 112,
+ "norm_label": ".test_deterministic()",
+ "id": "tests_test_vector_utils_testcontenthash_test_deterministic"
},
{
- "label": "test_sync_empty_workspace_skips_save()",
+ "label": ".test_different_inputs()",
"file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_file": "tests/test_vector_utils.py",
"source_location": "L42",
- "community": 24,
- "norm_label": "test_sync_empty_workspace_skips_save()",
- "id": "tests_test_agent_sandbox_integration_test_sync_empty_workspace_skips_save"
+ "community": 112,
+ "norm_label": ".test_different_inputs()",
+ "id": "tests_test_vector_utils_testcontenthash_test_different_inputs"
},
{
- "label": "Agent module can import SandboxManager.",
- "file_type": "rationale",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L60",
- "community": 343,
- "norm_label": "agent module can import sandboxmanager.",
- "id": "tests_test_agent_sandbox_integration_rationale_60"
+ "label": ".test_hex_format()",
+ "file_type": "code",
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L45",
+ "community": 112,
+ "norm_label": ".test_hex_format()",
+ "id": "tests_test_vector_utils_testcontenthash_test_hex_format"
},
{
- "label": "destroy() still exists for explicit user requests.",
- "file_type": "rationale",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L70",
- "community": 344,
- "norm_label": "destroy() still exists for explicit user requests.",
- "id": "tests_test_agent_sandbox_integration_rationale_70"
+ "label": "README.md",
+ "file_type": "document",
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/README.md",
+ "source_location": "L1",
+ "community": 108,
+ "norm_label": "readme.md",
+ "id": "main_utils_models_all_minilm_l6_v2_readme_md"
},
{
- "label": "Verify agent.py no longer calls SandboxManager.create directly.",
- "file_type": "rationale",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L75",
- "community": 345,
- "norm_label": "verify agent.py no longer calls sandboxmanager.create directly.",
- "id": "tests_test_agent_sandbox_integration_rationale_75"
+ "label": "all-MiniLM-L6-v2",
+ "file_type": "document",
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/README.md",
+ "source_location": "L38",
+ "community": 108,
+ "norm_label": "all-minilm-l6-v2",
+ "id": "all_minilm_l6_v2_readme_all_minilm_l6_v2"
},
{
- "label": "test_read_file()",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L43",
- "community": 2,
- "norm_label": "test_read_file()",
- "id": "tests_test_sandbox_test_read_file"
+ "label": "Usage (Sentence-Transformers)",
+ "file_type": "document",
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/README.md",
+ "source_location": "L41",
+ "community": 108,
+ "norm_label": "usage (sentence-transformers)",
+ "id": "all_minilm_l6_v2_readme_usage_sentence_transformers"
},
{
- "label": "test_write_file()",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L51",
- "community": 2,
- "norm_label": "test_write_file()",
- "id": "tests_test_sandbox_test_write_file"
+ "label": "code:block1 (pip install -U sentence-transformers)",
+ "file_type": "document",
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/README.md",
+ "source_location": "L44",
+ "community": 108,
+ "norm_label": "code:block1 (pip install -u sentence-transformers)",
+ "id": "all_minilm_l6_v2_readme_codeblock_1"
},
{
- "label": "test_list_files()",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L59",
- "community": 2,
- "norm_label": "test_list_files()",
- "id": "tests_test_sandbox_test_list_files"
+ "label": "code:python (from sentence_transformers import SentenceTransformer)",
+ "file_type": "document",
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/README.md",
+ "source_location": "L49",
+ "community": 108,
+ "norm_label": "code:python (from sentence_transformers import sentencetransformer)",
+ "id": "all_minilm_l6_v2_readme_codeblock_2"
},
{
- "label": "test_write_file_returns_false_on_error()",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L102",
- "community": 2,
- "norm_label": "test_write_file_returns_false_on_error()",
- "id": "tests_test_sandbox_test_write_file_returns_false_on_error"
+ "label": "Usage (HuggingFace Transformers)",
+ "file_type": "document",
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/README.md",
+ "source_location": "L58",
+ "community": 108,
+ "norm_label": "usage (huggingface transformers)",
+ "id": "all_minilm_l6_v2_readme_usage_huggingface_transformers"
},
{
- "label": "Wire up mock forgevm AsyncClient that returns sandbox with all methods.",
- "file_type": "rationale",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L7",
- "community": 2,
- "norm_label": "wire up mock forgevm asyncclient that returns sandbox with all methods.",
- "id": "tests_test_sandbox_rationale_7"
+ "label": "code:python (from transformers import AutoTokenizer, AutoModel)",
+ "file_type": "document",
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/README.md",
+ "source_location": "L61",
+ "community": 108,
+ "norm_label": "code:python (from transformers import autotokenizer, automodel)",
+ "id": "all_minilm_l6_v2_readme_codeblock_3"
},
{
- "label": "test_sync_workspace()",
- "file_type": "code",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L114",
- "community": 4,
- "norm_label": "test_sync_workspace()",
- "id": "tests_test_sandbox_persistence_test_sync_workspace"
+ "label": "Background",
+ "file_type": "document",
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/README.md",
+ "source_location": "L99",
+ "community": 108,
+ "norm_label": "background",
+ "id": "all_minilm_l6_v2_readme_background"
},
{
- "label": "test_restore_workspace()",
- "file_type": "code",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L132",
- "community": 4,
- "norm_label": "test_restore_workspace()",
- "id": "tests_test_sandbox_persistence_test_restore_workspace"
+ "label": "Intended uses",
+ "file_type": "document",
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/README.md",
+ "source_location": "L110",
+ "community": 108,
+ "norm_label": "intended uses",
+ "id": "all_minilm_l6_v2_readme_intended_uses"
},
{
- "label": "Wire up mock forgevm AsyncClient that returns sandbox with all methods.",
- "file_type": "rationale",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L8",
- "community": 4,
- "norm_label": "wire up mock forgevm asyncclient that returns sandbox with all methods.",
- "id": "tests_test_sandbox_persistence_rationale_8"
+ "label": "Training procedure",
+ "file_type": "document",
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/README.md",
+ "source_location": "L118",
+ "community": 108,
+ "norm_label": "training procedure",
+ "id": "all_minilm_l6_v2_readme_training_procedure"
},
{
- "label": "Enforce one active sandbox per user via application logic.",
- "file_type": "rationale",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L51",
- "community": 4,
- "norm_label": "enforce one active sandbox per user via application logic.",
- "id": "tests_test_sandbox_persistence_rationale_51"
+ "label": "Pre-training",
+ "file_type": "document",
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/README.md",
+ "source_location": "L120",
+ "community": 108,
+ "norm_label": "pre-training",
+ "id": "all_minilm_l6_v2_readme_pre_training"
},
{
- "label": "Mappings for dead sandboxes are removed.",
- "file_type": "rationale",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L145",
- "community": 346,
- "norm_label": "mappings for dead sandboxes are removed.",
- "id": "tests_test_sandbox_persistence_rationale_145"
+ "label": "Fine-tuning",
+ "file_type": "document",
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/README.md",
+ "source_location": "L124",
+ "community": 108,
+ "norm_label": "fine-tuning",
+ "id": "all_minilm_l6_v2_readme_fine_tuning"
},
{
- "label": "Mappings for alive sandboxes are kept.",
- "file_type": "rationale",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L165",
- "community": 347,
- "norm_label": "mappings for alive sandboxes are kept.",
- "id": "tests_test_sandbox_persistence_rationale_165"
+ "label": "Hyper parameters",
+ "file_type": "document",
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/README.md",
+ "source_location": "L129",
+ "community": 108,
+ "norm_label": "hyper parameters",
+ "id": "all_minilm_l6_v2_readme_hyper_parameters"
},
{
- "label": "Snapshot every file in /workspace as a {path: content} dict.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/sandbox.py",
+ "label": "Training data",
+ "file_type": "document",
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/README.md",
"source_location": "L135",
- "community": 348,
- "norm_label": "snapshot every file in /workspace as a {path: content} dict.",
- "id": "prometheus_sandbox_rationale_135"
+ "community": 108,
+ "norm_label": "training data",
+ "id": "all_minilm_l6_v2_readme_training_data"
},
{
- "label": "Write a {path: content} dict back into the sandbox.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L149",
- "community": 349,
- "norm_label": "write a {path: content} dict back into the sandbox.",
- "id": "prometheus_sandbox_rationale_149"
+ "label": "ToolCard()",
+ "file_type": "code",
+ "source_file": "frontend/src/components/AgentLoop.jsx",
+ "source_location": "L3",
+ "community": 150,
+ "norm_label": "toolcard()",
+ "id": "components_agentloop_toolcard"
},
{
- "label": "Persist workspace files to the host volume as JSON.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L160",
- "community": 350,
- "norm_label": "persist workspace files to the host volume as json.",
- "id": "prometheus_sandbox_rationale_160"
+ "label": "2026-07-17-observable-agent-loop.md",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-17-observable-agent-loop.md",
+ "source_location": "L1",
+ "community": 70,
+ "norm_label": "2026-07-17-observable-agent-loop.md",
+ "id": "docs_superpowers_plans_2026_07_17_observable_agent_loop_md"
},
{
- "label": "Load workspace backup from host volume, or return {} if none.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L169",
- "community": 351,
- "norm_label": "load workspace backup from host volume, or return {} if none.",
- "id": "prometheus_sandbox_rationale_169"
+ "label": "Observable Agent Loop \u2014 Implementation Plan",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-17-observable-agent-loop.md",
+ "source_location": "L1",
+ "community": 70,
+ "norm_label": "observable agent loop \u2014 implementation plan",
+ "id": "plans_2026_07_17_observable_agent_loop_observable_agent_loop_implementation_plan"
},
{
- "label": "Destroy a sandbox and optionally remove its DB mapping.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L178",
- "community": 352,
- "norm_label": "destroy a sandbox and optionally remove its db mapping.",
- "id": "prometheus_sandbox_rationale_178"
+ "label": "Context",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-17-observable-agent-loop.md",
+ "source_location": "L13",
+ "community": 70,
+ "norm_label": "context",
+ "id": "plans_2026_07_17_observable_agent_loop_context"
},
{
- "label": "Read a file from the sandbox filesystem. Args: path: Absolute pa",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L130",
- "community": 523,
- "norm_label": "read a file from the sandbox filesystem. args: path: absolute pa",
- "id": "prometheus_tools_rationale_130"
+ "label": "Current State",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-17-observable-agent-loop.md",
+ "source_location": "L15",
+ "community": 70,
+ "norm_label": "current state",
+ "id": "plans_2026_07_17_observable_agent_loop_current_state"
},
{
- "label": "TestAgentSandboxIntegration",
- "file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L7",
- "community": 107,
- "norm_label": "testagentsandboxintegration",
- "id": "tests_test_agent_sandbox_integration_testagentsandboxintegration"
+ "label": "What Changes",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-17-observable-agent-loop.md",
+ "source_location": "L22",
+ "community": 70,
+ "norm_label": "what changes",
+ "id": "plans_2026_07_17_observable_agent_loop_what_changes"
},
{
- "label": ".test_build_system_prompt_includes_sandbox_instructions()",
- "file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L8",
- "community": 107,
- "norm_label": ".test_build_system_prompt_includes_sandbox_instructions()",
- "id": "tests_test_agent_sandbox_integration_testagentsandboxintegration_test_build_system_prompt_includes_sandbox_instructions"
+ "label": "File Structure",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-17-observable-agent-loop.md",
+ "source_location": "L29",
+ "community": 70,
+ "norm_label": "file structure",
+ "id": "plans_2026_07_17_observable_agent_loop_file_structure"
},
{
- "label": ".test_build_system_prompt_includes_state_instructions()",
- "file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L14",
- "community": 107,
- "norm_label": ".test_build_system_prompt_includes_state_instructions()",
- "id": "tests_test_agent_sandbox_integration_testagentsandboxintegration_test_build_system_prompt_includes_state_instructions"
+ "label": "Task 1: Stream Tool Events via SSE",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-17-observable-agent-loop.md",
+ "source_location": "L40",
+ "community": 70,
+ "norm_label": "task 1: stream tool events via sse",
+ "id": "plans_2026_07_17_observable_agent_loop_task_1_stream_tool_events_via_sse"
},
{
- "label": ".test_build_system_prompt_with_state()",
- "file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L19",
- "community": 107,
- "norm_label": ".test_build_system_prompt_with_state()",
- "id": "tests_test_agent_sandbox_integration_testagentsandboxintegration_test_build_system_prompt_with_state"
+ "label": "code:python (for fc in function_calls:)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-17-observable-agent-loop.md",
+ "source_location": "L55",
+ "community": 70,
+ "norm_label": "code:python (for fc in function_calls:)",
+ "id": "plans_2026_07_17_observable_agent_loop_codeblock_1"
},
{
- "label": "test_streamMessage_creates_sandbox_on_execute_code()",
- "file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L28",
- "community": 24,
- "norm_label": "test_streammessage_creates_sandbox_on_execute_code()",
- "id": "tests_test_agent_sandbox_integration_test_streammessage_creates_sandbox_on_execute_code"
+ "label": "code:python (turn_end_event = {)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-17-observable-agent-loop.md",
+ "source_location": "L88",
+ "community": 70,
+ "norm_label": "code:python (turn_end_event = {)",
+ "id": "plans_2026_07_17_observable_agent_loop_codeblock_2"
},
{
- "label": "TestPremiumCheck",
- "file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L36",
- "community": 24,
- "norm_label": "testpremiumcheck",
- "id": "tests_test_agent_sandbox_integration_testpremiumcheck"
+ "label": "code:bash (git add main/app/prometheus/agent.py)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-17-observable-agent-loop.md",
+ "source_location": "L115",
+ "community": 70,
+ "norm_label": "code:bash (git add main/app/prometheus/agent.py)",
+ "id": "plans_2026_07_17_observable_agent_loop_codeblock_3"
},
{
- "label": ".test_premium_user_has_sandbox_access()",
- "file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L39",
- "community": 24,
- "norm_label": ".test_premium_user_has_sandbox_access()",
- "id": "tests_test_agent_sandbox_integration_testpremiumcheck_test_premium_user_has_sandbox_access"
- },
- {
- "label": ".test_admin_user_has_sandbox_access()",
- "file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L45",
- "community": 24,
- "norm_label": ".test_admin_user_has_sandbox_access()",
- "id": "tests_test_agent_sandbox_integration_testpremiumcheck_test_admin_user_has_sandbox_access"
- },
- {
- "label": ".test_free_user_no_sandbox_access()",
- "file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L51",
- "community": 24,
- "norm_label": ".test_free_user_no_sandbox_access()",
- "id": "tests_test_agent_sandbox_integration_testpremiumcheck_test_free_user_no_sandbox_access"
+ "label": "Task 2: Create the Testing Frontend",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-17-observable-agent-loop.md",
+ "source_location": "L122",
+ "community": 70,
+ "norm_label": "task 2: create the testing frontend",
+ "id": "plans_2026_07_17_observable_agent_loop_task_2_create_the_testing_frontend"
},
{
- "label": ".test_no_user_no_sandbox_access()",
- "file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L57",
- "community": 24,
- "norm_label": ".test_no_user_no_sandbox_access()",
- "id": "tests_test_agent_sandbox_integration_testpremiumcheck_test_no_user_no_sandbox_access"
+ "label": "code:bash (mkdir -p main/app/prometheus/static)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-17-observable-agent-loop.md",
+ "source_location": "L133",
+ "community": 70,
+ "norm_label": "code:bash (mkdir -p main/app/prometheus/static)",
+ "id": "plans_2026_07_17_observable_agent_loop_codeblock_4"
},
{
- "label": "Verify on-demand sandbox is created when LLM calls execute_code.",
- "file_type": "rationale",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L29",
- "community": 353,
- "norm_label": "verify on-demand sandbox is created when llm calls execute_code.",
- "id": "tests_test_agent_sandbox_integration_rationale_29"
+ "label": "code:javascript (// Event types from the stream:)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-17-observable-agent-loop.md",
+ "source_location": "L148",
+ "community": 70,
+ "norm_label": "code:javascript (// event types from the stream:)",
+ "id": "plans_2026_07_17_observable_agent_loop_codeblock_5"
},
{
- "label": "Test the premium gating logic used in streamMessage.",
- "file_type": "rationale",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L37",
- "community": 24,
- "norm_label": "test the premium gating logic used in streammessage.",
- "id": "tests_test_agent_sandbox_integration_rationale_37"
+ "label": "code:python (from fastapi.responses import FileResponse)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-17-observable-agent-loop.md",
+ "source_location": "L193",
+ "community": 70,
+ "norm_label": "code:python (from fastapi.responses import fileresponse)",
+ "id": "plans_2026_07_17_observable_agent_loop_codeblock_6"
},
{
- "label": "Enforce one active sandbox per user via application logic.",
- "file_type": "rationale",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L30",
- "community": 4,
- "norm_label": "enforce one active sandbox per user via application logic.",
- "id": "tests_test_sandbox_persistence_rationale_30"
+ "label": "code:bash (git add main/app/prometheus/static/index.html main/controlle)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-17-observable-agent-loop.md",
+ "source_location": "L216",
+ "community": 70,
+ "norm_label": "code:bash (git add main/app/prometheus/static/index.html main/controlle)",
+ "id": "plans_2026_07_17_observable_agent_loop_codeblock_7"
},
{
- "label": "Search user's saved memories, preferences, and past analysis context. Use",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L15",
- "community": 86,
- "norm_label": "search user's saved memories, preferences, and past analysis context. use",
- "id": "prometheus_tools_rationale_15"
+ "label": "Task 3: Verify End-to-End",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-17-observable-agent-loop.md",
+ "source_location": "L223",
+ "community": 70,
+ "norm_label": "task 3: verify end-to-end",
+ "id": "plans_2026_07_17_observable_agent_loop_task_3_verify_end_to_end"
},
{
- "label": "Store a memory about the user's preferences, analysis results, or feedback.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L41",
- "community": 503,
- "norm_label": "store a memory about the user's preferences, analysis results, or feedback.",
- "id": "prometheus_tools_rationale_41"
+ "label": "SSE Event Flow (Reference)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-17-observable-agent-loop.md",
+ "source_location": "L240",
+ "community": 70,
+ "norm_label": "sse event flow (reference)",
+ "id": "plans_2026_07_17_observable_agent_loop_sse_event_flow_reference"
},
{
- "label": "Retrieve values from the harness state. Use this to recall intermediate results,",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L78",
- "community": 99,
- "norm_label": "retrieve values from the harness state. use this to recall intermediate results,",
- "id": "prometheus_tools_rationale_78"
+ "label": "code:block8 (Frontend Backend (agent.py) )",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-17-observable-agent-loop.md",
+ "source_location": "L242",
+ "community": 70,
+ "norm_label": "code:block8 (frontend backend (agent.py) )",
+ "id": "plans_2026_07_17_observable_agent_loop_codeblock_8"
},
{
- "label": "Store a value in the harness state for this session. Use this to save inter",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L93",
- "community": 526,
- "norm_label": "store a value in the harness state for this session. use this to save inter",
- "id": "prometheus_tools_rationale_93"
+ "label": "Design Notes",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-17-observable-agent-loop.md",
+ "source_location": "L271",
+ "community": 70,
+ "norm_label": "design notes",
+ "id": "plans_2026_07_17_observable_agent_loop_design_notes"
},
{
- "label": "2026-07-16-prometheus-harness-architecture.md",
+ "label": "2026-07-18-observable-agent-loop.md",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
"source_location": "L1",
- "community": 158,
- "norm_label": "2026-07-16-prometheus-harness-architecture.md",
- "id": "docs_superpowers_plans_2026_07_16_prometheus_harness_architecture_md"
+ "community": 31,
+ "norm_label": "2026-07-18-observable-agent-loop.md",
+ "id": "docs_superpowers_plans_2026_07_18_observable_agent_loop_md"
},
{
- "label": "Prometheus Harness Architecture \u2014 Observable Loops, Sandbox Execution, Persistent States",
+ "label": "Observable Agent Loop \u2014 Implementation Plan",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
"source_location": "L1",
- "community": 158,
- "norm_label": "prometheus harness architecture \u2014 observable loops, sandbox execution, persistent states",
- "id": "plans_2026_07_16_prometheus_harness_architecture_prometheus_harness_architecture_observable_loops_sandbox_execution_persistent_states"
+ "community": 31,
+ "norm_label": "observable agent loop \u2014 implementation plan",
+ "id": "plans_2026_07_18_observable_agent_loop_observable_agent_loop_implementation_plan"
},
{
"label": "Global Constraints",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L14",
- "community": 158,
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L11",
+ "community": 31,
"norm_label": "global constraints",
- "id": "plans_2026_07_16_prometheus_harness_architecture_global_constraints"
+ "id": "plans_2026_07_18_observable_agent_loop_global_constraints"
},
{
- "label": "Architecture Overview",
+ "label": "File Map",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L27",
- "community": 245,
- "norm_label": "architecture overview",
- "id": "plans_2026_07_16_prometheus_harness_architecture_architecture_overview"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L21",
+ "community": 31,
+ "norm_label": "file map",
+ "id": "plans_2026_07_18_observable_agent_loop_file_map"
},
{
- "label": "code:block1 (+-----------------------------------------------------------)",
+ "label": "Task 1: Backend \u2014 Yield tool events to SSE",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L29",
- "community": 245,
- "norm_label": "code:block1 (+-----------------------------------------------------------)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_1"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L34",
+ "community": 31,
+ "norm_label": "task 1: backend \u2014 yield tool events to sse",
+ "id": "plans_2026_07_18_observable_agent_loop_task_1_backend_yield_tool_events_to_sse"
},
{
- "label": "Data Flow for a Complex Task",
+ "label": "code:python (def emit_tool_call(self, toolName: str, args: dict, turnNumb)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L62",
- "community": 245,
- "norm_label": "data flow for a complex task",
- "id": "plans_2026_07_16_prometheus_harness_architecture_data_flow_for_a_complex_task"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L48",
+ "community": 31,
+ "norm_label": "code:python (def emit_tool_call(self, toolname: str, args: dict, turnnumb)",
+ "id": "plans_2026_07_18_observable_agent_loop_codeblock_1"
},
{
- "label": "code:block2 (User: \"Analyze PETR4 vs VALE3 correlation over 5 years\")",
+ "label": "code:python (# After loop.emit_tool_call(...))",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L64",
- "community": 245,
- "norm_label": "code:block2 (user: \"analyze petr4 vs vale3 correlation over 5 years\")",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_2"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L69",
+ "community": 31,
+ "norm_label": "code:python (# after loop.emit_tool_call(...))",
+ "id": "plans_2026_07_18_observable_agent_loop_codeblock_2"
},
{
- "label": "File Map",
+ "label": "code:bash (git add main/app/prometheus/agent.py main/app/prometheus/eve)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L86",
- "community": 158,
- "norm_label": "file map",
- "id": "plans_2026_07_16_prometheus_harness_architecture_file_map"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L87",
+ "community": 31,
+ "norm_label": "code:bash (git add main/app/prometheus/agent.py main/app/prometheus/eve)",
+ "id": "plans_2026_07_18_observable_agent_loop_codeblock_3"
},
{
- "label": "Task 1: Config \u2014 Add Sandbox + Workspace Settings",
+ "label": "Task 2: Frontend \u2014 Update api.js to dispatch tool events",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L108",
- "community": 224,
- "norm_label": "task 1: config \u2014 add sandbox + workspace settings",
- "id": "plans_2026_07_16_prometheus_harness_architecture_task_1_config_add_sandbox_workspace_settings"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L94",
+ "community": 31,
+ "norm_label": "task 2: frontend \u2014 update api.js to dispatch tool events",
+ "id": "plans_2026_07_18_observable_agent_loop_task_2_frontend_update_api_js_to_dispatch_tool_events"
},
{
- "label": "code:python (# Sandbox)",
+ "label": "code:javascript (export async function streamChat(query, sessionId, onChunk, )",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L121",
- "community": 224,
- "norm_label": "code:python (# sandbox)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_3"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L107",
+ "community": 31,
+ "norm_label": "code:javascript (export async function streamchat(query, sessionid, onchunk, )",
+ "id": "plans_2026_07_18_observable_agent_loop_codeblock_4"
},
{
- "label": "code:yaml (environment:)",
+ "label": "code:javascript (try {)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L138",
- "community": 224,
- "norm_label": "code:yaml (environment:)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_4"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L115",
+ "community": 31,
+ "norm_label": "code:javascript (try {)",
+ "id": "plans_2026_07_18_observable_agent_loop_codeblock_5"
},
{
- "label": "code:yaml (sandbox:)",
+ "label": "code:bash (git add frontend/src/api.js)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L149",
- "community": 224,
- "norm_label": "code:yaml (sandbox:)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_5"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L134",
+ "community": 31,
+ "norm_label": "code:bash (git add frontend/src/api.js)",
+ "id": "plans_2026_07_18_observable_agent_loop_codeblock_6"
},
{
- "label": "code:bash (git add config.py docker-compose.yml)",
+ "label": "Task 3: Frontend \u2014 Add AgentLoop component",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L161",
- "community": 224,
- "norm_label": "code:bash (git add config.py docker-compose.yml)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_6"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L141",
+ "community": 31,
+ "norm_label": "task 3: frontend \u2014 add agentloop component",
+ "id": "plans_2026_07_18_observable_agent_loop_task_3_frontend_add_agentloop_component"
},
{
- "label": "Task 2: Loop Events \u2014 Structured Event Model + Logger",
+ "label": "code:jsx (import { useState } from 'react';)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L168",
- "community": 225,
- "norm_label": "task 2: loop events \u2014 structured event model + logger",
- "id": "plans_2026_07_16_prometheus_harness_architecture_task_2_loop_events_structured_event_model_logger"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L152",
+ "community": 31,
+ "norm_label": "code:jsx (import { usestate } from 'react';)",
+ "id": "plans_2026_07_18_observable_agent_loop_codeblock_7"
},
{
- "label": "code:python (import pytest)",
+ "label": "code:bash (git add frontend/src/components/AgentLoop.jsx)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L182",
- "community": 225,
- "norm_label": "code:python (import pytest)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_7"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L215",
+ "community": 31,
+ "norm_label": "code:bash (git add frontend/src/components/agentloop.jsx)",
+ "id": "plans_2026_07_18_observable_agent_loop_codeblock_8"
},
{
- "label": "code:python (from datetime import datetime, timezone)",
+ "label": "Task 4: Frontend \u2014 Wire AgentLoop into App.jsx",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L269",
- "community": 225,
- "norm_label": "code:python (from datetime import datetime, timezone)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_8"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L222",
+ "community": 31,
+ "norm_label": "task 4: frontend \u2014 wire agentloop into app.jsx",
+ "id": "plans_2026_07_18_observable_agent_loop_task_4_frontend_wire_agentloop_into_app_jsx"
},
{
- "label": "code:python (import logging)",
+ "label": "code:javascript (const [toolEvents, setToolEvents] = useState([]);)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L299",
- "community": 225,
- "norm_label": "code:python (import logging)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_9"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L235",
+ "community": 31,
+ "norm_label": "code:javascript (const [toolevents, settoolevents] = usestate([]);)",
+ "id": "plans_2026_07_18_observable_agent_loop_codeblock_9"
},
{
- "label": "code:bash (git add main/models/harness.py main/app/prometheus/events.py)",
+ "label": "code:javascript (setToolEvents([]);)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L344",
- "community": 225,
- "norm_label": "code:bash (git add main/models/harness.py main/app/prometheus/events.py)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_10"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L244",
+ "community": 31,
+ "norm_label": "code:javascript (settoolevents([]);)",
+ "id": "plans_2026_07_18_observable_agent_loop_codeblock_10"
},
{
- "label": "Task 3: Workspace Manager \u2014 Tiered Persistent Workspace",
+ "label": "code:javascript (setToolEvents([]);)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L351",
- "community": 247,
- "norm_label": "task 3: workspace manager \u2014 tiered persistent workspace",
- "id": "plans_2026_07_16_prometheus_harness_architecture_task_3_workspace_manager_tiered_persistent_workspace"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L251",
+ "community": 31,
+ "norm_label": "code:javascript (settoolevents([]);)",
+ "id": "plans_2026_07_18_observable_agent_loop_codeblock_11"
},
{
- "label": "code:python (import json, os, time, pytest)",
+ "label": "code:javascript (await streamChat()",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L364",
- "community": 247,
- "norm_label": "code:python (import json, os, time, pytest)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_11"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L260",
+ "community": 31,
+ "norm_label": "code:javascript (await streamchat()",
+ "id": "plans_2026_07_18_observable_agent_loop_codeblock_12"
},
{
- "label": "code:python (import json, logging, shutil, time)",
+ "label": "code:jsx (
)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L419",
- "community": 247,
- "norm_label": "code:python (import json, logging, shutil, time)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_12"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L278",
+ "community": 31,
+ "norm_label": "code:jsx (
)",
+ "id": "plans_2026_07_18_observable_agent_loop_codeblock_13"
},
{
- "label": "code:bash (git add main/app/prometheus/workspace.py tests/test_workspac)",
+ "label": "code:javascript (import AgentLoop from './components/AgentLoop';)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L516",
- "community": 247,
- "norm_label": "code:bash (git add main/app/prometheus/workspace.py tests/test_workspac)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_13"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L288",
+ "community": 31,
+ "norm_label": "code:javascript (import agentloop from './components/agentloop';)",
+ "id": "plans_2026_07_18_observable_agent_loop_codeblock_14"
},
{
- "label": "Task 4: Sandbox Manager \u2014 HTTP Client for CubeSandbox",
+ "label": "code:bash (git add frontend/src/App.jsx)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L523",
- "community": 246,
- "norm_label": "task 4: sandbox manager \u2014 http client for cubesandbox",
- "id": "plans_2026_07_16_prometheus_harness_architecture_task_4_sandbox_manager_http_client_for_cubesandbox"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L294",
+ "community": 31,
+ "norm_label": "code:bash (git add frontend/src/app.jsx)",
+ "id": "plans_2026_07_18_observable_agent_loop_codeblock_15"
},
{
- "label": "code:python (import pytest)",
+ "label": "Task 5: Frontend \u2014 Add CSS styles",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L536",
- "community": 246,
- "norm_label": "code:python (import pytest)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_14"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L301",
+ "community": 31,
+ "norm_label": "task 5: frontend \u2014 add css styles",
+ "id": "plans_2026_07_18_observable_agent_loop_task_5_frontend_add_css_styles"
},
{
- "label": "code:python (import base64, logging)",
+ "label": "code:css (/* Agent Loop */)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L594",
- "community": 246,
- "norm_label": "code:python (import base64, logging)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_15"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L314",
+ "community": 31,
+ "norm_label": "code:css (/* agent loop */)",
+ "id": "plans_2026_07_18_observable_agent_loop_codeblock_16"
},
{
- "label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox.py)",
+ "label": "code:bash (git add frontend/src/App.css)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L655",
- "community": 246,
- "norm_label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox.py)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_16"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L337",
+ "community": 31,
+ "norm_label": "code:bash (git add frontend/src/app.css)",
+ "id": "plans_2026_07_18_observable_agent_loop_codeblock_17"
},
{
- "label": "Task 5: Sandbox Tools \u2014 Gemini Function Declarations + Dispatch",
+ "label": "Task 6: Integration test",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L662",
- "community": 223,
- "norm_label": "task 5: sandbox tools \u2014 gemini function declarations + dispatch",
- "id": "plans_2026_07_16_prometheus_harness_architecture_task_5_sandbox_tools_gemini_function_declarations_dispatch"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L344",
+ "community": 31,
+ "norm_label": "task 6: integration test",
+ "id": "plans_2026_07_18_observable_agent_loop_task_6_integration_test"
},
{
- "label": "code:python (from main.app.prometheus.tools import SANDBOX_TOOLS, SANDBOX)",
+ "label": "code:bash (docker compose up -d --build)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L675",
- "community": 223,
- "norm_label": "code:python (from main.app.prometheus.tools import sandbox_tools, sandbox)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_17"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L355",
+ "community": 31,
+ "norm_label": "code:bash (docker compose up -d --build)",
+ "id": "plans_2026_07_18_observable_agent_loop_codeblock_18"
},
{
- "label": "code:python (from main.app.prometheus.sandbox import SandboxManager)",
+ "label": "code:bash (cd frontend && npx vitest run)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L699",
- "community": 223,
- "norm_label": "code:python (from main.app.prometheus.sandbox import sandboxmanager)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_18"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L374",
+ "community": 31,
+ "norm_label": "code:bash (cd frontend && npx vitest run)",
+ "id": "plans_2026_07_18_observable_agent_loop_codeblock_19"
},
{
- "label": "code:python (async def dispatchToolCall(functionCall, mcpClients, user=No)",
+ "label": "code:bash (git add -A && git commit -m \"observable agent loop: backend )",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L774",
- "community": 223,
- "norm_label": "code:python (async def dispatchtoolcall(functioncall, mcpclients, user=no)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_19"
+ "source_file": "docs/superpowers/plans/2026-07-18-observable-agent-loop.md",
+ "source_location": "L382",
+ "community": 31,
+ "norm_label": "code:bash (git add -a && git commit -m \"observable agent loop: backend )",
+ "id": "plans_2026_07_18_observable_agent_loop_codeblock_20"
},
{
- "label": "code:bash (git add main/app/prometheus/tools.py tests/test_sandbox.py)",
+ "label": "STOCKS_API",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L812",
- "community": 223,
- "norm_label": "code:bash (git add main/app/prometheus/tools.py tests/test_sandbox.py)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_20"
+ "source_file": "TODO.md",
+ "source_location": "L77",
+ "community": 187,
+ "norm_label": "stocks_api",
+ "id": "server_todo_stocks_api"
},
{
- "label": "Task 6: Agent Integration \u2014 Sandbox Lifecycle + Loop Events in Stream Loop",
+ "label": "Prometheus",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L819",
- "community": 199,
- "norm_label": "task 6: agent integration \u2014 sandbox lifecycle + loop events in stream loop",
- "id": "plans_2026_07_16_prometheus_harness_architecture_task_6_agent_integration_sandbox_lifecycle_loop_events_in_stream_loop"
+ "source_file": "TODO.md",
+ "source_location": "L80",
+ "community": 187,
+ "norm_label": "prometheus",
+ "id": "server_todo_prometheus"
},
{
- "label": "code:python (import pytest)",
+ "label": "2026-07-17-prometheus-forgevm-sandbox.md",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L832",
- "community": 199,
- "norm_label": "code:python (import pytest)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_21"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L1",
+ "community": 15,
+ "norm_label": "2026-07-17-prometheus-forgevm-sandbox.md",
+ "id": "docs_superpowers_plans_2026_07_17_prometheus_forgevm_sandbox_md"
},
{
- "label": "code:python (from main.app.prometheus.sandbox import SandboxManager)",
+ "label": "Prometheus ForgeVM Sandbox \u2014 Implementation Plan",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L862",
- "community": 199,
- "norm_label": "code:python (from main.app.prometheus.sandbox import sandboxmanager)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_22"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L1",
+ "community": 15,
+ "norm_label": "prometheus forgevm sandbox \u2014 implementation plan",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_prometheus_forgevm_sandbox_implementation_plan"
},
{
- "label": "code:python (def makeChat(self, sessions, history, *, system_prompt=None,)",
+ "label": "code:block1 (User 123: \"Analyze PETR4 vs VALE3 correlation\")",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L871",
- "community": 199,
- "norm_label": "code:python (def makechat(self, sessions, history, *, system_prompt=none,)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_23"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L9",
+ "community": 15,
+ "norm_label": "code:block1 (user 123: \"analyze petr4 vs vale3 correlation\")",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_1"
},
{
- "label": "code:python (async def streamMessage(self, query=None, sessionId=None, db)",
+ "label": "Global Constraints",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L880",
- "community": 199,
- "norm_label": "code:python (async def streammessage(self, query=none, sessionid=none, db)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_24"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L43",
+ "community": 15,
+ "norm_label": "global constraints",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_global_constraints"
},
{
- "label": "code:bash (git add main/app/prometheus/agent.py tests/test_harness.py)",
+ "label": "File Map",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L974",
- "community": 199,
- "norm_label": "code:bash (git add main/app/prometheus/agent.py tests/test_harness.py)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_25"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L59",
+ "community": 15,
+ "norm_label": "file map",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_file_map"
},
{
- "label": "Task 7: Docker \u2014 CubeSandbox Template + Compose Service",
+ "label": "Phase 1: Config + ForgeVM Setup",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L981",
- "community": 248,
- "norm_label": "task 7: docker \u2014 cubesandbox template + compose service",
- "id": "plans_2026_07_16_prometheus_harness_architecture_task_7_docker_cubesandbox_template_compose_service"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L75",
+ "community": 15,
+ "norm_label": "phase 1: config + forgevm setup",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_phase_1_config_forgevm_setup"
},
{
- "label": "code:dockerfile (FROM python:3.11-slim)",
+ "label": "Task 1: Config \u2014 Add ForgeVM Settings",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L993",
- "community": 248,
- "norm_label": "code:dockerfile (from python:3.11-slim)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_26"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L77",
+ "community": 15,
+ "norm_label": "task 1: config \u2014 add forgevm settings",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_task_1_config_add_forgevm_settings"
},
{
- "label": "code:yaml (sandbox:)",
+ "label": "code:python (class PrometheusSettings(BaseMansaSettings):)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L1011",
- "community": 248,
- "norm_label": "code:yaml (sandbox:)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_27"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L84",
+ "community": 15,
+ "norm_label": "code:python (class prometheussettings(basemansasettings):)",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_2"
},
{
- "label": "code:bash (git add Dockerfile.sandbox docker-compose.yml)",
+ "label": "code:bash (git add config.py)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L1024",
- "community": 248,
- "norm_label": "code:bash (git add dockerfile.sandbox docker-compose.yml)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_28"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L97",
+ "community": 15,
+ "norm_label": "code:bash (git add config.py)",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_3"
},
{
- "label": "Task 8: System Prompt \u2014 Teach LLM About Sandbox",
+ "label": "Task 2: Docker Compose \u2014 Add ForgeVM Service",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L1031",
- "community": 158,
- "norm_label": "task 8: system prompt \u2014 teach llm about sandbox",
- "id": "plans_2026_07_16_prometheus_harness_architecture_task_8_system_prompt_teach_llm_about_sandbox"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L104",
+ "community": 15,
+ "norm_label": "task 2: docker compose \u2014 add forgevm service",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_task_2_docker_compose_add_forgevm_service"
},
{
- "label": "code:python (SYSTEM_PROMPT = \"\"\")",
+ "label": "code:yaml (services:)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L1044",
- "community": 158,
- "norm_label": "code:python (system_prompt = \"\"\")",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_29"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L111",
+ "community": 15,
+ "norm_label": "code:yaml (services:)",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_4"
},
{
- "label": "code:bash (git add main/app/prometheus/agent.py)",
+ "label": "code:bash (git add docker-compose.yml)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L1073",
- "community": 158,
- "norm_label": "code:bash (git add main/app/prometheus/agent.py)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_30"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L139",
+ "community": 15,
+ "norm_label": "code:bash (git add docker-compose.yml)",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_5"
},
{
- "label": "Task 9: Frontend \u2014 SandboxArtifact Component",
+ "label": "Phase 2: SandboxManager",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L1080",
- "community": 249,
- "norm_label": "task 9: frontend \u2014 sandboxartifact component",
- "id": "plans_2026_07_16_prometheus_harness_architecture_task_9_frontend_sandboxartifact_component"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L146",
+ "community": 15,
+ "norm_label": "phase 2: sandboxmanager",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_phase_2_sandboxmanager"
},
{
- "label": "code:tsx (import React from \"react\";)",
+ "label": "Task 3: ForgeVM REST API Client",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L1091",
- "community": 249,
- "norm_label": "code:tsx (import react from \"react\";)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_31"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L148",
+ "community": 15,
+ "norm_label": "task 3: forgevm rest api client",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_task_3_forgevm_rest_api_client"
},
{
- "label": "code:tsx (import { SandboxArtifactList } from \"./SandboxArtifact\";)",
+ "label": "code:python (import pytest)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L1135",
- "community": 249,
- "norm_label": "code:tsx (import { sandboxartifactlist } from \"./sandboxartifact\";)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_32"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L160",
+ "community": 15,
+ "norm_label": "code:python (import pytest)",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_6"
},
{
- "label": "code:bash (git add frontend/src/components/SandboxArtifact.tsx)",
+ "label": "code:python (import logging)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L1146",
- "community": 249,
- "norm_label": "code:bash (git add frontend/src/components/sandboxartifact.tsx)",
- "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_33"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L270",
+ "community": 15,
+ "norm_label": "code:python (import logging)",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_7"
},
{
- "label": "Summary",
+ "label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox.py)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L1153",
- "community": 158,
- "norm_label": "summary",
- "id": "plans_2026_07_16_prometheus_harness_architecture_summary"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L377",
+ "community": 15,
+ "norm_label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox.py)",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_8"
},
{
- "label": "How This Compares to ComputerUse",
+ "label": "Phase 3: Sandbox Tools",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
- "source_location": "L1171",
- "community": 158,
- "norm_label": "how this compares to computeruse",
- "id": "plans_2026_07_16_prometheus_harness_architecture_how_this_compares_to_computeruse"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L384",
+ "community": 15,
+ "norm_label": "phase 3: sandbox tools",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_phase_3_sandbox_tools"
},
{
- "label": "2026-07-16-prometheus-harness-master-v2.md",
+ "label": "Task 4: Tool Definitions \u2014 Sandbox Tools in TOOL_REGISTRY",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1",
- "community": 111,
- "norm_label": "2026-07-16-prometheus-harness-master-v2.md",
- "id": "docs_superpowers_plans_2026_07_16_prometheus_harness_master_v2_md"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L386",
+ "community": 15,
+ "norm_label": "task 4: tool definitions \u2014 sandbox tools in tool_registry",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_task_4_tool_definitions_sandbox_tools_in_tool_registry"
},
{
- "label": "Prometheus Harness \u2014 Master Implementation Plan (v2: CubeSandbox + On-Demand)",
+ "label": "code:python (import pytest)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1",
- "community": 111,
- "norm_label": "prometheus harness \u2014 master implementation plan (v2: cubesandbox + on-demand)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_prometheus_harness_master_implementation_plan_v2_cubesandbox_on_demand"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L396",
+ "community": 15,
+ "norm_label": "code:python (import pytest)",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_9"
},
{
- "label": "Global Constraints",
+ "label": "code:python (from main.app.prometheus.sandbox import SandboxManager)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L15",
- "community": 111,
- "norm_label": "global constraints",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_global_constraints"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L455",
+ "community": 15,
+ "norm_label": "code:python (from main.app.prometheus.sandbox import sandboxmanager)",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_10"
},
{
- "label": "Architecture",
+ "label": "code:python (TOOL_REGISTRY: dict[str, Any] = {)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L31",
- "community": 201,
- "norm_label": "architecture",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_architecture"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L524",
+ "community": 15,
+ "norm_label": "code:python (tool_registry: dict[str, any] = {)",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_11"
},
{
- "label": "code:block1 (User: \"Analyze PETR4 vs VALE3 correlation over 5 years\")",
+ "label": "code:python (async def dispatchToolCall()",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L33",
- "community": 201,
- "norm_label": "code:block1 (user: \"analyze petr4 vs vale3 correlation over 5 years\")",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_1"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L539",
+ "community": 15,
+ "norm_label": "code:python (async def dispatchtoolcall()",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_12"
},
{
- "label": "On-Demand Sandbox Lifecycle",
+ "label": "code:bash (git add main/app/prometheus/tools.py tests/test_sandbox_tool)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L78",
- "community": 201,
- "norm_label": "on-demand sandbox lifecycle",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_on_demand_sandbox_lifecycle"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L567",
+ "community": 15,
+ "norm_label": "code:bash (git add main/app/prometheus/tools.py tests/test_sandbox_tool)",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_13"
},
{
- "label": "code:block2 (Request Start:)",
+ "label": "Phase 4: Agent Integration",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L80",
- "community": 201,
- "norm_label": "code:block2 (request start:)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_2"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L574",
+ "community": 15,
+ "norm_label": "phase 4: agent integration",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_phase_4_agent_integration"
},
{
- "label": "CubeCoW Checkpoint Persistence",
+ "label": "Task 5: Agent \u2014 On-Demand Sandbox + Premium Gating",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L100",
- "community": 201,
- "norm_label": "cubecow checkpoint persistence",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_cubecow_checkpoint_persistence"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L576",
+ "community": 15,
+ "norm_label": "task 5: agent \u2014 on-demand sandbox + premium gating",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_task_5_agent_on_demand_sandbox_premium_gating"
},
{
- "label": "code:block3 (Session 1 (premium user):)",
+ "label": "code:python (import pytest)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L102",
- "community": 201,
- "norm_label": "code:block3 (session 1 (premium user):)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_3"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L586",
+ "community": 15,
+ "norm_label": "code:python (import pytest)",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_14"
},
{
- "label": "File Map",
+ "label": "code:python (from main.app.prometheus.sandbox import SandboxManager)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L116",
- "community": 111,
- "norm_label": "file map",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_file_map"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L617",
+ "community": 15,
+ "norm_label": "code:python (from main.app.prometheus.sandbox import sandboxmanager)",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_15"
},
{
- "label": "Phase 1: HarnessState (In-Memory Agent Scratchpad)",
+ "label": "code:python (async def streamMessage(self, query=None, sessionId=None, db)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L141",
- "community": 111,
- "norm_label": "phase 1: harnessstate (in-memory agent scratchpad)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_phase_1_harnessstate_in_memory_agent_scratchpad"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L623",
+ "community": 15,
+ "norm_label": "code:python (async def streammessage(self, query=none, sessionid=none, db)",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_16"
},
{
- "label": "Task 1: HarnessState Class",
+ "label": "code:python (## Code Sandbox (On-Demand))",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L143",
- "community": 111,
- "norm_label": "task 1: harnessstate class",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_task_1_harnessstate_class"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L723",
+ "community": 15,
+ "norm_label": "code:python (## code sandbox (on-demand))",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_17"
},
{
- "label": "code:python (import pytest)",
+ "label": "code:bash (git add main/app/prometheus/agent.py tests/test_agent_sandbo)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L157",
- "community": 111,
- "norm_label": "code:python (import pytest)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_4"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L751",
+ "community": 15,
+ "norm_label": "code:bash (git add main/app/prometheus/agent.py tests/test_agent_sandbo)",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_18"
},
{
- "label": "code:python (import logging)",
+ "label": "Phase 5: Docker Image + Final Verification",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L230",
- "community": 111,
- "norm_label": "code:python (import logging)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_5"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L758",
+ "community": 15,
+ "norm_label": "phase 5: docker image + final verification",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_phase_5_docker_image_final_verification"
},
{
- "label": "code:bash (git add main/app/prometheus/state.py tests/test_harness_stat)",
+ "label": "Task 6: Dockerfile.sandbox \u2014 Python Data Science Image",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L282",
- "community": 111,
- "norm_label": "code:bash (git add main/app/prometheus/state.py tests/test_harness_stat)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_6"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L760",
+ "community": 15,
+ "norm_label": "task 6: dockerfile.sandbox \u2014 python data science image",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_task_6_dockerfile_sandbox_python_data_science_image"
},
{
- "label": "Phase 2: On-Demand Sandbox Execution",
+ "label": "code:dockerfile (FROM python:3.11-slim)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L289",
- "community": 134,
- "norm_label": "phase 2: on-demand sandbox execution",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_phase_2_on_demand_sandbox_execution"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L767",
+ "community": 15,
+ "norm_label": "code:dockerfile (from python:3.11-slim)",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_19"
},
{
- "label": "Task 2: Config \u2014 Add Sandbox Settings",
+ "label": "code:bash (git add Dockerfile.sandbox)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L291",
- "community": 134,
- "norm_label": "task 2: config \u2014 add sandbox settings",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_task_2_config_add_sandbox_settings"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L785",
+ "community": 15,
+ "norm_label": "code:bash (git add dockerfile.sandbox)",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_20"
},
{
- "label": "code:python (class PrometheusSettings(BaseMansaSettings):)",
+ "label": "Task 7: Full CI Verification",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L304",
- "community": 134,
- "norm_label": "code:python (class prometheussettings(basemansasettings):)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_7"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L792",
+ "community": 15,
+ "norm_label": "task 7: full ci verification",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_task_7_full_ci_verification"
},
{
- "label": "code:yaml (environment:)",
+ "label": "code:bash (docker-compose up -d --build)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L327",
- "community": 134,
- "norm_label": "code:yaml (environment:)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_8"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L801",
+ "community": 15,
+ "norm_label": "code:bash (docker-compose up -d --build)",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_codeblock_21"
},
{
- "label": "code:yaml (sandbox:)",
+ "label": "Summary",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L338",
- "community": 134,
- "norm_label": "code:yaml (sandbox:)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_9"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L811",
+ "community": 15,
+ "norm_label": "summary",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_summary"
},
{
- "label": "code:yaml (volumes:)",
+ "label": "What This Enables",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L352",
- "community": 134,
- "norm_label": "code:yaml (volumes:)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_10"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L827",
+ "community": 15,
+ "norm_label": "what this enables",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_what_this_enables"
},
{
- "label": "code:bash (git add config.py docker-compose.yml)",
+ "label": "What This Does NOT Do (By Design)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L359",
- "community": 134,
- "norm_label": "code:bash (git add config.py docker-compose.yml)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_11"
+ "source_file": "docs/superpowers/plans/2026-07-17-prometheus-forgevm-sandbox.md",
+ "source_location": "L838",
+ "community": 15,
+ "norm_label": "what this does not do (by design)",
+ "id": "plans_2026_07_17_prometheus_forgevm_sandbox_what_this_does_not_do_by_design"
},
{
- "label": "Task 3: SandboxManager \u2014 On-Demand HTTP Client for CubeSandbox",
+ "label": "2026-07-17-sandbox-persistence.md",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L366",
- "community": 134,
- "norm_label": "task 3: sandboxmanager \u2014 on-demand http client for cubesandbox",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_task_3_sandboxmanager_on_demand_http_client_for_cubesandbox"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L1",
+ "community": 35,
+ "norm_label": "2026-07-17-sandbox-persistence.md",
+ "id": "docs_superpowers_plans_2026_07_17_sandbox_persistence_md"
},
{
- "label": "code:python (import pytest)",
+ "label": "Sandbox Persistence Implementation Plan",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L382",
- "community": 134,
- "norm_label": "code:python (import pytest)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_12"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L1",
+ "community": 35,
+ "norm_label": "sandbox persistence implementation plan",
+ "id": "plans_2026_07_17_sandbox_persistence_sandbox_persistence_implementation_plan"
},
{
- "label": "code:python (import logging)",
+ "label": "Global Constraints",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L479",
- "community": 134,
- "norm_label": "code:python (import logging)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_13"
- },
- {
- "label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox.py)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L589",
- "community": 134,
- "norm_label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox.py)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_14"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L11",
+ "community": 35,
+ "norm_label": "global constraints",
+ "id": "plans_2026_07_17_sandbox_persistence_global_constraints"
},
{
- "label": "Phase 3: Result Cache",
+ "label": "File Structure",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L596",
- "community": 229,
- "norm_label": "phase 3: result cache",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_phase_3_result_cache"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L23",
+ "community": 35,
+ "norm_label": "file structure",
+ "id": "plans_2026_07_17_sandbox_persistence_file_structure"
},
{
- "label": "Task 4: ResultCache \u2014 SHA256-Keyed Computed Results",
+ "label": "Task 1: Database Model + Migration",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L598",
- "community": 229,
- "norm_label": "task 4: resultcache \u2014 sha256-keyed computed results",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_task_4_resultcache_sha256_keyed_computed_results"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L38",
+ "community": 35,
+ "norm_label": "task 1: database model + migration",
+ "id": "plans_2026_07_17_sandbox_persistence_task_1_database_model_migration"
},
{
- "label": "code:python (import pytest)",
+ "label": "code:python (# tests/test_sandbox_persistence.py)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L612",
- "community": 229,
- "norm_label": "code:python (import pytest)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_15"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L52",
+ "community": 35,
+ "norm_label": "code:python (# tests/test_sandbox_persistence.py)",
+ "id": "plans_2026_07_17_sandbox_persistence_codeblock_1"
},
{
- "label": "code:python (import hashlib)",
+ "label": "code:python (# main/models/sandbox.py)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L663",
- "community": 229,
- "norm_label": "code:python (import hashlib)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_16"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L101",
+ "community": 35,
+ "norm_label": "code:python (# main/models/sandbox.py)",
+ "id": "plans_2026_07_17_sandbox_persistence_codeblock_2"
},
{
- "label": "code:bash (git add main/app/prometheus/cache.py tests/test_cache.py)",
+ "label": "code:python (# main/models/__init__.py \u2014 add import)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L722",
- "community": 229,
- "norm_label": "code:bash (git add main/app/prometheus/cache.py tests/test_cache.py)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_17"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L120",
+ "community": 35,
+ "norm_label": "code:python (# main/models/__init__.py \u2014 add import)",
+ "id": "plans_2026_07_17_sandbox_persistence_codeblock_3"
},
{
- "label": "Phase 4: ToolContext (Bundled Dispatch Dependencies)",
+ "label": "code:python (# migrations/env.py \u2014 add import after line 14)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L729",
- "community": 185,
- "norm_label": "phase 4: toolcontext (bundled dispatch dependencies)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_phase_4_toolcontext_bundled_dispatch_dependencies"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L133",
+ "community": 35,
+ "norm_label": "code:python (# migrations/env.py \u2014 add import after line 14)",
+ "id": "plans_2026_07_17_sandbox_persistence_codeblock_4"
},
{
- "label": "Task 5: ToolContext \u2014 Dataclass for Agent Use",
+ "label": "code:bash (git add main/models/sandbox.py main/models/__init__.py migra)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L731",
- "community": 185,
- "norm_label": "task 5: toolcontext \u2014 dataclass for agent use",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_task_5_toolcontext_dataclass_for_agent_use"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L150",
+ "community": 35,
+ "norm_label": "code:bash (git add main/models/sandbox.py main/models/__init__.py migra)",
+ "id": "plans_2026_07_17_sandbox_persistence_codeblock_5"
},
{
- "label": "code:python (import pytest)",
+ "label": "Task 2: SandboxManager Persistence Logic",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L747",
- "community": 185,
- "norm_label": "code:python (import pytest)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_18"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L157",
+ "community": 35,
+ "norm_label": "task 2: sandboxmanager persistence logic",
+ "id": "plans_2026_07_17_sandbox_persistence_task_2_sandboxmanager_persistence_logic"
},
{
- "label": "code:python (from __future__ import annotations)",
+ "label": "code:python (# tests/test_sandbox_persistence.py \u2014 append to existing fil)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L820",
- "community": 185,
- "norm_label": "code:python (from __future__ import annotations)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_19"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L170",
+ "community": 35,
+ "norm_label": "code:python (# tests/test_sandbox_persistence.py \u2014 append to existing fil)",
+ "id": "plans_2026_07_17_sandbox_persistence_codeblock_6"
},
{
- "label": "code:bash (git add main/app/prometheus/context.py tests/test_context.py)",
+ "label": "code:python (# main/app/prometheus/sandbox.py \u2014 full rewrite)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L857",
- "community": 185,
- "norm_label": "code:bash (git add main/app/prometheus/context.py tests/test_context.py)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_20"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L284",
+ "community": 35,
+ "norm_label": "code:python (# main/app/prometheus/sandbox.py \u2014 full rewrite)",
+ "id": "plans_2026_07_17_sandbox_persistence_codeblock_7"
},
{
- "label": "Phase 5: Observable Loop (Batched)",
+ "label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox_pe)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L864",
- "community": 202,
- "norm_label": "phase 5: observable loop (batched)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_phase_5_observable_loop_batched"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L533",
+ "community": 35,
+ "norm_label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox_pe)",
+ "id": "plans_2026_07_17_sandbox_persistence_codeblock_8"
},
{
- "label": "Task 6: LoopEvent Model + LoopLogger",
+ "label": "Task 3: Agent Integration \u2014 Persistent Sandbox Lifecycle",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L866",
- "community": 202,
- "norm_label": "task 6: loopevent model + looplogger",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_task_6_loopevent_model_looplogger"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L540",
+ "community": 35,
+ "norm_label": "task 3: agent integration \u2014 persistent sandbox lifecycle",
+ "id": "plans_2026_07_17_sandbox_persistence_task_3_agent_integration_persistent_sandbox_lifecycle"
},
{
- "label": "code:python (import pytest)",
+ "label": "code:python (# tests/test_agent_sandbox_integration.py \u2014 append)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L881",
- "community": 202,
- "norm_label": "code:python (import pytest)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_21"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L552",
+ "community": 35,
+ "norm_label": "code:python (# tests/test_agent_sandbox_integration.py \u2014 append)",
+ "id": "plans_2026_07_17_sandbox_persistence_codeblock_9"
},
{
- "label": "code:python (from datetime import datetime, timezone)",
+ "label": "code:python (# In streamMessage \u2014 replace sandbox_id = None with:)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L944",
- "community": 202,
- "norm_label": "code:python (from datetime import datetime, timezone)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_22"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L586",
+ "community": 35,
+ "norm_label": "code:python (# in streammessage \u2014 replace sandbox_id = none with:)",
+ "id": "plans_2026_07_17_sandbox_persistence_codeblock_10"
},
{
- "label": "code:python (import logging)",
+ "label": "code:bash (git add main/app/prometheus/agent.py tests/test_agent_sandbo)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L974",
- "community": 202,
- "norm_label": "code:python (import logging)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_23"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L627",
+ "community": 35,
+ "norm_label": "code:bash (git add main/app/prometheus/agent.py tests/test_agent_sandbo)",
+ "id": "plans_2026_07_17_sandbox_persistence_codeblock_11"
},
{
- "label": "code:bash (git add main/models/harness.py main/app/prometheus/events.py)",
+ "label": "Task 4: Cleanup Job \u2014 Expired Sandbox Sweeper",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1031",
- "community": 202,
- "norm_label": "code:bash (git add main/models/harness.py main/app/prometheus/events.py)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_24"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L634",
+ "community": 35,
+ "norm_label": "task 4: cleanup job \u2014 expired sandbox sweeper",
+ "id": "plans_2026_07_17_sandbox_persistence_task_4_cleanup_job_expired_sandbox_sweeper"
},
{
- "label": "Phase 6: Agent Integration (All Layers)",
+ "label": "code:python (# tests/test_sandbox_persistence.py \u2014 append)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1038",
- "community": 121,
- "norm_label": "phase 6: agent integration (all layers)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_phase_6_agent_integration_all_layers"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L646",
+ "community": 35,
+ "norm_label": "code:python (# tests/test_sandbox_persistence.py \u2014 append)",
+ "id": "plans_2026_07_17_sandbox_persistence_codeblock_12"
},
{
- "label": "Task 7: Tool Definitions \u2014 Sandbox + Cache Tools in TOOL_REGISTRY",
+ "label": "code:python (# main/app/prometheus/sandbox_cleanup.py)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1040",
- "community": 121,
- "norm_label": "task 7: tool definitions \u2014 sandbox + cache tools in tool_registry",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_task_7_tool_definitions_sandbox_cache_tools_in_tool_registry"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L700",
+ "community": 35,
+ "norm_label": "code:python (# main/app/prometheus/sandbox_cleanup.py)",
+ "id": "plans_2026_07_17_sandbox_persistence_codeblock_13"
},
{
- "label": "code:python (import inspect)",
+ "label": "code:bash (git add main/app/prometheus/sandbox_cleanup.py tests/test_sa)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1056",
- "community": 121,
- "norm_label": "code:python (import inspect)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_25"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L746",
+ "community": 35,
+ "norm_label": "code:bash (git add main/app/prometheus/sandbox_cleanup.py tests/test_sa)",
+ "id": "plans_2026_07_17_sandbox_persistence_codeblock_14"
},
{
- "label": "code:python (from main.app.prometheus.sandbox import SandboxManager)",
+ "label": "Task 5: Full CI Verification",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1153",
- "community": 121,
- "norm_label": "code:python (from main.app.prometheus.sandbox import sandboxmanager)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_26"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L753",
+ "community": 35,
+ "norm_label": "task 5: full ci verification",
+ "id": "plans_2026_07_17_sandbox_persistence_task_5_full_ci_verification"
},
{
- "label": "code:python (TOOL_REGISTRY: dict[str, Any] = {)",
+ "label": "code:bash (git add -A)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1221",
- "community": 121,
- "norm_label": "code:python (tool_registry: dict[str, any] = {)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_27"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L764",
+ "community": 35,
+ "norm_label": "code:bash (git add -a)",
+ "id": "plans_2026_07_17_sandbox_persistence_codeblock_15"
},
{
- "label": "code:python (async def dispatchToolCall()",
+ "label": "Task 6: Docker Compose \u2014 Workspace Volume for Persistence",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1235",
- "community": 174,
- "norm_label": "code:python (async def dispatchtoolcall()",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_28"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L771",
+ "community": 35,
+ "norm_label": "task 6: docker compose \u2014 workspace volume for persistence",
+ "id": "plans_2026_07_17_sandbox_persistence_task_6_docker_compose_workspace_volume_for_persistence"
},
{
- "label": "code:bash (git add main/app/prometheus/tools.py tests/test_sandbox_tool)",
+ "label": "code:yaml (# docker-compose.yml \u2014 add to api service volumes)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1281",
- "community": 174,
- "norm_label": "code:bash (git add main/app/prometheus/tools.py tests/test_sandbox_tool)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_29"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L782",
+ "community": 35,
+ "norm_label": "code:yaml (# docker-compose.yml \u2014 add to api service volumes)",
+ "id": "plans_2026_07_17_sandbox_persistence_codeblock_16"
},
{
- "label": "Task 8: Agent Integration \u2014 On-Demand Sandbox + Premium Gating",
+ "label": "code:yaml (# docker-compose.yml \u2014 add to api environment)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1288",
- "community": 174,
- "norm_label": "task 8: agent integration \u2014 on-demand sandbox + premium gating",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_task_8_agent_integration_on_demand_sandbox_premium_gating"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L797",
+ "community": 35,
+ "norm_label": "code:yaml (# docker-compose.yml \u2014 add to api environment)",
+ "id": "plans_2026_07_17_sandbox_persistence_codeblock_17"
},
{
- "label": "code:python (import pytest)",
+ "label": "code:bash (git add docker-compose.yml)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1304",
- "community": 174,
- "norm_label": "code:python (import pytest)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_30"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L809",
+ "community": 35,
+ "norm_label": "code:bash (git add docker-compose.yml)",
+ "id": "plans_2026_07_17_sandbox_persistence_codeblock_18"
},
{
- "label": "code:python (from main.app.prometheus.tools import TOOL_REGISTRY, dispatc)",
+ "label": "Summary",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1351",
- "community": 174,
- "norm_label": "code:python (from main.app.prometheus.tools import tool_registry, dispatc)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_31"
+ "source_file": "docs/superpowers/plans/2026-07-17-sandbox-persistence.md",
+ "source_location": "L816",
+ "community": 35,
+ "norm_label": "summary",
+ "id": "plans_2026_07_17_sandbox_persistence_summary"
},
{
- "label": "code:python (def makeChat(self, sessions, history, *, system_prompt=None,)",
+ "label": "task-1-report.md",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1363",
- "community": 174,
- "norm_label": "code:python (def makechat(self, sessions, history, *, system_prompt=none,)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_32"
+ "source_file": "docs/superpowers/plans/task-1-report.md",
+ "source_location": "L1",
+ "community": 175,
+ "norm_label": "task-1-report.md",
+ "id": "docs_superpowers_plans_task_1_report_md"
},
{
- "label": "code:python (async def streamMessage()",
+ "label": "Task 1 Report: PrometheusSandbox Model & Migration",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1383",
- "community": 174,
- "norm_label": "code:python (async def streammessage()",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_33"
+ "source_file": "docs/superpowers/plans/task-1-report.md",
+ "source_location": "L1",
+ "community": 175,
+ "norm_label": "task 1 report: prometheussandbox model & migration",
+ "id": "plans_task_1_report_task_1_report_prometheussandbox_model_migration"
},
{
- "label": "code:bash (git add main/app/prometheus/agent.py tests/test_agent_sandbo)",
+ "label": "Files Created/Modified",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1517",
- "community": 174,
- "norm_label": "code:bash (git add main/app/prometheus/agent.py tests/test_agent_sandbo)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_34"
+ "source_file": "docs/superpowers/plans/task-1-report.md",
+ "source_location": "L5",
+ "community": 175,
+ "norm_label": "files created/modified",
+ "id": "plans_task_1_report_files_created_modified"
},
{
- "label": "Task 9: System Prompt \u2014 Teach LLM About On-Demand Sandbox",
+ "label": "Test Results",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1524",
- "community": 121,
- "norm_label": "task 9: system prompt \u2014 teach llm about on-demand sandbox",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_task_9_system_prompt_teach_llm_about_on_demand_sandbox"
+ "source_file": "docs/superpowers/plans/task-1-report.md",
+ "source_location": "L15",
+ "community": 175,
+ "norm_label": "test results",
+ "id": "plans_task_1_report_test_results"
},
{
- "label": "code:python (## Code Sandbox (On-Demand))",
+ "label": "code:block1 (tests/test_sandbox_persistence.py::TestPrometheusSandboxMode)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1539",
- "community": 121,
- "norm_label": "code:python (## code sandbox (on-demand))",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_35"
+ "source_file": "docs/superpowers/plans/task-1-report.md",
+ "source_location": "L17",
+ "community": 175,
+ "norm_label": "code:block1 (tests/test_sandbox_persistence.py::testprometheussandboxmode)",
+ "id": "plans_task_1_report_codeblock_1"
},
{
- "label": "code:bash (git add main/app/prometheus/agent.py)",
+ "label": "Commits",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1568",
- "community": 121,
- "norm_label": "code:bash (git add main/app/prometheus/agent.py)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_36"
+ "source_file": "docs/superpowers/plans/task-1-report.md",
+ "source_location": "L25",
+ "community": 175,
+ "norm_label": "commits",
+ "id": "plans_task_1_report_commits"
},
{
- "label": "Task 10: Docker \u2014 CubeSandbox Template",
+ "label": "code:block2 (7fe4c6d feat: add PrometheusSandbox model for per-user sandb)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1575",
- "community": 121,
- "norm_label": "task 10: docker \u2014 cubesandbox template",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_task_10_docker_cubesandbox_template"
+ "source_file": "docs/superpowers/plans/task-1-report.md",
+ "source_location": "L27",
+ "community": 175,
+ "norm_label": "code:block2 (7fe4c6d feat: add prometheussandbox model for per-user sandb)",
+ "id": "plans_task_1_report_codeblock_2"
},
{
- "label": "code:dockerfile (FROM python:3.11-slim)",
+ "label": "Concerns",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1586",
- "community": 121,
- "norm_label": "code:dockerfile (from python:3.11-slim)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_37"
+ "source_file": "docs/superpowers/plans/task-1-report.md",
+ "source_location": "L31",
+ "community": 175,
+ "norm_label": "concerns",
+ "id": "plans_task_1_report_concerns"
},
{
- "label": "code:bash (git add Dockerfile.sandbox)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1604",
- "community": 121,
- "norm_label": "code:bash (git add dockerfile.sandbox)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_38"
+ "label": "streamMessage should create a HarnessState and pass it to buildSystemPrompt.",
+ "file_type": "rationale",
+ "source_file": "tests/test_agent_state_integration.py",
+ "source_location": "L82",
+ "community": 324,
+ "norm_label": "streammessage should create a harnessstate and pass it to buildsystemprompt.",
+ "id": "tests_test_agent_state_integration_rationale_82"
},
{
- "label": "Summary",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1611",
- "community": 111,
- "norm_label": "summary",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_summary"
+ "label": "streamMessage should pass state to dispatchToolCall.",
+ "file_type": "rationale",
+ "source_file": "tests/test_agent_state_integration.py",
+ "source_location": "L122",
+ "community": 325,
+ "norm_label": "streammessage should pass state to dispatchtoolcall.",
+ "id": "tests_test_agent_state_integration_rationale_122"
},
{
- "label": "What This Enables",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1630",
- "community": 111,
- "norm_label": "what this enables",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_what_this_enables"
+ "label": "System prompt should instruct LLM about harness state usage.",
+ "file_type": "rationale",
+ "source_file": "tests/test_agent_state_integration.py",
+ "source_location": "L182",
+ "community": 93,
+ "norm_label": "system prompt should instruct llm about harness state usage.",
+ "id": "tests_test_agent_state_integration_rationale_182"
},
{
- "label": "What This Does NOT Do (By Design)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1642",
- "community": 111,
- "norm_label": "what this does not do (by design)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_what_this_does_not_do_by_design"
+ "label": "System prompt should instruct LLM about memory vs state.",
+ "file_type": "rationale",
+ "source_file": "tests/test_agent_state_integration.py",
+ "source_location": "L190",
+ "community": 93,
+ "norm_label": "system prompt should instruct llm about memory vs state.",
+ "id": "tests_test_agent_state_integration_rationale_190"
},
{
- "label": "Resource Efficiency",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1651",
- "community": 111,
- "norm_label": "resource efficiency",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_resource_efficiency"
+ "label": "Covers lines 114-115, 117-120, 122: existing session with verified ownership.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1042",
+ "community": 101,
+ "norm_label": "covers lines 114-115, 117-120, 122: existing session with verified ownership.",
+ "id": "tests_test_controllers_coverage_rationale_1042"
},
{
- "label": "Relationship to Existing Systems",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1660",
- "community": 111,
- "norm_label": "relationship to existing systems",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_relationship_to_existing_systems"
+ "label": "Covers lines 114-115: session ownership check fails.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1083",
+ "community": 101,
+ "norm_label": "covers lines 114-115: session ownership check fails.",
+ "id": "tests_test_controllers_coverage_rationale_1083"
},
{
- "label": "2026-07-16-prometheus-harness-master.md",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1",
- "community": 144,
- "norm_label": "2026-07-16-prometheus-harness-master.md",
- "id": "docs_superpowers_plans_2026_07_16_prometheus_harness_master_md"
- },
- {
- "label": "Prometheus Harness \u2014 Master Implementation Plan",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1",
- "community": 144,
- "norm_label": "prometheus harness \u2014 master implementation plan",
- "id": "plans_2026_07_16_prometheus_harness_master_prometheus_harness_master_implementation_plan"
+ "label": "Generic Exception in chat propagates to FastAPI's default 500 handler.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1120",
+ "community": 101,
+ "norm_label": "generic exception in chat propagates to fastapi's default 500 handler.",
+ "id": "tests_test_controllers_coverage_rationale_1120"
},
{
- "label": "Global Constraints",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L15",
- "community": 144,
- "norm_label": "global constraints",
- "id": "plans_2026_07_16_prometheus_harness_master_global_constraints"
+ "label": "Covers line 18: GET /stocks/health.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1138",
+ "community": 498,
+ "norm_label": "covers line 18: get /stocks/health.",
+ "id": "tests_test_controllers_coverage_rationale_1138"
},
{
- "label": "File Map",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L28",
- "community": 144,
- "norm_label": "file map",
- "id": "plans_2026_07_16_prometheus_harness_master_file_map"
+ "label": "Covers line 35: GET /stocks/historical.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1152",
+ "community": 14,
+ "norm_label": "covers line 35: get /stocks/historical.",
+ "id": "tests_test_controllers_coverage_rationale_1152"
},
{
- "label": "Architecture",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L51",
- "community": 144,
- "norm_label": "architecture",
- "id": "plans_2026_07_16_prometheus_harness_master_architecture"
+ "label": "Covers line 47: GET /stocks/fundamental.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1166",
+ "community": 14,
+ "norm_label": "covers line 47: get /stocks/fundamental.",
+ "id": "tests_test_controllers_coverage_rationale_1166"
},
{
- "label": "code:block1 (User: \"Analyze PETR4 vs VALE3 correlation over 5 years\")",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L53",
- "community": 144,
- "norm_label": "code:block1 (user: \"analyze petr4 vs vale3 correlation over 5 years\")",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_1"
+ "label": "Covers lines 52-53, 57-63: GET /stocks/key/generate. NOTE: stocksapi_cont",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1180",
+ "community": 14,
+ "norm_label": "covers lines 52-53, 57-63: get /stocks/key/generate. note: stocksapi_cont",
+ "id": "tests_test_controllers_coverage_rationale_1180"
},
{
- "label": "Phase 1: HarnessState (In-Memory Agent Scratchpad)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L93",
- "community": 227,
- "norm_label": "phase 1: harnessstate (in-memory agent scratchpad)",
- "id": "plans_2026_07_16_prometheus_harness_master_phase_1_harnessstate_in_memory_agent_scratchpad"
+ "label": "Covers lines 52-53: user without GENERATE_API_KEYS permission gets 403.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1188",
+ "community": 14,
+ "norm_label": "covers lines 52-53: user without generate_api_keys permission gets 403.",
+ "id": "tests_test_controllers_coverage_rationale_1188"
},
{
- "label": "Task 1: HarnessState Class",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L95",
- "community": 227,
- "norm_label": "task 1: harnessstate class",
- "id": "plans_2026_07_16_prometheus_harness_master_task_1_harnessstate_class"
+ "label": "Covers lines 57-60: admin bypasses permission check and generates key.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1196",
+ "community": 14,
+ "norm_label": "covers lines 57-60: admin bypasses permission check and generates key.",
+ "id": "tests_test_controllers_coverage_rationale_1196"
},
{
- "label": "code:python (import pytest)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L109",
- "community": 227,
- "norm_label": "code:python (import pytest)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_2"
+ "label": "Covers lines 61-63: exception during key generation (admin path).",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1208",
+ "community": 14,
+ "norm_label": "covers lines 61-63: exception during key generation (admin path).",
+ "id": "tests_test_controllers_coverage_rationale_1208"
},
{
- "label": "code:python (import logging)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L182",
- "community": 227,
- "norm_label": "code:python (import logging)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_3"
+ "label": "Covers lines 13, 17, 19-20, 22-27: UserManager.addRoleToUser.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1223",
+ "community": 528,
+ "norm_label": "covers lines 13, 17, 19-20, 22-27: usermanager.addroletouser.",
+ "id": "tests_test_controllers_coverage_rationale_1223"
},
{
- "label": "code:bash (git add main/app/prometheus/state.py tests/test_state.py)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L234",
- "community": 227,
- "norm_label": "code:bash (git add main/app/prometheus/state.py tests/test_state.py)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_4"
+ "label": "Covers lines 17, 22-27: user found, role not present, role added.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1226",
+ "community": 528,
+ "norm_label": "covers lines 17, 22-27: user found, role not present, role added.",
+ "id": "tests_test_controllers_coverage_rationale_1226"
},
{
- "label": "Phase 2: Sandbox Execution",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L241",
- "community": 145,
- "norm_label": "phase 2: sandbox execution",
- "id": "plans_2026_07_16_prometheus_harness_master_phase_2_sandbox_execution"
+ "label": "Covers line 27: user already has the role.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1243",
+ "community": 528,
+ "norm_label": "covers line 27: user already has the role.",
+ "id": "tests_test_controllers_coverage_rationale_1243"
},
{
- "label": "Task 2: Config \u2014 Add Sandbox Settings",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L243",
- "community": 145,
- "norm_label": "task 2: config \u2014 add sandbox settings",
- "id": "plans_2026_07_16_prometheus_harness_master_task_2_config_add_sandbox_settings"
+ "label": "Covers lines 19-20: user not found raises 404.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1257",
+ "community": 528,
+ "norm_label": "covers lines 19-20: user not found raises 404.",
+ "id": "tests_test_controllers_coverage_rationale_1257"
},
{
- "label": "code:python (class PrometheusSettings(BaseMansaSettings):)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L256",
- "community": 145,
- "norm_label": "code:python (class prometheussettings(basemansasettings):)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_5"
+ "label": "Covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: UserManager.getC",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1269",
+ "community": 493,
+ "norm_label": "covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: usermanager.getc",
+ "id": "tests_test_controllers_coverage_rationale_1269"
},
{
- "label": "code:yaml (environment:)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L279",
- "community": 145,
- "norm_label": "code:yaml (environment:)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_6"
+ "label": "Covers lines 42-44: session validation fails.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1301",
+ "community": 528,
+ "norm_label": "covers lines 42-44: session validation fails.",
+ "id": "tests_test_controllers_coverage_rationale_1301"
},
{
- "label": "code:yaml (sandbox:)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L290",
- "community": 145,
- "norm_label": "code:yaml (sandbox:)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_7"
+ "label": "Covers lines 48-49: user not in DB.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1317",
+ "community": 493,
+ "norm_label": "covers lines 48-49: user not in db.",
+ "id": "tests_test_controllers_coverage_rationale_1317"
},
{
- "label": "code:bash (git add config.py docker-compose.yml)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L302",
- "community": 145,
- "norm_label": "code:bash (git add config.py docker-compose.yml)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_8"
+ "label": "Covers lines 65-67: unexpected exception.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1334",
+ "community": 493,
+ "norm_label": "covers lines 65-67: unexpected exception.",
+ "id": "tests_test_controllers_coverage_rationale_1334"
},
{
- "label": "Task 3: SandboxManager \u2014 HTTP Client for CubeSandbox",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L309",
- "community": 145,
- "norm_label": "task 3: sandboxmanager \u2014 http client for cubesandbox",
- "id": "plans_2026_07_16_prometheus_harness_master_task_3_sandboxmanager_http_client_for_cubesandbox"
+ "label": "Covers lines 37-38, 46, 51, 58 (sessionId is None): skips session validation.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1351",
+ "community": 493,
+ "norm_label": "covers lines 37-38, 46, 51, 58 (sessionid is none): skips session validation.",
+ "id": "tests_test_controllers_coverage_rationale_1351"
},
{
- "label": "code:python (import pytest)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L323",
- "community": 145,
- "norm_label": "code:python (import pytest)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_9"
+ "label": "Covers line 16: empty password raises ValueError.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1375",
+ "community": 525,
+ "norm_label": "covers line 16: empty password raises valueerror.",
+ "id": "tests_test_controllers_coverage_rationale_1375"
},
{
- "label": "code:python (import logging)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L392",
- "community": 145,
- "norm_label": "code:python (import logging)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_10"
+ "label": "Covers lines 45-51: verifyAccessToken with expired and invalid tokens.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1385",
+ "community": 525,
+ "norm_label": "covers lines 45-51: verifyaccesstoken with expired and invalid tokens.",
+ "id": "tests_test_controllers_coverage_rationale_1385"
},
{
- "label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox.py)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L468",
- "community": 145,
- "norm_label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox.py)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_11"
+ "label": "Covers lines 48-49: jwt.ExpiredSignatureError.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1388",
+ "community": 525,
+ "norm_label": "covers lines 48-49: jwt.expiredsignatureerror.",
+ "id": "tests_test_controllers_coverage_rationale_1388"
},
{
- "label": "Phase 3: Result Cache",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L475",
- "community": 226,
- "norm_label": "phase 3: result cache",
- "id": "plans_2026_07_16_prometheus_harness_master_phase_3_result_cache"
+ "label": "Covers lines 50-51: jwt.InvalidTokenError.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1404",
+ "community": 519,
+ "norm_label": "covers lines 50-51: jwt.invalidtokenerror.",
+ "id": "tests_test_controllers_coverage_rationale_1404"
},
{
- "label": "Task 4: ResultCache \u2014 SHA256-Keyed Computed Results",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L477",
- "community": 226,
- "norm_label": "task 4: resultcache \u2014 sha256-keyed computed results",
- "id": "plans_2026_07_16_prometheus_harness_master_task_4_resultcache_sha256_keyed_computed_results"
+ "label": "Covers line 67: extractTokenPayload re-raises HTTPException from verifyAccessTok",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1416",
+ "community": 114,
+ "norm_label": "covers line 67: extracttokenpayload re-raises httpexception from verifyaccesstok",
+ "id": "tests_test_controllers_coverage_rationale_1416"
},
{
- "label": "code:python (import pytest)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L491",
- "community": 226,
- "norm_label": "code:python (import pytest)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_12"
+ "label": "Covers line 67: HTTPException raised by verifyAccessToken is re-raised.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1419",
+ "community": 114,
+ "norm_label": "covers line 67: httpexception raised by verifyaccesstoken is re-raised.",
+ "id": "tests_test_controllers_coverage_rationale_1419"
},
{
- "label": "code:python (import hashlib)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L542",
- "community": 226,
- "norm_label": "code:python (import hashlib)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_13"
+ "label": "Covers line 13: UserManager.__init__.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1435",
+ "community": 498,
+ "norm_label": "covers line 13: usermanager.__init__.",
+ "id": "tests_test_controllers_coverage_rationale_1435"
},
{
- "label": "code:bash (git add main/app/prometheus/cache.py tests/test_cache.py)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L600",
- "community": 226,
- "norm_label": "code:bash (git add main/app/prometheus/cache.py tests/test_cache.py)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_14"
+ "label": "streamMessage must yield dict chunks from async iterator.",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L157",
+ "community": 326,
+ "norm_label": "streammessage must yield dict chunks from async iterator.",
+ "id": "tests_test_prometheus_auth_coverage_rationale_157"
},
{
- "label": "Phase 4: ToolContext (Replace God Function)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L607",
- "community": 228,
- "norm_label": "phase 4: toolcontext (replace god function)",
- "id": "plans_2026_07_16_prometheus_harness_master_phase_4_toolcontext_replace_god_function"
+ "label": "streamMessage must handle function_calls as a list (not dict).",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L208",
+ "community": 327,
+ "norm_label": "streammessage must handle function_calls as a list (not dict).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_208"
},
{
- "label": "Task 5: ToolContext \u2014 Single Dispatch Object",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L609",
- "community": 228,
- "norm_label": "task 5: toolcontext \u2014 single dispatch object",
- "id": "plans_2026_07_16_prometheus_harness_master_task_5_toolcontext_single_dispatch_object"
+ "label": "Cover all methods in chat.py (lines 11-120).",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L278",
+ "community": 52,
+ "norm_label": "cover all methods in chat.py (lines 11-120).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_278"
},
{
- "label": "code:python (import pytest)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L623",
- "community": 228,
- "norm_label": "code:python (import pytest)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_15"
+ "label": "Cover all methods in authentication.py (lines 13-75).",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L502",
+ "community": 88,
+ "norm_label": "cover all methods in authentication.py (lines 13-75).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_502"
},
{
- "label": "code:python (import logging)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L673",
- "community": 228,
- "norm_label": "code:python (import logging)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_16"
+ "label": "Cover all methods in session.py (lines 14-154).",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L679",
+ "community": 60,
+ "norm_label": "cover all methods in session.py (lines 14-154).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_679"
},
{
- "label": "code:bash (git add main/app/prometheus/context.py tests/test_context.py)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L847",
- "community": 228,
- "norm_label": "code:bash (git add main/app/prometheus/context.py tests/test_context.py)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_17"
+ "label": "Exercises the tzinfo-is-None branch (line 144-148).",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L914",
+ "community": 190,
+ "norm_label": "exercises the tzinfo-is-none branch (line 144-148).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_914"
},
{
- "label": "Phase 5: Observable Loop (Batched)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L854",
- "community": 200,
- "norm_label": "phase 5: observable loop (batched)",
- "id": "plans_2026_07_16_prometheus_harness_master_phase_5_observable_loop_batched"
+ "label": "Exercises the expiresAt-is-None branch (line 143).",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L928",
+ "community": 165,
+ "norm_label": "exercises the expiresat-is-none branch (line 143).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_928"
},
{
- "label": "Task 6: LoopEvent Model + LoopLogger",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L856",
- "community": 200,
- "norm_label": "task 6: loopevent model + looplogger",
- "id": "plans_2026_07_16_prometheus_harness_master_task_6_loopevent_model_looplogger"
+ "label": "Cover getGoogleSSO (lines 6-14).",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L947",
+ "community": 68,
+ "norm_label": "cover getgooglesso (lines 6-14).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_947"
},
{
- "label": "code:python (import pytest)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L871",
- "community": 200,
- "norm_label": "code:python (import pytest)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_18"
+ "label": "chatSession attribute must not exist \u2014 MCP setup is inlined.",
+ "file_type": "rationale",
+ "source_file": "tests/test_streammessage_no_chatsession.py",
+ "source_location": "L78",
+ "community": 328,
+ "norm_label": "chatsession attribute must not exist \u2014 mcp setup is inlined.",
+ "id": "tests_test_streammessage_no_chatsession_rationale_78"
},
{
- "label": "code:python (from datetime import datetime, timezone)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L934",
- "community": 200,
- "norm_label": "code:python (from datetime import datetime, timezone)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_19"
+ "label": "streamMessage handles function call loops via inlined MCP setup.",
+ "file_type": "rationale",
+ "source_file": "tests/test_streammessage_no_chatsession.py",
+ "source_location": "L101",
+ "community": 329,
+ "norm_label": "streammessage handles function call loops via inlined mcp setup.",
+ "id": "tests_test_streammessage_no_chatsession_rationale_101"
},
{
- "label": "code:python (import logging)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L964",
- "community": 200,
- "norm_label": "code:python (import logging)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_20"
+ "label": "Search user's saved memories, preferences, and past analysis context. Use",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L16",
+ "community": 152,
+ "norm_label": "search user's saved memories, preferences, and past analysis context. use",
+ "id": "prometheus_tools_rationale_16"
},
{
- "label": "code:bash (git add main/models/harness.py main/app/prometheus/events.py)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1021",
- "community": 200,
- "norm_label": "code:bash (git add main/models/harness.py main/app/prometheus/events.py)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_21"
+ "label": "Store a memory about the user's preferences, analysis results, or feedback.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L42",
+ "community": 152,
+ "norm_label": "store a memory about the user's preferences, analysis results, or feedback.",
+ "id": "prometheus_tools_rationale_42"
},
{
- "label": "Phase 6: Agent Integration (All Layers)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1028",
- "community": 133,
- "norm_label": "phase 6: agent integration (all layers)",
- "id": "plans_2026_07_16_prometheus_harness_master_phase_6_agent_integration_all_layers"
- },
- {
- "label": "Task 7: Tool Definitions \u2014 State + Sandbox + Cache Tools",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1030",
- "community": 133,
- "norm_label": "task 7: tool definitions \u2014 state + sandbox + cache tools",
- "id": "plans_2026_07_16_prometheus_harness_master_task_7_tool_definitions_state_sandbox_cache_tools"
+ "label": "Retrieve values from the harness state. Use this to recall intermediate results,",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L79",
+ "community": 8,
+ "norm_label": "retrieve values from the harness state. use this to recall intermediate results,",
+ "id": "prometheus_tools_rationale_79"
},
{
- "label": "code:python (import inspect)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1043",
- "community": 133,
- "norm_label": "code:python (import inspect)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_22"
+ "label": "Store a value in the harness state for this session. Use this to save inter",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L94",
+ "community": 536,
+ "norm_label": "store a value in the harness state for this session. use this to save inter",
+ "id": "prometheus_tools_rationale_94"
},
{
- "label": "code:python (from main.app.prometheus.state import HarnessState)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1090",
- "community": 133,
- "norm_label": "code:python (from main.app.prometheus.state import harnessstate)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_23"
+ "label": "Execute Python code in an isolated sandbox. Use for quantitative analysis,",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L112",
+ "community": 536,
+ "norm_label": "execute python code in an isolated sandbox. use for quantitative analysis,",
+ "id": "prometheus_tools_rationale_112"
},
{
- "label": "code:bash (git add main/app/prometheus/tools.py tests/test_tools.py)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1144",
- "community": 133,
- "norm_label": "code:bash (git add main/app/prometheus/tools.py tests/test_tools.py)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_24"
+ "label": "Read a file from the workspace. Args: path: Path to the file (e.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L147",
+ "community": 523,
+ "norm_label": "read a file from the workspace. args: path: path to the file (e.",
+ "id": "prometheus_tools_rationale_147"
},
{
- "label": "Task 8: Agent Integration \u2014 Wire Everything Together",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1151",
- "community": 173,
- "norm_label": "task 8: agent integration \u2014 wire everything together",
- "id": "plans_2026_07_16_prometheus_harness_master_task_8_agent_integration_wire_everything_together"
+ "label": "Write a file to the workspace. Use this to save data files (CSV, JSON, scri",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L158",
+ "community": 523,
+ "norm_label": "write a file to the workspace. use this to save data files (csv, json, scri",
+ "id": "prometheus_tools_rationale_158"
},
{
- "label": "code:python (import pytest)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1164",
- "community": 173,
- "norm_label": "code:python (import pytest)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_25"
+ "label": "List files in the workspace directory. Args: path: Directory pat",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L171",
+ "community": 523,
+ "norm_label": "list files in the workspace directory. args: path: directory pat",
+ "id": "prometheus_tools_rationale_171"
},
{
- "label": "code:python (from main.app.prometheus.tools import MEMORY_TOOLS, STATE_TO)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1203",
- "community": 173,
- "norm_label": "code:python (from main.app.prometheus.tools import memory_tools, state_to)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_26"
+ "label": "Keys with Jaccard > 0.8 should merge.",
+ "file_type": "rationale",
+ "source_file": "tests/test_memory_dedup.py",
+ "source_location": "L30",
+ "community": 126,
+ "norm_label": "keys with jaccard > 0.8 should merge.",
+ "id": "tests_test_memory_dedup_rationale_30"
},
{
- "label": "code:python (@classmethod)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1214",
- "community": 173,
- "norm_label": "code:python (@classmethod)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_27"
+ "label": "Keys with low similarity should not merge.",
+ "file_type": "rationale",
+ "source_file": "tests/test_memory_dedup.py",
+ "source_location": "L40",
+ "community": 126,
+ "norm_label": "keys with low similarity should not merge.",
+ "id": "tests_test_memory_dedup_rationale_40"
},
{
- "label": "code:python (def makeChat(self, sessions, history, *, system_prompt=None,)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1242",
- "community": 173,
- "norm_label": "code:python (def makechat(self, sessions, history, *, system_prompt=none,)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_28"
+ "label": "Keys with Jaccard <= 0.8 should not merge.",
+ "file_type": "rationale",
+ "source_file": "tests/test_memory_dedup.py",
+ "source_location": "L67",
+ "community": 126,
+ "norm_label": "keys with jaccard <= 0.8 should not merge.",
+ "id": "tests_test_memory_dedup_rationale_67"
},
{
- "label": "code:python (async def streamMessage()",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1262",
- "community": 173,
- "norm_label": "code:python (async def streammessage()",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_29"
+ "label": "Wire up mock forgevm AsyncClient that returns sandbox with all methods.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L9",
+ "community": 4,
+ "norm_label": "wire up mock forgevm asyncclient that returns sandbox with all methods.",
+ "id": "tests_test_sandbox_persistence_rationale_9"
},
{
- "label": "code:python (async def sendMessage()",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1361",
- "community": 173,
- "norm_label": "code:python (async def sendmessage()",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_30"
+ "label": "Enforce one active sandbox per user via application logic.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L52",
+ "community": 4,
+ "norm_label": "enforce one active sandbox per user via application logic.",
+ "id": "tests_test_sandbox_persistence_rationale_52"
},
{
- "label": "code:bash (git add main/app/prometheus/agent.py tests/test_agent_integr)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1403",
- "community": 173,
- "norm_label": "code:bash (git add main/app/prometheus/agent.py tests/test_agent_integr)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_31"
+ "label": "syncToSandbox pushes host files into the sandbox.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L116",
+ "community": 330,
+ "norm_label": "synctosandbox pushes host files into the sandbox.",
+ "id": "tests_test_sandbox_persistence_rationale_116"
},
{
- "label": "Task 9: System Prompt \u2014 Teach LLM About State, Sandbox, and Cache",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1410",
- "community": 133,
- "norm_label": "task 9: system prompt \u2014 teach llm about state, sandbox, and cache",
- "id": "plans_2026_07_16_prometheus_harness_master_task_9_system_prompt_teach_llm_about_state_sandbox_and_cache"
+ "label": "syncFromSandbox pulls sandbox files to host.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L135",
+ "community": 331,
+ "norm_label": "syncfromsandbox pulls sandbox files to host.",
+ "id": "tests_test_sandbox_persistence_rationale_135"
},
{
- "label": "code:python (SYSTEM_PROMPT = \"\"\")",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1423",
- "community": 133,
- "norm_label": "code:python (system_prompt = \"\"\")",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_32"
+ "label": "syncToSandbox returns 0 when workspace is empty.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L155",
+ "community": 332,
+ "norm_label": "synctosandbox returns 0 when workspace is empty.",
+ "id": "tests_test_sandbox_persistence_rationale_155"
},
{
- "label": "code:bash (git add main/app/prometheus/agent.py)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1471",
- "community": 133,
- "norm_label": "code:bash (git add main/app/prometheus/agent.py)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_33"
+ "label": "sandbox_cleanup.py",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/sandbox_cleanup.py",
+ "source_location": "L1",
+ "community": 4,
+ "norm_label": "sandbox_cleanup.py",
+ "id": "main_app_prometheus_sandbox_cleanup_py"
},
{
- "label": "Task 10: Docker \u2014 CubeSandbox Template",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1478",
- "community": 133,
- "norm_label": "task 10: docker \u2014 cubesandbox template",
- "id": "plans_2026_07_16_prometheus_harness_master_task_10_docker_cubesandbox_template"
+ "label": "cleanup_expired_sandboxes()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/sandbox_cleanup.py",
+ "source_location": "L9",
+ "community": 4,
+ "norm_label": "cleanup_expired_sandboxes()",
+ "id": "prometheus_sandbox_cleanup_cleanup_expired_sandboxes"
},
{
- "label": "code:dockerfile (FROM python:3.11-slim)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1489",
- "community": 133,
- "norm_label": "code:dockerfile (from python:3.11-slim)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_34"
+ "label": "Remove DB mappings for sandboxes that no longer exist in ForgeVM.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/sandbox_cleanup.py",
+ "source_location": "L10",
+ "community": 4,
+ "norm_label": "remove db mappings for sandboxes that no longer exist in forgevm.",
+ "id": "prometheus_sandbox_cleanup_rationale_10"
},
{
- "label": "code:bash (git add Dockerfile.sandbox)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1507",
- "community": 133,
- "norm_label": "code:bash (git add dockerfile.sandbox)",
- "id": "plans_2026_07_16_prometheus_harness_master_codeblock_35"
+ "label": "test_agent_import_sandbox_manager()",
+ "file_type": "code",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L53",
+ "community": 24,
+ "norm_label": "test_agent_import_sandbox_manager()",
+ "id": "tests_test_agent_sandbox_integration_test_agent_import_sandbox_manager"
},
{
- "label": "Summary",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1514",
- "community": 144,
- "norm_label": "summary",
- "id": "plans_2026_07_16_prometheus_harness_master_summary"
+ "label": "test_destroy_still_available()",
+ "file_type": "code",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L60",
+ "community": 24,
+ "norm_label": "test_destroy_still_available()",
+ "id": "tests_test_agent_sandbox_integration_test_destroy_still_available"
},
{
- "label": "What This Enables",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1533",
- "community": 144,
- "norm_label": "what this enables",
- "id": "plans_2026_07_16_prometheus_harness_master_what_this_enables"
+ "label": "destroy() still exists for explicit user requests.",
+ "file_type": "rationale",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L61",
+ "community": 333,
+ "norm_label": "destroy() still exists for explicit user requests.",
+ "id": "tests_test_agent_sandbox_integration_rationale_61"
},
{
- "label": "What This Does NOT Do (By Design)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1542",
- "community": 144,
- "norm_label": "what this does not do (by design)",
- "id": "plans_2026_07_16_prometheus_harness_master_what_this_does_not_do_by_design"
+ "label": "Verify agent.py no longer calls SandboxManager.create directly.",
+ "file_type": "rationale",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L66",
+ "community": 334,
+ "norm_label": "verify agent.py no longer calls sandboxmanager.create directly.",
+ "id": "tests_test_agent_sandbox_integration_rationale_66"
},
{
- "label": "Relationship to Existing Systems",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
- "source_location": "L1550",
- "community": 144,
- "norm_label": "relationship to existing systems",
- "id": "plans_2026_07_16_prometheus_harness_master_relationship_to_existing_systems"
+ "label": "TestSandboxCleanup",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L164",
+ "community": 4,
+ "norm_label": "testsandboxcleanup",
+ "id": "tests_test_sandbox_persistence_testsandboxcleanup"
},
{
- "label": "2026-07-16-prometheus-harness-state.md",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L1",
- "community": 30,
- "norm_label": "2026-07-16-prometheus-harness-state.md",
- "id": "docs_superpowers_plans_2026_07_16_prometheus_harness_state_md"
+ "label": "test_cleanup_removes_dead_mappings()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L167",
+ "community": 4,
+ "norm_label": "test_cleanup_removes_dead_mappings()",
+ "id": "tests_test_sandbox_persistence_test_cleanup_removes_dead_mappings"
},
{
- "label": "Prometheus Harness State \u2014 In-Memory Agent Scratchpad",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L1",
- "community": 30,
- "norm_label": "prometheus harness state \u2014 in-memory agent scratchpad",
- "id": "plans_2026_07_16_prometheus_harness_state_prometheus_harness_state_in_memory_agent_scratchpad"
+ "label": "test_cleanup_keeps_alive_sandboxes()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L187",
+ "community": 4,
+ "norm_label": "test_cleanup_keeps_alive_sandboxes()",
+ "id": "tests_test_sandbox_persistence_test_cleanup_keeps_alive_sandboxes"
},
{
- "label": "Global Constraints",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L11",
- "community": 30,
- "norm_label": "global constraints",
- "id": "plans_2026_07_16_prometheus_harness_state_global_constraints"
+ "label": "Mappings for dead sandboxes are removed.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L168",
+ "community": 335,
+ "norm_label": "mappings for dead sandboxes are removed.",
+ "id": "tests_test_sandbox_persistence_rationale_168"
},
{
- "label": "Architecture",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L23",
- "community": 30,
- "norm_label": "architecture",
- "id": "plans_2026_07_16_prometheus_harness_state_architecture"
+ "label": "Mappings for alive sandboxes are kept.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L188",
+ "community": 336,
+ "norm_label": "mappings for alive sandboxes are kept.",
+ "id": "tests_test_sandbox_persistence_rationale_188"
},
{
- "label": "code:block1 (User: \"Analyze PETR4 vs VALE3 correlation\")",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L25",
- "community": 30,
- "norm_label": "code:block1 (user: \"analyze petr4 vs vale3 correlation\")",
- "id": "plans_2026_07_16_prometheus_harness_state_codeblock_1"
+ "label": "PrometheusMemory",
+ "file_type": "code",
+ "source_file": "main/models/memory.py",
+ "source_location": "L7",
+ "community": 140,
+ "norm_label": "prometheusmemory",
+ "id": "models_memory_usermemory"
},
{
- "label": "File Map",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L67",
- "community": 30,
- "norm_label": "file map",
- "id": "plans_2026_07_16_prometheus_harness_state_file_map"
+ "label": ".sendMessage()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L181",
+ "community": 116,
+ "norm_label": ".sendmessage()",
+ "id": "prometheus_agent_prometheus_sendmessage"
},
{
- "label": "Task 1: HarnessState Class",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L80",
- "community": 30,
- "norm_label": "task 1: harnessstate class",
- "id": "plans_2026_07_16_prometheus_harness_state_task_1_harnessstate_class"
+ "label": "syncWorkspace()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L135",
+ "community": 69,
+ "norm_label": "syncworkspace()",
+ "id": "prometheus_sandbox_syncworkspace"
},
{
- "label": "code:python (import pytest)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L94",
- "community": 30,
- "norm_label": "code:python (import pytest)",
- "id": "plans_2026_07_16_prometheus_harness_state_codeblock_2"
+ "label": "restoreWorkspace()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L149",
+ "community": 69,
+ "norm_label": "restoreworkspace()",
+ "id": "prometheus_sandbox_restoreworkspace"
},
{
- "label": "code:python (import logging)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L167",
- "community": 30,
- "norm_label": "code:python (import logging)",
- "id": "plans_2026_07_16_prometheus_harness_state_codeblock_3"
+ "label": "_saveBackup()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L160",
+ "community": 69,
+ "norm_label": "_savebackup()",
+ "id": "prometheus_sandbox_savebackup"
},
{
- "label": "code:bash (git add main/app/prometheus/state.py tests/test_harness_stat)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L226",
- "community": 30,
- "norm_label": "code:bash (git add main/app/prometheus/state.py tests/test_harness_stat)",
- "id": "plans_2026_07_16_prometheus_harness_state_codeblock_4"
+ "label": "_loadBackup()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L169",
+ "community": 69,
+ "norm_label": "_loadbackup()",
+ "id": "prometheus_sandbox_loadbackup"
},
{
- "label": "Task 2: State Tools \u2014 Function Definitions + Dispatch",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L233",
- "community": 30,
- "norm_label": "task 2: state tools \u2014 function definitions + dispatch",
- "id": "plans_2026_07_16_prometheus_harness_state_task_2_state_tools_function_definitions_dispatch"
+ "label": "Return existing sandbox if alive, otherwise create a new one. When a DB",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L45",
+ "community": 337,
+ "norm_label": "return existing sandbox if alive, otherwise create a new one. when a db",
+ "id": "prometheus_sandbox_rationale_45"
},
{
- "label": "code:python (import inspect)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L247",
- "community": 30,
- "norm_label": "code:python (import inspect)",
- "id": "plans_2026_07_16_prometheus_harness_state_codeblock_5"
+ "label": "Snapshot every file in /workspace as a {path: content} dict.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L136",
+ "community": 338,
+ "norm_label": "snapshot every file in /workspace as a {path: content} dict.",
+ "id": "prometheus_sandbox_rationale_136"
},
{
- "label": "code:python (from main.app.prometheus.state import HarnessState)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L344",
- "community": 30,
- "norm_label": "code:python (from main.app.prometheus.state import harnessstate)",
- "id": "plans_2026_07_16_prometheus_harness_state_codeblock_6"
+ "label": "Write a {path: content} dict back into the sandbox.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L150",
+ "community": 339,
+ "norm_label": "write a {path: content} dict back into the sandbox.",
+ "id": "prometheus_sandbox_rationale_150"
},
{
- "label": "code:python (async def dispatchToolCall(functionCall, mcpClients, user=No)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L391",
- "community": 30,
- "norm_label": "code:python (async def dispatchtoolcall(functioncall, mcpclients, user=no)",
- "id": "plans_2026_07_16_prometheus_harness_state_codeblock_7"
+ "label": "Persist workspace files to the host volume as JSON.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L161",
+ "community": 340,
+ "norm_label": "persist workspace files to the host volume as json.",
+ "id": "prometheus_sandbox_rationale_161"
},
{
- "label": "code:bash (git add main/app/prometheus/tools.py tests/test_state_tools.)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L427",
- "community": 30,
- "norm_label": "code:bash (git add main/app/prometheus/tools.py tests/test_state_tools.)",
- "id": "plans_2026_07_16_prometheus_harness_state_codeblock_8"
+ "label": "Load workspace backup from host volume, or return {} if none.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L170",
+ "community": 341,
+ "norm_label": "load workspace backup from host volume, or return {} if none.",
+ "id": "prometheus_sandbox_rationale_170"
},
{
- "label": "Task 3: Agent Integration \u2014 State Lifecycle in Stream Loop",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L434",
- "community": 30,
- "norm_label": "task 3: agent integration \u2014 state lifecycle in stream loop",
- "id": "plans_2026_07_16_prometheus_harness_state_task_3_agent_integration_state_lifecycle_in_stream_loop"
+ "label": "Destroy a sandbox and optionally remove its DB mapping.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L179",
+ "community": 342,
+ "norm_label": "destroy a sandbox and optionally remove its db mapping.",
+ "id": "prometheus_sandbox_rationale_179"
},
{
- "label": "code:python (import pytest)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L448",
- "community": 30,
- "norm_label": "code:python (import pytest)",
- "id": "plans_2026_07_16_prometheus_harness_state_codeblock_9"
+ "label": "Read a file from the sandbox filesystem. Args: path: Absolute pa",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L131",
+ "community": 523,
+ "norm_label": "read a file from the sandbox filesystem. args: path: absolute pa",
+ "id": "prometheus_tools_rationale_131"
},
{
- "label": "code:python (from main.app.prometheus.tools import MEMORY_TOOLS, STATE_TO)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L498",
- "community": 30,
- "norm_label": "code:python (from main.app.prometheus.tools import memory_tools, state_to)",
- "id": "plans_2026_07_16_prometheus_harness_state_codeblock_10"
+ "label": "chat()",
+ "file_type": "code",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L111",
+ "community": 84,
+ "norm_label": "chat()",
+ "id": "controller_prometheus_controller_chat"
},
{
- "label": "code:python (@classmethod)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L505",
- "community": 30,
- "norm_label": "code:python (@classmethod)",
- "id": "plans_2026_07_16_prometheus_harness_state_codeblock_11"
+ "label": "test_sync_empty_workspace_skips_save()",
+ "file_type": "code",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L42",
+ "community": 24,
+ "norm_label": "test_sync_empty_workspace_skips_save()",
+ "id": "tests_test_agent_sandbox_integration_test_sync_empty_workspace_skips_save"
},
{
- "label": "code:python (def makeChat(self, sessions, history, *, system_prompt=None,)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L533",
- "community": 30,
- "norm_label": "code:python (def makechat(self, sessions, history, *, system_prompt=none,)",
- "id": "plans_2026_07_16_prometheus_harness_state_codeblock_12"
+ "label": "Agent module can import SandboxManager.",
+ "file_type": "rationale",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L60",
+ "community": 343,
+ "norm_label": "agent module can import sandboxmanager.",
+ "id": "tests_test_agent_sandbox_integration_rationale_60"
},
{
- "label": "code:python (async def sendMessage()",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L553",
- "community": 30,
- "norm_label": "code:python (async def sendmessage()",
- "id": "plans_2026_07_16_prometheus_harness_state_codeblock_13"
+ "label": "destroy() still exists for explicit user requests.",
+ "file_type": "rationale",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L70",
+ "community": 344,
+ "norm_label": "destroy() still exists for explicit user requests.",
+ "id": "tests_test_agent_sandbox_integration_rationale_70"
},
{
- "label": "code:python (async def streamMessage()",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L574",
- "community": 30,
- "norm_label": "code:python (async def streammessage()",
- "id": "plans_2026_07_16_prometheus_harness_state_codeblock_14"
+ "label": "Verify agent.py no longer calls SandboxManager.create directly.",
+ "file_type": "rationale",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L75",
+ "community": 345,
+ "norm_label": "verify agent.py no longer calls sandboxmanager.create directly.",
+ "id": "tests_test_agent_sandbox_integration_rationale_75"
},
{
- "label": "code:bash (git add main/app/prometheus/agent.py tests/test_agent_state_)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L649",
- "community": 30,
- "norm_label": "code:bash (git add main/app/prometheus/agent.py tests/test_agent_state_)",
- "id": "plans_2026_07_16_prometheus_harness_state_codeblock_15"
+ "label": "test_read_file()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L43",
+ "community": 2,
+ "norm_label": "test_read_file()",
+ "id": "tests_test_sandbox_test_read_file"
},
{
- "label": "Task 4: System Prompt \u2014 Teach LLM About State Management",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L656",
- "community": 30,
- "norm_label": "task 4: system prompt \u2014 teach llm about state management",
- "id": "plans_2026_07_16_prometheus_harness_state_task_4_system_prompt_teach_llm_about_state_management"
+ "label": "test_write_file()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L51",
+ "community": 2,
+ "norm_label": "test_write_file()",
+ "id": "tests_test_sandbox_test_write_file"
},
{
- "label": "code:python (SYSTEM_PROMPT = \"\"\")",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L669",
- "community": 30,
- "norm_label": "code:python (system_prompt = \"\"\")",
- "id": "plans_2026_07_16_prometheus_harness_state_codeblock_16"
+ "label": "test_list_files()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L59",
+ "community": 2,
+ "norm_label": "test_list_files()",
+ "id": "tests_test_sandbox_test_list_files"
},
{
- "label": "code:bash (git add main/app/prometheus/agent.py)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L700",
- "community": 30,
- "norm_label": "code:bash (git add main/app/prometheus/agent.py)",
- "id": "plans_2026_07_16_prometheus_harness_state_codeblock_17"
+ "label": "test_write_file_returns_false_on_error()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L102",
+ "community": 2,
+ "norm_label": "test_write_file_returns_false_on_error()",
+ "id": "tests_test_sandbox_test_write_file_returns_false_on_error"
},
{
- "label": "Summary",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L707",
- "community": 30,
- "norm_label": "summary",
- "id": "plans_2026_07_16_prometheus_harness_state_summary"
+ "label": "Wire up mock forgevm AsyncClient that returns sandbox with all methods.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L7",
+ "community": 2,
+ "norm_label": "wire up mock forgevm asyncclient that returns sandbox with all methods.",
+ "id": "tests_test_sandbox_rationale_7"
},
{
- "label": "What This Enables",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L720",
- "community": 30,
- "norm_label": "what this enables",
- "id": "plans_2026_07_16_prometheus_harness_state_what_this_enables"
+ "label": "test_sync_workspace()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L114",
+ "community": 4,
+ "norm_label": "test_sync_workspace()",
+ "id": "tests_test_sandbox_persistence_test_sync_workspace"
},
{
- "label": "What This Does NOT Do (By Design)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L728",
- "community": 30,
- "norm_label": "what this does not do (by design)",
- "id": "plans_2026_07_16_prometheus_harness_state_what_this_does_not_do_by_design"
+ "label": "test_restore_workspace()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L132",
+ "community": 4,
+ "norm_label": "test_restore_workspace()",
+ "id": "tests_test_sandbox_persistence_test_restore_workspace"
},
{
- "label": "Relationship to Other Plans",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
- "source_location": "L735",
- "community": 30,
- "norm_label": "relationship to other plans",
- "id": "plans_2026_07_16_prometheus_harness_state_relationship_to_other_plans"
+ "label": "Wire up mock forgevm AsyncClient that returns sandbox with all methods.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L8",
+ "community": 4,
+ "norm_label": "wire up mock forgevm asyncclient that returns sandbox with all methods.",
+ "id": "tests_test_sandbox_persistence_rationale_8"
},
{
- "label": "2026-07-16-prometheus-sandbox-agent.md",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L1",
- "community": 19,
- "norm_label": "2026-07-16-prometheus-sandbox-agent.md",
- "id": "docs_superpowers_plans_2026_07_16_prometheus_sandbox_agent_md"
+ "label": "Enforce one active sandbox per user via application logic.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L51",
+ "community": 4,
+ "norm_label": "enforce one active sandbox per user via application logic.",
+ "id": "tests_test_sandbox_persistence_rationale_51"
},
{
- "label": "Prometheus Sandbox Code Interpreter \u2014 Implementation Plan",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L1",
- "community": 19,
- "norm_label": "prometheus sandbox code interpreter \u2014 implementation plan",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_prometheus_sandbox_code_interpreter_implementation_plan"
+ "label": "Mappings for dead sandboxes are removed.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L145",
+ "community": 346,
+ "norm_label": "mappings for dead sandboxes are removed.",
+ "id": "tests_test_sandbox_persistence_rationale_145"
},
{
- "label": "Global Constraints",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L11",
- "community": 19,
- "norm_label": "global constraints",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_global_constraints"
+ "label": "Mappings for alive sandboxes are kept.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L165",
+ "community": 347,
+ "norm_label": "mappings for alive sandboxes are kept.",
+ "id": "tests_test_sandbox_persistence_rationale_165"
},
{
- "label": "File Map",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L23",
- "community": 19,
- "norm_label": "file map",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_file_map"
+ "label": "Snapshot every file in /workspace as a {path: content} dict.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L135",
+ "community": 348,
+ "norm_label": "snapshot every file in /workspace as a {path: content} dict.",
+ "id": "prometheus_sandbox_rationale_135"
},
{
- "label": "Task 1: Config \u2014 Add Sandbox Settings",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L37",
- "community": 19,
- "norm_label": "task 1: config \u2014 add sandbox settings",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_task_1_config_add_sandbox_settings"
+ "label": "Write a {path: content} dict back into the sandbox.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L149",
+ "community": 349,
+ "norm_label": "write a {path: content} dict back into the sandbox.",
+ "id": "prometheus_sandbox_rationale_149"
},
{
- "label": "code:python (class PrometheusSettings(BaseMansaSettings):)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L50",
- "community": 19,
- "norm_label": "code:python (class prometheussettings(basemansasettings):)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_1"
+ "label": "Persist workspace files to the host volume as JSON.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L160",
+ "community": 350,
+ "norm_label": "persist workspace files to the host volume as json.",
+ "id": "prometheus_sandbox_rationale_160"
},
{
- "label": "code:yaml (environment:)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L71",
- "community": 19,
- "norm_label": "code:yaml (environment:)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_2"
+ "label": "Load workspace backup from host volume, or return {} if none.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L169",
+ "community": 351,
+ "norm_label": "load workspace backup from host volume, or return {} if none.",
+ "id": "prometheus_sandbox_rationale_169"
},
{
- "label": "code:bash (git add config.py docker-compose.yml)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L81",
- "community": 19,
- "norm_label": "code:bash (git add config.py docker-compose.yml)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_3"
+ "label": "Destroy a sandbox and optionally remove its DB mapping.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L178",
+ "community": 352,
+ "norm_label": "destroy a sandbox and optionally remove its db mapping.",
+ "id": "prometheus_sandbox_rationale_178"
},
{
- "label": "Task 2: Sandbox Manager \u2014 Core HTTP Client",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L88",
- "community": 19,
- "norm_label": "task 2: sandbox manager \u2014 core http client",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_task_2_sandbox_manager_core_http_client"
+ "label": "Read a file from the sandbox filesystem. Args: path: Absolute pa",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L130",
+ "community": 523,
+ "norm_label": "read a file from the sandbox filesystem. args: path: absolute pa",
+ "id": "prometheus_tools_rationale_130"
},
{
- "label": "code:python (import pytest)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L101",
- "community": 19,
- "norm_label": "code:python (import pytest)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_4"
+ "label": "TestAgentSandboxIntegration",
+ "file_type": "code",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L7",
+ "community": 137,
+ "norm_label": "testagentsandboxintegration",
+ "id": "tests_test_agent_sandbox_integration_testagentsandboxintegration"
},
{
- "label": "code:python (import base64)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L192",
- "community": 19,
- "norm_label": "code:python (import base64)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_5"
+ "label": ".test_build_system_prompt_includes_sandbox_instructions()",
+ "file_type": "code",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L8",
+ "community": 137,
+ "norm_label": ".test_build_system_prompt_includes_sandbox_instructions()",
+ "id": "tests_test_agent_sandbox_integration_testagentsandboxintegration_test_build_system_prompt_includes_sandbox_instructions"
},
{
- "label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox.py)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L269",
- "community": 19,
- "norm_label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox.py)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_6"
+ "label": ".test_build_system_prompt_includes_state_instructions()",
+ "file_type": "code",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L14",
+ "community": 137,
+ "norm_label": ".test_build_system_prompt_includes_state_instructions()",
+ "id": "tests_test_agent_sandbox_integration_testagentsandboxintegration_test_build_system_prompt_includes_state_instructions"
},
{
- "label": "Task 3: Sandbox Tools \u2014 Gemini Function Declarations + Dispatch",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L276",
- "community": 19,
- "norm_label": "task 3: sandbox tools \u2014 gemini function declarations + dispatch",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_task_3_sandbox_tools_gemini_function_declarations_dispatch"
+ "label": ".test_build_system_prompt_with_state()",
+ "file_type": "code",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L19",
+ "community": 137,
+ "norm_label": ".test_build_system_prompt_with_state()",
+ "id": "tests_test_agent_sandbox_integration_testagentsandboxintegration_test_build_system_prompt_with_state"
},
{
- "label": "code:python (from main.app.prometheus.tools import SANDBOX_TOOLS, SANDBOX)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L289",
- "community": 19,
- "norm_label": "code:python (from main.app.prometheus.tools import sandbox_tools, sandbox)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_7"
+ "label": "test_streamMessage_creates_sandbox_on_execute_code()",
+ "file_type": "code",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L28",
+ "community": 24,
+ "norm_label": "test_streammessage_creates_sandbox_on_execute_code()",
+ "id": "tests_test_agent_sandbox_integration_test_streammessage_creates_sandbox_on_execute_code"
},
{
- "label": "code:python (import base64)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L331",
- "community": 19,
- "norm_label": "code:python (import base64)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_8"
+ "label": "TestPremiumCheck",
+ "file_type": "code",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L36",
+ "community": 24,
+ "norm_label": "testpremiumcheck",
+ "id": "tests_test_agent_sandbox_integration_testpremiumcheck"
},
{
- "label": "code:bash (git add main/app/prometheus/tools.py tests/test_sandbox.py)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L537",
- "community": 19,
- "norm_label": "code:bash (git add main/app/prometheus/tools.py tests/test_sandbox.py)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_9"
+ "label": ".test_premium_user_has_sandbox_access()",
+ "file_type": "code",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L39",
+ "community": 24,
+ "norm_label": ".test_premium_user_has_sandbox_access()",
+ "id": "tests_test_agent_sandbox_integration_testpremiumcheck_test_premium_user_has_sandbox_access"
},
{
- "label": "Task 4: Agent \u2014 Sandbox Lifecycle in Stream Loop",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L544",
- "community": 19,
- "norm_label": "task 4: agent \u2014 sandbox lifecycle in stream loop",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_task_4_agent_sandbox_lifecycle_in_stream_loop"
+ "label": ".test_admin_user_has_sandbox_access()",
+ "file_type": "code",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L45",
+ "community": 24,
+ "norm_label": ".test_admin_user_has_sandbox_access()",
+ "id": "tests_test_agent_sandbox_integration_testpremiumcheck_test_admin_user_has_sandbox_access"
},
{
- "label": "code:python (from main.app.prometheus.agent import Prometheus)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L557",
- "community": 19,
- "norm_label": "code:python (from main.app.prometheus.agent import prometheus)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_10"
+ "label": ".test_free_user_no_sandbox_access()",
+ "file_type": "code",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L51",
+ "community": 24,
+ "norm_label": ".test_free_user_no_sandbox_access()",
+ "id": "tests_test_agent_sandbox_integration_testpremiumcheck_test_free_user_no_sandbox_access"
},
{
- "label": "code:python (from main.app.prometheus.sandbox import SandboxManager)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L596",
- "community": 19,
- "norm_label": "code:python (from main.app.prometheus.sandbox import sandboxmanager)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_11"
+ "label": ".test_no_user_no_sandbox_access()",
+ "file_type": "code",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L57",
+ "community": 24,
+ "norm_label": ".test_no_user_no_sandbox_access()",
+ "id": "tests_test_agent_sandbox_integration_testpremiumcheck_test_no_user_no_sandbox_access"
},
{
- "label": "code:python (def makeChat(self, sessions, history, *, system_prompt=None,)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L603",
- "community": 19,
- "norm_label": "code:python (def makechat(self, sessions, history, *, system_prompt=none,)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_12"
+ "label": "Verify on-demand sandbox is created when LLM calls execute_code.",
+ "file_type": "rationale",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L29",
+ "community": 353,
+ "norm_label": "verify on-demand sandbox is created when llm calls execute_code.",
+ "id": "tests_test_agent_sandbox_integration_rationale_29"
},
{
- "label": "code:python (async def sendMessage(self, query=None, sessionId=None, db=N)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L611",
- "community": 19,
- "norm_label": "code:python (async def sendmessage(self, query=none, sessionid=none, db=n)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_13"
- },
+ "label": "Test the premium gating logic used in streamMessage.",
+ "file_type": "rationale",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L37",
+ "community": 24,
+ "norm_label": "test the premium gating logic used in streammessage.",
+ "id": "tests_test_agent_sandbox_integration_rationale_37"
+ },
{
- "label": "code:python (async def streamMessage(self, query=None, sessionId=None, db)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L631",
- "community": 19,
- "norm_label": "code:python (async def streammessage(self, query=none, sessionid=none, db)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_14"
+ "label": "Enforce one active sandbox per user via application logic.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L30",
+ "community": 4,
+ "norm_label": "enforce one active sandbox per user via application logic.",
+ "id": "tests_test_sandbox_persistence_rationale_30"
},
{
- "label": "code:bash (git add main/app/prometheus/agent.py)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L694",
- "community": 19,
- "norm_label": "code:bash (git add main/app/prometheus/agent.py)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_15"
+ "label": "Search user's saved memories, preferences, and past analysis context. Use",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L15",
+ "community": 152,
+ "norm_label": "search user's saved memories, preferences, and past analysis context. use",
+ "id": "prometheus_tools_rationale_15"
},
{
- "label": "Task 5: Docker \u2014 CubeSandbox Template + Compose Service",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L701",
- "community": 19,
- "norm_label": "task 5: docker \u2014 cubesandbox template + compose service",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_task_5_docker_cubesandbox_template_compose_service"
+ "label": "Store a memory about the user's preferences, analysis results, or feedback.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L41",
+ "community": 152,
+ "norm_label": "store a memory about the user's preferences, analysis results, or feedback.",
+ "id": "prometheus_tools_rationale_41"
},
{
- "label": "code:dockerfile (FROM python:3.11-slim)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L713",
- "community": 19,
- "norm_label": "code:dockerfile (from python:3.11-slim)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_16"
+ "label": "Retrieve values from the harness state. Use this to recall intermediate results,",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L78",
+ "community": 8,
+ "norm_label": "retrieve values from the harness state. use this to recall intermediate results,",
+ "id": "prometheus_tools_rationale_78"
},
{
- "label": "code:yaml (services:)",
- "file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L733",
- "community": 19,
- "norm_label": "code:yaml (services:)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_17"
+ "label": "Store a value in the harness state for this session. Use this to save inter",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L93",
+ "community": 536,
+ "norm_label": "store a value in the harness state for this session. use this to save inter",
+ "id": "prometheus_tools_rationale_93"
},
{
- "label": "code:block18 (SANDBOX_HOST=localhost)",
+ "label": "2026-07-16-prometheus-harness-architecture.md",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L797",
- "community": 19,
- "norm_label": "code:block18 (sandbox_host=localhost)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_18"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L1",
+ "community": 158,
+ "norm_label": "2026-07-16-prometheus-harness-architecture.md",
+ "id": "docs_superpowers_plans_2026_07_16_prometheus_harness_architecture_md"
},
{
- "label": "code:bash (git add Dockerfile.sandbox docker-compose.yml)",
+ "label": "Prometheus Harness Architecture \u2014 Observable Loops, Sandbox Execution, Persistent States",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L804",
- "community": 19,
- "norm_label": "code:bash (git add dockerfile.sandbox docker-compose.yml)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_19"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L1",
+ "community": 158,
+ "norm_label": "prometheus harness architecture \u2014 observable loops, sandbox execution, persistent states",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_prometheus_harness_architecture_observable_loops_sandbox_execution_persistent_states"
},
{
- "label": "Task 6: Frontend \u2014 SandboxArtifact Component",
+ "label": "Global Constraints",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L811",
- "community": 19,
- "norm_label": "task 6: frontend \u2014 sandboxartifact component",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_task_6_frontend_sandboxartifact_component"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L14",
+ "community": 158,
+ "norm_label": "global constraints",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_global_constraints"
},
{
- "label": "code:tsx (// frontend/src/components/SandboxArtifact.tsx)",
+ "label": "Architecture Overview",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L822",
- "community": 19,
- "norm_label": "code:tsx (// frontend/src/components/sandboxartifact.tsx)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_20"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L27",
+ "community": 245,
+ "norm_label": "architecture overview",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_architecture_overview"
},
{
- "label": "code:tsx (// In your chat message component, after rendering text:)",
+ "label": "code:block1 (+-----------------------------------------------------------)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L886",
- "community": 19,
- "norm_label": "code:tsx (// in your chat message component, after rendering text:)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_21"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L29",
+ "community": 245,
+ "norm_label": "code:block1 (+-----------------------------------------------------------)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_1"
},
{
- "label": "code:bash (git add frontend/src/components/SandboxArtifact.tsx)",
+ "label": "Data Flow for a Complex Task",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L898",
- "community": 19,
- "norm_label": "code:bash (git add frontend/src/components/sandboxartifact.tsx)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_22"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L62",
+ "community": 245,
+ "norm_label": "data flow for a complex task",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_data_flow_for_a_complex_task"
},
{
- "label": "Task 7: System Prompt \u2014 Teach LLM About Sandbox",
+ "label": "code:block2 (User: \"Analyze PETR4 vs VALE3 correlation over 5 years\")",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L905",
- "community": 19,
- "norm_label": "task 7: system prompt \u2014 teach llm about sandbox",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_task_7_system_prompt_teach_llm_about_sandbox"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L64",
+ "community": 245,
+ "norm_label": "code:block2 (user: \"analyze petr4 vs vale3 correlation over 5 years\")",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_2"
},
{
- "label": "code:python (SYSTEM_PROMPT = \"\"\")",
+ "label": "File Map",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L918",
- "community": 19,
- "norm_label": "code:python (system_prompt = \"\"\")",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_23"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L86",
+ "community": 158,
+ "norm_label": "file map",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_file_map"
},
{
- "label": "code:bash (git add main/app/prometheus/agent.py)",
+ "label": "Task 1: Config \u2014 Add Sandbox + Workspace Settings",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L947",
- "community": 19,
- "norm_label": "code:bash (git add main/app/prometheus/agent.py)",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_24"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L108",
+ "community": 224,
+ "norm_label": "task 1: config \u2014 add sandbox + workspace settings",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_task_1_config_add_sandbox_workspace_settings"
},
{
- "label": "Summary",
+ "label": "code:python (# Sandbox)",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
- "source_location": "L954",
- "community": 19,
- "norm_label": "summary",
- "id": "plans_2026_07_16_prometheus_sandbox_agent_summary"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L121",
+ "community": 224,
+ "norm_label": "code:python (# sandbox)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_3"
},
{
- "label": "test_get_state_no_state_returns_error()",
- "file_type": "code",
- "source_file": "tests/test_prometheus_tools.py",
- "source_location": "L114",
- "community": 100,
- "norm_label": "test_get_state_no_state_returns_error()",
- "id": "tests_test_prometheus_tools_test_get_state_no_state_returns_error"
+ "label": "code:yaml (environment:)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L138",
+ "community": 224,
+ "norm_label": "code:yaml (environment:)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_4"
},
{
- "label": "test_set_state_no_state_returns_error()",
- "file_type": "code",
- "source_file": "tests/test_prometheus_tools.py",
- "source_location": "L119",
- "community": 100,
- "norm_label": "test_set_state_no_state_returns_error()",
- "id": "tests_test_prometheus_tools_test_set_state_no_state_returns_error"
+ "label": "code:yaml (sandbox:)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L149",
+ "community": 224,
+ "norm_label": "code:yaml (sandbox:)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_5"
},
{
- "label": "Assert a tool function has only Gemini-compatible parameter types.",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_tools.py",
- "source_location": "L21",
- "community": 100,
- "norm_label": "assert a tool function has only gemini-compatible parameter types.",
- "id": "tests_test_prometheus_tools_rationale_21"
+ "label": "code:bash (git add config.py docker-compose.yml)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L161",
+ "community": 224,
+ "norm_label": "code:bash (git add config.py docker-compose.yml)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_6"
},
{
- "label": "Every function in TOOL_REGISTRY must have Gemini-safe signatures. Custom cl",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_tools.py",
- "source_location": "L128",
- "community": 541,
- "norm_label": "every function in tool_registry must have gemini-safe signatures. custom cl",
- "id": "tests_test_prometheus_tools_rationale_128"
+ "label": "Task 2: Loop Events \u2014 Structured Event Model + Logger",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L168",
+ "community": 225,
+ "norm_label": "task 2: loop events \u2014 structured event model + logger",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_task_2_loop_events_structured_event_model_logger"
},
{
- "label": "Regression: HarnessState must never leak into tool signatures.",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_tools.py",
- "source_location": "L137",
- "community": 541,
- "norm_label": "regression: harnessstate must never leak into tool signatures.",
- "id": "tests_test_prometheus_tools_rationale_137"
+ "label": "code:python (import pytest)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L182",
+ "community": 225,
+ "norm_label": "code:python (import pytest)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_7"
},
{
- "label": "cache.py",
- "file_type": "code",
- "source_file": "main/app/prometheus/cache.py",
- "source_location": "L1",
- "community": 222,
- "norm_label": "cache.py",
- "id": "main_app_prometheus_cache_py"
+ "label": "code:python (from datetime import datetime, timezone)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L269",
+ "community": 225,
+ "norm_label": "code:python (from datetime import datetime, timezone)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_8"
},
{
- "label": "ResultCache",
- "file_type": "code",
- "source_file": "main/app/prometheus/cache.py",
- "source_location": "L7",
- "community": 222,
- "norm_label": "resultcache",
- "id": "prometheus_cache_resultcache"
+ "label": "code:python (import logging)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L299",
+ "community": 225,
+ "norm_label": "code:python (import logging)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_9"
},
{
- "label": ".__init__()",
- "file_type": "code",
- "source_file": "main/app/prometheus/cache.py",
- "source_location": "L8",
- "community": 222,
- "norm_label": ".__init__()",
- "id": "prometheus_cache_resultcache_init"
+ "label": "code:bash (git add main/models/harness.py main/app/prometheus/events.py)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L344",
+ "community": 225,
+ "norm_label": "code:bash (git add main/models/harness.py main/app/prometheus/events.py)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_10"
},
{
- "label": ".cachePath()",
- "file_type": "code",
- "source_file": "main/app/prometheus/cache.py",
- "source_location": "L11",
- "community": 222,
- "norm_label": ".cachepath()",
- "id": "prometheus_cache_resultcache_cachepath"
+ "label": "Task 3: Workspace Manager \u2014 Tiered Persistent Workspace",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L351",
+ "community": 247,
+ "norm_label": "task 3: workspace manager \u2014 tiered persistent workspace",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_task_3_workspace_manager_tiered_persistent_workspace"
},
{
- "label": ".get()",
- "file_type": "code",
- "source_file": "main/app/prometheus/cache.py",
- "source_location": "L15",
- "community": 222,
- "norm_label": ".get()",
- "id": "prometheus_cache_resultcache_get"
+ "label": "code:python (import json, os, time, pytest)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L364",
+ "community": 247,
+ "norm_label": "code:python (import json, os, time, pytest)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_11"
},
{
- "label": ".set()",
- "file_type": "code",
- "source_file": "main/app/prometheus/cache.py",
- "source_location": "L21",
- "community": 222,
- "norm_label": ".set()",
- "id": "prometheus_cache_resultcache_set"
+ "label": "code:python (import json, logging, shutil, time)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L419",
+ "community": 247,
+ "norm_label": "code:python (import json, logging, shutil, time)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_12"
},
{
- "label": ".invalidate()",
- "file_type": "code",
- "source_file": "main/app/prometheus/cache.py",
- "source_location": "L31",
- "community": 222,
- "norm_label": ".invalidate()",
- "id": "prometheus_cache_resultcache_invalidate"
+ "label": "code:bash (git add main/app/prometheus/workspace.py tests/test_workspac)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L516",
+ "community": 247,
+ "norm_label": "code:bash (git add main/app/prometheus/workspace.py tests/test_workspac)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_13"
},
{
- "label": ".exists()",
- "file_type": "code",
- "source_file": "main/app/prometheus/cache.py",
- "source_location": "L38",
- "community": 222,
- "norm_label": ".exists()",
- "id": "prometheus_cache_resultcache_exists"
+ "label": "Task 4: Sandbox Manager \u2014 HTTP Client for CubeSandbox",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L523",
+ "community": 246,
+ "norm_label": "task 4: sandbox manager \u2014 http client for cubesandbox",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_task_4_sandbox_manager_http_client_for_cubesandbox"
},
{
- "label": "baseUrl()",
- "file_type": "code",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L12",
- "community": 69,
- "norm_label": "baseurl()",
- "id": "prometheus_sandbox_baseurl"
+ "label": "code:python (import pytest)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L536",
+ "community": 246,
+ "norm_label": "code:python (import pytest)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_14"
},
{
- "label": "checkpoint()",
- "file_type": "code",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L43",
- "community": 69,
- "norm_label": "checkpoint()",
- "id": "prometheus_sandbox_checkpoint"
+ "label": "code:python (import base64, logging)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L594",
+ "community": 246,
+ "norm_label": "code:python (import base64, logging)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_15"
},
{
- "label": "restore()",
- "file_type": "code",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L55",
- "community": 69,
- "norm_label": "restore()",
- "id": "prometheus_sandbox_restore"
+ "label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox.py)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L655",
+ "community": 246,
+ "norm_label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox.py)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_16"
},
{
- "label": "upload_file()",
- "file_type": "code",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L63",
- "community": 69,
- "norm_label": "upload_file()",
- "id": "prometheus_sandbox_upload_file"
+ "label": "Task 5: Sandbox Tools \u2014 Gemini Function Declarations + Dispatch",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L662",
+ "community": 223,
+ "norm_label": "task 5: sandbox tools \u2014 gemini function declarations + dispatch",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_task_5_sandbox_tools_gemini_function_declarations_dispatch"
},
{
- "label": "read_sandbox_file()",
- "file_type": "code",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L139",
- "community": 536,
- "norm_label": "read_sandbox_file()",
- "id": "prometheus_tools_read_sandbox_file"
+ "label": "code:python (from main.app.prometheus.tools import SANDBOX_TOOLS, SANDBOX)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L675",
+ "community": 223,
+ "norm_label": "code:python (from main.app.prometheus.tools import sandbox_tools, sandbox)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_17"
},
{
- "label": "upload_to_sandbox()",
- "file_type": "code",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L151",
- "community": 86,
- "norm_label": "upload_to_sandbox()",
- "id": "prometheus_tools_upload_to_sandbox"
+ "label": "code:python (from main.app.prometheus.sandbox import SandboxManager)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L699",
+ "community": 223,
+ "norm_label": "code:python (from main.app.prometheus.sandbox import sandboxmanager)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_18"
},
{
- "label": "check_cache()",
- "file_type": "code",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L165",
- "community": 86,
- "norm_label": "check_cache()",
- "id": "prometheus_tools_check_cache"
+ "label": "code:python (async def dispatchToolCall(functionCall, mcpClients, user=No)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L774",
+ "community": 223,
+ "norm_label": "code:python (async def dispatchtoolcall(functioncall, mcpclients, user=no)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_19"
},
{
- "label": "Search user's saved memories, preferences, and past analysis context. Use",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L17",
- "community": 86,
- "norm_label": "search user's saved memories, preferences, and past analysis context. use",
- "id": "prometheus_tools_rationale_17"
+ "label": "code:bash (git add main/app/prometheus/tools.py tests/test_sandbox.py)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L812",
+ "community": 223,
+ "norm_label": "code:bash (git add main/app/prometheus/tools.py tests/test_sandbox.py)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_20"
},
{
- "label": "Execute Python code in an isolated sandbox. Use for quantitative analysis,",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L109",
- "community": 512,
- "norm_label": "execute python code in an isolated sandbox. use for quantitative analysis,",
- "id": "prometheus_tools_rationale_109"
+ "label": "Task 6: Agent Integration \u2014 Sandbox Lifecycle + Loop Events in Stream Loop",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L819",
+ "community": 199,
+ "norm_label": "task 6: agent integration \u2014 sandbox lifecycle + loop events in stream loop",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_task_6_agent_integration_sandbox_lifecycle_loop_events_in_stream_loop"
},
{
- "label": "Read a file from the sandbox filesystem. Args: path: Absolute pa",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L140",
- "community": 536,
- "norm_label": "read a file from the sandbox filesystem. args: path: absolute pa",
- "id": "prometheus_tools_rationale_140"
+ "label": "code:python (import pytest)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L832",
+ "community": 199,
+ "norm_label": "code:python (import pytest)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_21"
},
{
- "label": "Upload a file to the sandbox filesystem. Use this to push data files (CSV,",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L152",
- "community": 86,
- "norm_label": "upload a file to the sandbox filesystem. use this to push data files (csv,",
- "id": "prometheus_tools_rationale_152"
+ "label": "code:python (from main.app.prometheus.sandbox import SandboxManager)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L862",
+ "community": 199,
+ "norm_label": "code:python (from main.app.prometheus.sandbox import sandboxmanager)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_22"
},
{
- "label": "Check if a computed result exists in the cache. Use before executing expens",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L166",
- "community": 86,
- "norm_label": "check if a computed result exists in the cache. use before executing expens",
- "id": "prometheus_tools_rationale_166"
+ "label": "code:python (def makeChat(self, sessions, history, *, system_prompt=None,)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L871",
+ "community": 199,
+ "norm_label": "code:python (def makechat(self, sessions, history, *, system_prompt=none,)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_23"
},
{
- "label": ".test_build_system_prompt_no_state()",
- "file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L9",
- "community": 107,
- "norm_label": ".test_build_system_prompt_no_state()",
- "id": "tests_test_agent_sandbox_integration_testagentsandboxintegration_test_build_system_prompt_no_state"
+ "label": "code:python (async def streamMessage(self, query=None, sessionId=None, db)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L880",
+ "community": 199,
+ "norm_label": "code:python (async def streammessage(self, query=none, sessionid=none, db)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_24"
},
{
- "label": ".test_build_system_prompt_empty_state()",
- "file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L20",
- "community": 107,
- "norm_label": ".test_build_system_prompt_empty_state()",
- "id": "tests_test_agent_sandbox_integration_testagentsandboxintegration_test_build_system_prompt_empty_state"
+ "label": "code:bash (git add main/app/prometheus/agent.py tests/test_harness.py)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L974",
+ "community": 199,
+ "norm_label": "code:bash (git add main/app/prometheus/agent.py tests/test_harness.py)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_25"
},
{
- "label": ".test_system_prompt_includes_state_instructions()",
- "file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L25",
- "community": 107,
- "norm_label": ".test_system_prompt_includes_state_instructions()",
- "id": "tests_test_agent_sandbox_integration_testagentsandboxintegration_test_system_prompt_includes_state_instructions"
+ "label": "Task 7: Docker \u2014 CubeSandbox Template + Compose Service",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L981",
+ "community": 248,
+ "norm_label": "task 7: docker \u2014 cubesandbox template + compose service",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_task_7_docker_cubesandbox_template_compose_service"
},
{
- "label": ".test_system_prompt_includes_sandbox_instructions()",
- "file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L30",
- "community": 107,
- "norm_label": ".test_system_prompt_includes_sandbox_instructions()",
- "id": "tests_test_agent_sandbox_integration_testagentsandboxintegration_test_system_prompt_includes_sandbox_instructions"
+ "label": "code:dockerfile (FROM python:3.11-slim)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L993",
+ "community": 248,
+ "norm_label": "code:dockerfile (from python:3.11-slim)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_26"
},
{
- "label": ".test_system_prompt_includes_cache_instructions()",
- "file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L34",
- "community": 107,
- "norm_label": ".test_system_prompt_includes_cache_instructions()",
- "id": "tests_test_agent_sandbox_integration_testagentsandboxintegration_test_system_prompt_includes_cache_instructions"
+ "label": "code:yaml (sandbox:)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L1011",
+ "community": 248,
+ "norm_label": "code:yaml (sandbox:)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_27"
},
{
- "label": ".test_makeChat_uses_tool_registry()",
- "file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L38",
- "community": 107,
- "norm_label": ".test_makechat_uses_tool_registry()",
- "id": "tests_test_agent_sandbox_integration_testagentsandboxintegration_test_makechat_uses_tool_registry"
+ "label": "code:bash (git add Dockerfile.sandbox docker-compose.yml)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L1024",
+ "community": 248,
+ "norm_label": "code:bash (git add dockerfile.sandbox docker-compose.yml)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_28"
},
{
- "label": "test_streamMessage_creates_loop_logger_and_cache()",
- "file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L48",
- "community": 24,
- "norm_label": "test_streammessage_creates_loop_logger_and_cache()",
- "id": "tests_test_agent_sandbox_integration_test_streammessage_creates_loop_logger_and_cache"
+ "label": "Task 8: System Prompt \u2014 Teach LLM About Sandbox",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L1031",
+ "community": 158,
+ "norm_label": "task 8: system prompt \u2014 teach llm about sandbox",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_task_8_system_prompt_teach_llm_about_sandbox"
},
{
- "label": "test_streamMessage_sandbox_creation_failure_falls_back()",
- "file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L150",
- "community": 24,
- "norm_label": "test_streammessage_sandbox_creation_failure_falls_back()",
- "id": "tests_test_agent_sandbox_integration_test_streammessage_sandbox_creation_failure_falls_back"
+ "label": "code:python (SYSTEM_PROMPT = \"\"\")",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L1044",
+ "community": 158,
+ "norm_label": "code:python (system_prompt = \"\"\")",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_29"
},
{
- "label": "When sandbox creation fails, agent falls back to chat-only mode.",
- "file_type": "rationale",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L151",
- "community": 354,
- "norm_label": "when sandbox creation fails, agent falls back to chat-only mode.",
- "id": "tests_test_agent_sandbox_integration_rationale_151"
+ "label": "code:bash (git add main/app/prometheus/agent.py)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L1073",
+ "community": 158,
+ "norm_label": "code:bash (git add main/app/prometheus/agent.py)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_30"
},
{
- "label": "test_cache.py",
- "file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L1",
- "community": 222,
- "norm_label": "test_cache.py",
- "id": "tests_test_cache_py"
+ "label": "Task 9: Frontend \u2014 SandboxArtifact Component",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L1080",
+ "community": 249,
+ "norm_label": "task 9: frontend \u2014 sandboxartifact component",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_task_9_frontend_sandboxartifact_component"
},
{
- "label": "cache()",
- "file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L11",
- "community": 222,
- "norm_label": "cache()",
- "id": "tests_test_cache_cache"
+ "label": "code:tsx (import React from \"react\";)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L1091",
+ "community": 249,
+ "norm_label": "code:tsx (import react from \"react\";)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_31"
},
{
- "label": "TestResultCache",
- "file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L15",
- "community": 222,
- "norm_label": "testresultcache",
- "id": "tests_test_cache_testresultcache"
+ "label": "code:tsx (import { SandboxArtifactList } from \"./SandboxArtifact\";)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L1135",
+ "community": 249,
+ "norm_label": "code:tsx (import { sandboxartifactlist } from \"./sandboxartifact\";)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_32"
},
{
- "label": ".test_set_and_get()",
- "file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L16",
- "community": 222,
- "norm_label": ".test_set_and_get()",
- "id": "tests_test_cache_testresultcache_test_set_and_get"
+ "label": "code:bash (git add frontend/src/components/SandboxArtifact.tsx)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L1146",
+ "community": 249,
+ "norm_label": "code:bash (git add frontend/src/components/sandboxartifact.tsx)",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_codeblock_33"
},
{
- "label": ".test_get_miss()",
- "file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L24",
- "community": 222,
- "norm_label": ".test_get_miss()",
- "id": "tests_test_cache_testresultcache_test_get_miss"
+ "label": "Summary",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L1153",
+ "community": 158,
+ "norm_label": "summary",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_summary"
},
{
- "label": ".test_exists()",
- "file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L27",
- "community": 222,
- "norm_label": ".test_exists()",
- "id": "tests_test_cache_testresultcache_test_exists"
+ "label": "How This Compares to ComputerUse",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-architecture.md",
+ "source_location": "L1171",
+ "community": 158,
+ "norm_label": "how this compares to computeruse",
+ "id": "plans_2026_07_16_prometheus_harness_architecture_how_this_compares_to_computeruse"
},
{
- "label": ".test_different_codes_different_hashes()",
- "file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L32",
- "community": 222,
- "norm_label": ".test_different_codes_different_hashes()",
- "id": "tests_test_cache_testresultcache_test_different_codes_different_hashes"
+ "label": "2026-07-16-prometheus-harness-master-v2.md",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1",
+ "community": 111,
+ "norm_label": "2026-07-16-prometheus-harness-master-v2.md",
+ "id": "docs_superpowers_plans_2026_07_16_prometheus_harness_master_v2_md"
},
{
- "label": ".test_invalidate()",
- "file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L38",
- "community": 222,
- "norm_label": ".test_invalidate()",
- "id": "tests_test_cache_testresultcache_test_invalidate"
+ "label": "Prometheus Harness \u2014 Master Implementation Plan (v2: CubeSandbox + On-Demand)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1",
+ "community": 111,
+ "norm_label": "prometheus harness \u2014 master implementation plan (v2: cubesandbox + on-demand)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_prometheus_harness_master_implementation_plan_v2_cubesandbox_on_demand"
},
{
- "label": ".test_invalidate_does_not_affect_other_sessions()",
- "file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L45",
- "community": 222,
- "norm_label": ".test_invalidate_does_not_affect_other_sessions()",
- "id": "tests_test_cache_testresultcache_test_invalidate_does_not_affect_other_sessions"
+ "label": "Global Constraints",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L15",
+ "community": 111,
+ "norm_label": "global constraints",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_global_constraints"
},
{
- "label": ".test_invalidate_does_not_affect_other_users()",
- "file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L52",
- "community": 222,
- "norm_label": ".test_invalidate_does_not_affect_other_users()",
- "id": "tests_test_cache_testresultcache_test_invalidate_does_not_affect_other_users"
+ "label": "Architecture",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L31",
+ "community": 201,
+ "norm_label": "architecture",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_architecture"
},
{
- "label": ".test_set_creates_directories()",
- "file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L59",
- "community": 222,
- "norm_label": ".test_set_creates_directories()",
- "id": "tests_test_cache_testresultcache_test_set_creates_directories"
+ "label": "code:block1 (User: \"Analyze PETR4 vs VALE3 correlation over 5 years\")",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L33",
+ "community": 201,
+ "norm_label": "code:block1 (user: \"analyze petr4 vs vale3 correlation over 5 years\")",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_1"
},
{
- "label": ".test_overwrite_same_code()",
- "file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L66",
- "community": 222,
- "norm_label": ".test_overwrite_same_code()",
- "id": "tests_test_cache_testresultcache_test_overwrite_same_code"
+ "label": "On-Demand Sandbox Lifecycle",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L78",
+ "community": 201,
+ "norm_label": "on-demand sandbox lifecycle",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_on_demand_sandbox_lifecycle"
},
{
- "label": ".test_invalidate_empty_session()",
- "file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L72",
- "community": 222,
- "norm_label": ".test_invalidate_empty_session()",
- "id": "tests_test_cache_testresultcache_test_invalidate_empty_session"
+ "label": "code:block2 (Request Start:)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L80",
+ "community": 201,
+ "norm_label": "code:block2 (request start:)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_2"
},
{
- "label": ".test_json_roundtrip()",
- "file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L76",
- "community": 222,
- "norm_label": ".test_json_roundtrip()",
- "id": "tests_test_cache_testresultcache_test_json_roundtrip"
+ "label": "CubeCoW Checkpoint Persistence",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L100",
+ "community": 201,
+ "norm_label": "cubecow checkpoint persistence",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_cubecow_checkpoint_persistence"
},
{
- "label": "Tests for ResultCache.",
- "file_type": "rationale",
- "source_file": "tests/test_cache.py",
- "source_location": "L1",
- "community": 222,
- "norm_label": "tests for resultcache.",
- "id": "tests_test_cache_rationale_1"
+ "label": "code:block3 (Session 1 (premium user):)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L102",
+ "community": 201,
+ "norm_label": "code:block3 (session 1 (premium user):)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_3"
},
{
- "label": "test_config_sandbox.py",
- "file_type": "code",
- "source_file": "tests/test_config_sandbox.py",
- "source_location": "L1",
- "community": 80,
- "norm_label": "test_config_sandbox.py",
- "id": "tests_test_config_sandbox_py"
+ "label": "File Map",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L116",
+ "community": 111,
+ "norm_label": "file map",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_file_map"
},
{
- "label": "TestSandboxConfig",
- "file_type": "code",
- "source_file": "tests/test_config_sandbox.py",
- "source_location": "L5",
- "community": 497,
- "norm_label": "testsandboxconfig",
- "id": "tests_test_config_sandbox_testsandboxconfig"
+ "label": "Phase 1: HarnessState (In-Memory Agent Scratchpad)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L141",
+ "community": 111,
+ "norm_label": "phase 1: harnessstate (in-memory agent scratchpad)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_phase_1_harnessstate_in_memory_agent_scratchpad"
},
{
- "label": ".test_sandbox_defaults()",
- "file_type": "code",
- "source_file": "tests/test_config_sandbox.py",
- "source_location": "L6",
- "community": 497,
- "norm_label": ".test_sandbox_defaults()",
- "id": "tests_test_config_sandbox_testsandboxconfig_test_sandbox_defaults"
+ "label": "Task 1: HarnessState Class",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L143",
+ "community": 111,
+ "norm_label": "task 1: harnessstate class",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_task_1_harnessstate_class"
},
{
- "label": ".test_sandbox_fields_exist()",
- "file_type": "code",
- "source_file": "tests/test_config_sandbox.py",
- "source_location": "L13",
- "community": 497,
- "norm_label": ".test_sandbox_fields_exist()",
- "id": "tests_test_config_sandbox_testsandboxconfig_test_sandbox_fields_exist"
+ "label": "code:python (import pytest)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L157",
+ "community": 111,
+ "norm_label": "code:python (import pytest)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_4"
},
{
- "label": ".test_sandbox_types()",
- "file_type": "code",
- "source_file": "tests/test_config_sandbox.py",
- "source_location": "L21",
- "community": 497,
- "norm_label": ".test_sandbox_types()",
- "id": "tests_test_config_sandbox_testsandboxconfig_test_sandbox_types"
+ "label": "code:python (import logging)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L230",
+ "community": 111,
+ "norm_label": "code:python (import logging)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_5"
},
{
- "label": "_FakeClient",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L9",
- "community": 96,
- "norm_label": "_fakeclient",
- "id": "tests_test_sandbox_fakeclient"
+ "label": "code:bash (git add main/app/prometheus/state.py tests/test_harness_stat)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L282",
+ "community": 111,
+ "norm_label": "code:bash (git add main/app/prometheus/state.py tests/test_harness_stat)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_6"
},
{
- "label": ".__init__()",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L12",
- "community": 96,
- "norm_label": ".__init__()",
- "id": "tests_test_sandbox_fakeclient_init"
+ "label": "Phase 2: On-Demand Sandbox Execution",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L289",
+ "community": 134,
+ "norm_label": "phase 2: on-demand sandbox execution",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_phase_2_on_demand_sandbox_execution"
},
{
- "label": ".set_response()",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L16",
- "community": 96,
- "norm_label": ".set_response()",
- "id": "tests_test_sandbox_fakeclient_set_response"
+ "label": "Task 2: Config \u2014 Add Sandbox Settings",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L291",
+ "community": 134,
+ "norm_label": "task 2: config \u2014 add sandbox settings",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_task_2_config_add_sandbox_settings"
},
{
- "label": ".post()",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L19",
- "community": 96,
- "norm_label": ".post()",
- "id": "tests_test_sandbox_fakeclient_post"
+ "label": "code:python (class PrometheusSettings(BaseMansaSettings):)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L304",
+ "community": 134,
+ "norm_label": "code:python (class prometheussettings(basemansasettings):)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_7"
},
{
- "label": ".get()",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L23",
- "community": 96,
- "norm_label": ".get()",
- "id": "tests_test_sandbox_fakeclient_get"
+ "label": "code:yaml (environment:)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L327",
+ "community": 134,
+ "norm_label": "code:yaml (environment:)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_8"
},
{
- "label": ".put()",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L27",
- "community": 96,
- "norm_label": ".put()",
- "id": "tests_test_sandbox_fakeclient_put"
+ "label": "code:yaml (sandbox:)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L338",
+ "community": 134,
+ "norm_label": "code:yaml (sandbox:)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_9"
},
{
- "label": ".delete()",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L31",
- "community": 96,
- "norm_label": ".delete()",
- "id": "tests_test_sandbox_fakeclient_delete"
+ "label": "code:yaml (volumes:)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L352",
+ "community": 134,
+ "norm_label": "code:yaml (volumes:)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_10"
},
{
- "label": ".__aenter__()",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L35",
- "community": 96,
- "norm_label": ".__aenter__()",
- "id": "tests_test_sandbox_fakeclient_aenter"
+ "label": "code:bash (git add config.py docker-compose.yml)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L359",
+ "community": 134,
+ "norm_label": "code:bash (git add config.py docker-compose.yml)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_11"
},
{
- "label": ".__aexit__()",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L38",
- "community": 96,
- "norm_label": ".__aexit__()",
- "id": "tests_test_sandbox_fakeclient_aexit"
+ "label": "Task 3: SandboxManager \u2014 On-Demand HTTP Client for CubeSandbox",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L366",
+ "community": 134,
+ "norm_label": "task 3: sandboxmanager \u2014 on-demand http client for cubesandbox",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_task_3_sandboxmanager_on_demand_http_client_for_cubesandbox"
},
{
- "label": "_ok_response()",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L42",
- "community": 96,
- "norm_label": "_ok_response()",
- "id": "tests_test_sandbox_ok_response"
+ "label": "code:python (import pytest)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L382",
+ "community": 134,
+ "norm_label": "code:python (import pytest)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_12"
},
{
- "label": "TestSandboxCreate",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L50",
- "community": 2,
- "norm_label": "testsandboxcreate",
- "id": "tests_test_sandbox_testsandboxcreate"
+ "label": "code:python (import logging)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L479",
+ "community": 134,
+ "norm_label": "code:python (import logging)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_13"
},
{
- "label": "test_create_fallback_id_on_empty_response()",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L60",
- "community": 96,
- "norm_label": "test_create_fallback_id_on_empty_response()",
- "id": "tests_test_sandbox_test_create_fallback_id_on_empty_response"
+ "label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox.py)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L589",
+ "community": 134,
+ "norm_label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox.py)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_14"
},
{
- "label": "TestSandboxExecute",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L68",
- "community": 2,
- "norm_label": "testsandboxexecute",
- "id": "tests_test_sandbox_testsandboxexecute"
+ "label": "Phase 3: Result Cache",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L596",
+ "community": 229,
+ "norm_label": "phase 3: result cache",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_phase_3_result_cache"
},
{
- "label": "test_execute_returns_stdout_stderr()",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L70",
- "community": 96,
- "norm_label": "test_execute_returns_stdout_stderr()",
- "id": "tests_test_sandbox_test_execute_returns_stdout_stderr"
+ "label": "Task 4: ResultCache \u2014 SHA256-Keyed Computed Results",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L598",
+ "community": 229,
+ "norm_label": "task 4: resultcache \u2014 sha256-keyed computed results",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_task_4_resultcache_sha256_keyed_computed_results"
},
{
- "label": "test_execute_sends_code_in_body()",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L79",
- "community": 96,
- "norm_label": "test_execute_sends_code_in_body()",
- "id": "tests_test_sandbox_test_execute_sends_code_in_body"
+ "label": "code:python (import pytest)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L612",
+ "community": 229,
+ "norm_label": "code:python (import pytest)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_15"
},
{
- "label": "TestSandboxCheckpoint",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L87",
- "community": 2,
- "norm_label": "testsandboxcheckpoint",
- "id": "tests_test_sandbox_testsandboxcheckpoint"
+ "label": "code:python (import hashlib)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L663",
+ "community": 229,
+ "norm_label": "code:python (import hashlib)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_16"
},
{
- "label": "test_checkpoint_returns_checkpoint_id()",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L89",
- "community": 96,
- "norm_label": "test_checkpoint_returns_checkpoint_id()",
- "id": "tests_test_sandbox_test_checkpoint_returns_checkpoint_id"
+ "label": "code:bash (git add main/app/prometheus/cache.py tests/test_cache.py)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L722",
+ "community": 229,
+ "norm_label": "code:bash (git add main/app/prometheus/cache.py tests/test_cache.py)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_17"
},
{
- "label": "TestSandboxRestore",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L97",
- "community": 2,
- "norm_label": "testsandboxrestore",
- "id": "tests_test_sandbox_testsandboxrestore"
+ "label": "Phase 4: ToolContext (Bundled Dispatch Dependencies)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L729",
+ "community": 185,
+ "norm_label": "phase 4: toolcontext (bundled dispatch dependencies)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_phase_4_toolcontext_bundled_dispatch_dependencies"
},
{
- "label": "test_restore_returns_new_sandbox_id()",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L99",
- "community": 96,
- "norm_label": "test_restore_returns_new_sandbox_id()",
- "id": "tests_test_sandbox_test_restore_returns_new_sandbox_id"
+ "label": "Task 5: ToolContext \u2014 Dataclass for Agent Use",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L731",
+ "community": 185,
+ "norm_label": "task 5: toolcontext \u2014 dataclass for agent use",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_task_5_toolcontext_dataclass_for_agent_use"
},
{
- "label": "TestSandboxUploadFile",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L107",
- "community": 2,
- "norm_label": "testsandboxuploadfile",
- "id": "tests_test_sandbox_testsandboxuploadfile"
+ "label": "code:python (import pytest)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L747",
+ "community": 185,
+ "norm_label": "code:python (import pytest)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_18"
},
{
- "label": "test_upload_file_returns_true_on_success()",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L109",
- "community": 96,
- "norm_label": "test_upload_file_returns_true_on_success()",
- "id": "tests_test_sandbox_test_upload_file_returns_true_on_success"
+ "label": "code:python (from __future__ import annotations)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L820",
+ "community": 185,
+ "norm_label": "code:python (from __future__ import annotations)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_19"
},
{
- "label": "test_upload_file_returns_false_on_error()",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L117",
- "community": 96,
- "norm_label": "test_upload_file_returns_false_on_error()",
- "id": "tests_test_sandbox_test_upload_file_returns_false_on_error"
+ "label": "code:bash (git add main/app/prometheus/context.py tests/test_context.py)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L857",
+ "community": 185,
+ "norm_label": "code:bash (git add main/app/prometheus/context.py tests/test_context.py)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_20"
},
{
- "label": "TestSandboxReadFile",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L125",
- "community": 2,
- "norm_label": "testsandboxreadfile",
- "id": "tests_test_sandbox_testsandboxreadfile"
+ "label": "Phase 5: Observable Loop (Batched)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L864",
+ "community": 202,
+ "norm_label": "phase 5: observable loop (batched)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_phase_5_observable_loop_batched"
},
{
- "label": "test_read_file_returns_content()",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L127",
- "community": 96,
- "norm_label": "test_read_file_returns_content()",
- "id": "tests_test_sandbox_test_read_file_returns_content"
+ "label": "Task 6: LoopEvent Model + LoopLogger",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L866",
+ "community": 202,
+ "norm_label": "task 6: loopevent model + looplogger",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_task_6_loopevent_model_looplogger"
},
{
- "label": "TestSandboxDestroy",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L135",
- "community": 2,
- "norm_label": "testsandboxdestroy",
- "id": "tests_test_sandbox_testsandboxdestroy"
+ "label": "code:python (import pytest)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L881",
+ "community": 202,
+ "norm_label": "code:python (import pytest)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_21"
},
{
- "label": "test_destroy_calls_delete()",
- "file_type": "code",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L137",
- "community": 96,
- "norm_label": "test_destroy_calls_delete()",
- "id": "tests_test_sandbox_test_destroy_calls_delete"
+ "label": "code:python (from datetime import datetime, timezone)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L944",
+ "community": 202,
+ "norm_label": "code:python (from datetime import datetime, timezone)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_22"
},
{
- "label": "Unit tests for SandboxManager \u2014 HTTP calls mocked via a fake client class.",
- "file_type": "rationale",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L1",
- "community": 2,
- "norm_label": "unit tests for sandboxmanager \u2014 http calls mocked via a fake client class.",
- "id": "tests_test_sandbox_rationale_1"
+ "label": "code:python (import logging)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L974",
+ "community": 202,
+ "norm_label": "code:python (import logging)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_23"
},
{
- "label": "Fake httpx.AsyncClient that records calls and returns pre-set responses.",
- "file_type": "rationale",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L10",
- "community": 96,
- "norm_label": "fake httpx.asyncclient that records calls and returns pre-set responses.",
- "id": "tests_test_sandbox_rationale_10"
+ "label": "code:bash (git add main/models/harness.py main/app/prometheus/events.py)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1031",
+ "community": 202,
+ "norm_label": "code:bash (git add main/models/harness.py main/app/prometheus/events.py)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_24"
},
{
- "label": ".test_read_sandbox_file_in_registry()",
- "file_type": "code",
- "source_file": "tests/test_sandbox_tools.py",
- "source_location": "L12",
- "community": 263,
- "norm_label": ".test_read_sandbox_file_in_registry()",
- "id": "tests_test_sandbox_tools_testsandboxtooldefinitions_test_read_sandbox_file_in_registry"
+ "label": "Phase 6: Agent Integration (All Layers)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1038",
+ "community": 121,
+ "norm_label": "phase 6: agent integration (all layers)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_phase_6_agent_integration_all_layers"
},
{
- "label": ".test_check_cache_in_registry()",
- "file_type": "code",
- "source_file": "tests/test_sandbox_tools.py",
- "source_location": "L15",
- "community": 263,
- "norm_label": ".test_check_cache_in_registry()",
- "id": "tests_test_sandbox_tools_testsandboxtooldefinitions_test_check_cache_in_registry"
+ "label": "Task 7: Tool Definitions \u2014 Sandbox + Cache Tools in TOOL_REGISTRY",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1040",
+ "community": 121,
+ "norm_label": "task 7: tool definitions \u2014 sandbox + cache tools in tool_registry",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_task_7_tool_definitions_sandbox_cache_tools_in_tool_registry"
},
{
- "label": ".test_read_sandbox_file_has_docstring()",
- "file_type": "code",
- "source_file": "tests/test_sandbox_tools.py",
- "source_location": "L23",
- "community": 263,
- "norm_label": ".test_read_sandbox_file_has_docstring()",
- "id": "tests_test_sandbox_tools_testsandboxtooldefinitions_test_read_sandbox_file_has_docstring"
+ "label": "code:python (import inspect)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1056",
+ "community": 121,
+ "norm_label": "code:python (import inspect)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_25"
},
{
- "label": ".test_check_cache_has_docstring()",
- "file_type": "code",
- "source_file": "tests/test_sandbox_tools.py",
- "source_location": "L28",
- "community": 263,
- "norm_label": ".test_check_cache_has_docstring()",
- "id": "tests_test_sandbox_tools_testsandboxtooldefinitions_test_check_cache_has_docstring"
+ "label": "code:python (from main.app.prometheus.sandbox import SandboxManager)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1153",
+ "community": 121,
+ "norm_label": "code:python (from main.app.prometheus.sandbox import sandboxmanager)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_26"
},
{
- "label": "TestCheckCache",
- "file_type": "code",
- "source_file": "tests/test_sandbox_tools.py",
- "source_location": "L34",
- "community": 49,
- "norm_label": "testcheckcache",
- "id": "tests_test_sandbox_tools_testcheckcache"
+ "label": "code:python (TOOL_REGISTRY: dict[str, Any] = {)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1221",
+ "community": 121,
+ "norm_label": "code:python (tool_registry: dict[str, any] = {)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_27"
},
{
- "label": "test_check_cache_hit()",
- "file_type": "code",
- "source_file": "tests/test_sandbox_tools.py",
- "source_location": "L36",
- "community": 49,
- "norm_label": "test_check_cache_hit()",
- "id": "tests_test_sandbox_tools_test_check_cache_hit"
+ "label": "code:python (async def dispatchToolCall()",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1235",
+ "community": 174,
+ "norm_label": "code:python (async def dispatchtoolcall()",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_28"
},
{
- "label": "test_check_cache_miss()",
- "file_type": "code",
- "source_file": "tests/test_sandbox_tools.py",
- "source_location": "L44",
- "community": 49,
- "norm_label": "test_check_cache_miss()",
- "id": "tests_test_sandbox_tools_test_check_cache_miss"
+ "label": "code:bash (git add main/app/prometheus/tools.py tests/test_sandbox_tool)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1281",
+ "community": 174,
+ "norm_label": "code:bash (git add main/app/prometheus/tools.py tests/test_sandbox_tool)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_29"
},
{
- "label": "test_check_cache_no_cache()",
- "file_type": "code",
- "source_file": "tests/test_sandbox_tools.py",
- "source_location": "L51",
- "community": 49,
- "norm_label": "test_check_cache_no_cache()",
- "id": "tests_test_sandbox_tools_test_check_cache_no_cache"
+ "label": "Task 8: Agent Integration \u2014 On-Demand Sandbox + Premium Gating",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1288",
+ "community": 174,
+ "norm_label": "task 8: agent integration \u2014 on-demand sandbox + premium gating",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_task_8_agent_integration_on_demand_sandbox_premium_gating"
},
{
- "label": "test_dispatch_execute_code_routes_to_registry()",
- "file_type": "code",
- "source_file": "tests/test_sandbox_tools.py",
- "source_location": "L59",
- "community": 49,
- "norm_label": "test_dispatch_execute_code_routes_to_registry()",
- "id": "tests_test_sandbox_tools_test_dispatch_execute_code_routes_to_registry"
+ "label": "code:python (import pytest)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1304",
+ "community": 174,
+ "norm_label": "code:python (import pytest)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_30"
},
{
- "label": "test_streamMessage_premium_creates_sandbox_on_execute_code()",
- "file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L93",
- "community": 24,
- "norm_label": "test_streammessage_premium_creates_sandbox_on_execute_code()",
- "id": "tests_test_agent_sandbox_integration_test_streammessage_premium_creates_sandbox_on_execute_code"
+ "label": "code:python (from main.app.prometheus.tools import TOOL_REGISTRY, dispatc)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1351",
+ "community": 174,
+ "norm_label": "code:python (from main.app.prometheus.tools import tool_registry, dispatc)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_31"
},
{
- "label": "test_streamMessage_non_premium_blocks_sandbox()",
- "file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L150",
- "community": 24,
- "norm_label": "test_streammessage_non_premium_blocks_sandbox()",
- "id": "tests_test_agent_sandbox_integration_test_streammessage_non_premium_blocks_sandbox"
+ "label": "code:python (def makeChat(self, sessions, history, *, system_prompt=None,)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1363",
+ "community": 174,
+ "norm_label": "code:python (def makechat(self, sessions, history, *, system_prompt=none,)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_32"
},
{
- "label": "streamMessage should create a HarnessState and pass it to buildSystemPrompt.",
- "file_type": "rationale",
- "source_file": "tests/test_agent_state_integration.py",
- "source_location": "L85",
- "community": 355,
- "norm_label": "streammessage should create a harnessstate and pass it to buildsystemprompt.",
- "id": "tests_test_agent_state_integration_rationale_85"
+ "label": "code:python (async def streamMessage()",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1383",
+ "community": 174,
+ "norm_label": "code:python (async def streammessage()",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_33"
},
{
- "label": "streamMessage should pass state to dispatchToolCall.",
- "file_type": "rationale",
- "source_file": "tests/test_agent_state_integration.py",
- "source_location": "L125",
- "community": 356,
- "norm_label": "streammessage should pass state to dispatchtoolcall.",
- "id": "tests_test_agent_state_integration_rationale_125"
+ "label": "code:bash (git add main/app/prometheus/agent.py tests/test_agent_sandbo)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1517",
+ "community": 174,
+ "norm_label": "code:bash (git add main/app/prometheus/agent.py tests/test_agent_sandbo)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_34"
},
{
- "label": "System prompt should instruct LLM about harness state usage.",
- "file_type": "rationale",
- "source_file": "tests/test_agent_state_integration.py",
- "source_location": "L185",
- "community": 93,
- "norm_label": "system prompt should instruct llm about harness state usage.",
- "id": "tests_test_agent_state_integration_rationale_185"
- },
+ "label": "Task 9: System Prompt \u2014 Teach LLM About On-Demand Sandbox",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1524",
+ "community": 121,
+ "norm_label": "task 9: system prompt \u2014 teach llm about on-demand sandbox",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_task_9_system_prompt_teach_llm_about_on_demand_sandbox"
+ },
{
- "label": "System prompt should instruct LLM about memory vs state.",
- "file_type": "rationale",
- "source_file": "tests/test_agent_state_integration.py",
- "source_location": "L194",
- "community": 93,
- "norm_label": "system prompt should instruct llm about memory vs state.",
- "id": "tests_test_agent_state_integration_rationale_194"
+ "label": "code:python (## Code Sandbox (On-Demand))",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1539",
+ "community": 121,
+ "norm_label": "code:python (## code sandbox (on-demand))",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_35"
},
{
- "label": "context.py",
- "file_type": "code",
- "source_file": "main/app/prometheus/context.py",
- "source_location": "L1",
- "community": 32,
- "norm_label": "context.py",
- "id": "main_app_prometheus_context_py"
+ "label": "code:bash (git add main/app/prometheus/agent.py)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1568",
+ "community": 121,
+ "norm_label": "code:bash (git add main/app/prometheus/agent.py)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_36"
},
{
- "label": "ToolContext",
- "file_type": "code",
- "source_file": "main/app/prometheus/context.py",
- "source_location": "L13",
- "community": 32,
- "norm_label": "toolcontext",
- "id": "prometheus_context_toolcontext"
+ "label": "Task 10: Docker \u2014 CubeSandbox Template",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1575",
+ "community": 121,
+ "norm_label": "task 10: docker \u2014 cubesandbox template",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_task_10_docker_cubesandbox_template"
},
{
- "label": ".__post_init__()",
- "file_type": "code",
- "source_file": "main/app/prometheus/context.py",
- "source_location": "L22",
- "community": 32,
- "norm_label": ".__post_init__()",
- "id": "prometheus_context_toolcontext_post_init"
+ "label": "code:dockerfile (FROM python:3.11-slim)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1586",
+ "community": 121,
+ "norm_label": "code:dockerfile (from python:3.11-slim)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_37"
},
{
- "label": "Read a file from the sandbox filesystem. Args: path: Absolute pa",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L142",
- "community": 536,
- "norm_label": "read a file from the sandbox filesystem. args: path: absolute pa",
- "id": "prometheus_tools_rationale_142"
+ "label": "code:bash (git add Dockerfile.sandbox)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1604",
+ "community": 121,
+ "norm_label": "code:bash (git add dockerfile.sandbox)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_codeblock_38"
},
{
- "label": "test_context.py",
- "file_type": "code",
- "source_file": "tests/test_context.py",
- "source_location": "L1",
- "community": 32,
- "norm_label": "test_context.py",
- "id": "tests_test_context_py"
+ "label": "Summary",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1611",
+ "community": 111,
+ "norm_label": "summary",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_summary"
},
{
- "label": "TestToolContextCreation",
- "file_type": "code",
- "source_file": "tests/test_context.py",
- "source_location": "L9",
- "community": 32,
- "norm_label": "testtoolcontextcreation",
- "id": "tests_test_context_testtoolcontextcreation"
+ "label": "What This Enables",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1630",
+ "community": 111,
+ "norm_label": "what this enables",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_what_this_enables"
},
{
- "label": ".test_empty_context()",
- "file_type": "code",
- "source_file": "tests/test_context.py",
- "source_location": "L10",
- "community": 32,
- "norm_label": ".test_empty_context()",
- "id": "tests_test_context_testtoolcontextcreation_test_empty_context"
+ "label": "What This Does NOT Do (By Design)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1642",
+ "community": 111,
+ "norm_label": "what this does not do (by design)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_what_this_does_not_do_by_design"
},
{
- "label": ".test_full_context()",
- "file_type": "code",
- "source_file": "tests/test_context.py",
- "source_location": "L20",
- "community": 32,
- "norm_label": ".test_full_context()",
- "id": "tests_test_context_testtoolcontextcreation_test_full_context"
+ "label": "Resource Efficiency",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1651",
+ "community": 111,
+ "norm_label": "resource efficiency",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_resource_efficiency"
},
{
- "label": ".test_extracts_user_id_from_user_dict()",
- "file_type": "code",
- "source_file": "tests/test_context.py",
- "source_location": "L44",
- "community": 32,
- "norm_label": ".test_extracts_user_id_from_user_dict()",
- "id": "tests_test_context_testtoolcontextcreation_test_extracts_user_id_from_user_dict"
+ "label": "Relationship to Existing Systems",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1660",
+ "community": 111,
+ "norm_label": "relationship to existing systems",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_relationship_to_existing_systems"
},
{
- "label": ".test_user_id_override()",
- "file_type": "code",
- "source_file": "tests/test_context.py",
- "source_location": "L49",
- "community": 32,
- "norm_label": ".test_user_id_override()",
- "id": "tests_test_context_testtoolcontextcreation_test_user_id_override"
+ "label": "2026-07-16-prometheus-harness-master.md",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1",
+ "community": 144,
+ "norm_label": "2026-07-16-prometheus-harness-master.md",
+ "id": "docs_superpowers_plans_2026_07_16_prometheus_harness_master_md"
},
{
- "label": ".test_user_id_none_when_no_user()",
- "file_type": "code",
- "source_file": "tests/test_context.py",
- "source_location": "L55",
- "community": 32,
- "norm_label": ".test_user_id_none_when_no_user()",
- "id": "tests_test_context_testtoolcontextcreation_test_user_id_none_when_no_user"
+ "label": "Prometheus Harness \u2014 Master Implementation Plan",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1",
+ "community": 144,
+ "norm_label": "prometheus harness \u2014 master implementation plan",
+ "id": "plans_2026_07_16_prometheus_harness_master_prometheus_harness_master_implementation_plan"
},
{
- "label": ".test_user_id_none_when_user_has_no_id()",
- "file_type": "code",
- "source_file": "tests/test_context.py",
- "source_location": "L59",
- "community": 32,
- "norm_label": ".test_user_id_none_when_user_has_no_id()",
- "id": "tests_test_context_testtoolcontextcreation_test_user_id_none_when_user_has_no_id"
+ "label": "Global Constraints",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L15",
+ "community": 144,
+ "norm_label": "global constraints",
+ "id": "plans_2026_07_16_prometheus_harness_master_global_constraints"
},
{
- "label": "TestToolContextStateAccess",
- "file_type": "code",
- "source_file": "tests/test_context.py",
- "source_location": "L64",
- "community": 32,
- "norm_label": "testtoolcontextstateaccess",
- "id": "tests_test_context_testtoolcontextstateaccess"
+ "label": "File Map",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L28",
+ "community": 144,
+ "norm_label": "file map",
+ "id": "plans_2026_07_16_prometheus_harness_master_file_map"
},
{
- "label": ".test_state_get()",
- "file_type": "code",
- "source_file": "tests/test_context.py",
- "source_location": "L65",
- "community": 32,
- "norm_label": ".test_state_get()",
- "id": "tests_test_context_testtoolcontextstateaccess_test_state_get"
+ "label": "Architecture",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L51",
+ "community": 144,
+ "norm_label": "architecture",
+ "id": "plans_2026_07_16_prometheus_harness_master_architecture"
},
{
- "label": ".test_state_set()",
- "file_type": "code",
- "source_file": "tests/test_context.py",
- "source_location": "L71",
- "community": 32,
- "norm_label": ".test_state_set()",
- "id": "tests_test_context_testtoolcontextstateaccess_test_state_set"
+ "label": "code:block1 (User: \"Analyze PETR4 vs VALE3 correlation over 5 years\")",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L53",
+ "community": 144,
+ "norm_label": "code:block1 (user: \"analyze petr4 vs vale3 correlation over 5 years\")",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_1"
},
{
- "label": ".test_state_toDict()",
- "file_type": "code",
- "source_file": "tests/test_context.py",
- "source_location": "L77",
- "community": 32,
- "norm_label": ".test_state_todict()",
- "id": "tests_test_context_testtoolcontextstateaccess_test_state_toDict"
+ "label": "Phase 1: HarnessState (In-Memory Agent Scratchpad)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L93",
+ "community": 227,
+ "norm_label": "phase 1: harnessstate (in-memory agent scratchpad)",
+ "id": "plans_2026_07_16_prometheus_harness_master_phase_1_harnessstate_in_memory_agent_scratchpad"
},
{
- "label": "TestToolContextMcpClients",
- "file_type": "code",
- "source_file": "tests/test_context.py",
- "source_location": "L85",
- "community": 32,
- "norm_label": "testtoolcontextmcpclients",
- "id": "tests_test_context_testtoolcontextmcpclients"
+ "label": "Task 1: HarnessState Class",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L95",
+ "community": 227,
+ "norm_label": "task 1: harnessstate class",
+ "id": "plans_2026_07_16_prometheus_harness_master_task_1_harnessstate_class"
},
{
- "label": ".test_mcp_clients_isolation()",
- "file_type": "code",
- "source_file": "tests/test_context.py",
- "source_location": "L86",
- "community": 32,
- "norm_label": ".test_mcp_clients_isolation()",
- "id": "tests_test_context_testtoolcontextmcpclients_test_mcp_clients_isolation"
+ "label": "code:python (import pytest)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L109",
+ "community": 227,
+ "norm_label": "code:python (import pytest)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_2"
},
{
- "label": ".test_mcp_clients_passed_through()",
- "file_type": "code",
- "source_file": "tests/test_context.py",
- "source_location": "L93",
- "community": 32,
- "norm_label": ".test_mcp_clients_passed_through()",
- "id": "tests_test_context_testtoolcontextmcpclients_test_mcp_clients_passed_through"
+ "label": "code:python (import logging)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L182",
+ "community": 227,
+ "norm_label": "code:python (import logging)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_3"
},
{
- "label": "TestToolContextDataclass",
- "file_type": "code",
- "source_file": "tests/test_context.py",
- "source_location": "L99",
- "community": 32,
- "norm_label": "testtoolcontextdataclass",
- "id": "tests_test_context_testtoolcontextdataclass"
+ "label": "code:bash (git add main/app/prometheus/state.py tests/test_state.py)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L234",
+ "community": 227,
+ "norm_label": "code:bash (git add main/app/prometheus/state.py tests/test_state.py)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_4"
},
{
- "label": ".test_is_dataclass()",
- "file_type": "code",
- "source_file": "tests/test_context.py",
- "source_location": "L100",
- "community": 32,
- "norm_label": ".test_is_dataclass()",
- "id": "tests_test_context_testtoolcontextdataclass_test_is_dataclass"
+ "label": "Phase 2: Sandbox Execution",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L241",
+ "community": 145,
+ "norm_label": "phase 2: sandbox execution",
+ "id": "plans_2026_07_16_prometheus_harness_master_phase_2_sandbox_execution"
},
{
- "label": ".test_equality()",
- "file_type": "code",
- "source_file": "tests/test_context.py",
- "source_location": "L114",
- "community": 32,
- "norm_label": ".test_equality()",
- "id": "tests_test_context_testtoolcontextdataclass_test_equality"
+ "label": "Task 2: Config \u2014 Add Sandbox Settings",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L243",
+ "community": 145,
+ "norm_label": "task 2: config \u2014 add sandbox settings",
+ "id": "plans_2026_07_16_prometheus_harness_master_task_2_config_add_sandbox_settings"
},
{
- "label": "Unit tests for ToolContext dataclass.",
- "file_type": "rationale",
- "source_file": "tests/test_context.py",
- "source_location": "L1",
- "community": 32,
- "norm_label": "unit tests for toolcontext dataclass.",
- "id": "tests_test_context_rationale_1"
+ "label": "code:python (class PrometheusSettings(BaseMansaSettings):)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L256",
+ "community": 145,
+ "norm_label": "code:python (class prometheussettings(basemansasettings):)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_5"
},
{
- "label": "Explicit userId takes precedence over user dict.",
- "file_type": "rationale",
- "source_file": "tests/test_context.py",
- "source_location": "L50",
- "community": 32,
- "norm_label": "explicit userid takes precedence over user dict.",
- "id": "tests_test_context_rationale_50"
+ "label": "code:yaml (environment:)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L279",
+ "community": 145,
+ "norm_label": "code:yaml (environment:)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_6"
},
{
- "label": "Two contexts share no mutable defaults.",
- "file_type": "rationale",
- "source_file": "tests/test_context.py",
- "source_location": "L87",
- "community": 32,
- "norm_label": "two contexts share no mutable defaults.",
- "id": "tests_test_context_rationale_87"
+ "label": "code:yaml (sandbox:)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L290",
+ "community": 145,
+ "norm_label": "code:yaml (sandbox:)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_7"
},
{
- "label": "Dataclass equality works out of the box.",
- "file_type": "rationale",
- "source_file": "tests/test_context.py",
- "source_location": "L115",
- "community": 32,
- "norm_label": "dataclass equality works out of the box.",
- "id": "tests_test_context_rationale_115"
+ "label": "code:bash (git add config.py docker-compose.yml)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L302",
+ "community": 145,
+ "norm_label": "code:bash (git add config.py docker-compose.yml)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_8"
},
{
- "label": "._cache_path()",
- "file_type": "code",
- "source_file": "main/app/prometheus/cache.py",
- "source_location": "L19",
- "community": 222,
- "norm_label": "._cache_path()",
- "id": "prometheus_cache_resultcache_cache_path"
+ "label": "Task 3: SandboxManager \u2014 HTTP Client for CubeSandbox",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L309",
+ "community": 145,
+ "norm_label": "task 3: sandboxmanager \u2014 http client for cubesandbox",
+ "id": "plans_2026_07_16_prometheus_harness_master_task_3_sandboxmanager_http_client_for_cubesandbox"
},
{
- "label": "ResultCache \u2014 SHA256-keyed file-based cache for computed results.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/cache.py",
- "source_location": "L1",
- "community": 222,
- "norm_label": "resultcache \u2014 sha256-keyed file-based cache for computed results.",
- "id": "prometheus_cache_rationale_1"
+ "label": "code:python (import pytest)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L323",
+ "community": 145,
+ "norm_label": "code:python (import pytest)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_9"
},
{
- "label": "File-based cache keyed by SHA256 of code. Stores results as JSON under:",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/cache.py",
- "source_location": "L10",
- "community": 222,
- "norm_label": "file-based cache keyed by sha256 of code. stores results as json under:",
- "id": "prometheus_cache_rationale_10"
+ "label": "code:python (import logging)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L392",
+ "community": 145,
+ "norm_label": "code:python (import logging)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_10"
},
{
- "label": "Return cached result dict or None if miss.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/cache.py",
- "source_location": "L24",
- "community": 222,
- "norm_label": "return cached result dict or none if miss.",
- "id": "prometheus_cache_rationale_24"
+ "label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox.py)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L468",
+ "community": 145,
+ "norm_label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox.py)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_11"
},
{
- "label": "Store result with timestamp.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/cache.py",
- "source_location": "L31",
- "community": 222,
- "norm_label": "store result with timestamp.",
- "id": "prometheus_cache_rationale_31"
+ "label": "Phase 3: Result Cache",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L475",
+ "community": 226,
+ "norm_label": "phase 3: result cache",
+ "id": "plans_2026_07_16_prometheus_harness_master_phase_3_result_cache"
},
{
- "label": "Delete all cached results for a session.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/cache.py",
- "source_location": "L42",
- "community": 222,
- "norm_label": "delete all cached results for a session.",
- "id": "prometheus_cache_rationale_42"
+ "label": "Task 4: ResultCache \u2014 SHA256-Keyed Computed Results",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L477",
+ "community": 226,
+ "norm_label": "task 4: resultcache \u2014 sha256-keyed computed results",
+ "id": "plans_2026_07_16_prometheus_harness_master_task_4_resultcache_sha256_keyed_computed_results"
},
{
- "label": "Check if a result exists for the given code.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/cache.py",
- "source_location": "L50",
- "community": 222,
- "norm_label": "check if a result exists for the given code.",
- "id": "prometheus_cache_rationale_50"
+ "label": "code:python (import pytest)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L491",
+ "community": 226,
+ "norm_label": "code:python (import pytest)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_12"
},
{
- "label": "ToolContext \u2014 bundles all dependencies for tool execution. Replace passing user",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/context.py",
- "source_location": "L1",
- "community": 32,
- "norm_label": "toolcontext \u2014 bundles all dependencies for tool execution. replace passing user",
- "id": "prometheus_context_rationale_1"
+ "label": "code:python (import hashlib)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L542",
+ "community": 226,
+ "norm_label": "code:python (import hashlib)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_13"
},
{
- "label": "Single dependency bundle for tool execution. Created once per request in ag",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/context.py",
- "source_location": "L22",
- "community": 32,
- "norm_label": "single dependency bundle for tool execution. created once per request in ag",
- "id": "prometheus_context_rationale_22"
+ "label": "code:bash (git add main/app/prometheus/cache.py tests/test_cache.py)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L600",
+ "community": 226,
+ "norm_label": "code:bash (git add main/app/prometheus/cache.py tests/test_cache.py)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_14"
},
{
- "label": "Extract userId from user dict if not explicitly set.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/context.py",
- "source_location": "L38",
- "community": 32,
- "norm_label": "extract userid from user dict if not explicitly set.",
- "id": "prometheus_context_rationale_38"
+ "label": "Phase 4: ToolContext (Replace God Function)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L607",
+ "community": 228,
+ "norm_label": "phase 4: toolcontext (replace god function)",
+ "id": "plans_2026_07_16_prometheus_harness_master_phase_4_toolcontext_replace_god_function"
},
{
- "label": ".log()",
- "file_type": "code",
- "source_file": "main/app/prometheus/events.py",
- "source_location": "L16",
- "community": 12,
- "norm_label": ".log()",
- "id": "prometheus_events_looplogger_log"
+ "label": "Task 5: ToolContext \u2014 Single Dispatch Object",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L609",
+ "community": 228,
+ "norm_label": "task 5: toolcontext \u2014 single dispatch object",
+ "id": "plans_2026_07_16_prometheus_harness_master_task_5_toolcontext_single_dispatch_object"
},
{
- "label": "LoopLogger \u2014 batched event logging for observable agent loops.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/events.py",
- "source_location": "L1",
- "community": 12,
- "norm_label": "looplogger \u2014 batched event logging for observable agent loops.",
- "id": "prometheus_events_rationale_1"
+ "label": "code:python (import pytest)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L623",
+ "community": 228,
+ "norm_label": "code:python (import pytest)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_15"
},
{
- "label": "Queue events during a loop, flush to DB at end.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/events.py",
- "source_location": "L10",
- "community": 12,
- "norm_label": "queue events during a loop, flush to db at end.",
- "id": "prometheus_events_rationale_10"
+ "label": "code:python (import logging)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L673",
+ "community": 228,
+ "norm_label": "code:python (import logging)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_16"
},
{
- "label": "Log a generic event with optional metadata.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/events.py",
- "source_location": "L38",
- "community": 12,
- "norm_label": "log a generic event with optional metadata.",
- "id": "prometheus_events_rationale_38"
+ "label": "code:bash (git add main/app/prometheus/context.py tests/test_context.py)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L847",
+ "community": 228,
+ "norm_label": "code:bash (git add main/app/prometheus/context.py tests/test_context.py)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_17"
},
{
- "label": "Log a tool invocation.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/events.py",
- "source_location": "L44",
- "community": 12,
- "norm_label": "log a tool invocation.",
- "id": "prometheus_events_rationale_44"
+ "label": "Phase 5: Observable Loop (Batched)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L854",
+ "community": 200,
+ "norm_label": "phase 5: observable loop (batched)",
+ "id": "plans_2026_07_16_prometheus_harness_master_phase_5_observable_loop_batched"
},
{
- "label": "Log end of a turn with timing.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/events.py",
- "source_location": "L52",
- "community": 12,
- "norm_label": "log end of a turn with timing.",
- "id": "prometheus_events_rationale_52"
+ "label": "Task 6: LoopEvent Model + LoopLogger",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L856",
+ "community": 200,
+ "norm_label": "task 6: loopevent model + looplogger",
+ "id": "plans_2026_07_16_prometheus_harness_master_task_6_loopevent_model_looplogger"
},
{
- "label": "_base_url()",
- "file_type": "code",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L19",
- "community": 69,
- "norm_label": "_base_url()",
- "id": "prometheus_sandbox_base_url"
+ "label": "code:python (import pytest)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L871",
+ "community": 200,
+ "norm_label": "code:python (import pytest)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_18"
},
{
- "label": "SandboxManager \u2014 on-demand CubeSandbox (E2B-compatible) microVM manager. Lifecy",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L1",
- "community": 69,
- "norm_label": "sandboxmanager \u2014 on-demand cubesandbox (e2b-compatible) microvm manager. lifecy",
- "id": "prometheus_sandbox_rationale_1"
+ "label": "code:python (from datetime import datetime, timezone)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L934",
+ "community": 200,
+ "norm_label": "code:python (from datetime import datetime, timezone)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_19"
},
{
- "label": "Thin async wrapper around the CubeSandbox/E2B HTTP API. All methods are sta",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L24",
- "community": 2,
- "norm_label": "thin async wrapper around the cubesandbox/e2b http api. all methods are sta",
- "id": "prometheus_sandbox_rationale_24"
+ "label": "code:python (import logging)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L964",
+ "community": 200,
+ "norm_label": "code:python (import logging)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_20"
},
{
- "label": "Create a sandbox and return its ID.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L31",
- "community": 357,
- "norm_label": "create a sandbox and return its id.",
- "id": "prometheus_sandbox_rationale_31"
+ "label": "code:bash (git add main/models/harness.py main/app/prometheus/events.py)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1021",
+ "community": 200,
+ "norm_label": "code:bash (git add main/models/harness.py main/app/prometheus/events.py)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_21"
},
{
- "label": "Execute Python code inside the sandbox. Returns {stdout, stderr}.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L50",
- "community": 358,
- "norm_label": "execute python code inside the sandbox. returns {stdout, stderr}.",
- "id": "prometheus_sandbox_rationale_50"
+ "label": "Phase 6: Agent Integration (All Layers)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1028",
+ "community": 133,
+ "norm_label": "phase 6: agent integration (all layers)",
+ "id": "plans_2026_07_16_prometheus_harness_master_phase_6_agent_integration_all_layers"
},
{
- "label": "Snapshot sandbox state via CubeCoW. Returns checkpoint ID.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L58",
- "community": 359,
- "norm_label": "snapshot sandbox state via cubecow. returns checkpoint id.",
- "id": "prometheus_sandbox_rationale_58"
+ "label": "Task 7: Tool Definitions \u2014 State + Sandbox + Cache Tools",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1030",
+ "community": 133,
+ "norm_label": "task 7: tool definitions \u2014 state + sandbox + cache tools",
+ "id": "plans_2026_07_16_prometheus_harness_master_task_7_tool_definitions_state_sandbox_cache_tools"
},
{
- "label": "Restore a sandbox from a checkpoint. Returns new sandbox ID.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L71",
- "community": 360,
- "norm_label": "restore a sandbox from a checkpoint. returns new sandbox id.",
- "id": "prometheus_sandbox_rationale_71"
+ "label": "code:python (import inspect)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1043",
+ "community": 133,
+ "norm_label": "code:python (import inspect)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_22"
},
{
- "label": "Upload a file into the sandbox filesystem.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L80",
- "community": 361,
- "norm_label": "upload a file into the sandbox filesystem.",
- "id": "prometheus_sandbox_rationale_80"
+ "label": "code:python (from main.app.prometheus.state import HarnessState)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1090",
+ "community": 133,
+ "norm_label": "code:python (from main.app.prometheus.state import harnessstate)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_23"
},
{
- "label": "Read a file from the sandbox filesystem.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L90",
- "community": 362,
- "norm_label": "read a file from the sandbox filesystem.",
- "id": "prometheus_sandbox_rationale_90"
+ "label": "code:bash (git add main/app/prometheus/tools.py tests/test_tools.py)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1144",
+ "community": 133,
+ "norm_label": "code:bash (git add main/app/prometheus/tools.py tests/test_tools.py)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_24"
},
{
- "label": "harness.py",
- "file_type": "code",
- "source_file": "main/models/harness.py",
- "source_location": "L1",
- "community": 12,
- "norm_label": "harness.py",
- "id": "main_models_harness_py"
+ "label": "Task 8: Agent Integration \u2014 Wire Everything Together",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1151",
+ "community": 173,
+ "norm_label": "task 8: agent integration \u2014 wire everything together",
+ "id": "plans_2026_07_16_prometheus_harness_master_task_8_agent_integration_wire_everything_together"
},
{
- "label": "LoopEvent",
- "file_type": "code",
- "source_file": "main/models/harness.py",
- "source_location": "L7",
- "community": 12,
- "norm_label": "loopevent",
- "id": "models_harness_loopevent"
+ "label": "code:python (import pytest)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1164",
+ "community": 173,
+ "norm_label": "code:python (import pytest)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_25"
},
{
- "label": "LoopEvent model for observable agent loops.",
- "file_type": "rationale",
- "source_file": "main/models/harness.py",
- "source_location": "L1",
- "community": 12,
- "norm_label": "loopevent model for observable agent loops.",
- "id": "models_harness_rationale_1"
+ "label": "code:python (from main.app.prometheus.tools import MEMORY_TOOLS, STATE_TO)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1203",
+ "community": 173,
+ "norm_label": "code:python (from main.app.prometheus.tools import memory_tools, state_to)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_26"
},
{
- "label": "TestLoopEventModel",
- "file_type": "code",
- "source_file": "tests/test_events.py",
- "source_location": "L7",
- "community": 12,
- "norm_label": "testloopeventmodel",
- "id": "tests_test_events_testloopeventmodel"
+ "label": "code:python (@classmethod)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1214",
+ "community": 173,
+ "norm_label": "code:python (@classmethod)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_27"
},
{
- "label": ".test_create_event()",
- "file_type": "code",
- "source_file": "tests/test_events.py",
- "source_location": "L8",
- "community": 12,
- "norm_label": ".test_create_event()",
- "id": "tests_test_events_testloopeventmodel_test_create_event"
+ "label": "code:python (def makeChat(self, sessions, history, *, system_prompt=None,)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1242",
+ "community": 173,
+ "norm_label": "code:python (def makechat(self, sessions, history, *, system_prompt=none,)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_28"
},
{
- "label": ".test_event_fields()",
- "file_type": "code",
- "source_file": "tests/test_events.py",
- "source_location": "L14",
- "community": 12,
- "norm_label": ".test_event_fields()",
- "id": "tests_test_events_testloopeventmodel_test_event_fields"
+ "label": "code:python (async def streamMessage()",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1262",
+ "community": 173,
+ "norm_label": "code:python (async def streammessage()",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_29"
},
{
- "label": ".test_nullable_fields()",
- "file_type": "code",
- "source_file": "tests/test_events.py",
- "source_location": "L33",
- "community": 12,
- "norm_label": ".test_nullable_fields()",
- "id": "tests_test_events_testloopeventmodel_test_nullable_fields"
+ "label": "code:python (async def sendMessage()",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1361",
+ "community": 173,
+ "norm_label": "code:python (async def sendmessage()",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_30"
},
{
- "label": ".test_created_at_auto()",
- "file_type": "code",
- "source_file": "tests/test_events.py",
- "source_location": "L43",
- "community": 12,
- "norm_label": ".test_created_at_auto()",
- "id": "tests_test_events_testloopeventmodel_test_created_at_auto"
+ "label": "code:bash (git add main/app/prometheus/agent.py tests/test_agent_integr)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1403",
+ "community": 173,
+ "norm_label": "code:bash (git add main/app/prometheus/agent.py tests/test_agent_integr)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_31"
},
{
- "label": ".test_session_id_indexed()",
- "file_type": "code",
- "source_file": "tests/test_events.py",
- "source_location": "L50",
- "community": 12,
- "norm_label": ".test_session_id_indexed()",
- "id": "tests_test_events_testloopeventmodel_test_session_id_indexed"
+ "label": "Task 9: System Prompt \u2014 Teach LLM About State, Sandbox, and Cache",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1410",
+ "community": 133,
+ "norm_label": "task 9: system prompt \u2014 teach llm about state, sandbox, and cache",
+ "id": "plans_2026_07_16_prometheus_harness_master_task_9_system_prompt_teach_llm_about_state_sandbox_and_cache"
},
{
- "label": ".test_log_queues_event()",
- "file_type": "code",
- "source_file": "tests/test_events.py",
- "source_location": "L56",
- "community": 12,
- "norm_label": ".test_log_queues_event()",
- "id": "tests_test_events_testlooplogger_test_log_queues_event"
+ "label": "code:python (SYSTEM_PROMPT = \"\"\")",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1423",
+ "community": 133,
+ "norm_label": "code:python (system_prompt = \"\"\")",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_32"
},
{
- "label": ".test_flush_inserts_all()",
- "file_type": "code",
- "source_file": "tests/test_events.py",
- "source_location": "L62",
- "community": 12,
- "norm_label": ".test_flush_inserts_all()",
- "id": "tests_test_events_testlooplogger_test_flush_inserts_all"
+ "label": "code:bash (git add main/app/prometheus/agent.py)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1471",
+ "community": 133,
+ "norm_label": "code:bash (git add main/app/prometheus/agent.py)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_33"
},
{
- "label": ".test_flush_empty()",
- "file_type": "code",
- "source_file": "tests/test_events.py",
- "source_location": "L71",
- "community": 12,
- "norm_label": ".test_flush_empty()",
- "id": "tests_test_events_testlooplogger_test_flush_empty"
+ "label": "Task 10: Docker \u2014 CubeSandbox Template",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1478",
+ "community": 133,
+ "norm_label": "task 10: docker \u2014 cubesandbox template",
+ "id": "plans_2026_07_16_prometheus_harness_master_task_10_docker_cubesandbox_template"
},
{
- "label": ".test_flush_preserves_order()",
- "file_type": "code",
- "source_file": "tests/test_events.py",
- "source_location": "L76",
- "community": 12,
- "norm_label": ".test_flush_preserves_order()",
- "id": "tests_test_events_testlooplogger_test_flush_preserves_order"
+ "label": "code:dockerfile (FROM python:3.11-slim)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1489",
+ "community": 133,
+ "norm_label": "code:dockerfile (from python:3.11-slim)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_34"
},
{
- "label": ".test_multiple_flushes()",
- "file_type": "code",
- "source_file": "tests/test_events.py",
- "source_location": "L87",
- "community": 12,
- "norm_label": ".test_multiple_flushes()",
- "id": "tests_test_events_testlooplogger_test_multiple_flushes"
+ "label": "code:bash (git add Dockerfile.sandbox)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1507",
+ "community": 133,
+ "norm_label": "code:bash (git add dockerfile.sandbox)",
+ "id": "plans_2026_07_16_prometheus_harness_master_codeblock_35"
},
{
- "label": ".test_log_with_all_params()",
- "file_type": "code",
- "source_file": "tests/test_events.py",
- "source_location": "L95",
- "community": 12,
- "norm_label": ".test_log_with_all_params()",
- "id": "tests_test_events_testlooplogger_test_log_with_all_params"
+ "label": "Summary",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1514",
+ "community": 144,
+ "norm_label": "summary",
+ "id": "plans_2026_07_16_prometheus_harness_master_summary"
},
{
- "label": ".test_flush_failure_logged_not_raised()",
- "file_type": "code",
- "source_file": "tests/test_events.py",
- "source_location": "L113",
- "community": 12,
- "norm_label": ".test_flush_failure_logged_not_raised()",
- "id": "tests_test_events_testlooplogger_test_flush_failure_logged_not_raised"
+ "label": "What This Enables",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1533",
+ "community": 144,
+ "norm_label": "what this enables",
+ "id": "plans_2026_07_16_prometheus_harness_master_what_this_enables"
},
{
- "label": "If DB insert fails, flush should log error, not raise.",
- "file_type": "rationale",
- "source_file": "tests/test_events.py",
- "source_location": "L114",
- "community": 12,
- "norm_label": "if db insert fails, flush should log error, not raise.",
- "id": "tests_test_events_rationale_114"
+ "label": "What This Does NOT Do (By Design)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1542",
+ "community": 144,
+ "norm_label": "what this does not do (by design)",
+ "id": "plans_2026_07_16_prometheus_harness_master_what_this_does_not_do_by_design"
},
{
- "label": "test_system_prompt_includes_sandbox_instructions()",
- "file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L31",
- "community": 24,
- "norm_label": "test_system_prompt_includes_sandbox_instructions()",
- "id": "tests_test_agent_sandbox_integration_test_system_prompt_includes_sandbox_instructions"
+ "label": "Relationship to Existing Systems",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master.md",
+ "source_location": "L1550",
+ "community": 144,
+ "norm_label": "relationship to existing systems",
+ "id": "plans_2026_07_16_prometheus_harness_master_relationship_to_existing_systems"
},
{
- "label": "test_system_prompt_includes_cache_instructions()",
- "file_type": "code",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L36",
- "community": 24,
- "norm_label": "test_system_prompt_includes_cache_instructions()",
- "id": "tests_test_agent_sandbox_integration_test_system_prompt_includes_cache_instructions"
+ "label": "2026-07-16-prometheus-harness-state.md",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L1",
+ "community": 30,
+ "norm_label": "2026-07-16-prometheus-harness-state.md",
+ "id": "docs_superpowers_plans_2026_07_16_prometheus_harness_state_md"
},
{
- "label": "Retrieve values from the harness state. Use this to recall intermediate results,",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L77",
- "community": 99,
- "norm_label": "retrieve values from the harness state. use this to recall intermediate results,",
- "id": "prometheus_tools_rationale_77"
+ "label": "Prometheus Harness State \u2014 In-Memory Agent Scratchpad",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L1",
+ "community": 30,
+ "norm_label": "prometheus harness state \u2014 in-memory agent scratchpad",
+ "id": "plans_2026_07_16_prometheus_harness_state_prometheus_harness_state_in_memory_agent_scratchpad"
},
{
- "label": "Store a value in the harness state for this session. Use this to save interm",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L91",
- "community": 526,
- "norm_label": "store a value in the harness state for this session. use this to save interm",
- "id": "prometheus_tools_rationale_91"
- },
+ "label": "Global Constraints",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L11",
+ "community": 30,
+ "norm_label": "global constraints",
+ "id": "plans_2026_07_16_prometheus_harness_state_global_constraints"
+ },
{
- "label": "Phase 4: ToolContext (Replace God Function)",
+ "label": "Architecture",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L725",
- "community": 185,
- "norm_label": "phase 4: toolcontext (replace god function)",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_phase_4_toolcontext_replace_god_function"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L23",
+ "community": 30,
+ "norm_label": "architecture",
+ "id": "plans_2026_07_16_prometheus_harness_state_architecture"
},
{
- "label": "Task 5: ToolContext \u2014 Single Dispatch Object",
+ "label": "code:block1 (User: \"Analyze PETR4 vs VALE3 correlation\")",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L727",
- "community": 185,
- "norm_label": "task 5: toolcontext \u2014 single dispatch object",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_task_5_toolcontext_single_dispatch_object"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L25",
+ "community": 30,
+ "norm_label": "code:block1 (user: \"analyze petr4 vs vale3 correlation\")",
+ "id": "plans_2026_07_16_prometheus_harness_state_codeblock_1"
},
{
- "label": "Task 7: Tool Definitions \u2014 State + Sandbox + Cache Tools",
+ "label": "File Map",
"file_type": "document",
- "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
- "source_location": "L1148",
- "community": 121,
- "norm_label": "task 7: tool definitions \u2014 state + sandbox + cache tools",
- "id": "plans_2026_07_16_prometheus_harness_master_v2_task_7_tool_definitions_state_sandbox_cache_tools"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L67",
+ "community": 30,
+ "norm_label": "file map",
+ "id": "plans_2026_07_16_prometheus_harness_state_file_map"
},
{
- "label": "sendMessage should create a HarnessState and pass it to buildSystemPrompt.",
- "file_type": "rationale",
- "source_file": "tests/test_agent_state_integration.py",
- "source_location": "L50",
- "community": 363,
- "norm_label": "sendmessage should create a harnessstate and pass it to buildsystemprompt.",
- "id": "tests_test_agent_state_integration_rationale_50"
+ "label": "Task 1: HarnessState Class",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L80",
+ "community": 30,
+ "norm_label": "task 1: harnessstate class",
+ "id": "plans_2026_07_16_prometheus_harness_state_task_1_harnessstate_class"
},
{
- "label": "streamMessage should create a HarnessState and pass it to buildSystemPrompt.",
- "file_type": "rationale",
- "source_file": "tests/test_agent_state_integration.py",
- "source_location": "L83",
- "community": 364,
- "norm_label": "streammessage should create a harnessstate and pass it to buildsystemprompt.",
- "id": "tests_test_agent_state_integration_rationale_83"
+ "label": "code:python (import pytest)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L94",
+ "community": 30,
+ "norm_label": "code:python (import pytest)",
+ "id": "plans_2026_07_16_prometheus_harness_state_codeblock_2"
},
{
- "label": "System prompt should instruct LLM about memory vs state.",
- "file_type": "rationale",
- "source_file": "tests/test_agent_state_integration.py",
- "source_location": "L191",
- "community": 93,
- "norm_label": "system prompt should instruct llm about memory vs state.",
- "id": "tests_test_agent_state_integration_rationale_191"
+ "label": "code:python (import logging)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L167",
+ "community": 30,
+ "norm_label": "code:python (import logging)",
+ "id": "plans_2026_07_16_prometheus_harness_state_codeblock_3"
},
{
- "label": "executeStateTool()",
- "file_type": "code",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L104",
- "community": 99,
- "norm_label": "executestatetool()",
- "id": "prometheus_tools_executestatetool"
+ "label": "code:bash (git add main/app/prometheus/state.py tests/test_harness_stat)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L226",
+ "community": 30,
+ "norm_label": "code:bash (git add main/app/prometheus/state.py tests/test_harness_stat)",
+ "id": "plans_2026_07_16_prometheus_harness_state_codeblock_4"
},
{
- "label": "Search user's saved memories, preferences, and past analysis context. Use t",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L13",
- "community": 86,
- "norm_label": "search user's saved memories, preferences, and past analysis context. use t",
- "id": "prometheus_tools_rationale_13"
+ "label": "Task 2: State Tools \u2014 Function Definitions + Dispatch",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L233",
+ "community": 30,
+ "norm_label": "task 2: state tools \u2014 function definitions + dispatch",
+ "id": "plans_2026_07_16_prometheus_harness_state_task_2_state_tools_function_definitions_dispatch"
},
{
- "label": "Store a memory about the user's preferences, analysis results, or feedback.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L39",
- "community": 503,
- "norm_label": "store a memory about the user's preferences, analysis results, or feedback.",
- "id": "prometheus_tools_rationale_39"
+ "label": "code:python (import inspect)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L247",
+ "community": 30,
+ "norm_label": "code:python (import inspect)",
+ "id": "plans_2026_07_16_prometheus_harness_state_codeblock_5"
},
{
- "label": ".test_state_tools_is_list_of_callables()",
- "file_type": "code",
- "source_file": "tests/test_state_tools.py",
- "source_location": "L44",
- "community": 148,
- "norm_label": ".test_state_tools_is_list_of_callables()",
- "id": "tests_test_state_tools_teststatetoolfunctions_test_state_tools_is_list_of_callables"
+ "label": "code:python (from main.app.prometheus.state import HarnessState)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L344",
+ "community": 30,
+ "norm_label": "code:python (from main.app.prometheus.state import harnessstate)",
+ "id": "plans_2026_07_16_prometheus_harness_state_codeblock_6"
},
{
- "label": ".test_state_tool_names()",
- "file_type": "code",
- "source_file": "tests/test_state_tools.py",
- "source_location": "L50",
- "community": 148,
- "norm_label": ".test_state_tool_names()",
- "id": "tests_test_state_tools_teststatetoolfunctions_test_state_tool_names"
+ "label": "code:python (async def dispatchToolCall(functionCall, mcpClients, user=No)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L391",
+ "community": 30,
+ "norm_label": "code:python (async def dispatchtoolcall(functioncall, mcpclients, user=no)",
+ "id": "plans_2026_07_16_prometheus_harness_state_codeblock_7"
},
{
- "label": "TestExecuteStateTool",
- "file_type": "code",
- "source_file": "tests/test_state_tools.py",
- "source_location": "L54",
- "community": 99,
- "norm_label": "testexecutestatetool",
- "id": "tests_test_state_tools_testexecutestatetool"
+ "label": "code:bash (git add main/app/prometheus/tools.py tests/test_state_tools.)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L427",
+ "community": 30,
+ "norm_label": "code:bash (git add main/app/prometheus/tools.py tests/test_state_tools.)",
+ "id": "plans_2026_07_16_prometheus_harness_state_codeblock_8"
},
{
- "label": "test_unknown_tool()",
- "file_type": "code",
- "source_file": "tests/test_state_tools.py",
- "source_location": "L84",
- "community": 99,
- "norm_label": "test_unknown_tool()",
- "id": "tests_test_state_tools_test_unknown_tool"
+ "label": "Task 3: Agent Integration \u2014 State Lifecycle in Stream Loop",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L434",
+ "community": 30,
+ "norm_label": "task 3: agent integration \u2014 state lifecycle in stream loop",
+ "id": "plans_2026_07_16_prometheus_harness_state_task_3_agent_integration_state_lifecycle_in_stream_loop"
},
{
- "label": "In-memory state dict that persists across loop iterations within a single reques",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/state.py",
- "source_location": "L7",
- "community": 8,
- "norm_label": "in-memory state dict that persists across loop iterations within a single reques",
- "id": "prometheus_state_rationale_7"
+ "label": "code:python (import pytest)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L448",
+ "community": 30,
+ "norm_label": "code:python (import pytest)",
+ "id": "plans_2026_07_16_prometheus_harness_state_codeblock_9"
},
{
- "label": "Retrieve a value from state. Returns default if key not found.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/state.py",
- "source_location": "L18",
- "community": 8,
- "norm_label": "retrieve a value from state. returns default if key not found.",
- "id": "prometheus_state_rationale_18"
+ "label": "code:python (from main.app.prometheus.tools import MEMORY_TOOLS, STATE_TO)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L498",
+ "community": 30,
+ "norm_label": "code:python (from main.app.prometheus.tools import memory_tools, state_to)",
+ "id": "plans_2026_07_16_prometheus_harness_state_codeblock_10"
},
{
- "label": "Store a value in state. Marks state as changed for context injection.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/state.py",
- "source_location": "L22",
- "community": 543,
- "norm_label": "store a value in state. marks state as changed for context injection.",
- "id": "prometheus_state_rationale_22"
+ "label": "code:python (@classmethod)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L505",
+ "community": 30,
+ "norm_label": "code:python (@classmethod)",
+ "id": "plans_2026_07_16_prometheus_harness_state_codeblock_11"
},
{
- "label": "Return a copy of the current state.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/state.py",
- "source_location": "L27",
- "community": 8,
- "norm_label": "return a copy of the current state.",
- "id": "prometheus_state_rationale_27"
+ "label": "code:python (def makeChat(self, sessions, history, *, system_prompt=None,)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L533",
+ "community": 30,
+ "norm_label": "code:python (def makechat(self, sessions, history, *, system_prompt=none,)",
+ "id": "plans_2026_07_16_prometheus_harness_state_codeblock_12"
},
{
- "label": "Format state as a string for injection into the LLM context.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/state.py",
- "source_location": "L31",
- "community": 8,
- "norm_label": "format state as a string for injection into the llm context.",
- "id": "prometheus_state_rationale_31"
+ "label": "code:python (async def sendMessage()",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L553",
+ "community": 30,
+ "norm_label": "code:python (async def sendmessage()",
+ "id": "plans_2026_07_16_prometheus_harness_state_codeblock_13"
},
{
- "label": "Check if state changed since last reset.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/state.py",
- "source_location": "L37",
- "community": 8,
- "norm_label": "check if state changed since last reset.",
- "id": "prometheus_state_rationale_37"
+ "label": "code:python (async def streamMessage()",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L574",
+ "community": 30,
+ "norm_label": "code:python (async def streammessage()",
+ "id": "plans_2026_07_16_prometheus_harness_state_codeblock_14"
},
{
- "label": "Reset the changed flag. Returns the previous state.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/state.py",
- "source_location": "L41",
- "community": 8,
- "norm_label": "reset the changed flag. returns the previous state.",
- "id": "prometheus_state_rationale_41"
+ "label": "code:bash (git add main/app/prometheus/agent.py tests/test_agent_state_)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L649",
+ "community": 30,
+ "norm_label": "code:bash (git add main/app/prometheus/agent.py tests/test_agent_state_)",
+ "id": "plans_2026_07_16_prometheus_harness_state_codeblock_15"
},
{
- "label": "Clear all state data.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/state.py",
- "source_location": "L47",
- "community": 8,
- "norm_label": "clear all state data.",
- "id": "prometheus_state_rationale_47"
+ "label": "Task 4: System Prompt \u2014 Teach LLM About State Management",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L656",
+ "community": 30,
+ "norm_label": "task 4: system prompt \u2014 teach llm about state management",
+ "id": "plans_2026_07_16_prometheus_harness_state_task_4_system_prompt_teach_llm_about_state_management"
},
{
- "label": "Search user's saved memories, preferences, and past analysis context. Use t",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L12",
- "community": 86,
- "norm_label": "search user's saved memories, preferences, and past analysis context. use t",
- "id": "prometheus_tools_rationale_12"
+ "label": "code:python (SYSTEM_PROMPT = \"\"\")",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L669",
+ "community": 30,
+ "norm_label": "code:python (system_prompt = \"\"\")",
+ "id": "plans_2026_07_16_prometheus_harness_state_codeblock_16"
},
{
- "label": "Store a memory about the user's preferences, analysis results, or feedback.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L38",
- "community": 503,
- "norm_label": "store a memory about the user's preferences, analysis results, or feedback.",
- "id": "prometheus_tools_rationale_38"
+ "label": "code:bash (git add main/app/prometheus/agent.py)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L700",
+ "community": 30,
+ "norm_label": "code:bash (git add main/app/prometheus/agent.py)",
+ "id": "plans_2026_07_16_prometheus_harness_state_codeblock_17"
},
{
- "label": "memory_types.py",
- "file_type": "code",
- "source_file": "main/models/memory_types.py",
- "source_location": "L1",
- "community": 51,
- "norm_label": "memory_types.py",
- "id": "main_models_memory_types_py"
+ "label": "Summary",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L707",
+ "community": 30,
+ "norm_label": "summary",
+ "id": "plans_2026_07_16_prometheus_harness_state_summary"
},
{
- "label": "VectorType",
- "file_type": "code",
- "source_file": "main/models/memory_types.py",
- "source_location": "L5",
- "community": 51,
- "norm_label": "vectortype",
- "id": "models_memory_types_vectortype"
+ "label": "What This Enables",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L720",
+ "community": 30,
+ "norm_label": "what this enables",
+ "id": "plans_2026_07_16_prometheus_harness_state_what_this_enables"
},
{
- "label": ".__init__()",
- "file_type": "code",
- "source_file": "main/models/memory_types.py",
- "source_location": "L9",
- "community": 51,
- "norm_label": ".__init__()",
- "id": "models_memory_types_vectortype_init"
+ "label": "What This Does NOT Do (By Design)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L728",
+ "community": 30,
+ "norm_label": "what this does not do (by design)",
+ "id": "plans_2026_07_16_prometheus_harness_state_what_this_does_not_do_by_design"
},
{
- "label": ".process_bind_param()",
- "file_type": "code",
- "source_file": "main/models/memory_types.py",
- "source_location": "L13",
- "community": 51,
- "norm_label": ".process_bind_param()",
- "id": "models_memory_types_vectortype_process_bind_param"
+ "label": "Relationship to Other Plans",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-state.md",
+ "source_location": "L735",
+ "community": 30,
+ "norm_label": "relationship to other plans",
+ "id": "plans_2026_07_16_prometheus_harness_state_relationship_to_other_plans"
},
{
- "label": ".process_result_value()",
- "file_type": "code",
- "source_file": "main/models/memory_types.py",
- "source_location": "L21",
- "community": 51,
- "norm_label": ".process_result_value()",
- "id": "models_memory_types_vectortype_process_result_value"
+ "label": "2026-07-16-prometheus-sandbox-agent.md",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L1",
+ "community": 19,
+ "norm_label": "2026-07-16-prometheus-sandbox-agent.md",
+ "id": "docs_superpowers_plans_2026_07_16_prometheus_sandbox_agent_md"
},
{
- "label": "executeMemoryTool()",
- "file_type": "code",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L46",
- "community": 53,
- "norm_label": "executememorytool()",
- "id": "prometheus_tools_executememorytool"
+ "label": "Prometheus Sandbox Code Interpreter \u2014 Implementation Plan",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L1",
+ "community": 19,
+ "norm_label": "prometheus sandbox code interpreter \u2014 implementation plan",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_prometheus_sandbox_code_interpreter_implementation_plan"
},
{
- "label": "Store a memory about the user's preferences, analysis results, or feedback.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L29",
- "community": 503,
- "norm_label": "store a memory about the user's preferences, analysis results, or feedback.",
- "id": "prometheus_tools_rationale_29"
+ "label": "Global Constraints",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L11",
+ "community": 19,
+ "norm_label": "global constraints",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_global_constraints"
},
{
- "label": "Keys with low similarity should not merge.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_dedup.py",
- "source_location": "L52",
- "community": 186,
- "norm_label": "keys with low similarity should not merge.",
- "id": "tests_test_memory_dedup_rationale_52"
+ "label": "File Map",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L23",
+ "community": 19,
+ "norm_label": "file map",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_file_map"
},
{
- "label": "Keys with Jaccard <= 0.8 should not merge.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_dedup.py",
- "source_location": "L85",
- "community": 186,
- "norm_label": "keys with jaccard <= 0.8 should not merge.",
- "id": "tests_test_memory_dedup_rationale_85"
+ "label": "Task 1: Config \u2014 Add Sandbox Settings",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L37",
+ "community": 19,
+ "norm_label": "task 1: config \u2014 add sandbox settings",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_task_1_config_add_sandbox_settings"
},
{
- "label": "TestMemoryToolsDefinition",
- "file_type": "code",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L20",
- "community": 151,
- "norm_label": "testmemorytoolsdefinition",
- "id": "tests_test_memory_tools_wiring_testmemorytoolsdefinition"
+ "label": "code:python (class PrometheusSettings(BaseMansaSettings):)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L50",
+ "community": 19,
+ "norm_label": "code:python (class prometheussettings(basemansasettings):)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_1"
},
{
- "label": ".test_memory_tools_is_nonempty_list()",
- "file_type": "code",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L23",
- "community": 151,
- "norm_label": ".test_memory_tools_is_nonempty_list()",
- "id": "tests_test_memory_tools_wiring_testmemorytoolsdefinition_test_memory_tools_is_nonempty_list"
+ "label": "code:yaml (environment:)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L71",
+ "community": 19,
+ "norm_label": "code:yaml (environment:)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_2"
},
{
- "label": ".test_memory_tools_are_callables()",
- "file_type": "code",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L27",
- "community": 151,
- "norm_label": ".test_memory_tools_are_callables()",
- "id": "tests_test_memory_tools_wiring_testmemorytoolsdefinition_test_memory_tools_are_callables"
+ "label": "code:bash (git add config.py docker-compose.yml)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L81",
+ "community": 19,
+ "norm_label": "code:bash (git add config.py docker-compose.yml)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_3"
},
{
- "label": ".test_memory_tool_names_match()",
- "file_type": "code",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L31",
- "community": 151,
- "norm_label": ".test_memory_tool_names_match()",
- "id": "tests_test_memory_tools_wiring_testmemorytoolsdefinition_test_memory_tool_names_match"
+ "label": "Task 2: Sandbox Manager \u2014 Core HTTP Client",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L88",
+ "community": 19,
+ "norm_label": "task 2: sandbox manager \u2014 core http client",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_task_2_sandbox_manager_core_http_client"
},
{
- "label": ".test_memory_tool_names_constant_matches()",
- "file_type": "code",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L35",
- "community": 151,
- "norm_label": ".test_memory_tool_names_constant_matches()",
- "id": "tests_test_memory_tools_wiring_testmemorytoolsdefinition_test_memory_tool_names_constant_matches"
- },
- {
- "label": ".test_search_memory_has_query_param()",
- "file_type": "code",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L38",
- "community": 151,
- "norm_label": ".test_search_memory_has_query_param()",
- "id": "tests_test_memory_tools_wiring_testmemorytoolsdefinition_test_search_memory_has_query_param"
- },
- {
- "label": ".test_save_memory_has_required_params()",
- "file_type": "code",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L43",
- "community": 151,
- "norm_label": ".test_save_memory_has_required_params()",
- "id": "tests_test_memory_tools_wiring_testmemorytoolsdefinition_test_save_memory_has_required_params"
- },
- {
- "label": "test_search_memory_routed_to_executeMemoryTool()",
- "file_type": "code",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L92",
- "community": 49,
- "norm_label": "test_search_memory_routed_to_executememorytool()",
- "id": "tests_test_memory_tools_wiring_test_search_memory_routed_to_executememorytool"
- },
- {
- "label": "test_save_memory_routed_to_executeMemoryTool()",
- "file_type": "code",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L105",
- "community": 49,
- "norm_label": "test_save_memory_routed_to_executememorytool()",
- "id": "tests_test_memory_tools_wiring_test_save_memory_routed_to_executememorytool"
- },
- {
- "label": "test_memory_tool_skipped_without_user()",
- "file_type": "code",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L122",
- "community": 49,
- "norm_label": "test_memory_tool_skipped_without_user()",
- "id": "tests_test_memory_tools_wiring_test_memory_tool_skipped_without_user"
- },
- {
- "label": "test_non_memory_tool_not_routed_to_executeMemoryTool()",
- "file_type": "code",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L131",
- "community": 49,
- "norm_label": "test_non_memory_tool_not_routed_to_executememorytool()",
- "id": "tests_test_memory_tools_wiring_test_non_memory_tool_not_routed_to_executememorytool"
- },
- {
- "label": "MEMORY_TOOLS must be a list of callables with proper signatures.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L21",
- "community": 151,
- "norm_label": "memory_tools must be a list of callables with proper signatures.",
- "id": "tests_test_memory_tools_wiring_rationale_21"
- },
- {
- "label": "makeChat must include MEMORY_TOOLS alongside MCP sessions.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L52",
- "community": 492,
- "norm_label": "makechat must include memory_tools alongside mcp sessions.",
- "id": "tests_test_memory_tools_wiring_rationale_52"
- },
- {
- "label": "dispatchToolCall must route memory tool names to executeMemoryTool.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L89",
- "community": 474,
- "norm_label": "dispatchtoolcall must route memory tool names to executememorytool.",
- "id": "tests_test_memory_tools_wiring_rationale_89"
- },
- {
- "label": ".test_memory_tools_wrapped_in_tool()",
- "file_type": "code",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L25",
- "community": 151,
- "norm_label": ".test_memory_tools_wrapped_in_tool()",
- "id": "tests_test_memory_tools_wiring_testmemorytoolsdefinition_test_memory_tools_wrapped_in_tool"
- },
- {
- "label": "MEMORY_TOOLS must be defined as a Tool wrapping FunctionDeclarations.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L19",
- "community": 151,
- "norm_label": "memory_tools must be defined as a tool wrapping functiondeclarations.",
- "id": "tests_test_memory_tools_wiring_rationale_19"
- },
- {
- "label": "makeChat must include MEMORY_TOOLS alongside MCP sessions.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L57",
- "community": 492,
- "norm_label": "makechat must include memory_tools alongside mcp sessions.",
- "id": "tests_test_memory_tools_wiring_rationale_57"
- },
- {
- "label": "dispatchToolCall must route memory tool names to executeMemoryTool.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L92",
- "community": 474,
- "norm_label": "dispatchtoolcall must route memory tool names to executememorytool.",
- "id": "tests_test_memory_tools_wiring_rationale_92"
- },
- {
- "label": "_normalize_key()",
- "file_type": "code",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L17",
- "community": 53,
- "norm_label": "_normalize_key()",
- "id": "prometheus_memory_normalize_key"
- },
- {
- "label": "Helper to create memories with controlled baseScore, lastAccessedAt, accessCount",
- "file_type": "rationale",
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L23",
- "community": 487,
- "norm_label": "helper to create memories with controlled basescore, lastaccessedat, accesscount",
- "id": "tests_test_memory_maintenance_rationale_23"
- },
- {
- "label": "Decay applies to ALL active memories, not just accessed ones.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L54",
- "community": 487,
- "norm_label": "decay applies to all active memories, not just accessed ones.",
- "id": "tests_test_memory_maintenance_rationale_54"
- },
- {
- "label": "baseScore should never reach exactly 0 from decay alone.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L67",
- "community": 487,
- "norm_label": "basescore should never reach exactly 0 from decay alone.",
- "id": "tests_test_memory_maintenance_rationale_67"
- },
- {
- "label": "Score below threshold + accessCount=0 + 90+ days \u2192 archived.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L85",
- "community": 54,
- "norm_label": "score below threshold + accesscount=0 + 90+ days \u2192 archived.",
- "id": "tests_test_memory_maintenance_rationale_85"
- },
- {
- "label": "Low score but accessed recently \u2192 not archived.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L92",
- "community": 54,
- "norm_label": "low score but accessed recently \u2192 not archived.",
- "id": "tests_test_memory_maintenance_rationale_92"
+ "label": "code:python (import pytest)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L101",
+ "community": 19,
+ "norm_label": "code:python (import pytest)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_4"
},
{
- "label": "Zero access but score still above threshold \u2192 not archived.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L99",
- "community": 54,
- "norm_label": "zero access but score still above threshold \u2192 not archived.",
- "id": "tests_test_memory_maintenance_rationale_99"
+ "label": "code:python (import base64)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L192",
+ "community": 19,
+ "norm_label": "code:python (import base64)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_5"
},
{
- "label": "Even with low score, if accessed \u2192 not archived.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L106",
- "community": 54,
- "norm_label": "even with low score, if accessed \u2192 not archived.",
- "id": "tests_test_memory_maintenance_rationale_106"
+ "label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox.py)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L269",
+ "community": 19,
+ "norm_label": "code:bash (git add main/app/prometheus/sandbox.py tests/test_sandbox.py)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_6"
},
{
- "label": "Already archived memories are skipped.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L113",
- "community": 54,
- "norm_label": "already archived memories are skipped.",
- "id": "tests_test_memory_maintenance_rationale_113"
+ "label": "Task 3: Sandbox Tools \u2014 Gemini Function Declarations + Dispatch",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L276",
+ "community": 19,
+ "norm_label": "task 3: sandbox tools \u2014 gemini function declarations + dispatch",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_task_3_sandbox_tools_gemini_function_declarations_dispatch"
},
{
- "label": "Decay happens first, then archive check with new scores.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L134",
- "community": 487,
- "norm_label": "decay happens first, then archive check with new scores.",
- "id": "tests_test_memory_maintenance_rationale_134"
+ "label": "code:python (from main.app.prometheus.tools import SANDBOX_TOOLS, SANDBOX)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L289",
+ "community": 19,
+ "norm_label": "code:python (from main.app.prometheus.tools import sandbox_tools, sandbox)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_7"
},
{
- "label": "Score that decays to >= threshold stays alive. 0.11 * 0.95 = 0.1045 >= 0.1.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L143",
- "community": 487,
- "norm_label": "score that decays to >= threshold stays alive. 0.11 * 0.95 = 0.1045 >= 0.1.",
- "id": "tests_test_memory_maintenance_rationale_143"
+ "label": "code:python (import base64)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L331",
+ "community": 19,
+ "norm_label": "code:python (import base64)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_8"
},
{
- "label": "89 days with low score \u2192 not archived (need > 90).",
- "file_type": "rationale",
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L156",
- "community": 487,
- "norm_label": "89 days with low score \u2192 not archived (need > 90).",
- "id": "tests_test_memory_maintenance_rationale_156"
+ "label": "code:bash (git add main/app/prometheus/tools.py tests/test_sandbox.py)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L537",
+ "community": 19,
+ "norm_label": "code:bash (git add main/app/prometheus/tools.py tests/test_sandbox.py)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_9"
},
{
- "label": "embed()",
- "file_type": "code",
- "source_file": "main/utils/models/loader.py",
- "source_location": "L23",
- "community": 84,
- "norm_label": "embed()",
- "id": "models_loader_embed"
+ "label": "Task 4: Agent \u2014 Sandbox Lifecycle in Stream Loop",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L544",
+ "community": 19,
+ "norm_label": "task 4: agent \u2014 sandbox lifecycle in stream loop",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_task_4_agent_sandbox_lifecycle_in_stream_loop"
},
{
- "label": "Overall Score: 58/100",
+ "label": "code:python (from main.app.prometheus.agent import Prometheus)",
"file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L9",
- "community": 160,
- "norm_label": "overall score: 58/100",
- "id": "server_code_review_report_overall_score_58_100"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L557",
+ "community": 19,
+ "norm_label": "code:python (from main.app.prometheus.agent import prometheus)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_10"
},
{
- "label": "P0 \u2014 Must Fix (Critical)",
+ "label": "code:python (from main.app.prometheus.sandbox import SandboxManager)",
"file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L21",
- "community": 206,
- "norm_label": "p0 \u2014 must fix (critical)",
- "id": "server_code_review_report_p0_must_fix_critical"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L596",
+ "community": 19,
+ "norm_label": "code:python (from main.app.prometheus.sandbox import sandboxmanager)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_11"
},
{
- "label": "Security (5)",
+ "label": "code:python (def makeChat(self, sessions, history, *, system_prompt=None,)",
"file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L23",
- "community": 206,
- "norm_label": "security (5)",
- "id": "server_code_review_report_security_5"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L603",
+ "community": 19,
+ "norm_label": "code:python (def makechat(self, sessions, history, *, system_prompt=none,)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_12"
},
{
- "label": "Architecture (7)",
+ "label": "code:python (async def sendMessage(self, query=None, sessionId=None, db=N)",
"file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L35",
- "community": 206,
- "norm_label": "architecture (7)",
- "id": "server_code_review_report_architecture_7"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L611",
+ "community": 19,
+ "norm_label": "code:python (async def sendmessage(self, query=none, sessionid=none, db=n)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_13"
},
{
- "label": "Testing (5)",
+ "label": "code:python (async def streamMessage(self, query=None, sessionId=None, db)",
"file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L51",
- "community": 206,
- "norm_label": "testing (5)",
- "id": "server_code_review_report_testing_5"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L631",
+ "community": 19,
+ "norm_label": "code:python (async def streammessage(self, query=none, sessionid=none, db)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_14"
},
{
- "label": "API Design (3)",
+ "label": "code:bash (git add main/app/prometheus/agent.py)",
"file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L63",
- "community": 206,
- "norm_label": "api design (3)",
- "id": "server_code_review_report_api_design_3"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L694",
+ "community": 19,
+ "norm_label": "code:bash (git add main/app/prometheus/agent.py)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_15"
},
{
- "label": "Frontend (4)",
+ "label": "Task 5: Docker \u2014 CubeSandbox Template + Compose Service",
"file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L71",
- "community": 206,
- "norm_label": "frontend (4)",
- "id": "server_code_review_report_frontend_4"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L701",
+ "community": 19,
+ "norm_label": "task 5: docker \u2014 cubesandbox template + compose service",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_task_5_docker_cubesandbox_template_compose_service"
},
{
- "label": "P1 \u2014 Should Fix",
+ "label": "code:dockerfile (FROM python:3.11-slim)",
"file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L83",
- "community": 207,
- "norm_label": "p1 \u2014 should fix",
- "id": "server_code_review_report_p1_should_fix"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L713",
+ "community": 19,
+ "norm_label": "code:dockerfile (from python:3.11-slim)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_16"
},
{
- "label": "Architecture (8)",
+ "label": "code:yaml (services:)",
"file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L85",
- "community": 207,
- "norm_label": "architecture (8)",
- "id": "server_code_review_report_architecture_8"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L733",
+ "community": 19,
+ "norm_label": "code:yaml (services:)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_17"
},
{
- "label": "Security (6)",
+ "label": "code:block18 (SANDBOX_HOST=localhost)",
"file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L103",
- "community": 207,
- "norm_label": "security (6)",
- "id": "server_code_review_report_security_6"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L797",
+ "community": 19,
+ "norm_label": "code:block18 (sandbox_host=localhost)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_18"
},
{
- "label": "Testing (4)",
+ "label": "code:bash (git add Dockerfile.sandbox docker-compose.yml)",
"file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L117",
- "community": 207,
- "norm_label": "testing (4)",
- "id": "server_code_review_report_testing_4"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L804",
+ "community": 19,
+ "norm_label": "code:bash (git add dockerfile.sandbox docker-compose.yml)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_19"
},
{
- "label": "API Design (6)",
+ "label": "Task 6: Frontend \u2014 SandboxArtifact Component",
"file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L127",
- "community": 207,
- "norm_label": "api design (6)",
- "id": "server_code_review_report_api_design_6"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L811",
+ "community": 19,
+ "norm_label": "task 6: frontend \u2014 sandboxartifact component",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_task_6_frontend_sandboxartifact_component"
},
{
- "label": "Frontend (7)",
+ "label": "code:tsx (// frontend/src/components/SandboxArtifact.tsx)",
"file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L141",
- "community": 207,
- "norm_label": "frontend (7)",
- "id": "server_code_review_report_frontend_7"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L822",
+ "community": 19,
+ "norm_label": "code:tsx (// frontend/src/components/sandboxartifact.tsx)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_20"
},
{
- "label": "P2 \u2014 Nice to Have (27 items)",
+ "label": "code:tsx (// In your chat message component, after rendering text:)",
"file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L159",
- "community": 160,
- "norm_label": "p2 \u2014 nice to have (27 items)",
- "id": "server_code_review_report_p2_nice_to_have_27_items"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L886",
+ "community": 19,
+ "norm_label": "code:tsx (// in your chat message component, after rendering text:)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_21"
},
{
- "label": "Priority Matrix",
+ "label": "code:bash (git add frontend/src/components/SandboxArtifact.tsx)",
"file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L173",
- "community": 534,
- "norm_label": "priority matrix",
- "id": "server_code_review_report_priority_matrix"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L898",
+ "community": 19,
+ "norm_label": "code:bash (git add frontend/src/components/sandboxartifact.tsx)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_22"
},
{
- "label": "NOW (P0 \u2014 fix before next release)",
+ "label": "Task 7: System Prompt \u2014 Teach LLM About Sandbox",
"file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L175",
- "community": 534,
- "norm_label": "now (p0 \u2014 fix before next release)",
- "id": "server_code_review_report_now_p0_fix_before_next_release"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L905",
+ "community": 19,
+ "norm_label": "task 7: system prompt \u2014 teach llm about sandbox",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_task_7_system_prompt_teach_llm_about_sandbox"
},
{
- "label": "SOON (P1 \u2014 fix within 2 weeks)",
+ "label": "code:python (SYSTEM_PROMPT = \"\"\")",
"file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L185",
- "community": 534,
- "norm_label": "soon (p1 \u2014 fix within 2 weeks)",
- "id": "server_code_review_report_soon_p1_fix_within_2_weeks"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L918",
+ "community": 19,
+ "norm_label": "code:python (system_prompt = \"\"\")",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_23"
},
{
- "label": "LATER (P2 \u2014 when touching these files)",
+ "label": "code:bash (git add main/app/prometheus/agent.py)",
"file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L195",
- "community": 534,
- "norm_label": "later (p2 \u2014 when touching these files)",
- "id": "server_code_review_report_later_p2_when_touching_these_files"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L947",
+ "community": 19,
+ "norm_label": "code:bash (git add main/app/prometheus/agent.py)",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_codeblock_24"
},
{
- "label": "What Works Well",
+ "label": "Summary",
"file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L206",
- "community": 160,
- "norm_label": "what works well",
- "id": "server_code_review_report_what_works_well"
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-sandbox-agent.md",
+ "source_location": "L954",
+ "community": 19,
+ "norm_label": "summary",
+ "id": "plans_2026_07_16_prometheus_sandbox_agent_summary"
},
{
- "label": "_downloadModel()",
+ "label": "test_get_state_no_state_returns_error()",
"file_type": "code",
- "source_file": "main/utils/models/loader.py",
- "source_location": "L11",
- "community": 84,
- "norm_label": "_downloadmodel()",
- "id": "models_loader_downloadmodel"
+ "source_file": "tests/test_prometheus_tools.py",
+ "source_location": "L114",
+ "community": 100,
+ "norm_label": "test_get_state_no_state_returns_error()",
+ "id": "tests_test_prometheus_tools_test_get_state_no_state_returns_error"
},
{
- "label": "getCookie()",
+ "label": "test_set_state_no_state_returns_error()",
"file_type": "code",
- "source_file": "frontend/src/api.js",
- "source_location": "L10",
- "community": 150,
- "norm_label": "getcookie()",
- "id": "src_api_getcookie"
+ "source_file": "tests/test_prometheus_tools.py",
+ "source_location": "L119",
+ "community": 100,
+ "norm_label": "test_set_state_no_state_returns_error()",
+ "id": "tests_test_prometheus_tools_test_set_state_no_state_returns_error"
},
{
- "label": ".isQuotaExceeded()",
- "file_type": "code",
- "source_file": "main/models/stocksapi_key.py",
+ "label": "Assert a tool function has only Gemini-compatible parameter types.",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_tools.py",
"source_location": "L21",
- "community": 37,
- "norm_label": ".isquotaexceeded()",
- "id": "models_stocksapi_key_stocksapikey_isquotaexceeded"
+ "community": 100,
+ "norm_label": "assert a tool function has only gemini-compatible parameter types.",
+ "id": "tests_test_prometheus_tools_rationale_21"
},
{
- "label": ".needsReset()",
- "file_type": "code",
- "source_file": "main/models/stocksapi_key.py",
- "source_location": "L24",
- "community": 37,
- "norm_label": ".needsreset()",
- "id": "models_stocksapi_key_stocksapikey_needsreset"
+ "label": "Every function in TOOL_REGISTRY must have Gemini-safe signatures. Custom cl",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_tools.py",
+ "source_location": "L128",
+ "community": 100,
+ "norm_label": "every function in tool_registry must have gemini-safe signatures. custom cl",
+ "id": "tests_test_prometheus_tools_rationale_128"
},
{
- "label": ".resetQuota()",
- "file_type": "code",
- "source_file": "main/models/stocksapi_key.py",
- "source_location": "L36",
- "community": 37,
- "norm_label": ".resetquota()",
- "id": "models_stocksapi_key_stocksapikey_resetquota"
+ "label": "Regression: HarnessState must never leak into tool signatures.",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_tools.py",
+ "source_location": "L137",
+ "community": 100,
+ "norm_label": "regression: harnessstate must never leak into tool signatures.",
+ "id": "tests_test_prometheus_tools_rationale_137"
},
{
- "label": ".incrementUsage()",
+ "label": "cache.py",
"file_type": "code",
- "source_file": "main/models/stocksapi_key.py",
- "source_location": "L40",
- "community": 37,
- "norm_label": ".incrementusage()",
- "id": "models_stocksapi_key_stocksapikey_incrementusage"
+ "source_file": "main/app/prometheus/cache.py",
+ "source_location": "L1",
+ "community": 162,
+ "norm_label": "cache.py",
+ "id": "main_app_prometheus_cache_py"
},
{
- "label": ".getRemainingQuota()",
+ "label": "ResultCache",
"file_type": "code",
- "source_file": "main/models/stocksapi_key.py",
- "source_location": "L43",
- "community": 37,
- "norm_label": ".getremainingquota()",
- "id": "models_stocksapi_key_stocksapikey_getremainingquota"
+ "source_file": "main/app/prometheus/cache.py",
+ "source_location": "L7",
+ "community": 162,
+ "norm_label": "resultcache",
+ "id": "prometheus_cache_resultcache"
},
{
- "label": ".toDict()",
+ "label": ".__init__()",
"file_type": "code",
- "source_file": "main/models/stocksapi_key.py",
- "source_location": "L46",
- "community": 37,
- "norm_label": ".todict()",
- "id": "models_stocksapi_key_stocksapikey_todict"
+ "source_file": "main/app/prometheus/cache.py",
+ "source_location": "L8",
+ "community": 162,
+ "norm_label": ".__init__()",
+ "id": "prometheus_cache_resultcache_init"
},
{
- "label": ".getRolesList()",
+ "label": ".cachePath()",
"file_type": "code",
- "source_file": "main/models/user.py",
- "source_location": "L19",
- "community": 61,
- "norm_label": ".getroleslist()",
- "id": "models_user_user_getroleslist"
+ "source_file": "main/app/prometheus/cache.py",
+ "source_location": "L11",
+ "community": 162,
+ "norm_label": ".cachepath()",
+ "id": "prometheus_cache_resultcache_cachepath"
},
{
- "label": ".addRole()",
+ "label": ".get()",
"file_type": "code",
- "source_file": "main/models/user.py",
- "source_location": "L24",
- "community": 61,
- "norm_label": ".addrole()",
- "id": "models_user_user_addrole"
+ "source_file": "main/app/prometheus/cache.py",
+ "source_location": "L15",
+ "community": 162,
+ "norm_label": ".get()",
+ "id": "prometheus_cache_resultcache_get"
},
{
- "label": ".hasRole()",
+ "label": ".set()",
"file_type": "code",
- "source_file": "main/models/user.py",
- "source_location": "L32",
- "community": 61,
- "norm_label": ".hasrole()",
- "id": "models_user_user_hasrole"
+ "source_file": "main/app/prometheus/cache.py",
+ "source_location": "L21",
+ "community": 162,
+ "norm_label": ".set()",
+ "id": "prometheus_cache_resultcache_set"
},
{
- "label": ".toDict()",
+ "label": ".invalidate()",
"file_type": "code",
- "source_file": "main/models/user.py",
- "source_location": "L37",
- "community": 61,
- "norm_label": ".todict()",
- "id": "models_user_user_todict"
+ "source_file": "main/app/prometheus/cache.py",
+ "source_location": "L31",
+ "community": 162,
+ "norm_label": ".invalidate()",
+ "id": "prometheus_cache_resultcache_invalidate"
},
{
- "label": ".getDeviceName()",
+ "label": ".exists()",
"file_type": "code",
- "source_file": "main/models/user_session.py",
- "source_location": "L23",
- "community": 44,
- "norm_label": ".getdevicename()",
- "id": "models_user_session_usersession_getdevicename"
- },
- {
- "label": "Covers lines 19-20: user not found raises 404.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1258",
- "community": 528,
- "norm_label": "covers lines 19-20: user not found raises 404.",
- "id": "tests_test_controllers_coverage_rationale_1258"
+ "source_file": "main/app/prometheus/cache.py",
+ "source_location": "L38",
+ "community": 162,
+ "norm_label": ".exists()",
+ "id": "prometheus_cache_resultcache_exists"
},
{
- "label": "Covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: UserManager.getC",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1270",
- "community": 493,
- "norm_label": "covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: usermanager.getc",
- "id": "tests_test_controllers_coverage_rationale_1270"
+ "label": "baseUrl()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L12",
+ "community": 69,
+ "norm_label": "baseurl()",
+ "id": "prometheus_sandbox_baseurl"
},
{
- "label": "Covers lines 36-38, 40-44, 46, 48-49, 51, 58-59, 61: successful user retrieval.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1277",
- "community": 137,
- "norm_label": "covers lines 36-38, 40-44, 46, 48-49, 51, 58-59, 61: successful user retrieval.",
- "id": "tests_test_controllers_coverage_rationale_1277"
+ "label": "checkpoint()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L43",
+ "community": 69,
+ "norm_label": "checkpoint()",
+ "id": "prometheus_sandbox_checkpoint"
},
{
- "label": "Covers lines 42-44: session validation fails.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1302",
- "community": 488,
- "norm_label": "covers lines 42-44: session validation fails.",
- "id": "tests_test_controllers_coverage_rationale_1302"
+ "label": "restore()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L55",
+ "community": 69,
+ "norm_label": "restore()",
+ "id": "prometheus_sandbox_restore"
},
{
- "label": "Covers lines 48-49: user not in DB.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1318",
- "community": 482,
- "norm_label": "covers lines 48-49: user not in db.",
- "id": "tests_test_controllers_coverage_rationale_1318"
+ "label": "upload_file()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L63",
+ "community": 69,
+ "norm_label": "upload_file()",
+ "id": "prometheus_sandbox_upload_file"
},
{
- "label": "Covers lines 65-67: unexpected exception.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1335",
- "community": 538,
- "norm_label": "covers lines 65-67: unexpected exception.",
- "id": "tests_test_controllers_coverage_rationale_1335"
+ "label": "read_sandbox_file()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L139",
+ "community": 152,
+ "norm_label": "read_sandbox_file()",
+ "id": "prometheus_tools_read_sandbox_file"
},
{
- "label": "Covers lines 37-38, 46, 51, 58 (sessionId is None): skips session validation.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1352",
- "community": 529,
- "norm_label": "covers lines 37-38, 46, 51, 58 (sessionid is none): skips session validation.",
- "id": "tests_test_controllers_coverage_rationale_1352"
+ "label": "upload_to_sandbox()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L151",
+ "community": 152,
+ "norm_label": "upload_to_sandbox()",
+ "id": "prometheus_tools_upload_to_sandbox"
},
{
- "label": "Covers line 16: empty password raises ValueError.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1376",
- "community": 486,
- "norm_label": "covers line 16: empty password raises valueerror.",
- "id": "tests_test_controllers_coverage_rationale_1376"
+ "label": "check_cache()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L165",
+ "community": 152,
+ "norm_label": "check_cache()",
+ "id": "prometheus_tools_check_cache"
},
{
- "label": "Covers lines 45-51: verifyAccessToken with expired and invalid tokens.",
+ "label": "Search user's saved memories, preferences, and past analysis context. Use",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1386",
- "community": 525,
- "norm_label": "covers lines 45-51: verifyaccesstoken with expired and invalid tokens.",
- "id": "tests_test_controllers_coverage_rationale_1386"
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L17",
+ "community": 152,
+ "norm_label": "search user's saved memories, preferences, and past analysis context. use",
+ "id": "prometheus_tools_rationale_17"
},
{
- "label": "Covers lines 48-49: jwt.ExpiredSignatureError.",
+ "label": "Execute Python code in an isolated sandbox. Use for quantitative analysis,",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1389",
- "community": 538,
- "norm_label": "covers lines 48-49: jwt.expiredsignatureerror.",
- "id": "tests_test_controllers_coverage_rationale_1389"
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L109",
+ "community": 536,
+ "norm_label": "execute python code in an isolated sandbox. use for quantitative analysis,",
+ "id": "prometheus_tools_rationale_109"
},
{
- "label": "Covers lines 50-51: jwt.InvalidTokenError.",
+ "label": "Read a file from the sandbox filesystem. Args: path: Absolute pa",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1405",
- "community": 525,
- "norm_label": "covers lines 50-51: jwt.invalidtokenerror.",
- "id": "tests_test_controllers_coverage_rationale_1405"
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L140",
+ "community": 152,
+ "norm_label": "read a file from the sandbox filesystem. args: path: absolute pa",
+ "id": "prometheus_tools_rationale_140"
},
{
- "label": "Covers line 67: extractTokenPayload re-raises HTTPException from verifyAccessTok",
+ "label": "Upload a file to the sandbox filesystem. Use this to push data files (CSV,",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1417",
- "community": 114,
- "norm_label": "covers line 67: extracttokenpayload re-raises httpexception from verifyaccesstok",
- "id": "tests_test_controllers_coverage_rationale_1417"
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L152",
+ "community": 152,
+ "norm_label": "upload a file to the sandbox filesystem. use this to push data files (csv,",
+ "id": "prometheus_tools_rationale_152"
},
{
- "label": "Covers line 67: HTTPException raised by verifyAccessToken is re-raised.",
+ "label": "Check if a computed result exists in the cache. Use before executing expens",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1420",
- "community": 114,
- "norm_label": "covers line 67: httpexception raised by verifyaccesstoken is re-raised.",
- "id": "tests_test_controllers_coverage_rationale_1420"
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L166",
+ "community": 152,
+ "norm_label": "check if a computed result exists in the cache. use before executing expens",
+ "id": "prometheus_tools_rationale_166"
},
{
- "label": "Covers line 13: UserManager.__init__.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1436",
- "community": 21,
- "norm_label": "covers line 13: usermanager.__init__.",
- "id": "tests_test_controllers_coverage_rationale_1436"
+ "label": ".test_build_system_prompt_no_state()",
+ "file_type": "code",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L9",
+ "community": 137,
+ "norm_label": ".test_build_system_prompt_no_state()",
+ "id": "tests_test_agent_sandbox_integration_testagentsandboxintegration_test_build_system_prompt_no_state"
},
{
- "label": "test_callback_sets_readable_cookie_for_frontend()",
+ "label": ".test_build_system_prompt_empty_state()",
"file_type": "code",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L131",
- "community": 40,
- "norm_label": "test_callback_sets_readable_cookie_for_frontend()",
- "id": "tests_test_oauth_cookie_security_test_callback_sets_readable_cookie_for_frontend"
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L20",
+ "community": 137,
+ "norm_label": ".test_build_system_prompt_empty_state()",
+ "id": "tests_test_agent_sandbox_integration_testagentsandboxintegration_test_build_system_prompt_empty_state"
},
{
- "label": "test_frontend_can_read_token_from_cookie()",
+ "label": ".test_system_prompt_includes_state_instructions()",
"file_type": "code",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L216",
- "community": 40,
- "norm_label": "test_frontend_can_read_token_from_cookie()",
- "id": "tests_test_oauth_cookie_security_test_frontend_can_read_token_from_cookie"
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L25",
+ "community": 137,
+ "norm_label": ".test_system_prompt_includes_state_instructions()",
+ "id": "tests_test_agent_sandbox_integration_testagentsandboxintegration_test_system_prompt_includes_state_instructions"
},
{
- "label": "Return (client, app, mock_session) for testing Google callback.",
- "file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L19",
- "community": 40,
- "norm_label": "return (client, app, mock_session) for testing google callback.",
- "id": "tests_test_oauth_cookie_security_rationale_19"
+ "label": ".test_system_prompt_includes_sandbox_instructions()",
+ "file_type": "code",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L30",
+ "community": 137,
+ "norm_label": ".test_system_prompt_includes_sandbox_instructions()",
+ "id": "tests_test_agent_sandbox_integration_testagentsandboxintegration_test_system_prompt_includes_sandbox_instructions"
},
{
- "label": "Helper to setup common mock values for callback tests.",
- "file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
+ "label": ".test_system_prompt_includes_cache_instructions()",
+ "file_type": "code",
+ "source_file": "tests/test_agent_sandbox_integration.py",
"source_location": "L34",
- "community": 40,
- "norm_label": "helper to setup common mock values for callback tests.",
- "id": "tests_test_oauth_cookie_security_rationale_34"
+ "community": 137,
+ "norm_label": ".test_system_prompt_includes_cache_instructions()",
+ "id": "tests_test_agent_sandbox_integration_testagentsandboxintegration_test_system_prompt_includes_cache_instructions"
},
{
- "label": "Verify JWT token is NOT leaked in redirect URL after OAuth callback.",
- "file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L58",
- "community": 40,
- "norm_label": "verify jwt token is not leaked in redirect url after oauth callback.",
- "id": "tests_test_oauth_cookie_security_rationale_58"
+ "label": ".test_makeChat_uses_tool_registry()",
+ "file_type": "code",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L38",
+ "community": 137,
+ "norm_label": ".test_makechat_uses_tool_registry()",
+ "id": "tests_test_agent_sandbox_integration_testagentsandboxintegration_test_makechat_uses_tool_registry"
},
{
- "label": "RED TEST: Token should NOT appear in redirect URL query parameters.",
- "file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L67",
- "community": 365,
- "norm_label": "red test: token should not appear in redirect url query parameters.",
- "id": "tests_test_oauth_cookie_security_rationale_67"
+ "label": "test_streamMessage_creates_loop_logger_and_cache()",
+ "file_type": "code",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L48",
+ "community": 24,
+ "norm_label": "test_streammessage_creates_loop_logger_and_cache()",
+ "id": "tests_test_agent_sandbox_integration_test_streammessage_creates_loop_logger_and_cache"
},
{
- "label": "Cookie must be httponly (not accessible via JavaScript).",
- "file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L102",
- "community": 366,
- "norm_label": "cookie must be httponly (not accessible via javascript).",
- "id": "tests_test_oauth_cookie_security_rationale_102"
+ "label": "test_streamMessage_sandbox_creation_failure_falls_back()",
+ "file_type": "code",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L150",
+ "community": 24,
+ "norm_label": "test_streammessage_sandbox_creation_failure_falls_back()",
+ "id": "tests_test_agent_sandbox_integration_test_streammessage_sandbox_creation_failure_falls_back"
},
{
- "label": "A readable cookie must be set for frontend JavaScript to access.",
+ "label": "When sandbox creation fails, agent falls back to chat-only mode.",
"file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L134",
- "community": 367,
- "norm_label": "a readable cookie must be set for frontend javascript to access.",
- "id": "tests_test_oauth_cookie_security_rationale_134"
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L151",
+ "community": 354,
+ "norm_label": "when sandbox creation fails, agent falls back to chat-only mode.",
+ "id": "tests_test_agent_sandbox_integration_rationale_151"
},
{
- "label": "Both cookies should have secure flag (HTTPS only).",
- "file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L158",
- "community": 368,
- "norm_label": "both cookies should have secure flag (https only).",
- "id": "tests_test_oauth_cookie_security_rationale_158"
+ "label": "test_cache.py",
+ "file_type": "code",
+ "source_file": "tests/test_cache.py",
+ "source_location": "L1",
+ "community": 95,
+ "norm_label": "test_cache.py",
+ "id": "tests_test_cache_py"
},
{
- "label": "When no state param, return JSON response (not redirect).",
- "file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L190",
- "community": 369,
- "norm_label": "when no state param, return json response (not redirect).",
- "id": "tests_test_oauth_cookie_security_rationale_190"
+ "label": "cache()",
+ "file_type": "code",
+ "source_file": "tests/test_cache.py",
+ "source_location": "L11",
+ "community": 95,
+ "norm_label": "cache()",
+ "id": "tests_test_cache_cache"
},
{
- "label": "Verify frontend can still get token after OAuth redirect.",
- "file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L210",
- "community": 40,
- "norm_label": "verify frontend can still get token after oauth redirect.",
- "id": "tests_test_oauth_cookie_security_rationale_210"
+ "label": "TestResultCache",
+ "file_type": "code",
+ "source_file": "tests/test_cache.py",
+ "source_location": "L15",
+ "community": 135,
+ "norm_label": "testresultcache",
+ "id": "tests_test_cache_testresultcache"
},
{
- "label": "Frontend JavaScript should be able to read token from readable cookie.",
- "file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L219",
- "community": 40,
- "norm_label": "frontend javascript should be able to read token from readable cookie.",
- "id": "tests_test_oauth_cookie_security_rationale_219"
+ "label": ".test_set_and_get()",
+ "file_type": "code",
+ "source_file": "tests/test_cache.py",
+ "source_location": "L16",
+ "community": 135,
+ "norm_label": ".test_set_and_get()",
+ "id": "tests_test_cache_testresultcache_test_set_and_get"
},
{
- "label": "Verify /auth/google passes redirect URL as state parameter.",
- "file_type": "rationale",
- "source_file": "tests/test_sso_state_cookie.py",
- "source_location": "L43",
- "community": 18,
- "norm_label": "verify /auth/google passes redirect url as state parameter.",
- "id": "tests_test_sso_state_cookie_rationale_43"
+ "label": ".test_get_miss()",
+ "file_type": "code",
+ "source_file": "tests/test_cache.py",
+ "source_location": "L24",
+ "community": 135,
+ "norm_label": ".test_get_miss()",
+ "id": "tests_test_cache_testresultcache_test_get_miss"
},
{
- "label": "State should be the redirect URL directly.",
- "file_type": "rationale",
- "source_file": "tests/test_sso_state_cookie.py",
- "source_location": "L46",
- "community": 18,
- "norm_label": "state should be the redirect url directly.",
- "id": "tests_test_sso_state_cookie_rationale_46"
- },
- {
- "label": "Without redirect_url, state should be None.",
- "file_type": "rationale",
- "source_file": "tests/test_sso_state_cookie.py",
- "source_location": "L69",
- "community": 18,
- "norm_label": "without redirect_url, state should be none.",
- "id": "tests_test_sso_state_cookie_rationale_69"
- },
- {
- "label": "The /google endpoint should NOT set sso_redirect cookie.",
- "file_type": "rationale",
- "source_file": "tests/test_sso_state_cookie.py",
- "source_location": "L89",
- "community": 18,
- "norm_label": "the /google endpoint should not set sso_redirect cookie.",
- "id": "tests_test_sso_state_cookie_rationale_89"
- },
- {
- "label": "Verify callback uses state param directly as redirect URL.",
- "file_type": "rationale",
- "source_file": "tests/test_sso_state_cookie.py",
- "source_location": "L115",
- "community": 18,
- "norm_label": "verify callback uses state param directly as redirect url.",
- "id": "tests_test_sso_state_cookie_rationale_115"
+ "label": ".test_exists()",
+ "file_type": "code",
+ "source_file": "tests/test_cache.py",
+ "source_location": "L27",
+ "community": 135,
+ "norm_label": ".test_exists()",
+ "id": "tests_test_cache_testresultcache_test_exists"
},
{
- "label": "On success, redirect to URL from state param.",
- "file_type": "rationale",
- "source_file": "tests/test_sso_state_cookie.py",
- "source_location": "L118",
- "community": 18,
- "norm_label": "on success, redirect to url from state param.",
- "id": "tests_test_sso_state_cookie_rationale_118"
+ "label": ".test_different_codes_different_hashes()",
+ "file_type": "code",
+ "source_file": "tests/test_cache.py",
+ "source_location": "L32",
+ "community": 135,
+ "norm_label": ".test_different_codes_different_hashes()",
+ "id": "tests_test_cache_testresultcache_test_different_codes_different_hashes"
},
{
- "label": "When state has no URL, return JSON.",
- "file_type": "rationale",
- "source_file": "tests/test_sso_state_cookie.py",
- "source_location": "L162",
- "community": 18,
- "norm_label": "when state has no url, return json.",
- "id": "tests_test_sso_state_cookie_rationale_162"
+ "label": ".test_invalidate()",
+ "file_type": "code",
+ "source_file": "tests/test_cache.py",
+ "source_location": "L38",
+ "community": 135,
+ "norm_label": ".test_invalidate()",
+ "id": "tests_test_cache_testresultcache_test_invalidate"
},
{
- "label": "Verify SSOLoginError returns 401, not 500.",
- "file_type": "rationale",
- "source_file": "tests/test_sso_state_cookie.py",
- "source_location": "L205",
- "community": 18,
- "norm_label": "verify ssologinerror returns 401, not 500.",
- "id": "tests_test_sso_state_cookie_rationale_205"
+ "label": ".test_invalidate_does_not_affect_other_sessions()",
+ "file_type": "code",
+ "source_file": "tests/test_cache.py",
+ "source_location": "L45",
+ "community": 135,
+ "norm_label": ".test_invalidate_does_not_affect_other_sessions()",
+ "id": "tests_test_cache_testresultcache_test_invalidate_does_not_affect_other_sessions"
},
{
- "label": "Stale sso_state cookie must produce 401, not 500.",
- "file_type": "rationale",
- "source_file": "tests/test_sso_state_cookie.py",
- "source_location": "L208",
- "community": 18,
- "norm_label": "stale sso_state cookie must produce 401, not 500.",
- "id": "tests_test_sso_state_cookie_rationale_208"
+ "label": ".test_invalidate_does_not_affect_other_users()",
+ "file_type": "code",
+ "source_file": "tests/test_cache.py",
+ "source_location": "L52",
+ "community": 135,
+ "norm_label": ".test_invalidate_does_not_affect_other_users()",
+ "id": "tests_test_cache_testresultcache_test_invalidate_does_not_affect_other_users"
},
{
- "label": "Verify state parameter survives URL encoding round-trip.",
- "file_type": "rationale",
- "source_file": "tests/test_sso_state_cookie.py",
- "source_location": "L239",
- "community": 18,
- "norm_label": "verify state parameter survives url encoding round-trip.",
- "id": "tests_test_sso_state_cookie_rationale_239"
+ "label": ".test_set_creates_directories()",
+ "file_type": "code",
+ "source_file": "tests/test_cache.py",
+ "source_location": "L59",
+ "community": 135,
+ "norm_label": ".test_set_creates_directories()",
+ "id": "tests_test_cache_testresultcache_test_set_creates_directories"
},
{
- "label": "State with URL characters should survive round-trip through OAuth URL.",
- "file_type": "rationale",
- "source_file": "tests/test_sso_state_cookie.py",
- "source_location": "L242",
- "community": 18,
- "norm_label": "state with url characters should survive round-trip through oauth url.",
- "id": "tests_test_sso_state_cookie_rationale_242"
+ "label": ".test_overwrite_same_code()",
+ "file_type": "code",
+ "source_file": "tests/test_cache.py",
+ "source_location": "L66",
+ "community": 135,
+ "norm_label": ".test_overwrite_same_code()",
+ "id": "tests_test_cache_testresultcache_test_overwrite_same_code"
},
{
- "label": "archiveDead()",
+ "label": ".test_invalidate_empty_session()",
"file_type": "code",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L197",
- "community": 53,
- "norm_label": "archivedead()",
- "id": "prometheus_memory_archivedead"
+ "source_file": "tests/test_cache.py",
+ "source_location": "L72",
+ "community": 135,
+ "norm_label": ".test_invalidate_empty_session()",
+ "id": "tests_test_cache_testresultcache_test_invalidate_empty_session"
},
{
- "label": "makeChat must include MEMORY_TOOLS alongside MCP sessions.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L56",
- "community": 492,
- "norm_label": "makechat must include memory_tools alongside mcp sessions.",
- "id": "tests_test_memory_tools_wiring_rationale_56"
+ "label": ".test_json_roundtrip()",
+ "file_type": "code",
+ "source_file": "tests/test_cache.py",
+ "source_location": "L76",
+ "community": 135,
+ "norm_label": ".test_json_roundtrip()",
+ "id": "tests_test_cache_testresultcache_test_json_roundtrip"
},
{
- "label": "dispatchToolCall must route memory tool names to executeMemoryTool.",
+ "label": "Tests for ResultCache.",
"file_type": "rationale",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L91",
- "community": 474,
- "norm_label": "dispatchtoolcall must route memory tool names to executememorytool.",
- "id": "tests_test_memory_tools_wiring_rationale_91"
+ "source_file": "tests/test_cache.py",
+ "source_location": "L1",
+ "community": 95,
+ "norm_label": "tests for resultcache.",
+ "id": "tests_test_cache_rationale_1"
},
{
- "label": "vector.py",
+ "label": "test_config_sandbox.py",
"file_type": "code",
- "source_file": "main/utils/vector.py",
+ "source_file": "tests/test_config_sandbox.py",
"source_location": "L1",
- "community": 112,
- "norm_label": "vector.py",
- "id": "main_utils_vector_py"
+ "community": 132,
+ "norm_label": "test_config_sandbox.py",
+ "id": "tests_test_config_sandbox_py"
},
{
- "label": "batchCosineSimilarity()",
+ "label": "TestSandboxConfig",
"file_type": "code",
- "source_file": "main/utils/vector.py",
- "source_location": "L8",
- "community": 13,
- "norm_label": "batchcosinesimilarity()",
- "id": "utils_vector_batchcosinesimilarity"
+ "source_file": "tests/test_config_sandbox.py",
+ "source_location": "L5",
+ "community": 535,
+ "norm_label": "testsandboxconfig",
+ "id": "tests_test_config_sandbox_testsandboxconfig"
},
{
- "label": "contentHash()",
+ "label": ".test_sandbox_defaults()",
"file_type": "code",
- "source_file": "main/utils/vector.py",
- "source_location": "L20",
- "community": 115,
- "norm_label": "contenthash()",
- "id": "utils_vector_contenthash"
+ "source_file": "tests/test_config_sandbox.py",
+ "source_location": "L6",
+ "community": 535,
+ "norm_label": ".test_sandbox_defaults()",
+ "id": "tests_test_config_sandbox_testsandboxconfig_test_sandbox_defaults"
},
{
- "label": "getRelevanceScore()",
+ "label": ".test_sandbox_fields_exist()",
"file_type": "code",
- "source_file": "main/utils/vector.py",
- "source_location": "L24",
- "community": 27,
- "norm_label": "getrelevancescore()",
- "id": "utils_vector_getrelevancescore"
+ "source_file": "tests/test_config_sandbox.py",
+ "source_location": "L13",
+ "community": 535,
+ "norm_label": ".test_sandbox_fields_exist()",
+ "id": "tests_test_config_sandbox_testsandboxconfig_test_sandbox_fields_exist"
},
{
- "label": "Compute relevance as baseScore * timeDecay(lastAccessedAt). Logarithmic dec",
- "file_type": "rationale",
- "source_file": "main/utils/vector.py",
- "source_location": "L25",
- "community": 27,
- "norm_label": "compute relevance as basescore * timedecay(lastaccessedat). logarithmic dec",
- "id": "utils_vector_rationale_25"
+ "label": ".test_sandbox_types()",
+ "file_type": "code",
+ "source_file": "tests/test_config_sandbox.py",
+ "source_location": "L21",
+ "community": 535,
+ "norm_label": ".test_sandbox_types()",
+ "id": "tests_test_config_sandbox_testsandboxconfig_test_sandbox_types"
},
{
- "label": "memory-system-pandas-plan.md",
- "file_type": "document",
- "source_file": "PLANS/memory-system-pandas-plan.md",
- "source_location": "L1",
- "community": 66,
- "norm_label": "memory-system-pandas-plan.md",
- "id": "plans_memory_system_pandas_plan_md"
+ "label": "_FakeClient",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L9",
+ "community": 96,
+ "norm_label": "_fakeclient",
+ "id": "tests_test_sandbox_fakeclient"
},
{
- "label": "Plan: Memory System with Pandas-First Vector Search",
- "file_type": "document",
- "source_file": "PLANS/memory-system-pandas-plan.md",
- "source_location": "L1",
- "community": 66,
- "norm_label": "plan: memory system with pandas-first vector search",
- "id": "plans_memory_system_pandas_plan_plan_memory_system_with_pandas_first_vector_search"
+ "label": ".__init__()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L12",
+ "community": 96,
+ "norm_label": ".__init__()",
+ "id": "tests_test_sandbox_fakeclient_init"
},
{
- "label": "Goal",
- "file_type": "document",
- "source_file": "PLANS/memory-system-pandas-plan.md",
- "source_location": "L3",
- "community": 66,
- "norm_label": "goal",
- "id": "plans_memory_system_pandas_plan_goal"
+ "label": ".set_response()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L16",
+ "community": 96,
+ "norm_label": ".set_response()",
+ "id": "tests_test_sandbox_fakeclient_set_response"
},
{
- "label": "Subagent Research Summary",
- "file_type": "document",
- "source_file": "PLANS/memory-system-pandas-plan.md",
- "source_location": "L7",
- "community": 66,
- "norm_label": "subagent research summary",
- "id": "plans_memory_system_pandas_plan_subagent_research_summary"
+ "label": ".post()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L19",
+ "community": 96,
+ "norm_label": ".post()",
+ "id": "tests_test_sandbox_fakeclient_post"
},
{
- "label": "1. Explore Agent \u2014 Prometheus Architecture",
- "file_type": "document",
- "source_file": "PLANS/memory-system-pandas-plan.md",
- "source_location": "L9",
- "community": 66,
- "norm_label": "1. explore agent \u2014 prometheus architecture",
- "id": "plans_memory_system_pandas_plan_1_explore_agent_prometheus_architecture"
+ "label": ".get()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L23",
+ "community": 96,
+ "norm_label": ".get()",
+ "id": "tests_test_sandbox_fakeclient_get"
},
{
- "label": "2. MySQL Vector Storage (Researcher)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-pandas-plan.md",
- "source_location": "L16",
- "community": 66,
- "norm_label": "2. mysql vector storage (researcher)",
- "id": "plans_memory_system_pandas_plan_2_mysql_vector_storage_researcher"
+ "label": ".put()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L27",
+ "community": 96,
+ "norm_label": ".put()",
+ "id": "tests_test_sandbox_fakeclient_put"
},
{
- "label": "3. Memory Patterns (Researcher)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-pandas-plan.md",
- "source_location": "L25",
- "community": 66,
- "norm_label": "3. memory patterns (researcher)",
- "id": "plans_memory_system_pandas_plan_3_memory_patterns_researcher"
+ "label": ".delete()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L31",
+ "community": 96,
+ "norm_label": ".delete()",
+ "id": "tests_test_sandbox_fakeclient_delete"
},
{
- "label": "Current State",
- "file_type": "document",
- "source_file": "PLANS/memory-system-pandas-plan.md",
- "source_location": "L32",
- "community": 66,
- "norm_label": "current state",
- "id": "plans_memory_system_pandas_plan_current_state"
+ "label": ".__aenter__()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L35",
+ "community": 96,
+ "norm_label": ".__aenter__()",
+ "id": "tests_test_sandbox_fakeclient_aenter"
},
{
- "label": "What's Missing / Needs Change",
- "file_type": "document",
- "source_file": "PLANS/memory-system-pandas-plan.md",
- "source_location": "L43",
- "community": 66,
- "norm_label": "what's missing / needs change",
- "id": "plans_memory_system_pandas_plan_what_s_missing_needs_change"
+ "label": ".__aexit__()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L38",
+ "community": 96,
+ "norm_label": ".__aexit__()",
+ "id": "tests_test_sandbox_fakeclient_aexit"
},
{
- "label": "A. Vector Embedding Integration",
- "file_type": "document",
- "source_file": "PLANS/memory-system-pandas-plan.md",
- "source_location": "L45",
- "community": 66,
- "norm_label": "a. vector embedding integration",
- "id": "plans_memory_system_pandas_plan_a_vector_embedding_integration"
+ "label": "_ok_response()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L42",
+ "community": 96,
+ "norm_label": "_ok_response()",
+ "id": "tests_test_sandbox_ok_response"
},
{
- "label": "B. Pandas-First Vector Cache",
- "file_type": "document",
- "source_file": "PLANS/memory-system-pandas-plan.md",
- "source_location": "L54",
- "community": 66,
- "norm_label": "b. pandas-first vector cache",
- "id": "plans_memory_system_pandas_plan_b_pandas_first_vector_cache"
+ "label": "TestSandboxCreate",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L50",
+ "community": 2,
+ "norm_label": "testsandboxcreate",
+ "id": "tests_test_sandbox_testsandboxcreate"
},
{
- "label": "code:python (class MemoryCache:)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-pandas-plan.md",
+ "label": "test_create_fallback_id_on_empty_response()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
"source_location": "L60",
- "community": 66,
- "norm_label": "code:python (class memorycache:)",
- "id": "plans_memory_system_pandas_plan_codeblock_1"
+ "community": 96,
+ "norm_label": "test_create_fallback_id_on_empty_response()",
+ "id": "tests_test_sandbox_test_create_fallback_id_on_empty_response"
},
{
- "label": "C. Search Upgrade",
- "file_type": "document",
- "source_file": "PLANS/memory-system-pandas-plan.md",
- "source_location": "L123",
- "community": 66,
- "norm_label": "c. search upgrade",
- "id": "plans_memory_system_pandas_plan_c_search_upgrade"
+ "label": "TestSandboxExecute",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L68",
+ "community": 2,
+ "norm_label": "testsandboxexecute",
+ "id": "tests_test_sandbox_testsandboxexecute"
},
{
- "label": "code:python (def searchMemories(cls, db, userId, query, embedding=None, l)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-pandas-plan.md",
- "source_location": "L131",
- "community": 66,
- "norm_label": "code:python (def searchmemories(cls, db, userid, query, embedding=none, l)",
- "id": "plans_memory_system_pandas_plan_codeblock_2"
+ "label": "test_execute_returns_stdout_stderr()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L70",
+ "community": 96,
+ "norm_label": "test_execute_returns_stdout_stderr()",
+ "id": "tests_test_sandbox_test_execute_returns_stdout_stderr"
},
{
- "label": "D. Memory Extraction",
- "file_type": "document",
- "source_file": "PLANS/memory-system-pandas-plan.md",
- "source_location": "L151",
- "community": 66,
- "norm_label": "d. memory extraction",
- "id": "plans_memory_system_pandas_plan_d_memory_extraction"
+ "label": "test_execute_sends_code_in_body()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L79",
+ "community": 96,
+ "norm_label": "test_execute_sends_code_in_body()",
+ "id": "tests_test_sandbox_test_execute_sends_code_in_body"
},
{
- "label": "E. System Prompt Injection",
- "file_type": "document",
- "source_file": "PLANS/memory-system-pandas-plan.md",
- "source_location": "L160",
- "community": 66,
- "norm_label": "e. system prompt injection",
- "id": "plans_memory_system_pandas_plan_e_system_prompt_injection"
+ "label": "TestSandboxCheckpoint",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L87",
+ "community": 2,
+ "norm_label": "testsandboxcheckpoint",
+ "id": "tests_test_sandbox_testsandboxcheckpoint"
},
{
- "label": "Implementation Order",
- "file_type": "document",
- "source_file": "PLANS/memory-system-pandas-plan.md",
- "source_location": "L166",
- "community": 66,
- "norm_label": "implementation order",
- "id": "plans_memory_system_pandas_plan_implementation_order"
+ "label": "test_checkpoint_returns_checkpoint_id()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L89",
+ "community": 96,
+ "norm_label": "test_checkpoint_returns_checkpoint_id()",
+ "id": "tests_test_sandbox_test_checkpoint_returns_checkpoint_id"
},
{
- "label": "Files to Create/Modify",
- "file_type": "document",
- "source_file": "PLANS/memory-system-pandas-plan.md",
- "source_location": "L182",
- "community": 66,
- "norm_label": "files to create/modify",
- "id": "plans_memory_system_pandas_plan_files_to_create_modify"
+ "label": "TestSandboxRestore",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L97",
+ "community": 2,
+ "norm_label": "testsandboxrestore",
+ "id": "tests_test_sandbox_testsandboxrestore"
},
{
- "label": "Key Risks",
- "file_type": "document",
- "source_file": "PLANS/memory-system-pandas-plan.md",
- "source_location": "L194",
- "community": 66,
- "norm_label": "key risks",
- "id": "plans_memory_system_pandas_plan_key_risks"
+ "label": "test_restore_returns_new_sandbox_id()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L99",
+ "community": 96,
+ "norm_label": "test_restore_returns_new_sandbox_id()",
+ "id": "tests_test_sandbox_test_restore_returns_new_sandbox_id"
},
{
- "label": "Success Criteria",
- "file_type": "document",
- "source_file": "PLANS/memory-system-pandas-plan.md",
- "source_location": "L201",
- "community": 66,
- "norm_label": "success criteria",
- "id": "plans_memory_system_pandas_plan_success_criteria"
+ "label": "TestSandboxUploadFile",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L107",
+ "community": 2,
+ "norm_label": "testsandboxuploadfile",
+ "id": "tests_test_sandbox_testsandboxuploadfile"
},
{
- "label": "remove-memory-endpoints.md",
- "file_type": "document",
- "source_file": "PLANS/remove-memory-endpoints.md",
- "source_location": "L1",
- "community": 159,
- "norm_label": "remove-memory-endpoints.md",
- "id": "plans_remove_memory_endpoints_md"
+ "label": "test_upload_file_returns_true_on_success()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L109",
+ "community": 96,
+ "norm_label": "test_upload_file_returns_true_on_success()",
+ "id": "tests_test_sandbox_test_upload_file_returns_true_on_success"
},
{
- "label": "Plan: Remove /memories Endpoints \u2014 Memory via Agent Tools Only",
- "file_type": "document",
- "source_file": "PLANS/remove-memory-endpoints.md",
- "source_location": "L1",
- "community": 159,
- "norm_label": "plan: remove /memories endpoints \u2014 memory via agent tools only",
- "id": "plans_remove_memory_endpoints_plan_remove_memories_endpoints_memory_via_agent_tools_only"
+ "label": "test_upload_file_returns_false_on_error()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L117",
+ "community": 96,
+ "norm_label": "test_upload_file_returns_false_on_error()",
+ "id": "tests_test_sandbox_test_upload_file_returns_false_on_error"
},
{
- "label": "Current state",
- "file_type": "document",
- "source_file": "PLANS/remove-memory-endpoints.md",
- "source_location": "L3",
- "community": 159,
- "norm_label": "current state",
- "id": "plans_remove_memory_endpoints_current_state"
+ "label": "TestSandboxReadFile",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L125",
+ "community": 2,
+ "norm_label": "testsandboxreadfile",
+ "id": "tests_test_sandbox_testsandboxreadfile"
},
{
- "label": "What to remove",
- "file_type": "document",
- "source_file": "PLANS/remove-memory-endpoints.md",
- "source_location": "L14",
- "community": 159,
- "norm_label": "what to remove",
- "id": "plans_remove_memory_endpoints_what_to_remove"
+ "label": "test_read_file_returns_content()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L127",
+ "community": 96,
+ "norm_label": "test_read_file_returns_content()",
+ "id": "tests_test_sandbox_test_read_file_returns_content"
},
{
- "label": "What stays",
- "file_type": "document",
- "source_file": "PLANS/remove-memory-endpoints.md",
- "source_location": "L22",
- "community": 159,
- "norm_label": "what stays",
- "id": "plans_remove_memory_endpoints_what_stays"
+ "label": "TestSandboxDestroy",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L135",
+ "community": 2,
+ "norm_label": "testsandboxdestroy",
+ "id": "tests_test_sandbox_testsandboxdestroy"
},
{
- "label": "Security benefits",
- "file_type": "document",
- "source_file": "PLANS/remove-memory-endpoints.md",
- "source_location": "L33",
- "community": 159,
- "norm_label": "security benefits",
- "id": "plans_remove_memory_endpoints_security_benefits"
+ "label": "test_destroy_calls_delete()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L137",
+ "community": 96,
+ "norm_label": "test_destroy_calls_delete()",
+ "id": "tests_test_sandbox_test_destroy_calls_delete"
},
{
- "label": "Changes",
- "file_type": "document",
- "source_file": "PLANS/remove-memory-endpoints.md",
- "source_location": "L43",
- "community": 159,
- "norm_label": "changes",
- "id": "plans_remove_memory_endpoints_changes"
+ "label": "Unit tests for SandboxManager \u2014 HTTP calls mocked via a fake client class.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L1",
+ "community": 2,
+ "norm_label": "unit tests for sandboxmanager \u2014 http calls mocked via a fake client class.",
+ "id": "tests_test_sandbox_rationale_1"
},
{
- "label": "Implementation",
- "file_type": "document",
- "source_file": "PLANS/remove-memory-endpoints.md",
- "source_location": "L49",
- "community": 159,
- "norm_label": "implementation",
- "id": "plans_remove_memory_endpoints_implementation"
+ "label": "Fake httpx.AsyncClient that records calls and returns pre-set responses.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L10",
+ "community": 96,
+ "norm_label": "fake httpx.asyncclient that records calls and returns pre-set responses.",
+ "id": "tests_test_sandbox_rationale_10"
},
{
- "label": "Total: ~15 min",
- "file_type": "document",
- "source_file": "PLANS/remove-memory-endpoints.md",
- "source_location": "L55",
- "community": 159,
- "norm_label": "total: ~15 min",
- "id": "plans_remove_memory_endpoints_total_15_min"
+ "label": ".test_read_sandbox_file_in_registry()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox_tools.py",
+ "source_location": "L12",
+ "community": 263,
+ "norm_label": ".test_read_sandbox_file_in_registry()",
+ "id": "tests_test_sandbox_tools_testsandboxtooldefinitions_test_read_sandbox_file_in_registry"
},
{
- "label": "_now()",
+ "label": ".test_check_cache_in_registry()",
"file_type": "code",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L16",
- "community": 53,
- "norm_label": "_now()",
- "id": "prometheus_memory_now"
+ "source_file": "tests/test_sandbox_tools.py",
+ "source_location": "L15",
+ "community": 263,
+ "norm_label": ".test_check_cache_in_registry()",
+ "id": "tests_test_sandbox_tools_testsandboxtooldefinitions_test_check_cache_in_registry"
},
{
- "label": "makeChat must include MEMORY_TOOLS alongside MCP sessions.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L48",
- "community": 492,
- "norm_label": "makechat must include memory_tools alongside mcp sessions.",
- "id": "tests_test_memory_tools_wiring_rationale_48"
+ "label": ".test_read_sandbox_file_has_docstring()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox_tools.py",
+ "source_location": "L23",
+ "community": 263,
+ "norm_label": ".test_read_sandbox_file_has_docstring()",
+ "id": "tests_test_sandbox_tools_testsandboxtooldefinitions_test_read_sandbox_file_has_docstring"
},
{
- "label": "dispatchToolCall must route memory tool names to executeMemoryTool.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L76",
- "community": 474,
- "norm_label": "dispatchtoolcall must route memory tool names to executememorytool.",
- "id": "tests_test_memory_tools_wiring_rationale_76"
+ "label": ".test_check_cache_has_docstring()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox_tools.py",
+ "source_location": "L28",
+ "community": 263,
+ "norm_label": ".test_check_cache_has_docstring()",
+ "id": "tests_test_sandbox_tools_testsandboxtooldefinitions_test_check_cache_has_docstring"
},
{
- "label": "d4e5f6a7b8c9_rename_relevance_to_base_score.py",
+ "label": "TestCheckCache",
"file_type": "code",
- "source_file": "migrations/versions/d4e5f6a7b8c9_rename_relevance_to_base_score.py",
- "source_location": "L1",
- "community": 244,
- "norm_label": "d4e5f6a7b8c9_rename_relevance_to_base_score.py",
- "id": "migrations_versions_d4e5f6a7b8c9_rename_relevance_to_base_score_py"
+ "source_file": "tests/test_sandbox_tools.py",
+ "source_location": "L34",
+ "community": 49,
+ "norm_label": "testcheckcache",
+ "id": "tests_test_sandbox_tools_testcheckcache"
},
{
- "label": "upgrade()",
+ "label": "test_check_cache_hit()",
"file_type": "code",
- "source_file": "migrations/versions/d4e5f6a7b8c9_rename_relevance_to_base_score.py",
- "source_location": "L18",
- "community": 244,
- "norm_label": "upgrade()",
- "id": "versions_d4e5f6a7b8c9_rename_relevance_to_base_score_upgrade"
+ "source_file": "tests/test_sandbox_tools.py",
+ "source_location": "L36",
+ "community": 49,
+ "norm_label": "test_check_cache_hit()",
+ "id": "tests_test_sandbox_tools_test_check_cache_hit"
},
{
- "label": "downgrade()",
+ "label": "test_check_cache_miss()",
"file_type": "code",
- "source_file": "migrations/versions/d4e5f6a7b8c9_rename_relevance_to_base_score.py",
- "source_location": "L22",
- "community": 244,
- "norm_label": "downgrade()",
- "id": "versions_d4e5f6a7b8c9_rename_relevance_to_base_score_downgrade"
+ "source_file": "tests/test_sandbox_tools.py",
+ "source_location": "L44",
+ "community": 49,
+ "norm_label": "test_check_cache_miss()",
+ "id": "tests_test_sandbox_tools_test_check_cache_miss"
},
{
- "label": "rename relevanceScore to baseScore Revision ID: d4e5f6a7b8c9 Revises: b1c2d3e4f",
- "file_type": "rationale",
- "source_file": "migrations/versions/d4e5f6a7b8c9_rename_relevance_to_base_score.py",
- "source_location": "L1",
- "community": 244,
- "norm_label": "rename relevancescore to basescore revision id: d4e5f6a7b8c9 revises: b1c2d3e4f",
- "id": "versions_d4e5f6a7b8c9_rename_relevance_to_base_score_rationale_1"
+ "label": "test_check_cache_no_cache()",
+ "file_type": "code",
+ "source_file": "tests/test_sandbox_tools.py",
+ "source_location": "L51",
+ "community": 49,
+ "norm_label": "test_check_cache_no_cache()",
+ "id": "tests_test_sandbox_tools_test_check_cache_no_cache"
},
{
- "label": "decayScores()",
+ "label": "test_dispatch_execute_code_routes_to_registry()",
"file_type": "code",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L192",
- "community": 53,
- "norm_label": "decayscores()",
- "id": "prometheus_memory_decayscores"
+ "source_file": "tests/test_sandbox_tools.py",
+ "source_location": "L59",
+ "community": 49,
+ "norm_label": "test_dispatch_execute_code_routes_to_registry()",
+ "id": "tests_test_sandbox_tools_test_dispatch_execute_code_routes_to_registry"
},
{
- "label": "executeMemoryTool()",
+ "label": "test_streamMessage_premium_creates_sandbox_on_execute_code()",
"file_type": "code",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L91",
- "community": 116,
- "norm_label": "executememorytool()",
- "id": "prometheus_agent_executememorytool"
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L93",
+ "community": 24,
+ "norm_label": "test_streammessage_premium_creates_sandbox_on_execute_code()",
+ "id": "tests_test_agent_sandbox_integration_test_streammessage_premium_creates_sandbox_on_execute_code"
},
{
- "label": ".executeToolCall()",
+ "label": "test_streamMessage_non_premium_blocks_sandbox()",
"file_type": "code",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L226",
- "community": 116,
- "norm_label": ".executetoolcall()",
- "id": "prometheus_agent_prometheus_executetoolcall"
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L150",
+ "community": 24,
+ "norm_label": "test_streammessage_non_premium_blocks_sandbox()",
+ "id": "tests_test_agent_sandbox_integration_test_streammessage_non_premium_blocks_sandbox"
},
{
- "label": "MemoryManager",
- "file_type": "code",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L20",
- "community": 140,
- "norm_label": "memorymanager",
- "id": "prometheus_memory_memorymanager"
+ "label": "streamMessage should create a HarnessState and pass it to buildSystemPrompt.",
+ "file_type": "rationale",
+ "source_file": "tests/test_agent_state_integration.py",
+ "source_location": "L85",
+ "community": 355,
+ "norm_label": "streammessage should create a harnessstate and pass it to buildsystemprompt.",
+ "id": "tests_test_agent_state_integration_rationale_85"
},
{
- "label": "getMemories()",
- "file_type": "code",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L163",
- "community": 84,
- "norm_label": "getmemories()",
- "id": "controller_prometheus_controller_getmemories"
+ "label": "streamMessage should pass state to dispatchToolCall.",
+ "file_type": "rationale",
+ "source_file": "tests/test_agent_state_integration.py",
+ "source_location": "L125",
+ "community": 356,
+ "norm_label": "streammessage should pass state to dispatchtoolcall.",
+ "id": "tests_test_agent_state_integration_rationale_125"
},
{
- "label": "createMemory()",
- "file_type": "code",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L177",
- "community": 84,
- "norm_label": "creatememory()",
- "id": "controller_prometheus_controller_creatememory"
+ "label": "System prompt should instruct LLM about harness state usage.",
+ "file_type": "rationale",
+ "source_file": "tests/test_agent_state_integration.py",
+ "source_location": "L185",
+ "community": 93,
+ "norm_label": "system prompt should instruct llm about harness state usage.",
+ "id": "tests_test_agent_state_integration_rationale_185"
},
{
- "label": "deleteMemory()",
- "file_type": "code",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L207",
- "community": 84,
- "norm_label": "deletememory()",
- "id": "controller_prometheus_controller_deletememory"
+ "label": "System prompt should instruct LLM about memory vs state.",
+ "file_type": "rationale",
+ "source_file": "tests/test_agent_state_integration.py",
+ "source_location": "L194",
+ "community": 93,
+ "norm_label": "system prompt should instruct llm about memory vs state.",
+ "id": "tests_test_agent_state_integration_rationale_194"
},
{
- "label": "test_memory_controller.py",
+ "label": "context.py",
"file_type": "code",
- "source_file": "tests/test_memory_controller.py",
+ "source_file": "main/app/prometheus/context.py",
"source_location": "L1",
- "community": 126,
- "norm_label": "test_memory_controller.py",
- "id": "tests_test_memory_controller_py"
+ "community": 32,
+ "norm_label": "context.py",
+ "id": "main_app_prometheus_context_py"
},
{
- "label": "TestMemoryControllerRoutes",
+ "label": "ToolContext",
"file_type": "code",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L10",
- "community": 126,
- "norm_label": "testmemorycontrollerroutes",
- "id": "tests_test_memory_controller_testmemorycontrollerroutes"
+ "source_file": "main/app/prometheus/context.py",
+ "source_location": "L13",
+ "community": 32,
+ "norm_label": "toolcontext",
+ "id": "prometheus_context_toolcontext"
},
{
- "label": ".test_get_memories_endpoint_exists()",
+ "label": ".__post_init__()",
"file_type": "code",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L11",
- "community": 126,
- "norm_label": ".test_get_memories_endpoint_exists()",
- "id": "tests_test_memory_controller_testmemorycontrollerroutes_test_get_memories_endpoint_exists"
+ "source_file": "main/app/prometheus/context.py",
+ "source_location": "L22",
+ "community": 32,
+ "norm_label": ".__post_init__()",
+ "id": "prometheus_context_toolcontext_post_init"
},
{
- "label": ".test_post_memories_endpoint_exists()",
+ "label": "Read a file from the sandbox filesystem. Args: path: Absolute pa",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L142",
+ "community": 152,
+ "norm_label": "read a file from the sandbox filesystem. args: path: absolute pa",
+ "id": "prometheus_tools_rationale_142"
+ },
+ {
+ "label": "test_context.py",
"file_type": "code",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L15",
- "community": 126,
- "norm_label": ".test_post_memories_endpoint_exists()",
- "id": "tests_test_memory_controller_testmemorycontrollerroutes_test_post_memories_endpoint_exists"
+ "source_file": "tests/test_context.py",
+ "source_location": "L1",
+ "community": 32,
+ "norm_label": "test_context.py",
+ "id": "tests_test_context_py"
},
{
- "label": ".test_delete_memories_endpoint_exists()",
+ "label": "TestToolContextCreation",
"file_type": "code",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L19",
- "community": 126,
- "norm_label": ".test_delete_memories_endpoint_exists()",
- "id": "tests_test_memory_controller_testmemorycontrollerroutes_test_delete_memories_endpoint_exists"
+ "source_file": "tests/test_context.py",
+ "source_location": "L9",
+ "community": 32,
+ "norm_label": "testtoolcontextcreation",
+ "id": "tests_test_context_testtoolcontextcreation"
},
{
- "label": ".test_get_memories_rejects_unauthenticated()",
+ "label": ".test_empty_context()",
"file_type": "code",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L23",
- "community": 126,
- "norm_label": ".test_get_memories_rejects_unauthenticated()",
- "id": "tests_test_memory_controller_testmemorycontrollerroutes_test_get_memories_rejects_unauthenticated"
+ "source_file": "tests/test_context.py",
+ "source_location": "L10",
+ "community": 32,
+ "norm_label": ".test_empty_context()",
+ "id": "tests_test_context_testtoolcontextcreation_test_empty_context"
},
{
- "label": ".test_get_memories_rejects_basic_user()",
+ "label": ".test_full_context()",
"file_type": "code",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L38",
- "community": 126,
- "norm_label": ".test_get_memories_rejects_basic_user()",
- "id": "tests_test_memory_controller_testmemorycontrollerroutes_test_get_memories_rejects_basic_user"
+ "source_file": "tests/test_context.py",
+ "source_location": "L20",
+ "community": 32,
+ "norm_label": ".test_full_context()",
+ "id": "tests_test_context_testtoolcontextcreation_test_full_context"
},
{
- "label": "TestMemoryEndpointsIntegration",
+ "label": ".test_extracts_user_id_from_user_dict()",
"file_type": "code",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L65",
- "community": 126,
- "norm_label": "testmemoryendpointsintegration",
- "id": "tests_test_memory_controller_testmemoryendpointsintegration"
+ "source_file": "tests/test_context.py",
+ "source_location": "L44",
+ "community": 32,
+ "norm_label": ".test_extracts_user_id_from_user_dict()",
+ "id": "tests_test_context_testtoolcontextcreation_test_extracts_user_id_from_user_dict"
},
{
- "label": "test_get_memories_calls_manager()",
+ "label": ".test_user_id_override()",
"file_type": "code",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L67",
- "community": 126,
- "norm_label": "test_get_memories_calls_manager()",
- "id": "tests_test_memory_controller_test_get_memories_calls_manager"
+ "source_file": "tests/test_context.py",
+ "source_location": "L49",
+ "community": 32,
+ "norm_label": ".test_user_id_override()",
+ "id": "tests_test_context_testtoolcontextcreation_test_user_id_override"
},
{
- "label": "test_create_memory_calls_manager()",
+ "label": ".test_user_id_none_when_no_user()",
"file_type": "code",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L90",
- "community": 126,
- "norm_label": "test_create_memory_calls_manager()",
- "id": "tests_test_memory_controller_test_create_memory_calls_manager"
+ "source_file": "tests/test_context.py",
+ "source_location": "L55",
+ "community": 32,
+ "norm_label": ".test_user_id_none_when_no_user()",
+ "id": "tests_test_context_testtoolcontextcreation_test_user_id_none_when_no_user"
},
{
- "label": "test_create_memory_limit_reached()",
+ "label": ".test_user_id_none_when_user_has_no_id()",
"file_type": "code",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L111",
- "community": 126,
- "norm_label": "test_create_memory_limit_reached()",
- "id": "tests_test_memory_controller_test_create_memory_limit_reached"
+ "source_file": "tests/test_context.py",
+ "source_location": "L59",
+ "community": 32,
+ "norm_label": ".test_user_id_none_when_user_has_no_id()",
+ "id": "tests_test_context_testtoolcontextcreation_test_user_id_none_when_user_has_no_id"
},
{
- "label": "test_delete_memory_calls_manager()",
+ "label": "TestToolContextStateAccess",
"file_type": "code",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L126",
- "community": 126,
- "norm_label": "test_delete_memory_calls_manager()",
- "id": "tests_test_memory_controller_test_delete_memory_calls_manager"
+ "source_file": "tests/test_context.py",
+ "source_location": "L64",
+ "community": 32,
+ "norm_label": "testtoolcontextstateaccess",
+ "id": "tests_test_context_testtoolcontextstateaccess"
},
{
- "label": "test_delete_memory_not_found()",
+ "label": ".test_state_get()",
"file_type": "code",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L135",
- "community": 126,
- "norm_label": "test_delete_memory_not_found()",
- "id": "tests_test_memory_controller_test_delete_memory_not_found"
+ "source_file": "tests/test_context.py",
+ "source_location": "L65",
+ "community": 32,
+ "norm_label": ".test_state_get()",
+ "id": "tests_test_context_testtoolcontextstateaccess_test_state_get"
},
{
- "label": ".test_create_memory_missing_key()",
+ "label": ".test_state_set()",
"file_type": "code",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L141",
- "community": 126,
- "norm_label": ".test_create_memory_missing_key()",
- "id": "tests_test_memory_controller_testmemoryendpointsintegration_test_create_memory_missing_key"
+ "source_file": "tests/test_context.py",
+ "source_location": "L71",
+ "community": 32,
+ "norm_label": ".test_state_set()",
+ "id": "tests_test_context_testtoolcontextstateaccess_test_state_set"
},
{
- "label": ".test_create_memory_missing_value()",
+ "label": ".test_state_toDict()",
"file_type": "code",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L145",
- "community": 126,
- "norm_label": ".test_create_memory_missing_value()",
- "id": "tests_test_memory_controller_testmemoryendpointsintegration_test_create_memory_missing_value"
+ "source_file": "tests/test_context.py",
+ "source_location": "L77",
+ "community": 32,
+ "norm_label": ".test_state_todict()",
+ "id": "tests_test_context_testtoolcontextstateaccess_test_state_toDict"
},
{
- "label": "Custom SQLAlchemy type for storing float32 embeddings as MySQL BLOB.",
- "file_type": "rationale",
- "source_file": "main/models/memory_types.py",
- "source_location": "L6",
- "community": 51,
- "norm_label": "custom sqlalchemy type for storing float32 embeddings as mysql blob.",
- "id": "models_memory_types_rationale_6"
+ "label": "TestToolContextMcpClients",
+ "file_type": "code",
+ "source_file": "tests/test_context.py",
+ "source_location": "L85",
+ "community": 32,
+ "norm_label": "testtoolcontextmcpclients",
+ "id": "tests_test_context_testtoolcontextmcpclients"
},
{
- "label": "Vectorized cosine similarity: one query against N embeddings.",
- "file_type": "rationale",
- "source_file": "main/utils/vector.py",
- "source_location": "L6",
- "community": 112,
- "norm_label": "vectorized cosine similarity: one query against n embeddings.",
- "id": "utils_vector_rationale_6"
+ "label": ".test_mcp_clients_isolation()",
+ "file_type": "code",
+ "source_file": "tests/test_context.py",
+ "source_location": "L86",
+ "community": 32,
+ "norm_label": ".test_mcp_clients_isolation()",
+ "id": "tests_test_context_testtoolcontextmcpclients_test_mcp_clients_isolation"
},
{
- "label": "MD5 hash for change detection.",
- "file_type": "rationale",
- "source_file": "main/utils/vector.py",
- "source_location": "L19",
- "community": 115,
- "norm_label": "md5 hash for change detection.",
- "id": "utils_vector_rationale_19"
- },
- {
- "label": "memory-system-plan.md",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L1",
- "community": 6,
- "norm_label": "memory-system-plan.md",
- "id": "plans_memory_system_plan_md"
+ "label": ".test_mcp_clients_passed_through()",
+ "file_type": "code",
+ "source_file": "tests/test_context.py",
+ "source_location": "L93",
+ "community": 32,
+ "norm_label": ".test_mcp_clients_passed_through()",
+ "id": "tests_test_context_testtoolcontextmcpclients_test_mcp_clients_passed_through"
},
{
- "label": "Mansa Memory System \u2014 Implementation Plan (v2)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L1",
- "community": 6,
- "norm_label": "mansa memory system \u2014 implementation plan (v2)",
- "id": "plans_memory_system_plan_mansa_memory_system_implementation_plan_v2"
+ "label": "TestToolContextDataclass",
+ "file_type": "code",
+ "source_file": "tests/test_context.py",
+ "source_location": "L99",
+ "community": 32,
+ "norm_label": "testtoolcontextdataclass",
+ "id": "tests_test_context_testtoolcontextdataclass"
},
{
- "label": "Goal",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L3",
- "community": 6,
- "norm_label": "goal",
- "id": "plans_memory_system_plan_goal"
+ "label": ".test_is_dataclass()",
+ "file_type": "code",
+ "source_file": "tests/test_context.py",
+ "source_location": "L100",
+ "community": 32,
+ "norm_label": ".test_is_dataclass()",
+ "id": "tests_test_context_testtoolcontextdataclass_test_is_dataclass"
},
{
- "label": "1. Permission System",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L9",
- "community": 6,
- "norm_label": "1. permission system",
- "id": "plans_memory_system_plan_1_permission_system"
+ "label": ".test_equality()",
+ "file_type": "code",
+ "source_file": "tests/test_context.py",
+ "source_location": "L114",
+ "community": 32,
+ "norm_label": ".test_equality()",
+ "id": "tests_test_context_testtoolcontextdataclass_test_equality"
},
{
- "label": "Current state (`main/utils/roles.py`)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L11",
- "community": 6,
- "norm_label": "current state (`main/utils/roles.py`)",
- "id": "plans_memory_system_plan_current_state_main_utils_roles_py"
+ "label": "Unit tests for ToolContext dataclass.",
+ "file_type": "rationale",
+ "source_file": "tests/test_context.py",
+ "source_location": "L1",
+ "community": 32,
+ "norm_label": "unit tests for toolcontext dataclass.",
+ "id": "tests_test_context_rationale_1"
},
{
- "label": "code:python (class Permission(IntFlag):)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L15",
- "community": 6,
- "norm_label": "code:python (class permission(intflag):)",
- "id": "plans_memory_system_plan_codeblock_1"
+ "label": "Explicit userId takes precedence over user dict.",
+ "file_type": "rationale",
+ "source_file": "tests/test_context.py",
+ "source_location": "L50",
+ "community": 32,
+ "norm_label": "explicit userid takes precedence over user dict.",
+ "id": "tests_test_context_rationale_50"
},
{
- "label": "New permission",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L26",
- "community": 6,
- "norm_label": "new permission",
- "id": "plans_memory_system_plan_new_permission"
+ "label": "Two contexts share no mutable defaults.",
+ "file_type": "rationale",
+ "source_file": "tests/test_context.py",
+ "source_location": "L87",
+ "community": 32,
+ "norm_label": "two contexts share no mutable defaults.",
+ "id": "tests_test_context_rationale_87"
},
{
- "label": "code:python (PROMETHEUS_EXTENDED_MEMORIES = auto() # 50 memories (vs 5 f)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L28",
- "community": 6,
- "norm_label": "code:python (prometheus_extended_memories = auto() # 50 memories (vs 5 f)",
- "id": "plans_memory_system_plan_codeblock_2"
+ "label": "Dataclass equality works out of the box.",
+ "file_type": "rationale",
+ "source_file": "tests/test_context.py",
+ "source_location": "L115",
+ "community": 32,
+ "norm_label": "dataclass equality works out of the box.",
+ "id": "tests_test_context_rationale_115"
},
{
- "label": "code:python (PREMIUM = USER | USE_PROMETHEUS | USE_OGUM | PROMETHEUS_EXTE)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L34",
- "community": 6,
- "norm_label": "code:python (premium = user | use_prometheus | use_ogum | prometheus_exte)",
- "id": "plans_memory_system_plan_codeblock_3"
+ "label": "._cache_path()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/cache.py",
+ "source_location": "L19",
+ "community": 162,
+ "norm_label": "._cache_path()",
+ "id": "prometheus_cache_resultcache_cache_path"
},
{
- "label": "Memory limit logic",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L38",
- "community": 6,
- "norm_label": "memory limit logic",
- "id": "plans_memory_system_plan_memory_limit_logic"
+ "label": "ResultCache \u2014 SHA256-keyed file-based cache for computed results.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/cache.py",
+ "source_location": "L1",
+ "community": 162,
+ "norm_label": "resultcache \u2014 sha256-keyed file-based cache for computed results.",
+ "id": "prometheus_cache_rationale_1"
},
{
- "label": "code:python (def get_memory_limit(user_roles: list[str]) -> int:)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L40",
- "community": 6,
- "norm_label": "code:python (def get_memory_limit(user_roles: list[str]) -> int:)",
- "id": "plans_memory_system_plan_codeblock_4"
+ "label": "File-based cache keyed by SHA256 of code. Stores results as JSON under:",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/cache.py",
+ "source_location": "L10",
+ "community": 162,
+ "norm_label": "file-based cache keyed by sha256 of code. stores results as json under:",
+ "id": "prometheus_cache_rationale_10"
},
{
- "label": "Rolling out to free users",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L48",
- "community": 6,
- "norm_label": "rolling out to free users",
- "id": "plans_memory_system_plan_rolling_out_to_free_users"
+ "label": "Return cached result dict or None if miss.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/cache.py",
+ "source_location": "L24",
+ "community": 162,
+ "norm_label": "return cached result dict or none if miss.",
+ "id": "prometheus_cache_rationale_24"
},
{
- "label": "2. Database Schema",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L57",
- "community": 6,
- "norm_label": "2. database schema",
- "id": "plans_memory_system_plan_2_database_schema"
+ "label": "Store result with timestamp.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/cache.py",
+ "source_location": "L31",
+ "community": 162,
+ "norm_label": "store result with timestamp.",
+ "id": "prometheus_cache_rationale_31"
},
{
- "label": "New table: `prometheus_memories`",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L59",
- "community": 6,
- "norm_label": "new table: `prometheus_memories`",
- "id": "plans_memory_system_plan_new_table_prometheus_memories"
+ "label": "Delete all cached results for a session.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/cache.py",
+ "source_location": "L42",
+ "community": 162,
+ "norm_label": "delete all cached results for a session.",
+ "id": "prometheus_cache_rationale_42"
},
{
- "label": "code:sql (CREATE TABLE prometheus_memories ()",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L61",
- "community": 6,
- "norm_label": "code:sql (create table prometheus_memories ()",
- "id": "plans_memory_system_plan_codeblock_5"
+ "label": "Check if a result exists for the given code.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/cache.py",
+ "source_location": "L50",
+ "community": 162,
+ "norm_label": "check if a result exists for the given code.",
+ "id": "prometheus_cache_rationale_50"
},
{
- "label": "Alembic migration",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L89",
- "community": 6,
- "norm_label": "alembic migration",
- "id": "plans_memory_system_plan_alembic_migration"
+ "label": "ToolContext \u2014 bundles all dependencies for tool execution. Replace passing user",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/context.py",
+ "source_location": "L1",
+ "community": 32,
+ "norm_label": "toolcontext \u2014 bundles all dependencies for tool execution. replace passing user",
+ "id": "prometheus_context_rationale_1"
},
{
- "label": "3. SQLAlchemy Models",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L95",
- "community": 6,
- "norm_label": "3. sqlalchemy models",
- "id": "plans_memory_system_plan_3_sqlalchemy_models"
+ "label": "Single dependency bundle for tool execution. Created once per request in ag",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/context.py",
+ "source_location": "L22",
+ "community": 32,
+ "norm_label": "single dependency bundle for tool execution. created once per request in ag",
+ "id": "prometheus_context_rationale_22"
},
{
- "label": "`main/models/memory.py` \u2014 New file",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L97",
- "community": 6,
- "norm_label": "`main/models/memory.py` \u2014 new file",
- "id": "plans_memory_system_plan_main_models_memory_py_new_file"
+ "label": "Extract userId from user dict if not explicitly set.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/context.py",
+ "source_location": "L38",
+ "community": 32,
+ "norm_label": "extract userid from user dict if not explicitly set.",
+ "id": "prometheus_context_rationale_38"
},
{
- "label": "code:python (from sqlalchemy import Column, Integer, String, Text, Float,)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L99",
- "community": 6,
- "norm_label": "code:python (from sqlalchemy import column, integer, string, text, float,)",
- "id": "plans_memory_system_plan_codeblock_6"
+ "label": ".log()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/events.py",
+ "source_location": "L16",
+ "community": 12,
+ "norm_label": ".log()",
+ "id": "prometheus_events_looplogger_log"
},
{
- "label": "`VectorType` \u2014 Custom TypeDecorator",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L136",
- "community": 6,
- "norm_label": "`vectortype` \u2014 custom typedecorator",
- "id": "plans_memory_system_plan_vectortype_custom_typedecorator"
+ "label": "LoopLogger \u2014 batched event logging for observable agent loops.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/events.py",
+ "source_location": "L1",
+ "community": 12,
+ "norm_label": "looplogger \u2014 batched event logging for observable agent loops.",
+ "id": "prometheus_events_rationale_1"
},
{
- "label": "code:python (# main/models/memory_types.py)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L138",
- "community": 6,
- "norm_label": "code:python (# main/models/memory_types.py)",
- "id": "plans_memory_system_plan_codeblock_7"
+ "label": "Queue events during a loop, flush to DB at end.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/events.py",
+ "source_location": "L10",
+ "community": 12,
+ "norm_label": "queue events during a loop, flush to db at end.",
+ "id": "prometheus_events_rationale_10"
},
{
- "label": "4. Vector Utilities",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L167",
- "community": 6,
- "norm_label": "4. vector utilities",
- "id": "plans_memory_system_plan_4_vector_utilities"
+ "label": "Log a generic event with optional metadata.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/events.py",
+ "source_location": "L38",
+ "community": 12,
+ "norm_label": "log a generic event with optional metadata.",
+ "id": "prometheus_events_rationale_38"
},
{
- "label": "`main/utils/vector.py` \u2014 New file",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L169",
- "community": 6,
- "norm_label": "`main/utils/vector.py` \u2014 new file",
- "id": "plans_memory_system_plan_main_utils_vector_py_new_file"
+ "label": "Log a tool invocation.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/events.py",
+ "source_location": "L44",
+ "community": 12,
+ "norm_label": "log a tool invocation.",
+ "id": "prometheus_events_rationale_44"
},
{
- "label": "code:python (import hashlib)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L171",
- "community": 6,
- "norm_label": "code:python (import hashlib)",
- "id": "plans_memory_system_plan_codeblock_8"
+ "label": "Log end of a turn with timing.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/events.py",
+ "source_location": "L52",
+ "community": 12,
+ "norm_label": "log end of a turn with timing.",
+ "id": "prometheus_events_rationale_52"
},
{
- "label": "5. Memory Manager (Service Layer)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L214",
- "community": 6,
- "norm_label": "5. memory manager (service layer)",
- "id": "plans_memory_system_plan_5_memory_manager_service_layer"
+ "label": "_base_url()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L19",
+ "community": 69,
+ "norm_label": "_base_url()",
+ "id": "prometheus_sandbox_base_url"
},
{
- "label": "`main/app/prometheus/memory.py` \u2014 New file",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L216",
- "community": 6,
- "norm_label": "`main/app/prometheus/memory.py` \u2014 new file",
- "id": "plans_memory_system_plan_main_app_prometheus_memory_py_new_file"
+ "label": "SandboxManager \u2014 on-demand CubeSandbox (E2B-compatible) microVM manager. Lifecy",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L1",
+ "community": 69,
+ "norm_label": "sandboxmanager \u2014 on-demand cubesandbox (e2b-compatible) microvm manager. lifecy",
+ "id": "prometheus_sandbox_rationale_1"
},
{
- "label": "code:python (from datetime import datetime, timedelta)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L220",
- "community": 6,
- "norm_label": "code:python (from datetime import datetime, timedelta)",
- "id": "plans_memory_system_plan_codeblock_9"
+ "label": "Thin async wrapper around the CubeSandbox/E2B HTTP API. All methods are sta",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L24",
+ "community": 2,
+ "norm_label": "thin async wrapper around the cubesandbox/e2b http api. all methods are sta",
+ "id": "prometheus_sandbox_rationale_24"
},
{
- "label": "6. Tool Integration (Gemini)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L468",
- "community": 6,
- "norm_label": "6. tool integration (gemini)",
- "id": "plans_memory_system_plan_6_tool_integration_gemini"
+ "label": "Create a sandbox and return its ID.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L31",
+ "community": 357,
+ "norm_label": "create a sandbox and return its id.",
+ "id": "prometheus_sandbox_rationale_31"
},
{
- "label": "Native Gemini tools (not MCP)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L470",
- "community": 6,
- "norm_label": "native gemini tools (not mcp)",
- "id": "plans_memory_system_plan_native_gemini_tools_not_mcp"
+ "label": "Execute Python code inside the sandbox. Returns {stdout, stderr}.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L50",
+ "community": 358,
+ "norm_label": "execute python code inside the sandbox. returns {stdout, stderr}.",
+ "id": "prometheus_sandbox_rationale_50"
},
{
- "label": "Changes to `agent.py`",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L474",
- "community": 6,
- "norm_label": "changes to `agent.py`",
- "id": "plans_memory_system_plan_changes_to_agent_py"
+ "label": "Snapshot sandbox state via CubeCoW. Returns checkpoint ID.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L58",
+ "community": 359,
+ "norm_label": "snapshot sandbox state via cubecow. returns checkpoint id.",
+ "id": "prometheus_sandbox_rationale_58"
},
{
- "label": "code:python (# In openMCPClients(), add memory tools alongside MCP sessio)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L476",
- "community": 6,
- "norm_label": "code:python (# in openmcpclients(), add memory tools alongside mcp sessio)",
- "id": "plans_memory_system_plan_codeblock_10"
+ "label": "Restore a sandbox from a checkpoint. Returns new sandbox ID.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L71",
+ "community": 360,
+ "norm_label": "restore a sandbox from a checkpoint. returns new sandbox id.",
+ "id": "prometheus_sandbox_rationale_71"
},
{
- "label": "7. System Prompt Injection",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L550",
- "community": 6,
- "norm_label": "7. system prompt injection",
- "id": "plans_memory_system_plan_7_system_prompt_injection"
+ "label": "Upload a file into the sandbox filesystem.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L80",
+ "community": 361,
+ "norm_label": "upload a file into the sandbox filesystem.",
+ "id": "prometheus_sandbox_rationale_80"
},
{
- "label": "Dynamic prompt with memories",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L552",
- "community": 6,
- "norm_label": "dynamic prompt with memories",
- "id": "plans_memory_system_plan_dynamic_prompt_with_memories"
+ "label": "Read a file from the sandbox filesystem.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L90",
+ "community": 362,
+ "norm_label": "read a file from the sandbox filesystem.",
+ "id": "prometheus_sandbox_rationale_90"
},
{
- "label": "code:python (def _build_system_prompt(user_id: int, db: Session) -> str:)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L556",
- "community": 6,
- "norm_label": "code:python (def _build_system_prompt(user_id: int, db: session) -> str:)",
- "id": "plans_memory_system_plan_codeblock_11"
+ "label": "harness.py",
+ "file_type": "code",
+ "source_file": "main/models/harness.py",
+ "source_location": "L1",
+ "community": 12,
+ "norm_label": "harness.py",
+ "id": "main_models_harness_py"
},
{
- "label": "Changes to `chat()` method",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L585",
- "community": 6,
- "norm_label": "changes to `chat()` method",
- "id": "plans_memory_system_plan_changes_to_chat_method"
+ "label": "LoopEvent",
+ "file_type": "code",
+ "source_file": "main/models/harness.py",
+ "source_location": "L7",
+ "community": 12,
+ "norm_label": "loopevent",
+ "id": "models_harness_loopevent"
},
{
- "label": "code:python (# In chat() method, replace static prompt:)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L587",
- "community": 6,
- "norm_label": "code:python (# in chat() method, replace static prompt:)",
- "id": "plans_memory_system_plan_codeblock_12"
+ "label": "LoopEvent model for observable agent loops.",
+ "file_type": "rationale",
+ "source_file": "main/models/harness.py",
+ "source_location": "L1",
+ "community": 12,
+ "norm_label": "loopevent model for observable agent loops.",
+ "id": "models_harness_rationale_1"
},
{
- "label": "8. Controller Endpoints",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L597",
- "community": 6,
- "norm_label": "8. controller endpoints",
- "id": "plans_memory_system_plan_8_controller_endpoints"
- },
- {
- "label": "`prometheus_controller.py` additions",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L599",
- "community": 6,
- "norm_label": "`prometheus_controller.py` additions",
- "id": "plans_memory_system_plan_prometheus_controller_py_additions"
- },
- {
- "label": "code:python (# GET /memories \u2014 list user's memories)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L603",
- "community": 6,
- "norm_label": "code:python (# get /memories \u2014 list user's memories)",
- "id": "plans_memory_system_plan_codeblock_13"
- },
- {
- "label": "9. Memory Decay (Background Job)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L658",
- "community": 6,
- "norm_label": "9. memory decay (background job)",
- "id": "plans_memory_system_plan_9_memory_decay_background_job"
- },
- {
- "label": "code:python (# Daily at 3 AM)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L660",
- "community": 6,
- "norm_label": "code:python (# daily at 3 am)",
- "id": "plans_memory_system_plan_codeblock_14"
- },
- {
- "label": "10. File Changes Summary",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L671",
- "community": 6,
- "norm_label": "10. file changes summary",
- "id": "plans_memory_system_plan_10_file_changes_summary"
- },
- {
- "label": "11. Implementation Order",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L686",
- "community": 6,
- "norm_label": "11. implementation order",
- "id": "plans_memory_system_plan_11_implementation_order"
- },
- {
- "label": "12. Key Design Decisions",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L704",
- "community": 6,
- "norm_label": "12. key design decisions",
- "id": "plans_memory_system_plan_12_key_design_decisions"
- },
- {
- "label": "13. Risks & Mitigations",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L720",
- "community": 6,
- "norm_label": "13. risks & mitigations",
- "id": "plans_memory_system_plan_13_risks_mitigations"
+ "label": "TestLoopEventModel",
+ "file_type": "code",
+ "source_file": "tests/test_events.py",
+ "source_location": "L7",
+ "community": 12,
+ "norm_label": "testloopeventmodel",
+ "id": "tests_test_events_testloopeventmodel"
},
{
- "label": "14. Future Enhancements (v2+)",
- "file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L732",
- "community": 6,
- "norm_label": "14. future enhancements (v2+)",
- "id": "plans_memory_system_plan_14_future_enhancements_v2"
+ "label": ".test_create_event()",
+ "file_type": "code",
+ "source_file": "tests/test_events.py",
+ "source_location": "L8",
+ "community": 12,
+ "norm_label": ".test_create_event()",
+ "id": "tests_test_events_testloopeventmodel_test_create_event"
},
{
- "label": "All memory operations. Stateless class methods.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/memory.py",
+ "label": ".test_event_fields()",
+ "file_type": "code",
+ "source_file": "tests/test_events.py",
"source_location": "L14",
- "community": 140,
- "norm_label": "all memory operations. stateless class methods.",
- "id": "prometheus_memory_rationale_14"
+ "community": 12,
+ "norm_label": ".test_event_fields()",
+ "id": "tests_test_events_testloopeventmodel_test_event_fields"
},
{
- "label": "_build_system_prompt()",
+ "label": ".test_nullable_fields()",
"file_type": "code",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L27",
- "community": 116,
- "norm_label": "_build_system_prompt()",
- "id": "prometheus_agent_build_system_prompt"
+ "source_file": "tests/test_events.py",
+ "source_location": "L33",
+ "community": 12,
+ "norm_label": ".test_nullable_fields()",
+ "id": "tests_test_events_testloopeventmodel_test_nullable_fields"
},
{
- "label": "_get_memory_tools()",
+ "label": ".test_created_at_auto()",
"file_type": "code",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L57",
- "community": 116,
- "norm_label": "_get_memory_tools()",
- "id": "prometheus_agent_get_memory_tools"
+ "source_file": "tests/test_events.py",
+ "source_location": "L43",
+ "community": 12,
+ "norm_label": ".test_created_at_auto()",
+ "id": "tests_test_events_testloopeventmodel_test_created_at_auto"
},
{
- "label": "_execute_memory_tool()",
+ "label": ".test_session_id_indexed()",
"file_type": "code",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L92",
- "community": 116,
- "norm_label": "_execute_memory_tool()",
- "id": "prometheus_agent_execute_memory_tool"
- },
- {
- "label": "Build system prompt with user memories injected.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L28",
- "community": 116,
- "norm_label": "build system prompt with user memories injected.",
- "id": "prometheus_agent_rationale_28"
+ "source_file": "tests/test_events.py",
+ "source_location": "L50",
+ "community": 12,
+ "norm_label": ".test_session_id_indexed()",
+ "id": "tests_test_events_testloopeventmodel_test_session_id_indexed"
},
{
- "label": "Native Gemini function declarations for memory operations.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L58",
- "community": 116,
- "norm_label": "native gemini function declarations for memory operations.",
- "id": "prometheus_agent_rationale_58"
+ "label": ".test_log_queues_event()",
+ "file_type": "code",
+ "source_file": "tests/test_events.py",
+ "source_location": "L56",
+ "community": 12,
+ "norm_label": ".test_log_queues_event()",
+ "id": "tests_test_events_testlooplogger_test_log_queues_event"
},
{
- "label": "Handle memory tool calls from Gemini.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L93",
- "community": 116,
- "norm_label": "handle memory tool calls from gemini.",
- "id": "prometheus_agent_rationale_93"
+ "label": ".test_flush_inserts_all()",
+ "file_type": "code",
+ "source_file": "tests/test_events.py",
+ "source_location": "L62",
+ "community": 12,
+ "norm_label": ".test_flush_inserts_all()",
+ "id": "tests_test_events_testlooplogger_test_flush_inserts_all"
},
{
- "label": "get_memory_limit()",
+ "label": ".test_flush_empty()",
"file_type": "code",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L17",
- "community": 53,
- "norm_label": "get_memory_limit()",
- "id": "prometheus_memory_get_memory_limit"
+ "source_file": "tests/test_events.py",
+ "source_location": "L71",
+ "community": 12,
+ "norm_label": ".test_flush_empty()",
+ "id": "tests_test_events_testlooplogger_test_flush_empty"
},
{
- "label": "count_memories()",
+ "label": ".test_flush_preserves_order()",
"file_type": "code",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L24",
- "community": 53,
- "norm_label": "count_memories()",
- "id": "prometheus_memory_count_memories"
+ "source_file": "tests/test_events.py",
+ "source_location": "L76",
+ "community": 12,
+ "norm_label": ".test_flush_preserves_order()",
+ "id": "tests_test_events_testlooplogger_test_flush_preserves_order"
},
{
- "label": "upsert_memory()",
+ "label": ".test_multiple_flushes()",
"file_type": "code",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L34",
- "community": 53,
- "norm_label": "upsert_memory()",
- "id": "prometheus_memory_upsert_memory"
+ "source_file": "tests/test_events.py",
+ "source_location": "L87",
+ "community": 12,
+ "norm_label": ".test_multiple_flushes()",
+ "id": "tests_test_events_testlooplogger_test_multiple_flushes"
},
{
- "label": "_fulltext_search()",
+ "label": ".test_log_with_all_params()",
"file_type": "code",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L138",
- "community": 53,
- "norm_label": "_fulltext_search()",
- "id": "prometheus_memory_fulltext_search"
+ "source_file": "tests/test_events.py",
+ "source_location": "L95",
+ "community": 12,
+ "norm_label": ".test_log_with_all_params()",
+ "id": "tests_test_events_testlooplogger_test_log_with_all_params"
},
{
- "label": "get_user_memories()",
+ "label": ".test_flush_failure_logged_not_raised()",
"file_type": "code",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L168",
- "community": 53,
- "norm_label": "get_user_memories()",
- "id": "prometheus_memory_get_user_memories"
+ "source_file": "tests/test_events.py",
+ "source_location": "L113",
+ "community": 12,
+ "norm_label": ".test_flush_failure_logged_not_raised()",
+ "id": "tests_test_events_testlooplogger_test_flush_failure_logged_not_raised"
},
{
- "label": "delete_memory()",
- "file_type": "code",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L195",
- "community": 53,
- "norm_label": "delete_memory()",
- "id": "prometheus_memory_delete_memory"
+ "label": "If DB insert fails, flush should log error, not raise.",
+ "file_type": "rationale",
+ "source_file": "tests/test_events.py",
+ "source_location": "L114",
+ "community": 12,
+ "norm_label": "if db insert fails, flush should log error, not raise.",
+ "id": "tests_test_events_rationale_114"
},
{
- "label": "decay_scores()",
+ "label": "test_system_prompt_includes_sandbox_instructions()",
"file_type": "code",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L209",
- "community": 53,
- "norm_label": "decay_scores()",
- "id": "prometheus_memory_decay_scores"
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L31",
+ "community": 24,
+ "norm_label": "test_system_prompt_includes_sandbox_instructions()",
+ "id": "tests_test_agent_sandbox_integration_test_system_prompt_includes_sandbox_instructions"
},
{
- "label": "archive_dead()",
+ "label": "test_system_prompt_includes_cache_instructions()",
"file_type": "code",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L223",
- "community": 53,
- "norm_label": "archive_dead()",
- "id": "prometheus_memory_archive_dead"
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L36",
+ "community": 24,
+ "norm_label": "test_system_prompt_includes_cache_instructions()",
+ "id": "tests_test_agent_sandbox_integration_test_system_prompt_includes_cache_instructions"
},
{
- "label": "Determine max memories based on user permissions.",
+ "label": "Retrieve values from the harness state. Use this to recall intermediate results,",
"file_type": "rationale",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L18",
- "community": 370,
- "norm_label": "determine max memories based on user permissions.",
- "id": "prometheus_memory_rationale_18"
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L77",
+ "community": 8,
+ "norm_label": "retrieve values from the harness state. use this to recall intermediate results,",
+ "id": "prometheus_tools_rationale_77"
},
{
- "label": "Count active memories for a user.",
+ "label": "Store a value in the harness state for this session. Use this to save interm",
"file_type": "rationale",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L25",
- "community": 371,
- "norm_label": "count active memories for a user.",
- "id": "prometheus_memory_rationale_25"
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L91",
+ "community": 536,
+ "norm_label": "store a value in the harness state for this session. use this to save interm",
+ "id": "prometheus_tools_rationale_91"
},
{
- "label": "Insert or update a memory. Checks limit before insert.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L45",
- "community": 372,
- "norm_label": "insert or update a memory. checks limit before insert.",
- "id": "prometheus_memory_rationale_45"
+ "label": "Phase 4: ToolContext (Replace God Function)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L725",
+ "community": 185,
+ "norm_label": "phase 4: toolcontext (replace god function)",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_phase_4_toolcontext_replace_god_function"
},
{
- "label": "Search user memories. Vector cosine \u2192 FULLTEXT fallback.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L97",
- "community": 373,
- "norm_label": "search user memories. vector cosine \u2192 fulltext fallback.",
- "id": "prometheus_memory_rationale_97"
+ "label": "Task 5: ToolContext \u2014 Single Dispatch Object",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L727",
+ "community": 185,
+ "norm_label": "task 5: toolcontext \u2014 single dispatch object",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_task_5_toolcontext_single_dispatch_object"
},
{
- "label": "List user's memories (paginated).",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L171",
- "community": 374,
- "norm_label": "list user's memories (paginated).",
- "id": "prometheus_memory_rationale_171"
+ "label": "Task 7: Tool Definitions \u2014 State + Sandbox + Cache Tools",
+ "file_type": "document",
+ "source_file": "docs/superpowers/plans/2026-07-16-prometheus-harness-master-v2.md",
+ "source_location": "L1148",
+ "community": 121,
+ "norm_label": "task 7: tool definitions \u2014 state + sandbox + cache tools",
+ "id": "plans_2026_07_16_prometheus_harness_master_v2_task_7_tool_definitions_state_sandbox_cache_tools"
},
{
- "label": "Soft-delete a memory.",
+ "label": "sendMessage should create a HarnessState and pass it to buildSystemPrompt.",
"file_type": "rationale",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L196",
- "community": 375,
- "norm_label": "soft-delete a memory.",
- "id": "prometheus_memory_rationale_196"
+ "source_file": "tests/test_agent_state_integration.py",
+ "source_location": "L50",
+ "community": 363,
+ "norm_label": "sendmessage should create a harnessstate and pass it to buildsystemprompt.",
+ "id": "tests_test_agent_state_integration_rationale_50"
},
{
- "label": "Background job: decay relevanceScore for old memories.",
+ "label": "streamMessage should create a HarnessState and pass it to buildSystemPrompt.",
"file_type": "rationale",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L210",
- "community": 376,
- "norm_label": "background job: decay relevancescore for old memories.",
- "id": "prometheus_memory_rationale_210"
+ "source_file": "tests/test_agent_state_integration.py",
+ "source_location": "L83",
+ "community": 364,
+ "norm_label": "streammessage should create a harnessstate and pass it to buildsystemprompt.",
+ "id": "tests_test_agent_state_integration_rationale_83"
},
{
- "label": "Archive memories with very low score and no access.",
+ "label": "System prompt should instruct LLM about memory vs state.",
"file_type": "rationale",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L224",
- "community": 377,
- "norm_label": "archive memories with very low score and no access.",
- "id": "prometheus_memory_rationale_224"
+ "source_file": "tests/test_agent_state_integration.py",
+ "source_location": "L191",
+ "community": 93,
+ "norm_label": "system prompt should instruct llm about memory vs state.",
+ "id": "tests_test_agent_state_integration_rationale_191"
},
{
- "label": "get_memories()",
+ "label": "executeStateTool()",
"file_type": "code",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L163",
- "community": 84,
- "norm_label": "get_memories()",
- "id": "controller_prometheus_controller_get_memories"
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L104",
+ "community": 8,
+ "norm_label": "executestatetool()",
+ "id": "prometheus_tools_executestatetool"
},
{
- "label": "create_memory()",
- "file_type": "code",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L177",
- "community": 84,
- "norm_label": "create_memory()",
- "id": "controller_prometheus_controller_create_memory"
+ "label": "Search user's saved memories, preferences, and past analysis context. Use t",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L13",
+ "community": 152,
+ "norm_label": "search user's saved memories, preferences, and past analysis context. use t",
+ "id": "prometheus_tools_rationale_13"
},
{
- "label": "delete_memory()",
- "file_type": "code",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L201",
- "community": 84,
- "norm_label": "delete_memory()",
- "id": "controller_prometheus_controller_delete_memory"
+ "label": "Store a memory about the user's preferences, analysis results, or feedback.",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L39",
+ "community": 152,
+ "norm_label": "store a memory about the user's preferences, analysis results, or feedback.",
+ "id": "prometheus_tools_rationale_39"
},
{
- "label": "pack_vector()",
+ "label": ".test_state_tools_is_list_of_callables()",
"file_type": "code",
- "source_file": "main/utils/vector.py",
- "source_location": "L5",
- "community": 112,
- "norm_label": "pack_vector()",
- "id": "utils_vector_pack_vector"
+ "source_file": "tests/test_state_tools.py",
+ "source_location": "L44",
+ "community": 148,
+ "norm_label": ".test_state_tools_is_list_of_callables()",
+ "id": "tests_test_state_tools_teststatetoolfunctions_test_state_tools_is_list_of_callables"
},
{
- "label": "unpack_vector()",
+ "label": ".test_state_tool_names()",
"file_type": "code",
- "source_file": "main/utils/vector.py",
- "source_location": "L11",
- "community": 112,
- "norm_label": "unpack_vector()",
- "id": "utils_vector_unpack_vector"
+ "source_file": "tests/test_state_tools.py",
+ "source_location": "L50",
+ "community": 148,
+ "norm_label": ".test_state_tool_names()",
+ "id": "tests_test_state_tools_teststatetoolfunctions_test_state_tool_names"
},
{
- "label": "cosine_similarity()",
+ "label": "TestExecuteStateTool",
"file_type": "code",
- "source_file": "main/utils/vector.py",
- "source_location": "L16",
- "community": 76,
- "norm_label": "cosine_similarity()",
- "id": "utils_vector_cosine_similarity"
+ "source_file": "tests/test_state_tools.py",
+ "source_location": "L54",
+ "community": 8,
+ "norm_label": "testexecutestatetool",
+ "id": "tests_test_state_tools_testexecutestatetool"
},
{
- "label": "batch_cosine_similarity()",
+ "label": "test_unknown_tool()",
"file_type": "code",
- "source_file": "main/utils/vector.py",
- "source_location": "L28",
- "community": 13,
- "norm_label": "batch_cosine_similarity()",
- "id": "utils_vector_batch_cosine_similarity"
+ "source_file": "tests/test_state_tools.py",
+ "source_location": "L84",
+ "community": 8,
+ "norm_label": "test_unknown_tool()",
+ "id": "tests_test_state_tools_test_unknown_tool"
},
{
- "label": "content_hash()",
- "file_type": "code",
- "source_file": "main/utils/vector.py",
- "source_location": "L41",
- "community": 115,
- "norm_label": "content_hash()",
- "id": "utils_vector_content_hash"
+ "label": "In-memory state dict that persists across loop iterations within a single reques",
+ "file_type": "rationale",
+ "source_file": "main/app/prometheus/state.py",
+ "source_location": "L7",
+ "community": 8,
+ "norm_label": "in-memory state dict that persists across loop iterations within a single reques",
+ "id": "prometheus_state_rationale_7"
},
{
- "label": "Unpack MySQL BLOB to float list.",
+ "label": "Retrieve a value from state. Returns default if key not found.",
"file_type": "rationale",
- "source_file": "main/utils/vector.py",
- "source_location": "L12",
- "community": 112,
- "norm_label": "unpack mysql blob to float list.",
- "id": "utils_vector_rationale_12"
+ "source_file": "main/app/prometheus/state.py",
+ "source_location": "L18",
+ "community": 8,
+ "norm_label": "retrieve a value from state. returns default if key not found.",
+ "id": "prometheus_state_rationale_18"
},
{
- "label": "Single-pair cosine similarity.",
+ "label": "Store a value in state. Marks state as changed for context injection.",
"file_type": "rationale",
- "source_file": "main/utils/vector.py",
- "source_location": "L17",
- "community": 76,
- "norm_label": "single-pair cosine similarity.",
- "id": "utils_vector_rationale_17"
+ "source_file": "main/app/prometheus/state.py",
+ "source_location": "L22",
+ "community": 568,
+ "norm_label": "store a value in state. marks state as changed for context injection.",
+ "id": "prometheus_state_rationale_22"
},
{
- "label": "Vectorized cosine similarity: one query against N embeddings.",
+ "label": "Return a copy of the current state.",
"file_type": "rationale",
- "source_file": "main/utils/vector.py",
- "source_location": "L29",
- "community": 13,
- "norm_label": "vectorized cosine similarity: one query against n embeddings.",
- "id": "utils_vector_rationale_29"
+ "source_file": "main/app/prometheus/state.py",
+ "source_location": "L27",
+ "community": 8,
+ "norm_label": "return a copy of the current state.",
+ "id": "prometheus_state_rationale_27"
},
{
- "label": "MD5 hash for change detection.",
+ "label": "Format state as a string for injection into the LLM context.",
"file_type": "rationale",
- "source_file": "main/utils/vector.py",
- "source_location": "L42",
- "community": 115,
- "norm_label": "md5 hash for change detection.",
- "id": "utils_vector_rationale_42"
+ "source_file": "main/app/prometheus/state.py",
+ "source_location": "L31",
+ "community": 8,
+ "norm_label": "format state as a string for injection into the llm context.",
+ "id": "prometheus_state_rationale_31"
},
{
- "label": "Verify memory endpoints exist and are wired correctly.",
+ "label": "Check if state changed since last reset.",
"file_type": "rationale",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L11",
- "community": 126,
- "norm_label": "verify memory endpoints exist and are wired correctly.",
- "id": "tests_test_memory_controller_rationale_11"
+ "source_file": "main/app/prometheus/state.py",
+ "source_location": "L37",
+ "community": 8,
+ "norm_label": "check if state changed since last reset.",
+ "id": "prometheus_state_rationale_37"
},
{
- "label": "GET /prometheus/memories exists.",
+ "label": "Reset the changed flag. Returns the previous state.",
"file_type": "rationale",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L14",
- "community": 126,
- "norm_label": "get /prometheus/memories exists.",
- "id": "tests_test_memory_controller_rationale_14"
+ "source_file": "main/app/prometheus/state.py",
+ "source_location": "L41",
+ "community": 8,
+ "norm_label": "reset the changed flag. returns the previous state.",
+ "id": "prometheus_state_rationale_41"
},
{
- "label": "POST /prometheus/memories exists.",
+ "label": "Clear all state data.",
"file_type": "rationale",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L20",
- "community": 126,
- "norm_label": "post /prometheus/memories exists.",
- "id": "tests_test_memory_controller_rationale_20"
+ "source_file": "main/app/prometheus/state.py",
+ "source_location": "L47",
+ "community": 8,
+ "norm_label": "clear all state data.",
+ "id": "prometheus_state_rationale_47"
},
{
- "label": "DELETE /prometheus/memories/{id} exists.",
+ "label": "Search user's saved memories, preferences, and past analysis context. Use t",
"file_type": "rationale",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L25",
- "community": 126,
- "norm_label": "delete /prometheus/memories/{id} exists.",
- "id": "tests_test_memory_controller_rationale_25"
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L12",
+ "community": 152,
+ "norm_label": "search user's saved memories, preferences, and past analysis context. use t",
+ "id": "prometheus_tools_rationale_12"
},
{
- "label": "GET /memories requires authentication.",
+ "label": "Store a memory about the user's preferences, analysis results, or feedback.",
"file_type": "rationale",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L30",
- "community": 126,
- "norm_label": "get /memories requires authentication.",
- "id": "tests_test_memory_controller_rationale_30"
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L38",
+ "community": 152,
+ "norm_label": "store a memory about the user's preferences, analysis results, or feedback.",
+ "id": "prometheus_tools_rationale_38"
},
{
- "label": "GET /memories requires USE_PROMETHEUS (basic USER role denied).",
- "file_type": "rationale",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L47",
- "community": 126,
- "norm_label": "get /memories requires use_prometheus (basic user role denied).",
- "id": "tests_test_memory_controller_rationale_47"
+ "label": "memory_types.py",
+ "file_type": "code",
+ "source_file": "main/models/memory_types.py",
+ "source_location": "L1",
+ "community": 51,
+ "norm_label": "memory_types.py",
+ "id": "main_models_memory_types_py"
},
{
- "label": "Full integration tests using mocked MemoryManager.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L75",
- "community": 126,
- "norm_label": "full integration tests using mocked memorymanager.",
- "id": "tests_test_memory_controller_rationale_75"
+ "label": "VectorType",
+ "file_type": "code",
+ "source_file": "main/models/memory_types.py",
+ "source_location": "L5",
+ "community": 51,
+ "norm_label": "vectortype",
+ "id": "models_memory_types_vectortype"
},
{
- "label": "GET /memories delegates to MemoryManager.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L79",
- "community": 378,
- "norm_label": "get /memories delegates to memorymanager.",
- "id": "tests_test_memory_controller_rationale_79"
+ "label": ".__init__()",
+ "file_type": "code",
+ "source_file": "main/models/memory_types.py",
+ "source_location": "L9",
+ "community": 51,
+ "norm_label": ".__init__()",
+ "id": "models_memory_types_vectortype_init"
},
{
- "label": "POST /memories delegates to MemoryManager.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L96",
- "community": 379,
- "norm_label": "post /memories delegates to memorymanager.",
- "id": "tests_test_memory_controller_rationale_96"
+ "label": ".process_bind_param()",
+ "file_type": "code",
+ "source_file": "main/models/memory_types.py",
+ "source_location": "L13",
+ "community": 51,
+ "norm_label": ".process_bind_param()",
+ "id": "models_memory_types_vectortype_process_bind_param"
},
{
- "label": "POST /memories returns 403 when limit reached.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L113",
- "community": 380,
- "norm_label": "post /memories returns 403 when limit reached.",
- "id": "tests_test_memory_controller_rationale_113"
+ "label": ".process_result_value()",
+ "file_type": "code",
+ "source_file": "main/models/memory_types.py",
+ "source_location": "L21",
+ "community": 51,
+ "norm_label": ".process_result_value()",
+ "id": "models_memory_types_vectortype_process_result_value"
},
{
- "label": "DELETE /memories/{id} delegates to MemoryManager.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L124",
- "community": 381,
- "norm_label": "delete /memories/{id} delegates to memorymanager.",
- "id": "tests_test_memory_controller_rationale_124"
+ "label": "executeMemoryTool()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L46",
+ "community": 530,
+ "norm_label": "executememorytool()",
+ "id": "prometheus_tools_executememorytool"
},
{
- "label": "DELETE /memories/{id} returns 404 when not found.",
+ "label": "Store a memory about the user's preferences, analysis results, or feedback.",
"file_type": "rationale",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L134",
- "community": 382,
- "norm_label": "delete /memories/{id} returns 404 when not found.",
- "id": "tests_test_memory_controller_rationale_134"
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L29",
+ "community": 152,
+ "norm_label": "store a memory about the user's preferences, analysis results, or feedback.",
+ "id": "prometheus_tools_rationale_29"
},
{
- "label": "POST /memories rejects missing key.",
+ "label": "Keys with low similarity should not merge.",
"file_type": "rationale",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L141",
+ "source_file": "tests/test_memory_dedup.py",
+ "source_location": "L52",
"community": 126,
- "norm_label": "post /memories rejects missing key.",
- "id": "tests_test_memory_controller_rationale_141"
+ "norm_label": "keys with low similarity should not merge.",
+ "id": "tests_test_memory_dedup_rationale_52"
},
{
- "label": "POST /memories rejects missing value.",
+ "label": "Keys with Jaccard <= 0.8 should not merge.",
"file_type": "rationale",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L146",
+ "source_file": "tests/test_memory_dedup.py",
+ "source_location": "L85",
"community": 126,
- "norm_label": "post /memories rejects missing value.",
- "id": "tests_test_memory_controller_rationale_146"
+ "norm_label": "keys with jaccard <= 0.8 should not merge.",
+ "id": "tests_test_memory_dedup_rationale_85"
},
{
- "label": "Non-extended role gets basic limit.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L11",
- "community": 140,
- "norm_label": "non-extended role gets basic limit.",
- "id": "tests_test_memory_manager_rationale_11"
+ "label": "TestMemoryToolsDefinition",
+ "file_type": "code",
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L20",
+ "community": 151,
+ "norm_label": "testmemorytoolsdefinition",
+ "id": "tests_test_memory_tools_wiring_testmemorytoolsdefinition"
},
{
- "label": "Premium user gets extended limit.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L15",
- "community": 140,
- "norm_label": "premium user gets extended limit.",
- "id": "tests_test_memory_manager_rationale_15"
+ "label": ".test_memory_tools_is_nonempty_list()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L23",
+ "community": 151,
+ "norm_label": ".test_memory_tools_is_nonempty_list()",
+ "id": "tests_test_memory_tools_wiring_testmemorytoolsdefinition_test_memory_tools_is_nonempty_list"
},
{
- "label": "Admin gets extended limit (has all permissions).",
- "file_type": "rationale",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L19",
- "community": 539,
- "norm_label": "admin gets extended limit (has all permissions).",
- "id": "tests_test_memory_manager_rationale_19"
+ "label": ".test_memory_tools_are_callables()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L27",
+ "community": 151,
+ "norm_label": ".test_memory_tools_are_callables()",
+ "id": "tests_test_memory_tools_wiring_testmemorytoolsdefinition_test_memory_tools_are_callables"
},
{
- "label": "Creates a new memory.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L25",
- "community": 213,
- "norm_label": "creates a new memory.",
- "id": "tests_test_memory_manager_rationale_25"
+ "label": ".test_memory_tool_names_match()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L31",
+ "community": 151,
+ "norm_label": ".test_memory_tool_names_match()",
+ "id": "tests_test_memory_tools_wiring_testmemorytoolsdefinition_test_memory_tool_names_match"
},
{
- "label": "Updates existing memory when value changes.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_manager.py",
+ "label": ".test_memory_tool_names_constant_matches()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_tools_wiring.py",
"source_location": "L35",
- "community": 140,
- "norm_label": "updates existing memory when value changes.",
- "id": "tests_test_memory_manager_rationale_35"
+ "community": 151,
+ "norm_label": ".test_memory_tool_names_constant_matches()",
+ "id": "tests_test_memory_tools_wiring_testmemorytoolsdefinition_test_memory_tool_names_constant_matches"
},
{
- "label": "Returns unchanged when value is identical.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L43",
- "community": 548,
- "norm_label": "returns unchanged when value is identical.",
- "id": "tests_test_memory_manager_rationale_43"
+ "label": ".test_search_memory_has_query_param()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L38",
+ "community": 151,
+ "norm_label": ".test_search_memory_has_query_param()",
+ "id": "tests_test_memory_tools_wiring_testmemorytoolsdefinition_test_search_memory_has_query_param"
},
{
- "label": "Rejects new memory when limit reached.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L49",
- "community": 140,
- "norm_label": "rejects new memory when limit reached.",
- "id": "tests_test_memory_manager_rationale_49"
+ "label": ".test_save_memory_has_required_params()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L43",
+ "community": 151,
+ "norm_label": ".test_save_memory_has_required_params()",
+ "id": "tests_test_memory_tools_wiring_testmemorytoolsdefinition_test_save_memory_has_required_params"
},
{
- "label": "No role check when user_roles not provided.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L61",
- "community": 545,
- "norm_label": "no role check when user_roles not provided.",
- "id": "tests_test_memory_manager_rationale_61"
+ "label": "test_search_memory_routed_to_executeMemoryTool()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L92",
+ "community": 49,
+ "norm_label": "test_search_memory_routed_to_executememorytool()",
+ "id": "tests_test_memory_tools_wiring_test_search_memory_routed_to_executememorytool"
},
{
- "label": "Stores embedding alongside memory.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L69",
- "community": 140,
- "norm_label": "stores embedding alongside memory.",
- "id": "tests_test_memory_manager_rationale_69"
+ "label": "test_save_memory_routed_to_executeMemoryTool()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L105",
+ "community": 49,
+ "norm_label": "test_save_memory_routed_to_executememorytool()",
+ "id": "tests_test_memory_tools_wiring_test_save_memory_routed_to_executememorytool"
},
{
- "label": "Counts only non-archived memories.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L82",
- "community": 547,
- "norm_label": "counts only non-archived memories.",
- "id": "tests_test_memory_manager_rationale_82"
+ "label": "test_memory_tool_skipped_without_user()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L122",
+ "community": 49,
+ "norm_label": "test_memory_tool_skipped_without_user()",
+ "id": "tests_test_memory_tools_wiring_test_memory_tool_skipped_without_user"
},
{
- "label": "Archived memories not counted.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L88",
- "community": 140,
- "norm_label": "archived memories not counted.",
- "id": "tests_test_memory_manager_rationale_88"
+ "label": "test_non_memory_tool_not_routed_to_executeMemoryTool()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L131",
+ "community": 49,
+ "norm_label": "test_non_memory_tool_not_routed_to_executememorytool()",
+ "id": "tests_test_memory_tools_wiring_test_non_memory_tool_not_routed_to_executememorytool"
},
{
- "label": "Returns paginated memories.",
+ "label": "MEMORY_TOOLS must be a list of callables with proper signatures.",
"file_type": "rationale",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L107",
- "community": 140,
- "norm_label": "returns paginated memories.",
- "id": "tests_test_memory_manager_rationale_107"
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L21",
+ "community": 151,
+ "norm_label": "memory_tools must be a list of callables with proper signatures.",
+ "id": "tests_test_memory_tools_wiring_rationale_21"
},
{
- "label": "Offset and limit work.",
+ "label": "makeChat must include MEMORY_TOOLS alongside MCP sessions.",
"file_type": "rationale",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L115",
- "community": 140,
- "norm_label": "offset and limit work.",
- "id": "tests_test_memory_manager_rationale_115"
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L52",
+ "community": 49,
+ "norm_label": "makechat must include memory_tools alongside mcp sessions.",
+ "id": "tests_test_memory_tools_wiring_rationale_52"
},
{
- "label": "Archived memories excluded.",
+ "label": "dispatchToolCall must route memory tool names to executeMemoryTool.",
"file_type": "rationale",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L122",
- "community": 140,
- "norm_label": "archived memories excluded.",
- "id": "tests_test_memory_manager_rationale_122"
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L89",
+ "community": 49,
+ "norm_label": "dispatchtoolcall must route memory tool names to executememorytool.",
+ "id": "tests_test_memory_tools_wiring_rationale_89"
},
{
- "label": "Soft-deletes a memory.",
- "file_type": "rationale",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L135",
- "community": 535,
- "norm_label": "soft-deletes a memory.",
- "id": "tests_test_memory_manager_rationale_135"
+ "label": ".test_memory_tools_wrapped_in_tool()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L25",
+ "community": 151,
+ "norm_label": ".test_memory_tools_wrapped_in_tool()",
+ "id": "tests_test_memory_tools_wiring_testmemorytoolsdefinition_test_memory_tools_wrapped_in_tool"
},
{
- "label": "Returns False for non-existent memory.",
+ "label": "MEMORY_TOOLS must be defined as a Tool wrapping FunctionDeclarations.",
"file_type": "rationale",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L142",
- "community": 546,
- "norm_label": "returns false for non-existent memory.",
- "id": "tests_test_memory_manager_rationale_142"
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L19",
+ "community": 151,
+ "norm_label": "memory_tools must be defined as a tool wrapping functiondeclarations.",
+ "id": "tests_test_memory_tools_wiring_rationale_19"
},
{
- "label": "Cannot delete another user's memory.",
+ "label": "makeChat must include MEMORY_TOOLS alongside MCP sessions.",
"file_type": "rationale",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L146",
- "community": 140,
- "norm_label": "cannot delete another user's memory.",
- "id": "tests_test_memory_manager_rationale_146"
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L57",
+ "community": 49,
+ "norm_label": "makechat must include memory_tools alongside mcp sessions.",
+ "id": "tests_test_memory_tools_wiring_rationale_57"
},
{
- "label": "FULLTEXT search finds matching memories (MySQL only).",
+ "label": "dispatchToolCall must route memory tool names to executeMemoryTool.",
"file_type": "rationale",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L155",
- "community": 140,
- "norm_label": "fulltext search finds matching memories (mysql only).",
- "id": "tests_test_memory_manager_rationale_155"
- },
- {
- "label": "TestPackUnpack",
- "file_type": "code",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L11",
- "community": 112,
- "norm_label": "testpackunpack",
- "id": "tests_test_vector_utils_testpackunpack"
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L92",
+ "community": 49,
+ "norm_label": "dispatchtoolcall must route memory tool names to executememorytool.",
+ "id": "tests_test_memory_tools_wiring_rationale_92"
},
{
- "label": ".test_roundtrip()",
+ "label": "_normalize_key()",
"file_type": "code",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L12",
- "community": 112,
- "norm_label": ".test_roundtrip()",
- "id": "tests_test_vector_utils_testpackunpack_test_roundtrip"
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L17",
+ "community": 53,
+ "norm_label": "_normalize_key()",
+ "id": "prometheus_memory_normalize_key"
},
{
- "label": ".test_empty()",
- "file_type": "code",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L20",
- "community": 112,
- "norm_label": ".test_empty()",
- "id": "tests_test_vector_utils_testpackunpack_test_empty"
+ "label": "Helper to create memories with controlled baseScore, lastAccessedAt, accessCount",
+ "file_type": "rationale",
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L23",
+ "community": 86,
+ "norm_label": "helper to create memories with controlled basescore, lastaccessedat, accesscount",
+ "id": "tests_test_memory_maintenance_rationale_23"
},
{
- "label": ".test_384_dims()",
- "file_type": "code",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L26",
- "community": 112,
- "norm_label": ".test_384_dims()",
- "id": "tests_test_vector_utils_testpackunpack_test_384_dims"
+ "label": "Decay applies to ALL active memories, not just accessed ones.",
+ "file_type": "rationale",
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L54",
+ "community": 86,
+ "norm_label": "decay applies to all active memories, not just accessed ones.",
+ "id": "tests_test_memory_maintenance_rationale_54"
},
{
- "label": "TestCosineSimilarity",
- "file_type": "code",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L33",
- "community": 76,
- "norm_label": "testcosinesimilarity",
- "id": "tests_test_vector_utils_testcosinesimilarity"
+ "label": "baseScore should never reach exactly 0 from decay alone.",
+ "file_type": "rationale",
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L67",
+ "community": 86,
+ "norm_label": "basescore should never reach exactly 0 from decay alone.",
+ "id": "tests_test_memory_maintenance_rationale_67"
},
{
- "label": ".test_identical()",
- "file_type": "code",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L34",
- "community": 76,
- "norm_label": ".test_identical()",
- "id": "tests_test_vector_utils_testcosinesimilarity_test_identical"
+ "label": "Score below threshold + accessCount=0 + 90+ days \u2192 archived.",
+ "file_type": "rationale",
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L85",
+ "community": 54,
+ "norm_label": "score below threshold + accesscount=0 + 90+ days \u2192 archived.",
+ "id": "tests_test_memory_maintenance_rationale_85"
},
{
- "label": ".test_orthogonal()",
- "file_type": "code",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L39",
- "community": 76,
- "norm_label": ".test_orthogonal()",
- "id": "tests_test_vector_utils_testcosinesimilarity_test_orthogonal"
+ "label": "Low score but accessed recently \u2192 not archived.",
+ "file_type": "rationale",
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L92",
+ "community": 54,
+ "norm_label": "low score but accessed recently \u2192 not archived.",
+ "id": "tests_test_memory_maintenance_rationale_92"
},
{
- "label": ".test_opposite()",
- "file_type": "code",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L45",
- "community": 76,
- "norm_label": ".test_opposite()",
- "id": "tests_test_vector_utils_testcosinesimilarity_test_opposite"
+ "label": "Zero access but score still above threshold \u2192 not archived.",
+ "file_type": "rationale",
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L99",
+ "community": 54,
+ "norm_label": "zero access but score still above threshold \u2192 not archived.",
+ "id": "tests_test_memory_maintenance_rationale_99"
},
{
- "label": ".test_zero_vector()",
- "file_type": "code",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L51",
- "community": 76,
- "norm_label": ".test_zero_vector()",
- "id": "tests_test_vector_utils_testcosinesimilarity_test_zero_vector"
+ "label": "Even with low score, if accessed \u2192 not archived.",
+ "file_type": "rationale",
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L106",
+ "community": 54,
+ "norm_label": "even with low score, if accessed \u2192 not archived.",
+ "id": "tests_test_memory_maintenance_rationale_106"
},
{
- "label": ".test_partial_overlap()",
- "file_type": "code",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L55",
- "community": 76,
- "norm_label": ".test_partial_overlap()",
- "id": "tests_test_vector_utils_testcosinesimilarity_test_partial_overlap"
+ "label": "Already archived memories are skipped.",
+ "file_type": "rationale",
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L113",
+ "community": 54,
+ "norm_label": "already archived memories are skipped.",
+ "id": "tests_test_memory_maintenance_rationale_113"
},
{
- "label": "pack \u2192 unpack preserves values.",
+ "label": "Decay happens first, then archive check with new scores.",
"file_type": "rationale",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L13",
- "community": 112,
- "norm_label": "pack \u2192 unpack preserves values.",
- "id": "tests_test_vector_utils_rationale_13"
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L134",
+ "community": 86,
+ "norm_label": "decay happens first, then archive check with new scores.",
+ "id": "tests_test_memory_maintenance_rationale_134"
},
{
- "label": "Empty list roundtrips.",
+ "label": "Score that decays to >= threshold stays alive. 0.11 * 0.95 = 0.1045 >= 0.1.",
"file_type": "rationale",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L21",
- "community": 112,
- "norm_label": "empty list roundtrips.",
- "id": "tests_test_vector_utils_rationale_21"
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L143",
+ "community": 86,
+ "norm_label": "score that decays to >= threshold stays alive. 0.11 * 0.95 = 0.1045 >= 0.1.",
+ "id": "tests_test_memory_maintenance_rationale_143"
},
{
- "label": "384-dim vector packs to 1536 bytes.",
+ "label": "89 days with low score \u2192 not archived (need > 90).",
"file_type": "rationale",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L27",
- "community": 112,
- "norm_label": "384-dim vector packs to 1536 bytes.",
- "id": "tests_test_vector_utils_rationale_27"
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L156",
+ "community": 86,
+ "norm_label": "89 days with low score \u2192 not archived (need > 90).",
+ "id": "tests_test_memory_maintenance_rationale_156"
},
{
- "label": "Identical vectors \u2192 score 1.0.",
- "file_type": "rationale",
- "source_file": "tests/test_vector_utils.py",
+ "label": "embed()",
+ "file_type": "code",
+ "source_file": "main/utils/models/loader.py",
+ "source_location": "L23",
+ "community": 530,
+ "norm_label": "embed()",
+ "id": "models_loader_embed"
+ },
+ {
+ "label": "Overall Score: 58/100",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L9",
+ "community": 160,
+ "norm_label": "overall score: 58/100",
+ "id": "server_code_review_report_overall_score_58_100"
+ },
+ {
+ "label": "P0 \u2014 Must Fix (Critical)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L21",
+ "community": 206,
+ "norm_label": "p0 \u2014 must fix (critical)",
+ "id": "server_code_review_report_p0_must_fix_critical"
+ },
+ {
+ "label": "Security (5)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L23",
+ "community": 206,
+ "norm_label": "security (5)",
+ "id": "server_code_review_report_security_5"
+ },
+ {
+ "label": "Architecture (7)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
"source_location": "L35",
- "community": 76,
- "norm_label": "identical vectors \u2192 score 1.0.",
- "id": "tests_test_vector_utils_rationale_35"
+ "community": 206,
+ "norm_label": "architecture (7)",
+ "id": "server_code_review_report_architecture_7"
},
{
- "label": "Orthogonal vectors \u2192 score 0.0.",
- "file_type": "rationale",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L40",
- "community": 76,
- "norm_label": "orthogonal vectors \u2192 score 0.0.",
- "id": "tests_test_vector_utils_rationale_40"
+ "label": "Testing (5)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L51",
+ "community": 206,
+ "norm_label": "testing (5)",
+ "id": "server_code_review_report_testing_5"
},
{
- "label": "Opposite vectors \u2192 score -1.0.",
- "file_type": "rationale",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L46",
- "community": 76,
- "norm_label": "opposite vectors \u2192 score -1.0.",
- "id": "tests_test_vector_utils_rationale_46"
+ "label": "API Design (3)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L63",
+ "community": 206,
+ "norm_label": "api design (3)",
+ "id": "server_code_review_report_api_design_3"
},
{
- "label": "Zero vector \u2192 score 0.0.",
- "file_type": "rationale",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L52",
- "community": 76,
- "norm_label": "zero vector \u2192 score 0.0.",
- "id": "tests_test_vector_utils_rationale_52"
+ "label": "Frontend (4)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L71",
+ "community": 206,
+ "norm_label": "frontend (4)",
+ "id": "server_code_review_report_frontend_4"
},
{
- "label": "Partially overlapping vectors.",
- "file_type": "rationale",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L56",
- "community": 76,
- "norm_label": "partially overlapping vectors.",
- "id": "tests_test_vector_utils_rationale_56"
+ "label": "P1 \u2014 Should Fix",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L83",
+ "community": 207,
+ "norm_label": "p1 \u2014 should fix",
+ "id": "server_code_review_report_p1_should_fix"
},
{
- "label": "Empty matrix \u2192 empty array.",
- "file_type": "rationale",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L68",
- "community": 13,
- "norm_label": "empty matrix \u2192 empty array.",
- "id": "tests_test_vector_utils_rationale_68"
+ "label": "Architecture (8)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L85",
+ "community": 207,
+ "norm_label": "architecture (8)",
+ "id": "server_code_review_report_architecture_8"
},
{
- "label": "Single row matches cosine_similarity.",
- "file_type": "rationale",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L73",
- "community": 13,
- "norm_label": "single row matches cosine_similarity.",
- "id": "tests_test_vector_utils_rationale_73"
+ "label": "Security (6)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L103",
+ "community": 207,
+ "norm_label": "security (6)",
+ "id": "server_code_review_report_security_6"
},
{
- "label": "Multiple rows ranked correctly.",
- "file_type": "rationale",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L80",
- "community": 13,
- "norm_label": "multiple rows ranked correctly.",
- "id": "tests_test_vector_utils_rationale_80"
+ "label": "Testing (4)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L117",
+ "community": 207,
+ "norm_label": "testing (4)",
+ "id": "server_code_review_report_testing_4"
},
{
- "label": "Zero query \u2192 all zeros.",
- "file_type": "rationale",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L93",
- "community": 13,
- "norm_label": "zero query \u2192 all zeros.",
- "id": "tests_test_vector_utils_rationale_93"
+ "label": "API Design (6)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L127",
+ "community": 207,
+ "norm_label": "api design (6)",
+ "id": "server_code_review_report_api_design_6"
},
{
- "label": "Same input \u2192 same hash.",
- "file_type": "rationale",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L101",
- "community": 115,
- "norm_label": "same input \u2192 same hash.",
- "id": "tests_test_vector_utils_rationale_101"
+ "label": "Frontend (7)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L141",
+ "community": 207,
+ "norm_label": "frontend (7)",
+ "id": "server_code_review_report_frontend_7"
},
{
- "label": "Different inputs \u2192 different hashes.",
- "file_type": "rationale",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L105",
- "community": 115,
- "norm_label": "different inputs \u2192 different hashes.",
- "id": "tests_test_vector_utils_rationale_105"
+ "label": "P2 \u2014 Nice to Have (27 items)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L159",
+ "community": 160,
+ "norm_label": "p2 \u2014 nice to have (27 items)",
+ "id": "server_code_review_report_p2_nice_to_have_27_items"
},
{
- "label": "Returns 32-char hex string.",
- "file_type": "rationale",
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L109",
- "community": 115,
- "norm_label": "returns 32-char hex string.",
- "id": "tests_test_vector_utils_rationale_109"
+ "label": "Priority Matrix",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L173",
+ "community": 534,
+ "norm_label": "priority matrix",
+ "id": "server_code_review_report_priority_matrix"
},
{
- "label": "save_memory()",
- "file_type": "code",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L3",
- "community": 53,
- "norm_label": "save_memory()",
- "id": "prometheus_memory_save_memory"
+ "label": "NOW (P0 \u2014 fix before next release)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L175",
+ "community": 534,
+ "norm_label": "now (p0 \u2014 fix before next release)",
+ "id": "server_code_review_report_now_p0_fix_before_next_release"
},
{
- "label": "search_memory()",
- "file_type": "code",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L6",
- "community": 53,
- "norm_label": "search_memory()",
- "id": "prometheus_memory_search_memory"
+ "label": "SOON (P1 \u2014 fix within 2 weeks)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L185",
+ "community": 534,
+ "norm_label": "soon (p1 \u2014 fix within 2 weeks)",
+ "id": "server_code_review_report_soon_p1_fix_within_2_weeks"
},
{
- "label": "New table: `user_memory`",
+ "label": "LATER (P2 \u2014 when touching these files)",
"file_type": "document",
- "source_file": "PLANS/memory-system-plan.md",
- "source_location": "L59",
- "community": 6,
- "norm_label": "new table: `user_memory`",
- "id": "plans_memory_system_plan_new_table_user_memory"
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L195",
+ "community": 534,
+ "norm_label": "later (p2 \u2014 when touching these files)",
+ "id": "server_code_review_report_later_p2_when_touching_these_files"
},
{
- "label": "train_script.py",
- "file_type": "code",
- "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
- "source_location": "L1",
- "community": 139,
- "norm_label": "train_script.py",
- "id": "main_utils_models_all_minilm_l6_v2_train_script_py"
+ "label": "What Works Well",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L206",
+ "community": 160,
+ "norm_label": "what works well",
+ "id": "server_code_review_report_what_works_well"
},
{
- "label": "AutoModelForSentenceEmbedding",
+ "label": "_downloadModel()",
"file_type": "code",
- "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
- "source_location": "L40",
- "community": 180,
- "norm_label": "automodelforsentenceembedding",
- "id": "all_minilm_l6_v2_train_script_automodelforsentenceembedding"
+ "source_file": "main/utils/models/loader.py",
+ "source_location": "L11",
+ "community": 530,
+ "norm_label": "_downloadmodel()",
+ "id": "models_loader_downloadmodel"
},
{
- "label": ".__init__()",
+ "label": "getCookie()",
"file_type": "code",
- "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
- "source_location": "L41",
- "community": 180,
- "norm_label": ".__init__()",
- "id": "all_minilm_l6_v2_train_script_automodelforsentenceembedding_init"
+ "source_file": "frontend/src/api.js",
+ "source_location": "L10",
+ "community": 5,
+ "norm_label": "getcookie()",
+ "id": "src_api_getcookie"
},
{
- "label": ".forward()",
+ "label": ".isQuotaExceeded()",
"file_type": "code",
- "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
- "source_location": "L48",
- "community": 180,
- "norm_label": ".forward()",
- "id": "all_minilm_l6_v2_train_script_automodelforsentenceembedding_forward"
+ "source_file": "main/models/stocksapi_key.py",
+ "source_location": "L21",
+ "community": 37,
+ "norm_label": ".isquotaexceeded()",
+ "id": "models_stocksapi_key_stocksapikey_isquotaexceeded"
},
{
- "label": ".mean_pooling()",
+ "label": ".needsReset()",
"file_type": "code",
- "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
- "source_location": "L56",
- "community": 180,
- "norm_label": ".mean_pooling()",
- "id": "all_minilm_l6_v2_train_script_automodelforsentenceembedding_mean_pooling"
+ "source_file": "main/models/stocksapi_key.py",
+ "source_location": "L24",
+ "community": 37,
+ "norm_label": ".needsreset()",
+ "id": "models_stocksapi_key_stocksapikey_needsreset"
},
{
- "label": ".save_pretrained()",
+ "label": ".resetQuota()",
"file_type": "code",
- "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
- "source_location": "L61",
- "community": 180,
- "norm_label": ".save_pretrained()",
- "id": "all_minilm_l6_v2_train_script_automodelforsentenceembedding_save_pretrained"
+ "source_file": "main/models/stocksapi_key.py",
+ "source_location": "L36",
+ "community": 37,
+ "norm_label": ".resetquota()",
+ "id": "models_stocksapi_key_stocksapikey_resetquota"
},
{
- "label": "train_function()",
+ "label": ".incrementUsage()",
"file_type": "code",
- "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
- "source_location": "L71",
- "community": 180,
- "norm_label": "train_function()",
- "id": "all_minilm_l6_v2_train_script_train_function"
+ "source_file": "main/models/stocksapi_key.py",
+ "source_location": "L40",
+ "community": 37,
+ "norm_label": ".incrementusage()",
+ "id": "models_stocksapi_key_stocksapikey_incrementusage"
},
{
- "label": "produce_data()",
+ "label": ".getRemainingQuota()",
"file_type": "code",
- "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
- "source_location": "L168",
- "community": 139,
- "norm_label": "produce_data()",
- "id": "all_minilm_l6_v2_train_script_produce_data"
+ "source_file": "main/models/stocksapi_key.py",
+ "source_location": "L43",
+ "community": 37,
+ "norm_label": ".getremainingquota()",
+ "id": "models_stocksapi_key_stocksapikey_getremainingquota"
},
{
- "label": "RedditDataset",
+ "label": ".toDict()",
"file_type": "code",
- "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
- "source_location": "L223",
- "community": 139,
- "norm_label": "redditdataset",
- "id": "all_minilm_l6_v2_train_script_redditdataset"
+ "source_file": "main/models/stocksapi_key.py",
+ "source_location": "L46",
+ "community": 37,
+ "norm_label": ".todict()",
+ "id": "models_stocksapi_key_stocksapikey_todict"
},
{
- "label": ".__init__()",
+ "label": ".getRolesList()",
"file_type": "code",
- "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
- "source_location": "L227",
- "community": 139,
- "norm_label": ".__init__()",
- "id": "all_minilm_l6_v2_train_script_redditdataset_init"
+ "source_file": "main/models/user.py",
+ "source_location": "L19",
+ "community": 61,
+ "norm_label": ".getroleslist()",
+ "id": "models_user_user_getroleslist"
},
{
- "label": ".__iter__()",
+ "label": ".addRole()",
"file_type": "code",
- "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
- "source_location": "L230",
- "community": 139,
- "norm_label": ".__iter__()",
- "id": "all_minilm_l6_v2_train_script_redditdataset_iter"
+ "source_file": "main/models/user.py",
+ "source_location": "L24",
+ "community": 61,
+ "norm_label": ".addrole()",
+ "id": "models_user_user_addrole"
},
{
- "label": "Dataset",
+ "label": ".hasRole()",
"file_type": "code",
- "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
- "source_location": "L239",
- "community": 139,
- "norm_label": "dataset",
- "id": "all_minilm_l6_v2_train_script_dataset"
+ "source_file": "main/models/user.py",
+ "source_location": "L32",
+ "community": 61,
+ "norm_label": ".hasrole()",
+ "id": "models_user_user_hasrole"
},
{
- "label": ".__init__()",
+ "label": ".toDict()",
"file_type": "code",
- "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
- "source_location": "L243",
- "community": 180,
- "norm_label": ".__init__()",
- "id": "all_minilm_l6_v2_train_script_dataset_init"
+ "source_file": "main/models/user.py",
+ "source_location": "L37",
+ "community": 61,
+ "norm_label": ".todict()",
+ "id": "models_user_user_todict"
},
{
- "label": ".__iter__()",
+ "label": ".getDeviceName()",
"file_type": "code",
- "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
- "source_location": "L246",
- "community": 139,
- "norm_label": ".__iter__()",
- "id": "all_minilm_l6_v2_train_script_dataset_iter"
+ "source_file": "main/models/user_session.py",
+ "source_location": "L23",
+ "community": 44,
+ "norm_label": ".getdevicename()",
+ "id": "models_user_session_usersession_getdevicename"
},
{
- "label": "Train script for a single file Need to set the TPU address first: export XRT_TP",
+ "label": "Covers lines 19-20: user not found raises 404.",
"file_type": "rationale",
- "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
- "source_location": "L1",
- "community": 139,
- "norm_label": "train script for a single file need to set the tpu address first: export xrt_tp",
- "id": "all_minilm_l6_v2_train_script_rationale_1"
- },
- {
- "label": "A class that handles the reddit data files",
- "file_type": "rationale",
- "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
- "source_location": "L224",
- "community": 139,
- "norm_label": "a class that handles the reddit data files",
- "id": "all_minilm_l6_v2_train_script_rationale_224"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1258",
+ "community": 528,
+ "norm_label": "covers lines 19-20: user not found raises 404.",
+ "id": "tests_test_controllers_coverage_rationale_1258"
},
{
- "label": "A class that handles one dataset",
+ "label": "Covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: UserManager.getC",
"file_type": "rationale",
- "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
- "source_location": "L240",
- "community": 139,
- "norm_label": "a class that handles one dataset",
- "id": "all_minilm_l6_v2_train_script_rationale_240"
- },
- {
- "label": "benchmark_embeddings.py",
- "file_type": "code",
- "source_file": "scripts/benchmark_embeddings.py",
- "source_location": "L1",
- "community": 176,
- "norm_label": "benchmark_embeddings.py",
- "id": "scripts_benchmark_embeddings_py"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1270",
+ "community": 493,
+ "norm_label": "covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: usermanager.getc",
+ "id": "tests_test_controllers_coverage_rationale_1270"
},
{
- "label": "benchmark_st()",
- "file_type": "code",
- "source_file": "scripts/benchmark_embeddings.py",
- "source_location": "L17",
- "community": 176,
- "norm_label": "benchmark_st()",
- "id": "scripts_benchmark_embeddings_benchmark_st"
+ "label": "Covers lines 36-38, 40-44, 46, 48-49, 51, 58-59, 61: successful user retrieval.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1277",
+ "community": 493,
+ "norm_label": "covers lines 36-38, 40-44, 46, 48-49, 51, 58-59, 61: successful user retrieval.",
+ "id": "tests_test_controllers_coverage_rationale_1277"
},
{
- "label": "benchmark_onnx()",
- "file_type": "code",
- "source_file": "scripts/benchmark_embeddings.py",
- "source_location": "L53",
- "community": 176,
- "norm_label": "benchmark_onnx()",
- "id": "scripts_benchmark_embeddings_benchmark_onnx"
+ "label": "Covers lines 42-44: session validation fails.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1302",
+ "community": 528,
+ "norm_label": "covers lines 42-44: session validation fails.",
+ "id": "tests_test_controllers_coverage_rationale_1302"
},
{
- "label": "benchmark_onnx_direct()",
- "file_type": "code",
- "source_file": "scripts/benchmark_embeddings.py",
- "source_location": "L102",
- "community": 176,
- "norm_label": "benchmark_onnx_direct()",
- "id": "scripts_benchmark_embeddings_benchmark_onnx_direct"
+ "label": "Covers lines 48-49: user not in DB.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1318",
+ "community": 493,
+ "norm_label": "covers lines 48-49: user not in db.",
+ "id": "tests_test_controllers_coverage_rationale_1318"
},
{
- "label": "Fast embedding benchmark \u2014 run locally where model is cached. Compares: 1. sent",
+ "label": "Covers lines 65-67: unexpected exception.",
"file_type": "rationale",
- "source_file": "scripts/benchmark_embeddings.py",
- "source_location": "L1",
- "community": 176,
- "norm_label": "fast embedding benchmark \u2014 run locally where model is cached. compares: 1. sent",
- "id": "scripts_benchmark_embeddings_rationale_1"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1335",
+ "community": 493,
+ "norm_label": "covers lines 65-67: unexpected exception.",
+ "id": "tests_test_controllers_coverage_rationale_1335"
},
{
- "label": "Benchmark sentence-transformers (PyTorch).",
+ "label": "Covers lines 37-38, 46, 51, 58 (sessionId is None): skips session validation.",
"file_type": "rationale",
- "source_file": "scripts/benchmark_embeddings.py",
- "source_location": "L18",
- "community": 176,
- "norm_label": "benchmark sentence-transformers (pytorch).",
- "id": "scripts_benchmark_embeddings_rationale_18"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1352",
+ "community": 493,
+ "norm_label": "covers lines 37-38, 46, 51, 58 (sessionid is none): skips session validation.",
+ "id": "tests_test_controllers_coverage_rationale_1352"
},
{
- "label": "Benchmark ONNX Runtime \u2014 fastest path.",
+ "label": "Covers line 16: empty password raises ValueError.",
"file_type": "rationale",
- "source_file": "scripts/benchmark_embeddings.py",
- "source_location": "L54",
- "community": 176,
- "norm_label": "benchmark onnx runtime \u2014 fastest path.",
- "id": "scripts_benchmark_embeddings_rationale_54"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1376",
+ "community": 525,
+ "norm_label": "covers line 16: empty password raises valueerror.",
+ "id": "tests_test_controllers_coverage_rationale_1376"
},
{
- "label": "Benchmark ONNX Runtime directly \u2014 export model first, then run.",
+ "label": "Covers lines 45-51: verifyAccessToken with expired and invalid tokens.",
"file_type": "rationale",
- "source_file": "scripts/benchmark_embeddings.py",
- "source_location": "L103",
- "community": 176,
- "norm_label": "benchmark onnx runtime directly \u2014 export model first, then run.",
- "id": "scripts_benchmark_embeddings_rationale_103"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1386",
+ "community": 525,
+ "norm_label": "covers lines 45-51: verifyaccesstoken with expired and invalid tokens.",
+ "id": "tests_test_controllers_coverage_rationale_1386"
},
{
- "label": "streamMessage must handle function_calls as a list (not dict).",
+ "label": "Covers lines 48-49: jwt.ExpiredSignatureError.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L203",
- "community": 383,
- "norm_label": "streammessage must handle function_calls as a list (not dict).",
- "id": "tests_test_prometheus_auth_coverage_rationale_203"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1389",
+ "community": 493,
+ "norm_label": "covers lines 48-49: jwt.expiredsignatureerror.",
+ "id": "tests_test_controllers_coverage_rationale_1389"
},
{
- "label": "Cover all methods in chat.py (lines 11-120).",
+ "label": "Covers lines 50-51: jwt.InvalidTokenError.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L268",
- "community": 52,
- "norm_label": "cover all methods in chat.py (lines 11-120).",
- "id": "tests_test_prometheus_auth_coverage_rationale_268"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1405",
+ "community": 519,
+ "norm_label": "covers lines 50-51: jwt.invalidtokenerror.",
+ "id": "tests_test_controllers_coverage_rationale_1405"
},
{
- "label": "Cover all methods in authentication.py (lines 13-75).",
+ "label": "Covers line 67: extractTokenPayload re-raises HTTPException from verifyAccessTok",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L492",
- "community": 88,
- "norm_label": "cover all methods in authentication.py (lines 13-75).",
- "id": "tests_test_prometheus_auth_coverage_rationale_492"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1417",
+ "community": 114,
+ "norm_label": "covers line 67: extracttokenpayload re-raises httpexception from verifyaccesstok",
+ "id": "tests_test_controllers_coverage_rationale_1417"
},
{
- "label": "Cover all methods in session.py (lines 14-154).",
+ "label": "Covers line 67: HTTPException raised by verifyAccessToken is re-raised.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L669",
- "community": 60,
- "norm_label": "cover all methods in session.py (lines 14-154).",
- "id": "tests_test_prometheus_auth_coverage_rationale_669"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1420",
+ "community": 114,
+ "norm_label": "covers line 67: httpexception raised by verifyaccesstoken is re-raised.",
+ "id": "tests_test_controllers_coverage_rationale_1420"
},
{
- "label": "Exercises the tzinfo-is-None branch (line 144-148).",
+ "label": "Covers line 13: UserManager.__init__.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L904",
- "community": 190,
- "norm_label": "exercises the tzinfo-is-none branch (line 144-148).",
- "id": "tests_test_prometheus_auth_coverage_rationale_904"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1436",
+ "community": 498,
+ "norm_label": "covers line 13: usermanager.__init__.",
+ "id": "tests_test_controllers_coverage_rationale_1436"
},
{
- "label": "Exercises the expiresAt-is-None branch (line 143).",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L918",
- "community": 165,
- "norm_label": "exercises the expiresat-is-none branch (line 143).",
- "id": "tests_test_prometheus_auth_coverage_rationale_918"
+ "label": "test_callback_sets_readable_cookie_for_frontend()",
+ "file_type": "code",
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L131",
+ "community": 40,
+ "norm_label": "test_callback_sets_readable_cookie_for_frontend()",
+ "id": "tests_test_oauth_cookie_security_test_callback_sets_readable_cookie_for_frontend"
},
{
- "label": "Cover getGoogleSSO (lines 6-14).",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L937",
- "community": 68,
- "norm_label": "cover getgooglesso (lines 6-14).",
- "id": "tests_test_prometheus_auth_coverage_rationale_937"
+ "label": "test_frontend_can_read_token_from_cookie()",
+ "file_type": "code",
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L216",
+ "community": 40,
+ "norm_label": "test_frontend_can_read_token_from_cookie()",
+ "id": "tests_test_oauth_cookie_security_test_frontend_can_read_token_from_cookie"
},
{
- "label": "streamMessage inlines MCP setup \u2014 chatSession no longer exists.",
+ "label": "Return (client, app, mock_session) for testing Google callback.",
"file_type": "rationale",
- "source_file": "tests/test_streammessage_no_chatsession.py",
- "source_location": "L24",
- "community": 138,
- "norm_label": "streammessage inlines mcp setup \u2014 chatsession no longer exists.",
- "id": "tests_test_streammessage_no_chatsession_rationale_24"
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L19",
+ "community": 40,
+ "norm_label": "return (client, app, mock_session) for testing google callback.",
+ "id": "tests_test_oauth_cookie_security_rationale_19"
},
{
- "label": "streamMessage yields text chunks via inlined MCP setup.",
+ "label": "Helper to setup common mock values for callback tests.",
"file_type": "rationale",
- "source_file": "tests/test_streammessage_no_chatsession.py",
+ "source_file": "tests/test_oauth_cookie_security.py",
"source_location": "L34",
- "community": 384,
- "norm_label": "streammessage yields text chunks via inlined mcp setup.",
- "id": "tests_test_streammessage_no_chatsession_rationale_34"
+ "community": 40,
+ "norm_label": "helper to setup common mock values for callback tests.",
+ "id": "tests_test_oauth_cookie_security_rationale_34"
},
{
- "label": "chatSession attribute must not exist \u2014 MCP setup is inlined.",
+ "label": "Verify JWT token is NOT leaked in redirect URL after OAuth callback.",
"file_type": "rationale",
- "source_file": "tests/test_streammessage_no_chatsession.py",
- "source_location": "L82",
- "community": 385,
- "norm_label": "chatsession attribute must not exist \u2014 mcp setup is inlined.",
- "id": "tests_test_streammessage_no_chatsession_rationale_82"
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L58",
+ "community": 541,
+ "norm_label": "verify jwt token is not leaked in redirect url after oauth callback.",
+ "id": "tests_test_oauth_cookie_security_rationale_58"
},
{
- "label": "streamMessage handles function call loops via inlined MCP setup.",
+ "label": "RED TEST: Token should NOT appear in redirect URL query parameters.",
"file_type": "rationale",
- "source_file": "tests/test_streammessage_no_chatsession.py",
- "source_location": "L105",
- "community": 386,
- "norm_label": "streammessage handles function call loops via inlined mcp setup.",
- "id": "tests_test_streammessage_no_chatsession_rationale_105"
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L67",
+ "community": 365,
+ "norm_label": "red test: token should not appear in redirect url query parameters.",
+ "id": "tests_test_oauth_cookie_security_rationale_67"
},
{
- "label": "PROMETHEUS_PLAN.md",
- "file_type": "document",
- "source_file": "PROMETHEUS_PLAN.md",
- "source_location": "L1",
- "community": 77,
- "norm_label": "prometheus_plan.md",
- "id": "prometheus_plan_md"
+ "label": "Cookie must be httponly (not accessible via JavaScript).",
+ "file_type": "rationale",
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L102",
+ "community": 366,
+ "norm_label": "cookie must be httponly (not accessible via javascript).",
+ "id": "tests_test_oauth_cookie_security_rationale_102"
},
{
- "label": "Prometheus Roadmap \u2014 4 Features",
- "file_type": "document",
- "source_file": "PROMETHEUS_PLAN.md",
- "source_location": "L1",
- "community": 77,
- "norm_label": "prometheus roadmap \u2014 4 features",
- "id": "server_prometheus_plan_prometheus_roadmap_4_features"
+ "label": "A readable cookie must be set for frontend JavaScript to access.",
+ "file_type": "rationale",
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L134",
+ "community": 367,
+ "norm_label": "a readable cookie must be set for frontend javascript to access.",
+ "id": "tests_test_oauth_cookie_security_rationale_134"
},
{
- "label": "Phase 1: Code Sandbox (Docker MicroVMs)",
- "file_type": "document",
- "source_file": "PROMETHEUS_PLAN.md",
- "source_location": "L3",
- "community": 77,
- "norm_label": "phase 1: code sandbox (docker microvms)",
- "id": "server_prometheus_plan_phase_1_code_sandbox_docker_microvms"
+ "label": "Both cookies should have secure flag (HTTPS only).",
+ "file_type": "rationale",
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L158",
+ "community": 368,
+ "norm_label": "both cookies should have secure flag (https only).",
+ "id": "tests_test_oauth_cookie_security_rationale_158"
},
{
- "label": "Architecture",
- "file_type": "document",
- "source_file": "PROMETHEUS_PLAN.md",
- "source_location": "L5",
- "community": 77,
- "norm_label": "architecture",
- "id": "server_prometheus_plan_architecture"
+ "label": "When no state param, return JSON response (not redirect).",
+ "file_type": "rationale",
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L190",
+ "community": 369,
+ "norm_label": "when no state param, return json response (not redirect).",
+ "id": "tests_test_oauth_cookie_security_rationale_190"
},
{
- "label": "code:block1 (Agent calls tools (StocksAPI, etc.) \u2192 gets data \u2192 agent deci)",
- "file_type": "document",
- "source_file": "PROMETHEUS_PLAN.md",
- "source_location": "L19",
- "community": 77,
- "norm_label": "code:block1 (agent calls tools (stocksapi, etc.) \u2192 gets data \u2192 agent deci)",
- "id": "server_prometheus_plan_codeblock_1"
+ "label": "Verify frontend can still get token after OAuth redirect.",
+ "file_type": "rationale",
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L210",
+ "community": 529,
+ "norm_label": "verify frontend can still get token after oauth redirect.",
+ "id": "tests_test_oauth_cookie_security_rationale_210"
},
{
- "label": "code:python (import sys, io, base64, json, matplotlib)",
- "file_type": "document",
- "source_file": "PROMETHEUS_PLAN.md",
- "source_location": "L44",
- "community": 77,
- "norm_label": "code:python (import sys, io, base64, json, matplotlib)",
- "id": "server_prometheus_plan_codeblock_2"
+ "label": "Frontend JavaScript should be able to read token from readable cookie.",
+ "file_type": "rationale",
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L219",
+ "community": 529,
+ "norm_label": "frontend javascript should be able to read token from readable cookie.",
+ "id": "tests_test_oauth_cookie_security_rationale_219"
},
{
- "label": "code:json ({\"type\": \"sandbox_start\", \"stream\": \"system\"})",
- "file_type": "document",
- "source_file": "PROMETHEUS_PLAN.md",
- "source_location": "L75",
- "community": 77,
- "norm_label": "code:json ({\"type\": \"sandbox_start\", \"stream\": \"system\"})",
- "id": "server_prometheus_plan_codeblock_3"
+ "label": "Verify /auth/google passes redirect URL as state parameter.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sso_state_cookie.py",
+ "source_location": "L43",
+ "community": 18,
+ "norm_label": "verify /auth/google passes redirect url as state parameter.",
+ "id": "tests_test_sso_state_cookie_rationale_43"
},
{
- "label": "Implementation steps",
- "file_type": "document",
- "source_file": "PROMETHEUS_PLAN.md",
- "source_location": "L83",
- "community": 77,
- "norm_label": "implementation steps",
- "id": "server_prometheus_plan_implementation_steps"
+ "label": "State should be the redirect URL directly.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sso_state_cookie.py",
+ "source_location": "L46",
+ "community": 18,
+ "norm_label": "state should be the redirect url directly.",
+ "id": "tests_test_sso_state_cookie_rationale_46"
},
{
- "label": "Phase 2: Per-Session Vector Memory",
- "file_type": "document",
- "source_file": "PROMETHEUS_PLAN.md",
- "source_location": "L94",
- "community": 77,
- "norm_label": "phase 2: per-session vector memory",
- "id": "server_prometheus_plan_phase_2_per_session_vector_memory"
+ "label": "Without redirect_url, state should be None.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sso_state_cookie.py",
+ "source_location": "L69",
+ "community": 18,
+ "norm_label": "without redirect_url, state should be none.",
+ "id": "tests_test_sso_state_cookie_rationale_69"
},
{
- "label": "Architecture",
- "file_type": "document",
- "source_file": "PROMETHEUS_PLAN.md",
- "source_location": "L96",
- "community": 77,
- "norm_label": "architecture",
- "id": "server_prometheus_plan_architecture_96"
+ "label": "The /google endpoint should NOT set sso_redirect cookie.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sso_state_cookie.py",
+ "source_location": "L89",
+ "community": 18,
+ "norm_label": "the /google endpoint should not set sso_redirect cookie.",
+ "id": "tests_test_sso_state_cookie_rationale_89"
},
{
- "label": "code:json ({)",
- "file_type": "document",
- "source_file": "PROMETHEUS_PLAN.md",
- "source_location": "L102",
- "community": 77,
- "norm_label": "code:json ({)",
- "id": "server_prometheus_plan_codeblock_4"
+ "label": "Verify callback uses state param directly as redirect URL.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sso_state_cookie.py",
+ "source_location": "L115",
+ "community": 18,
+ "norm_label": "verify callback uses state param directly as redirect url.",
+ "id": "tests_test_sso_state_cookie_rationale_115"
},
{
- "label": "code:python (class MemoryManager:)",
- "file_type": "document",
- "source_file": "PROMETHEUS_PLAN.md",
- "source_location": "L120",
- "community": 77,
- "norm_label": "code:python (class memorymanager:)",
- "id": "server_prometheus_plan_codeblock_5"
+ "label": "On success, redirect to URL from state param.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sso_state_cookie.py",
+ "source_location": "L118",
+ "community": 18,
+ "norm_label": "on success, redirect to url from state param.",
+ "id": "tests_test_sso_state_cookie_rationale_118"
},
{
- "label": "Implementation steps",
- "file_type": "document",
- "source_file": "PROMETHEUS_PLAN.md",
- "source_location": "L132",
- "community": 77,
- "norm_label": "implementation steps",
- "id": "server_prometheus_plan_implementation_steps_132"
+ "label": "When state has no URL, return JSON.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sso_state_cookie.py",
+ "source_location": "L162",
+ "community": 18,
+ "norm_label": "when state has no url, return json.",
+ "id": "tests_test_sso_state_cookie_rationale_162"
},
{
- "label": "Phase 3: Multi-Session Memory with Ranking",
- "file_type": "document",
- "source_file": "PROMETHEUS_PLAN.md",
- "source_location": "L141",
- "community": 77,
- "norm_label": "phase 3: multi-session memory with ranking",
- "id": "server_prometheus_plan_phase_3_multi_session_memory_with_ranking"
+ "label": "Verify SSOLoginError returns 401, not 500.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sso_state_cookie.py",
+ "source_location": "L205",
+ "community": 18,
+ "norm_label": "verify ssologinerror returns 401, not 500.",
+ "id": "tests_test_sso_state_cookie_rationale_205"
},
{
- "label": "Architecture",
- "file_type": "document",
- "source_file": "PROMETHEUS_PLAN.md",
- "source_location": "L143",
- "community": 77,
- "norm_label": "architecture",
- "id": "server_prometheus_plan_architecture_143"
+ "label": "Stale sso_state cookie must produce 401, not 500.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sso_state_cookie.py",
+ "source_location": "L208",
+ "community": 18,
+ "norm_label": "stale sso_state cookie must produce 401, not 500.",
+ "id": "tests_test_sso_state_cookie_rationale_208"
},
{
- "label": "code:sql (CREATE TABLE prometheus_memory ()",
- "file_type": "document",
- "source_file": "PROMETHEUS_PLAN.md",
- "source_location": "L147",
- "community": 77,
- "norm_label": "code:sql (create table prometheus_memory ()",
- "id": "server_prometheus_plan_codeblock_6"
+ "label": "Verify state parameter survives URL encoding round-trip.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sso_state_cookie.py",
+ "source_location": "L239",
+ "community": 18,
+ "norm_label": "verify state parameter survives url encoding round-trip.",
+ "id": "tests_test_sso_state_cookie_rationale_239"
},
{
- "label": "code:python (def recency_weight(days_since: float, half_life: float = 70.)",
- "file_type": "document",
- "source_file": "PROMETHEUS_PLAN.md",
- "source_location": "L178",
- "community": 77,
- "norm_label": "code:python (def recency_weight(days_since: float, half_life: float = 70.)",
- "id": "server_prometheus_plan_codeblock_7"
+ "label": "State with URL characters should survive round-trip through OAuth URL.",
+ "file_type": "rationale",
+ "source_file": "tests/test_sso_state_cookie.py",
+ "source_location": "L242",
+ "community": 18,
+ "norm_label": "state with url characters should survive round-trip through oauth url.",
+ "id": "tests_test_sso_state_cookie_rationale_242"
},
{
- "label": "Implementation steps",
- "file_type": "document",
- "source_file": "PROMETHEUS_PLAN.md",
- "source_location": "L198",
- "community": 77,
- "norm_label": "implementation steps",
- "id": "server_prometheus_plan_implementation_steps_198"
+ "label": "archiveDead()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L197",
+ "community": 53,
+ "norm_label": "archivedead()",
+ "id": "prometheus_memory_archivedead"
},
{
- "label": ".updateDates()",
- "file_type": "code",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L33",
- "community": 116,
- "norm_label": ".updatedates()",
- "id": "prometheus_agent_prometheus_updatedates"
+ "label": "makeChat must include MEMORY_TOOLS alongside MCP sessions.",
+ "file_type": "rationale",
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L56",
+ "community": 49,
+ "norm_label": "makechat must include memory_tools alongside mcp sessions.",
+ "id": "tests_test_memory_tools_wiring_rationale_56"
},
{
- "label": "chatSession()",
- "file_type": "code",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L47",
- "community": 116,
- "norm_label": "chatsession()",
- "id": "prometheus_agent_chatsession"
+ "label": "dispatchToolCall must route memory tool names to executeMemoryTool.",
+ "file_type": "rationale",
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L91",
+ "community": 49,
+ "norm_label": "dispatchtoolcall must route memory tool names to executememorytool.",
+ "id": "tests_test_memory_tools_wiring_rationale_91"
},
{
- "label": "test_init_creates_client_and_updates_dates_debug()",
+ "label": "vector.py",
"file_type": "code",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L31",
- "community": 29,
- "norm_label": "test_init_creates_client_and_updates_dates_debug()",
- "id": "tests_test_prometheus_auth_coverage_test_init_creates_client_and_updates_dates_debug"
+ "source_file": "main/utils/vector.py",
+ "source_location": "L1",
+ "community": 131,
+ "norm_label": "vector.py",
+ "id": "main_utils_vector_py"
},
{
- "label": "test_init_creates_client_and_updates_dates_prod()",
+ "label": "batchCosineSimilarity()",
"file_type": "code",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L46",
- "community": 29,
- "norm_label": "test_init_creates_client_and_updates_dates_prod()",
- "id": "tests_test_prometheus_auth_coverage_test_init_creates_client_and_updates_dates_prod"
+ "source_file": "main/utils/vector.py",
+ "source_location": "L8",
+ "community": 13,
+ "norm_label": "batchcosinesimilarity()",
+ "id": "utils_vector_batchcosinesimilarity"
},
{
- "label": "Cover __init__ and updateDates.",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L27",
- "community": 68,
- "norm_label": "cover __init__ and updatedates.",
- "id": "tests_test_prometheus_auth_coverage_rationale_27"
+ "label": "contentHash()",
+ "file_type": "code",
+ "source_file": "main/utils/vector.py",
+ "source_location": "L20",
+ "community": 112,
+ "norm_label": "contenthash()",
+ "id": "utils_vector_contenthash"
},
{
- "label": "Cover sendMessage and streamMessage in agent.py.",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L58",
- "community": 68,
- "norm_label": "cover sendmessage and streammessage in agent.py.",
- "id": "tests_test_prometheus_auth_coverage_rationale_58"
+ "label": "getRelevanceScore()",
+ "file_type": "code",
+ "source_file": "main/utils/vector.py",
+ "source_location": "L24",
+ "community": 27,
+ "norm_label": "getrelevancescore()",
+ "id": "utils_vector_getrelevancescore"
},
{
- "label": "Cover all methods in chat.py (lines 11-120).",
+ "label": "Compute relevance as baseScore * timeDecay(lastAccessedAt). Logarithmic dec",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L174",
- "community": 52,
- "norm_label": "cover all methods in chat.py (lines 11-120).",
- "id": "tests_test_prometheus_auth_coverage_rationale_174"
+ "source_file": "main/utils/vector.py",
+ "source_location": "L25",
+ "community": 27,
+ "norm_label": "compute relevance as basescore * timedecay(lastaccessedat). logarithmic dec",
+ "id": "utils_vector_rationale_25"
},
{
- "label": "Cover all methods in authentication.py (lines 13-75).",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L398",
- "community": 88,
- "norm_label": "cover all methods in authentication.py (lines 13-75).",
- "id": "tests_test_prometheus_auth_coverage_rationale_398"
+ "label": "memory-system-pandas-plan.md",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-pandas-plan.md",
+ "source_location": "L1",
+ "community": 66,
+ "norm_label": "memory-system-pandas-plan.md",
+ "id": "plans_memory_system_pandas_plan_md"
},
{
- "label": "Cover all methods in session.py (lines 14-154).",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L575",
- "community": 60,
- "norm_label": "cover all methods in session.py (lines 14-154).",
- "id": "tests_test_prometheus_auth_coverage_rationale_575"
+ "label": "Plan: Memory System with Pandas-First Vector Search",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-pandas-plan.md",
+ "source_location": "L1",
+ "community": 66,
+ "norm_label": "plan: memory system with pandas-first vector search",
+ "id": "plans_memory_system_pandas_plan_plan_memory_system_with_pandas_first_vector_search"
},
{
- "label": "Exercises the tzinfo-is-None branch (line 144-148).",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L810",
- "community": 190,
- "norm_label": "exercises the tzinfo-is-none branch (line 144-148).",
- "id": "tests_test_prometheus_auth_coverage_rationale_810"
+ "label": "Goal",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-pandas-plan.md",
+ "source_location": "L3",
+ "community": 66,
+ "norm_label": "goal",
+ "id": "plans_memory_system_pandas_plan_goal"
},
{
- "label": "Exercises the expiresAt-is-None branch (line 143).",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L824",
- "community": 165,
- "norm_label": "exercises the expiresat-is-none branch (line 143).",
- "id": "tests_test_prometheus_auth_coverage_rationale_824"
+ "label": "Subagent Research Summary",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-pandas-plan.md",
+ "source_location": "L7",
+ "community": 66,
+ "norm_label": "subagent research summary",
+ "id": "plans_memory_system_pandas_plan_subagent_research_summary"
},
{
- "label": "Cover getGoogleSSO (lines 6-14).",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L843",
- "community": 68,
- "norm_label": "cover getgooglesso (lines 6-14).",
- "id": "tests_test_prometheus_auth_coverage_rationale_843"
+ "label": "1. Explore Agent \u2014 Prometheus Architecture",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-pandas-plan.md",
+ "source_location": "L9",
+ "community": 66,
+ "norm_label": "1. explore agent \u2014 prometheus architecture",
+ "id": "plans_memory_system_pandas_plan_1_explore_agent_prometheus_architecture"
},
{
- "label": "TestPrometheusGeneratorInit",
- "file_type": "code",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L26",
- "community": 68,
- "norm_label": "testprometheusgeneratorinit",
- "id": "tests_test_prometheus_auth_coverage_testprometheusgeneratorinit"
+ "label": "2. MySQL Vector Storage (Researcher)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-pandas-plan.md",
+ "source_location": "L16",
+ "community": 66,
+ "norm_label": "2. mysql vector storage (researcher)",
+ "id": "plans_memory_system_pandas_plan_2_mysql_vector_storage_researcher"
},
{
- "label": "TestPrometheusGeneratorExecuteWorkflow",
- "file_type": "code",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L57",
- "community": 68,
- "norm_label": "testprometheusgeneratorexecuteworkflow",
- "id": "tests_test_prometheus_auth_coverage_testprometheusgeneratorexecuteworkflow"
+ "label": "3. Memory Patterns (Researcher)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-pandas-plan.md",
+ "source_location": "L25",
+ "community": 66,
+ "norm_label": "3. memory patterns (researcher)",
+ "id": "plans_memory_system_pandas_plan_3_memory_patterns_researcher"
},
{
- "label": "_make_generator()",
- "file_type": "code",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L62",
- "community": 29,
- "norm_label": "_make_generator()",
- "id": "tests_test_prometheus_auth_coverage_make_generator"
+ "label": "Current State",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-pandas-plan.md",
+ "source_location": "L32",
+ "community": 66,
+ "norm_label": "current state",
+ "id": "plans_memory_system_pandas_plan_current_state"
},
{
- "label": "test_execute_workflow_basic_no_history()",
- "file_type": "code",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L72",
- "community": 29,
- "norm_label": "test_execute_workflow_basic_no_history()",
- "id": "tests_test_prometheus_auth_coverage_test_execute_workflow_basic_no_history"
+ "label": "What's Missing / Needs Change",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-pandas-plan.md",
+ "source_location": "L43",
+ "community": 66,
+ "norm_label": "what's missing / needs change",
+ "id": "plans_memory_system_pandas_plan_what_s_missing_needs_change"
},
{
- "label": "test_execute_workflow_with_history()",
- "file_type": "code",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L117",
- "community": 29,
- "norm_label": "test_execute_workflow_with_history()",
- "id": "tests_test_prometheus_auth_coverage_test_execute_workflow_with_history"
+ "label": "A. Vector Embedding Integration",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-pandas-plan.md",
+ "source_location": "L45",
+ "community": 66,
+ "norm_label": "a. vector embedding integration",
+ "id": "plans_memory_system_pandas_plan_a_vector_embedding_integration"
},
{
- "label": "test_execute_workflow_with_session_summary()",
- "file_type": "code",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L144",
- "community": 29,
- "norm_label": "test_execute_workflow_with_session_summary()",
- "id": "tests_test_prometheus_auth_coverage_test_execute_workflow_with_session_summary"
+ "label": "B. Pandas-First Vector Cache",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-pandas-plan.md",
+ "source_location": "L54",
+ "community": 66,
+ "norm_label": "b. pandas-first vector cache",
+ "id": "plans_memory_system_pandas_plan_b_pandas_first_vector_cache"
},
{
- "label": "test_execute_workflow_session_db_exception()",
- "file_type": "code",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L175",
- "community": 29,
- "norm_label": "test_execute_workflow_session_db_exception()",
- "id": "tests_test_prometheus_auth_coverage_test_execute_workflow_session_db_exception"
+ "label": "code:python (class MemoryCache:)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-pandas-plan.md",
+ "source_location": "L60",
+ "community": 66,
+ "norm_label": "code:python (class memorycache:)",
+ "id": "plans_memory_system_pandas_plan_codeblock_1"
},
{
- "label": "test_execute_workflow_global_request_with_api_key()",
- "file_type": "code",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L202",
- "community": 29,
- "norm_label": "test_execute_workflow_global_request_with_api_key()",
- "id": "tests_test_prometheus_auth_coverage_test_execute_workflow_global_request_with_api_key"
+ "label": "C. Search Upgrade",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-pandas-plan.md",
+ "source_location": "L123",
+ "community": 66,
+ "norm_label": "c. search upgrade",
+ "id": "plans_memory_system_pandas_plan_c_search_upgrade"
},
{
- "label": "test_execute_workflow_global_request_api_error()",
- "file_type": "code",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L251",
- "community": 29,
- "norm_label": "test_execute_workflow_global_request_api_error()",
- "id": "tests_test_prometheus_auth_coverage_test_execute_workflow_global_request_api_error"
+ "label": "code:python (def searchMemories(cls, db, userId, query, embedding=None, l)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-pandas-plan.md",
+ "source_location": "L131",
+ "community": 66,
+ "norm_label": "code:python (def searchmemories(cls, db, userid, query, embedding=none, l)",
+ "id": "plans_memory_system_pandas_plan_codeblock_2"
},
{
- "label": "test_fetch_stock_data_exception()",
- "file_type": "code",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L289",
- "community": 29,
- "norm_label": "test_fetch_stock_data_exception()",
- "id": "tests_test_prometheus_auth_coverage_test_fetch_stock_data_exception"
+ "label": "D. Memory Extraction",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-pandas-plan.md",
+ "source_location": "L151",
+ "community": 66,
+ "norm_label": "d. memory extraction",
+ "id": "plans_memory_system_pandas_plan_d_memory_extraction"
},
{
- "label": "test_fetch_stock_data_non_200()",
- "file_type": "code",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L325",
- "community": 29,
- "norm_label": "test_fetch_stock_data_non_200()",
- "id": "tests_test_prometheus_auth_coverage_test_fetch_stock_data_non_200"
+ "label": "E. System Prompt Injection",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-pandas-plan.md",
+ "source_location": "L160",
+ "community": 66,
+ "norm_label": "e. system prompt injection",
+ "id": "plans_memory_system_pandas_plan_e_system_prompt_injection"
},
{
- "label": "test_execute_workflow_stage4_summary_update()",
- "file_type": "code",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L364",
- "community": 29,
- "norm_label": "test_execute_workflow_stage4_summary_update()",
- "id": "tests_test_prometheus_auth_coverage_test_execute_workflow_stage4_summary_update"
+ "label": "Implementation Order",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-pandas-plan.md",
+ "source_location": "L166",
+ "community": 66,
+ "norm_label": "implementation order",
+ "id": "plans_memory_system_pandas_plan_implementation_order"
},
{
- "label": "test_execute_workflow_global_request_status_not_200()",
- "file_type": "code",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L396",
- "community": 29,
- "norm_label": "test_execute_workflow_global_request_status_not_200()",
- "id": "tests_test_prometheus_auth_coverage_test_execute_workflow_global_request_status_not_200"
+ "label": "Files to Create/Modify",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-pandas-plan.md",
+ "source_location": "L182",
+ "community": 66,
+ "norm_label": "files to create/modify",
+ "id": "plans_memory_system_pandas_plan_files_to_create_modify"
},
{
- "label": "Stage 1 + Stage 2 + Stage 3, no history, no sessionId.",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L73",
- "community": 387,
- "norm_label": "stage 1 + stage 2 + stage 3, no history, no sessionid.",
- "id": "tests_test_prometheus_auth_coverage_rationale_73"
+ "label": "Key Risks",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-pandas-plan.md",
+ "source_location": "L194",
+ "community": 66,
+ "norm_label": "key risks",
+ "id": "plans_memory_system_pandas_plan_key_risks"
},
{
- "label": "Test history formatting (lines 48-49, 159-162).",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L118",
- "community": 388,
- "norm_label": "test history formatting (lines 48-49, 159-162).",
- "id": "tests_test_prometheus_auth_coverage_rationale_118"
+ "label": "Success Criteria",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-pandas-plan.md",
+ "source_location": "L201",
+ "community": 66,
+ "norm_label": "success criteria",
+ "id": "plans_memory_system_pandas_plan_success_criteria"
},
{
- "label": "Stage 0: sessionId+db summary loading (lines 55-62).",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L145",
- "community": 389,
- "norm_label": "stage 0: sessionid+db summary loading (lines 55-62).",
- "id": "tests_test_prometheus_auth_coverage_rationale_145"
+ "label": "remove-memory-endpoints.md",
+ "file_type": "document",
+ "source_file": "PLANS/remove-memory-endpoints.md",
+ "source_location": "L1",
+ "community": 159,
+ "norm_label": "remove-memory-endpoints.md",
+ "id": "plans_remove_memory_endpoints_md"
},
{
- "label": "Global request API error (lines 208-209).",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L252",
- "community": 390,
- "norm_label": "global request api error (lines 208-209).",
- "id": "tests_test_prometheus_auth_coverage_rationale_252"
+ "label": "Plan: Remove /memories Endpoints \u2014 Memory via Agent Tools Only",
+ "file_type": "document",
+ "source_file": "PLANS/remove-memory-endpoints.md",
+ "source_location": "L1",
+ "community": 159,
+ "norm_label": "plan: remove /memories endpoints \u2014 memory via agent tools only",
+ "id": "plans_remove_memory_endpoints_plan_remove_memories_endpoints_memory_via_agent_tools_only"
},
{
- "label": "fetchStockData exception path (lines 223-225).",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L290",
- "community": 391,
- "norm_label": "fetchstockdata exception path (lines 223-225).",
- "id": "tests_test_prometheus_auth_coverage_rationale_290"
+ "label": "Current state",
+ "file_type": "document",
+ "source_file": "PLANS/remove-memory-endpoints.md",
+ "source_location": "L3",
+ "community": 159,
+ "norm_label": "current state",
+ "id": "plans_remove_memory_endpoints_current_state"
},
{
- "label": "fetchStockData non-200 status (line 222).",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L326",
- "community": 392,
- "norm_label": "fetchstockdata non-200 status (line 222).",
- "id": "tests_test_prometheus_auth_coverage_rationale_326"
+ "label": "What to remove",
+ "file_type": "document",
+ "source_file": "PLANS/remove-memory-endpoints.md",
+ "source_location": "L14",
+ "community": 159,
+ "norm_label": "what to remove",
+ "id": "plans_remove_memory_endpoints_what_to_remove"
},
{
- "label": "Stage 4: summary update when len(history) % 10 == 0 (lines 325-363).",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L365",
- "community": 393,
- "norm_label": "stage 4: summary update when len(history) % 10 == 0 (lines 325-363).",
- "id": "tests_test_prometheus_auth_coverage_rationale_365"
+ "label": "What stays",
+ "file_type": "document",
+ "source_file": "PLANS/remove-memory-endpoints.md",
+ "source_location": "L22",
+ "community": 159,
+ "norm_label": "what stays",
+ "id": "plans_remove_memory_endpoints_what_stays"
},
{
- "label": "Global request with non-200 status (line 201-203 skipped).",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L397",
- "community": 394,
- "norm_label": "global request with non-200 status (line 201-203 skipped).",
- "id": "tests_test_prometheus_auth_coverage_rationale_397"
+ "label": "Security benefits",
+ "file_type": "document",
+ "source_file": "PLANS/remove-memory-endpoints.md",
+ "source_location": "L33",
+ "community": 159,
+ "norm_label": "security benefits",
+ "id": "plans_remove_memory_endpoints_security_benefits"
},
{
- "label": "Cover all methods in chat.py (lines 11-120).",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L440",
- "community": 52,
- "norm_label": "cover all methods in chat.py (lines 11-120).",
- "id": "tests_test_prometheus_auth_coverage_rationale_440"
+ "label": "Changes",
+ "file_type": "document",
+ "source_file": "PLANS/remove-memory-endpoints.md",
+ "source_location": "L43",
+ "community": 159,
+ "norm_label": "changes",
+ "id": "plans_remove_memory_endpoints_changes"
},
{
- "label": "Cover all methods in authentication.py (lines 13-75).",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L664",
- "community": 88,
- "norm_label": "cover all methods in authentication.py (lines 13-75).",
- "id": "tests_test_prometheus_auth_coverage_rationale_664"
+ "label": "Implementation",
+ "file_type": "document",
+ "source_file": "PLANS/remove-memory-endpoints.md",
+ "source_location": "L49",
+ "community": 159,
+ "norm_label": "implementation",
+ "id": "plans_remove_memory_endpoints_implementation"
},
{
- "label": "Cover all methods in session.py (lines 14-154).",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L841",
- "community": 60,
- "norm_label": "cover all methods in session.py (lines 14-154).",
- "id": "tests_test_prometheus_auth_coverage_rationale_841"
+ "label": "Total: ~15 min",
+ "file_type": "document",
+ "source_file": "PLANS/remove-memory-endpoints.md",
+ "source_location": "L55",
+ "community": 159,
+ "norm_label": "total: ~15 min",
+ "id": "plans_remove_memory_endpoints_total_15_min"
},
{
- "label": "Exercises the tzinfo-is-None branch (line 144-148).",
- "file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L1076",
- "community": 190,
- "norm_label": "exercises the tzinfo-is-none branch (line 144-148).",
- "id": "tests_test_prometheus_auth_coverage_rationale_1076"
+ "label": "_now()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L16",
+ "community": 53,
+ "norm_label": "_now()",
+ "id": "prometheus_memory_now"
},
{
- "label": "Exercises the expiresAt-is-None branch (line 143).",
+ "label": "makeChat must include MEMORY_TOOLS alongside MCP sessions.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L1090",
- "community": 165,
- "norm_label": "exercises the expiresat-is-none branch (line 143).",
- "id": "tests_test_prometheus_auth_coverage_rationale_1090"
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L48",
+ "community": 49,
+ "norm_label": "makechat must include memory_tools alongside mcp sessions.",
+ "id": "tests_test_memory_tools_wiring_rationale_48"
},
{
- "label": "Cover getGoogleSSO (lines 6-14).",
+ "label": "dispatchToolCall must route memory tool names to executeMemoryTool.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L1109",
- "community": 68,
- "norm_label": "cover getgooglesso (lines 6-14).",
- "id": "tests_test_prometheus_auth_coverage_rationale_1109"
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L76",
+ "community": 49,
+ "norm_label": "dispatchtoolcall must route memory tool names to executememorytool.",
+ "id": "tests_test_memory_tools_wiring_rationale_76"
},
{
- "label": "generation.py",
+ "label": "d4e5f6a7b8c9_rename_relevance_to_base_score.py",
"file_type": "code",
- "source_file": "main/app/prometheus/generation.py",
+ "source_file": "migrations/versions/d4e5f6a7b8c9_rename_relevance_to_base_score.py",
"source_location": "L1",
- "community": 215,
- "norm_label": "generation.py",
- "id": "main_app_prometheus_generation_py"
+ "community": 244,
+ "norm_label": "d4e5f6a7b8c9_rename_relevance_to_base_score.py",
+ "id": "migrations_versions_d4e5f6a7b8c9_rename_relevance_to_base_score_py"
},
{
- "label": "PrometheusGenerator",
+ "label": "upgrade()",
"file_type": "code",
- "source_file": "main/app/prometheus/generation.py",
+ "source_file": "migrations/versions/d4e5f6a7b8c9_rename_relevance_to_base_score.py",
"source_location": "L18",
- "community": 29,
- "norm_label": "prometheusgenerator",
- "id": "prometheus_generation_prometheusgenerator"
+ "community": 244,
+ "norm_label": "upgrade()",
+ "id": "versions_d4e5f6a7b8c9_rename_relevance_to_base_score_upgrade"
},
{
- "label": ".__init__()",
+ "label": "downgrade()",
"file_type": "code",
- "source_file": "main/app/prometheus/generation.py",
- "source_location": "L19",
- "community": 29,
- "norm_label": ".__init__()",
- "id": "prometheus_generation_prometheusgenerator_init"
+ "source_file": "migrations/versions/d4e5f6a7b8c9_rename_relevance_to_base_score.py",
+ "source_location": "L22",
+ "community": 244,
+ "norm_label": "downgrade()",
+ "id": "versions_d4e5f6a7b8c9_rename_relevance_to_base_score_downgrade"
},
{
- "label": ".updateDates()",
- "file_type": "code",
- "source_file": "main/app/prometheus/generation.py",
- "source_location": "L23",
- "community": 29,
- "norm_label": ".updatedates()",
- "id": "prometheus_generation_prometheusgenerator_updatedates"
+ "label": "rename relevanceScore to baseScore Revision ID: d4e5f6a7b8c9 Revises: b1c2d3e4f",
+ "file_type": "rationale",
+ "source_file": "migrations/versions/d4e5f6a7b8c9_rename_relevance_to_base_score.py",
+ "source_location": "L1",
+ "community": 244,
+ "norm_label": "rename relevancescore to basescore revision id: d4e5f6a7b8c9 revises: b1c2d3e4f",
+ "id": "versions_d4e5f6a7b8c9_rename_relevance_to_base_score_rationale_1"
},
{
- "label": ".executeWorkflow()",
+ "label": "decayScores()",
"file_type": "code",
- "source_file": "main/app/prometheus/generation.py",
- "source_location": "L36",
- "community": 215,
- "norm_label": ".executeworkflow()",
- "id": "prometheus_generation_prometheusgenerator_executeworkflow"
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L192",
+ "community": 53,
+ "norm_label": "decayscores()",
+ "id": "prometheus_memory_decayscores"
},
{
- "label": "Get year-based historical financial data for Brazilian B3 stocks. Returns",
- "file_type": "rationale",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L65",
- "community": 197,
- "norm_label": "get year-based historical financial data for brazilian b3 stocks. returns",
- "id": "controller_stocksapi_controller_rationale_65"
+ "label": "executeMemoryTool()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L91",
+ "community": 116,
+ "norm_label": "executememorytool()",
+ "id": "prometheus_agent_executememorytool"
},
{
- "label": "Get point-in-time fundamental/valuation data for Brazilian B3 stocks. Ret",
- "file_type": "rationale",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L123",
- "community": 157,
- "norm_label": "get point-in-time fundamental/valuation data for brazilian b3 stocks. ret",
- "id": "controller_stocksapi_controller_rationale_123"
+ "label": ".executeToolCall()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L226",
+ "community": 116,
+ "norm_label": ".executetoolcall()",
+ "id": "prometheus_agent_prometheus_executetoolcall"
},
{
- "label": "Get 10-year daily price history (cotation) for Brazilian B3 stocks. Retur",
- "file_type": "rationale",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L184",
- "community": 169,
- "norm_label": "get 10-year daily price history (cotation) for brazilian b3 stocks. retur",
- "id": "controller_stocksapi_controller_rationale_184"
+ "label": "MemoryManager",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L20",
+ "community": 140,
+ "norm_label": "memorymanager",
+ "id": "prometheus_memory_memorymanager"
},
{
- "label": "Get real-time price quotation for a single Brazilian B3 stock. Returns th",
- "file_type": "rationale",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L232",
- "community": 81,
- "norm_label": "get real-time price quotation for a single brazilian b3 stock. returns th",
- "id": "controller_stocksapi_controller_rationale_232"
+ "label": "getMemories()",
+ "file_type": "code",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L163",
+ "community": 84,
+ "norm_label": "getmemories()",
+ "id": "controller_prometheus_controller_getmemories"
},
{
- "label": "Both cookies should have secure flag (HTTPS only).",
- "file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L167",
- "community": 395,
- "norm_label": "both cookies should have secure flag (https only).",
- "id": "tests_test_oauth_cookie_security_rationale_167"
+ "label": "createMemory()",
+ "file_type": "code",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L177",
+ "community": 530,
+ "norm_label": "creatememory()",
+ "id": "controller_prometheus_controller_creatememory"
},
{
- "label": "When no state param, return JSON response (not redirect).",
- "file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L199",
- "community": 396,
- "norm_label": "when no state param, return json response (not redirect).",
- "id": "tests_test_oauth_cookie_security_rationale_199"
+ "label": "deleteMemory()",
+ "file_type": "code",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L207",
+ "community": 84,
+ "norm_label": "deletememory()",
+ "id": "controller_prometheus_controller_deletememory"
},
{
- "label": "Frontend JavaScript should be able to read token from readable cookie.",
- "file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L228",
- "community": 397,
- "norm_label": "frontend javascript should be able to read token from readable cookie.",
- "id": "tests_test_oauth_cookie_security_rationale_228"
+ "label": "test_memory_controller.py",
+ "file_type": "code",
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L1",
+ "community": 99,
+ "norm_label": "test_memory_controller.py",
+ "id": "tests_test_memory_controller_py"
},
{
- "label": "Set required env vars before test collection. config.py eagerly instantia",
- "file_type": "rationale",
- "source_file": "tests/conftest.py",
- "source_location": "L13",
- "community": 527,
- "norm_label": "set required env vars before test collection. config.py eagerly instantia",
- "id": "tests_conftest_rationale_13"
+ "label": "TestMemoryControllerRoutes",
+ "file_type": "code",
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L10",
+ "community": 99,
+ "norm_label": "testmemorycontrollerroutes",
+ "id": "tests_test_memory_controller_testmemorycontrollerroutes"
},
{
- "label": "TestClient with stocks router + verifyAPIKey + getCurrentUser overrides.",
- "file_type": "rationale",
- "source_file": "tests/conftest.py",
- "source_location": "L74",
- "community": 527,
- "norm_label": "testclient with stocks router + verifyapikey + getcurrentuser overrides.",
- "id": "tests_conftest_rationale_74"
+ "label": ".test_get_memories_endpoint_exists()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L11",
+ "community": 99,
+ "norm_label": ".test_get_memories_endpoint_exists()",
+ "id": "tests_test_memory_controller_testmemorycontrollerroutes_test_get_memories_endpoint_exists"
},
{
- "label": "TestClient with all routers mounted \u2014 no lifespan (no DB/service init). O",
- "file_type": "rationale",
- "source_file": "tests/conftest.py",
- "source_location": "L99",
- "community": 527,
- "norm_label": "testclient with all routers mounted \u2014 no lifespan (no db/service init). o",
- "id": "tests_conftest_rationale_99"
+ "label": ".test_post_memories_endpoint_exists()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L15",
+ "community": 99,
+ "norm_label": ".test_post_memories_endpoint_exists()",
+ "id": "tests_test_memory_controller_testmemorycontrollerroutes_test_post_memories_endpoint_exists"
},
{
- "label": "Covers lines 202-204: generic Exception in callback.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L507",
- "community": 398,
- "norm_label": "covers lines 202-204: generic exception in callback.",
- "id": "tests_test_controllers_coverage_rationale_507"
+ "label": ".test_delete_memories_endpoint_exists()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L19",
+ "community": 99,
+ "norm_label": ".test_delete_memories_endpoint_exists()",
+ "id": "tests_test_memory_controller_testmemorycontrollerroutes_test_delete_memories_endpoint_exists"
},
{
- "label": "Covers line 19: GET /user/health.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L524",
- "community": 498,
- "norm_label": "covers line 19: get /user/health.",
- "id": "tests_test_controllers_coverage_rationale_524"
+ "label": ".test_get_memories_rejects_unauthenticated()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L23",
+ "community": 99,
+ "norm_label": ".test_get_memories_rejects_unauthenticated()",
+ "id": "tests_test_memory_controller_testmemorycontrollerroutes_test_get_memories_rejects_unauthenticated"
},
{
- "label": "Covers line 24: GET /user/me returns currentUser.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L538",
- "community": 47,
- "norm_label": "covers line 24: get /user/me returns currentuser.",
- "id": "tests_test_controllers_coverage_rationale_538"
+ "label": ".test_get_memories_rejects_basic_user()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L38",
+ "community": 99,
+ "norm_label": ".test_get_memories_rejects_basic_user()",
+ "id": "tests_test_memory_controller_testmemorycontrollerroutes_test_get_memories_rejects_basic_user"
},
{
- "label": "Covers lines 31-32, 36, 43-44, 48: upgrade developer starter/enterprise.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L552",
- "community": 47,
- "norm_label": "covers lines 31-32, 36, 43-44, 48: upgrade developer starter/enterprise.",
- "id": "tests_test_controllers_coverage_rationale_552"
+ "label": "TestMemoryEndpointsIntegration",
+ "file_type": "code",
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L65",
+ "community": 99,
+ "norm_label": "testmemoryendpointsintegration",
+ "id": "tests_test_memory_controller_testmemoryendpointsintegration"
},
{
- "label": "Covers lines 53-54, 56: admin access granted / denied.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L592",
- "community": 47,
- "norm_label": "covers lines 53-54, 56: admin access granted / denied.",
- "id": "tests_test_controllers_coverage_rationale_592"
+ "label": "test_get_memories_calls_manager()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L67",
+ "community": 99,
+ "norm_label": "test_get_memories_calls_manager()",
+ "id": "tests_test_memory_controller_test_get_memories_calls_manager"
},
{
- "label": "Covers lines 66, 68-72, 74: GET /user/sessions.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L611",
- "community": 178,
- "norm_label": "covers lines 66, 68-72, 74: get /user/sessions.",
- "id": "tests_test_controllers_coverage_rationale_611"
+ "label": "test_create_memory_calls_manager()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L90",
+ "community": 99,
+ "norm_label": "test_create_memory_calls_manager()",
+ "id": "tests_test_memory_controller_test_create_memory_calls_manager"
},
{
- "label": "Covers lines 66, 68-72, 74: full sessions listing.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L614",
- "community": 178,
- "norm_label": "covers lines 66, 68-72, 74: full sessions listing.",
- "id": "tests_test_controllers_coverage_rationale_614"
+ "label": "test_create_memory_limit_reached()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L111",
+ "community": 99,
+ "norm_label": "test_create_memory_limit_reached()",
+ "id": "tests_test_memory_controller_test_create_memory_limit_reached"
},
{
- "label": "Covers lines 100-104, 106: GET /user/sessions/current.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L665",
- "community": 104,
- "norm_label": "covers lines 100-104, 106: get /user/sessions/current.",
- "id": "tests_test_controllers_coverage_rationale_665"
+ "label": "test_delete_memory_calls_manager()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L126",
+ "community": 99,
+ "norm_label": "test_delete_memory_calls_manager()",
+ "id": "tests_test_memory_controller_test_delete_memory_calls_manager"
},
{
- "label": "Covers lines 100-104, 106: session found.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L668",
- "community": 104,
- "norm_label": "covers lines 100-104, 106: session found.",
- "id": "tests_test_controllers_coverage_rationale_668"
+ "label": "test_delete_memory_not_found()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L135",
+ "community": 99,
+ "norm_label": "test_delete_memory_not_found()",
+ "id": "tests_test_memory_controller_test_delete_memory_not_found"
},
{
- "label": "Covers line 104: session not found.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L701",
- "community": 104,
- "norm_label": "covers line 104: session not found.",
- "id": "tests_test_controllers_coverage_rationale_701"
+ "label": ".test_create_memory_missing_key()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L141",
+ "community": 99,
+ "norm_label": ".test_create_memory_missing_key()",
+ "id": "tests_test_memory_controller_testmemoryendpointsintegration_test_create_memory_missing_key"
},
{
- "label": "Covers lines 126-136: DELETE /user/sessions/{sessionId}.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L724",
- "community": 104,
- "norm_label": "covers lines 126-136: delete /user/sessions/{sessionid}.",
- "id": "tests_test_controllers_coverage_rationale_724"
+ "label": ".test_create_memory_missing_value()",
+ "file_type": "code",
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L145",
+ "community": 99,
+ "norm_label": ".test_create_memory_missing_value()",
+ "id": "tests_test_memory_controller_testmemoryendpointsintegration_test_create_memory_missing_value"
},
{
- "label": "Covers lines 126, 131, 135-136.",
+ "label": "Custom SQLAlchemy type for storing float32 embeddings as MySQL BLOB.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L727",
- "community": 104,
- "norm_label": "covers lines 126, 131, 135-136.",
- "id": "tests_test_controllers_coverage_rationale_727"
+ "source_file": "main/models/memory_types.py",
+ "source_location": "L6",
+ "community": 51,
+ "norm_label": "custom sqlalchemy type for storing float32 embeddings as mysql blob.",
+ "id": "models_memory_types_rationale_6"
},
{
- "label": "Covers lines 127-129: session not found.",
+ "label": "Vectorized cosine similarity: one query against N embeddings.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L754",
- "community": 104,
- "norm_label": "covers lines 127-129: session not found.",
- "id": "tests_test_controllers_coverage_rationale_754"
+ "source_file": "main/utils/vector.py",
+ "source_location": "L6",
+ "community": 131,
+ "norm_label": "vectorized cosine similarity: one query against n embeddings.",
+ "id": "utils_vector_rationale_6"
},
{
- "label": "Covers lines 132-133: revokeSession returns False.",
+ "label": "MD5 hash for change detection.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L776",
- "community": 104,
- "norm_label": "covers lines 132-133: revokesession returns false.",
- "id": "tests_test_controllers_coverage_rationale_776"
+ "source_file": "main/utils/vector.py",
+ "source_location": "L19",
+ "community": 112,
+ "norm_label": "md5 hash for change detection.",
+ "id": "utils_vector_rationale_19"
},
{
- "label": "Covers lines 143, 145, 147-148: POST /user/sessions/revoke-all.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L802",
- "community": 221,
- "norm_label": "covers lines 143, 145, 147-148: post /user/sessions/revoke-all.",
- "id": "tests_test_controllers_coverage_rationale_802"
+ "label": "memory-system-plan.md",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L1",
+ "community": 6,
+ "norm_label": "memory-system-plan.md",
+ "id": "plans_memory_system_plan_md"
},
{
- "label": "Covers lines 143, 145, 147-148.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L805",
- "community": 221,
- "norm_label": "covers lines 143, 145, 147-148.",
- "id": "tests_test_controllers_coverage_rationale_805"
+ "label": "Mansa Memory System \u2014 Implementation Plan (v2)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L1",
+ "community": 6,
+ "norm_label": "mansa memory system \u2014 implementation plan (v2)",
+ "id": "plans_memory_system_plan_mansa_memory_system_implementation_plan_v2"
},
{
- "label": "Covers line 24: GET /prometheus/health.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L832",
- "community": 498,
- "norm_label": "covers line 24: get /prometheus/health.",
- "id": "tests_test_controllers_coverage_rationale_832"
+ "label": "Goal",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L3",
+ "community": 6,
+ "norm_label": "goal",
+ "id": "plans_memory_system_plan_goal"
},
{
- "label": "Covers lines 33-36: GET /prometheus/sessions.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L846",
- "community": 540,
- "norm_label": "covers lines 33-36: get /prometheus/sessions.",
- "id": "tests_test_controllers_coverage_rationale_846"
+ "label": "1. Permission System",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L9",
+ "community": 6,
+ "norm_label": "1. permission system",
+ "id": "plans_memory_system_plan_1_permission_system"
},
{
- "label": "Covers line 52: POST /prometheus/sessions.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L864",
- "community": 16,
- "norm_label": "covers line 52: post /prometheus/sessions.",
- "id": "tests_test_controllers_coverage_rationale_864"
+ "label": "Current state (`main/utils/roles.py`)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L11",
+ "community": 6,
+ "norm_label": "current state (`main/utils/roles.py`)",
+ "id": "plans_memory_system_plan_current_state_main_utils_roles_py"
},
{
- "label": "Covers lines 62-63, 65-68: PUT /prometheus/sessions/{sessionId}.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L878",
- "community": 16,
- "norm_label": "covers lines 62-63, 65-68: put /prometheus/sessions/{sessionid}.",
- "id": "tests_test_controllers_coverage_rationale_878"
+ "label": "code:python (class Permission(IntFlag):)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L15",
+ "community": 6,
+ "norm_label": "code:python (class permission(intflag):)",
+ "id": "plans_memory_system_plan_codeblock_1"
},
{
- "label": "Covers lines 65-68: title updated successfully.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L881",
- "community": 16,
- "norm_label": "covers lines 65-68: title updated successfully.",
- "id": "tests_test_controllers_coverage_rationale_881"
+ "label": "New permission",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L26",
+ "community": 6,
+ "norm_label": "new permission",
+ "id": "plans_memory_system_plan_new_permission"
},
{
- "label": "Covers lines 62-63: not the session owner.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L892",
- "community": 16,
- "norm_label": "covers lines 62-63: not the session owner.",
- "id": "tests_test_controllers_coverage_rationale_892"
+ "label": "code:python (PROMETHEUS_EXTENDED_MEMORIES = auto() # 50 memories (vs 5 f)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L28",
+ "community": 6,
+ "norm_label": "code:python (prometheus_extended_memories = auto() # 50 memories (vs 5 f)",
+ "id": "plans_memory_system_plan_codeblock_2"
},
{
- "label": "Covers lines 66-67: session not found.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L901",
- "community": 16,
- "norm_label": "covers lines 66-67: session not found.",
- "id": "tests_test_controllers_coverage_rationale_901"
+ "label": "code:python (PREMIUM = USER | USE_PROMETHEUS | USE_OGUM | PROMETHEUS_EXTE)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L34",
+ "community": 6,
+ "norm_label": "code:python (premium = user | use_prometheus | use_ogum | prometheus_exte)",
+ "id": "plans_memory_system_plan_codeblock_3"
},
{
- "label": "Covers lines 77, 83-84, 86: GET /prometheus/history/{sessionId}.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L912",
- "community": 208,
- "norm_label": "covers lines 77, 83-84, 86: get /prometheus/history/{sessionid}.",
- "id": "tests_test_controllers_coverage_rationale_912"
+ "label": "Memory limit logic",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L38",
+ "community": 6,
+ "norm_label": "memory limit logic",
+ "id": "plans_memory_system_plan_memory_limit_logic"
},
{
- "label": "Covers lines 77, 86: session found with history.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L915",
- "community": 208,
- "norm_label": "covers lines 77, 86: session found with history.",
- "id": "tests_test_controllers_coverage_rationale_915"
+ "label": "code:python (def get_memory_limit(user_roles: list[str]) -> int:)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L40",
+ "community": 6,
+ "norm_label": "code:python (def get_memory_limit(user_roles: list[str]) -> int:)",
+ "id": "plans_memory_system_plan_codeblock_4"
},
{
- "label": "Covers lines 83-84: session not found.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L959",
- "community": 208,
- "norm_label": "covers lines 83-84: session not found.",
- "id": "tests_test_controllers_coverage_rationale_959"
+ "label": "Rolling out to free users",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L48",
+ "community": 6,
+ "norm_label": "rolling out to free users",
+ "id": "plans_memory_system_plan_rolling_out_to_free_users"
},
{
- "label": "Covers lines 95-98: DELETE /prometheus/sessions/{sessionId}.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L994",
- "community": 94,
- "norm_label": "covers lines 95-98: delete /prometheus/sessions/{sessionid}.",
- "id": "tests_test_controllers_coverage_rationale_994"
+ "label": "2. Database Schema",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L57",
+ "community": 6,
+ "norm_label": "2. database schema",
+ "id": "plans_memory_system_plan_2_database_schema"
},
{
- "label": "Covers lines 95-98: session deleted.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L997",
- "community": 94,
- "norm_label": "covers lines 95-98: session deleted.",
- "id": "tests_test_controllers_coverage_rationale_997"
+ "label": "New table: `prometheus_memories`",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L59",
+ "community": 6,
+ "norm_label": "new table: `prometheus_memories`",
+ "id": "plans_memory_system_plan_new_table_prometheus_memories"
},
{
- "label": "Covers lines 96-97: session not found.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1007",
- "community": 94,
- "norm_label": "covers lines 96-97: session not found.",
- "id": "tests_test_controllers_coverage_rationale_1007"
+ "label": "code:sql (CREATE TABLE prometheus_memories ()",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L61",
+ "community": 6,
+ "norm_label": "code:sql (create table prometheus_memories ()",
+ "id": "plans_memory_system_plan_codeblock_5"
},
{
- "label": "Covers lines 114-115, 117-120, 122, 125: POST /prometheus/chat.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1017",
- "community": 101,
- "norm_label": "covers lines 114-115, 117-120, 122, 125: post /prometheus/chat.",
- "id": "tests_test_controllers_coverage_rationale_1017"
+ "label": "Alembic migration",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L89",
+ "community": 6,
+ "norm_label": "alembic migration",
+ "id": "plans_memory_system_plan_alembic_migration"
},
{
- "label": "Covers lines 111-112: sessionId is None, new session created.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1020",
- "community": 101,
- "norm_label": "covers lines 111-112: sessionid is none, new session created.",
- "id": "tests_test_controllers_coverage_rationale_1020"
+ "label": "3. SQLAlchemy Models",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L95",
+ "community": 6,
+ "norm_label": "3. sqlalchemy models",
+ "id": "plans_memory_system_plan_3_sqlalchemy_models"
},
{
- "label": "Covers lines 114-115, 117-120, 122: existing session with verified ownership.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1038",
- "community": 101,
- "norm_label": "covers lines 114-115, 117-120, 122: existing session with verified ownership.",
- "id": "tests_test_controllers_coverage_rationale_1038"
+ "label": "`main/models/memory.py` \u2014 New file",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L97",
+ "community": 6,
+ "norm_label": "`main/models/memory.py` \u2014 new file",
+ "id": "plans_memory_system_plan_main_models_memory_py_new_file"
},
{
- "label": "Covers lines 114-115: session ownership check fails.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1079",
- "community": 104,
- "norm_label": "covers lines 114-115: session ownership check fails.",
- "id": "tests_test_controllers_coverage_rationale_1079"
+ "label": "code:python (from sqlalchemy import Column, Integer, String, Text, Float,)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L99",
+ "community": 6,
+ "norm_label": "code:python (from sqlalchemy import column, integer, string, text, float,)",
+ "id": "plans_memory_system_plan_codeblock_6"
},
{
- "label": "Generic Exception in chat propagates to FastAPI's default 500 handler.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1116",
- "community": 101,
- "norm_label": "generic exception in chat propagates to fastapi's default 500 handler.",
- "id": "tests_test_controllers_coverage_rationale_1116"
+ "label": "`VectorType` \u2014 Custom TypeDecorator",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L136",
+ "community": 6,
+ "norm_label": "`vectortype` \u2014 custom typedecorator",
+ "id": "plans_memory_system_plan_vectortype_custom_typedecorator"
},
{
- "label": "Covers line 18: GET /stocks/health.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1134",
- "community": 498,
- "norm_label": "covers line 18: get /stocks/health.",
- "id": "tests_test_controllers_coverage_rationale_1134"
+ "label": "code:python (# main/models/memory_types.py)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L138",
+ "community": 6,
+ "norm_label": "code:python (# main/models/memory_types.py)",
+ "id": "plans_memory_system_plan_codeblock_7"
},
{
- "label": "Covers line 35: GET /stocks/historical.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1148",
- "community": 14,
- "norm_label": "covers line 35: get /stocks/historical.",
- "id": "tests_test_controllers_coverage_rationale_1148"
+ "label": "4. Vector Utilities",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L167",
+ "community": 6,
+ "norm_label": "4. vector utilities",
+ "id": "plans_memory_system_plan_4_vector_utilities"
},
{
- "label": "Covers line 47: GET /stocks/fundamental.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1162",
- "community": 14,
- "norm_label": "covers line 47: get /stocks/fundamental.",
- "id": "tests_test_controllers_coverage_rationale_1162"
+ "label": "`main/utils/vector.py` \u2014 New file",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L169",
+ "community": 6,
+ "norm_label": "`main/utils/vector.py` \u2014 new file",
+ "id": "plans_memory_system_plan_main_utils_vector_py_new_file"
},
{
- "label": "Covers lines 52-53, 57-63: GET /stocks/key/generate. NOTE: stocksapi_cont",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1176",
- "community": 85,
- "norm_label": "covers lines 52-53, 57-63: get /stocks/key/generate. note: stocksapi_cont",
- "id": "tests_test_controllers_coverage_rationale_1176"
+ "label": "code:python (import hashlib)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L171",
+ "community": 6,
+ "norm_label": "code:python (import hashlib)",
+ "id": "plans_memory_system_plan_codeblock_8"
},
{
- "label": "Covers lines 52-53: user without GENERATE_API_KEYS permission gets 403.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1184",
- "community": 14,
- "norm_label": "covers lines 52-53: user without generate_api_keys permission gets 403.",
- "id": "tests_test_controllers_coverage_rationale_1184"
+ "label": "5. Memory Manager (Service Layer)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L214",
+ "community": 6,
+ "norm_label": "5. memory manager (service layer)",
+ "id": "plans_memory_system_plan_5_memory_manager_service_layer"
},
{
- "label": "Covers lines 57-60: admin bypasses permission check and generates key.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1192",
- "community": 85,
- "norm_label": "covers lines 57-60: admin bypasses permission check and generates key.",
- "id": "tests_test_controllers_coverage_rationale_1192"
+ "label": "`main/app/prometheus/memory.py` \u2014 New file",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L216",
+ "community": 6,
+ "norm_label": "`main/app/prometheus/memory.py` \u2014 new file",
+ "id": "plans_memory_system_plan_main_app_prometheus_memory_py_new_file"
},
{
- "label": "Covers lines 61-63: exception during key generation (admin path).",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1204",
- "community": 85,
- "norm_label": "covers lines 61-63: exception during key generation (admin path).",
- "id": "tests_test_controllers_coverage_rationale_1204"
+ "label": "code:python (from datetime import datetime, timedelta)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L220",
+ "community": 6,
+ "norm_label": "code:python (from datetime import datetime, timedelta)",
+ "id": "plans_memory_system_plan_codeblock_9"
},
{
- "label": "Covers lines 13, 17, 19-20, 22-27: UserManager.addRoleToUser.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1219",
- "community": 137,
- "norm_label": "covers lines 13, 17, 19-20, 22-27: usermanager.addroletouser.",
- "id": "tests_test_controllers_coverage_rationale_1219"
+ "label": "6. Tool Integration (Gemini)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L468",
+ "community": 6,
+ "norm_label": "6. tool integration (gemini)",
+ "id": "plans_memory_system_plan_6_tool_integration_gemini"
},
{
- "label": "Covers lines 17, 22-27: user found, role not present, role added.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1222",
- "community": 137,
- "norm_label": "covers lines 17, 22-27: user found, role not present, role added.",
- "id": "tests_test_controllers_coverage_rationale_1222"
+ "label": "Native Gemini tools (not MCP)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L470",
+ "community": 6,
+ "norm_label": "native gemini tools (not mcp)",
+ "id": "plans_memory_system_plan_native_gemini_tools_not_mcp"
},
{
- "label": "Covers line 27: user already has the role.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1239",
- "community": 488,
- "norm_label": "covers line 27: user already has the role.",
- "id": "tests_test_controllers_coverage_rationale_1239"
+ "label": "Changes to `agent.py`",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L474",
+ "community": 6,
+ "norm_label": "changes to `agent.py`",
+ "id": "plans_memory_system_plan_changes_to_agent_py"
},
{
- "label": "Covers lines 19-20: user not found raises 404.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1254",
- "community": 528,
- "norm_label": "covers lines 19-20: user not found raises 404.",
- "id": "tests_test_controllers_coverage_rationale_1254"
+ "label": "code:python (# In openMCPClients(), add memory tools alongside MCP sessio)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L476",
+ "community": 6,
+ "norm_label": "code:python (# in openmcpclients(), add memory tools alongside mcp sessio)",
+ "id": "plans_memory_system_plan_codeblock_10"
},
{
- "label": "Covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: UserManager.getC",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1266",
- "community": 493,
- "norm_label": "covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: usermanager.getc",
- "id": "tests_test_controllers_coverage_rationale_1266"
+ "label": "7. System Prompt Injection",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L550",
+ "community": 6,
+ "norm_label": "7. system prompt injection",
+ "id": "plans_memory_system_plan_7_system_prompt_injection"
},
{
- "label": "Covers lines 36-38, 40-44, 46, 48-49, 51, 58-59, 61: successful user retrieval.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1273",
- "community": 493,
- "norm_label": "covers lines 36-38, 40-44, 46, 48-49, 51, 58-59, 61: successful user retrieval.",
- "id": "tests_test_controllers_coverage_rationale_1273"
+ "label": "Dynamic prompt with memories",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L552",
+ "community": 6,
+ "norm_label": "dynamic prompt with memories",
+ "id": "plans_memory_system_plan_dynamic_prompt_with_memories"
},
{
- "label": "Covers lines 42-44: session validation fails.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1298",
- "community": 488,
- "norm_label": "covers lines 42-44: session validation fails.",
- "id": "tests_test_controllers_coverage_rationale_1298"
+ "label": "code:python (def _build_system_prompt(user_id: int, db: Session) -> str:)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L556",
+ "community": 6,
+ "norm_label": "code:python (def _build_system_prompt(user_id: int, db: session) -> str:)",
+ "id": "plans_memory_system_plan_codeblock_11"
},
{
- "label": "Covers lines 48-49: user not in DB.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1314",
- "community": 482,
- "norm_label": "covers lines 48-49: user not in db.",
- "id": "tests_test_controllers_coverage_rationale_1314"
+ "label": "Changes to `chat()` method",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L585",
+ "community": 6,
+ "norm_label": "changes to `chat()` method",
+ "id": "plans_memory_system_plan_changes_to_chat_method"
},
{
- "label": "Covers lines 65-67: unexpected exception.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1331",
- "community": 493,
- "norm_label": "covers lines 65-67: unexpected exception.",
- "id": "tests_test_controllers_coverage_rationale_1331"
+ "label": "code:python (# In chat() method, replace static prompt:)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L587",
+ "community": 6,
+ "norm_label": "code:python (# in chat() method, replace static prompt:)",
+ "id": "plans_memory_system_plan_codeblock_12"
},
{
- "label": "Covers lines 37-38, 46, 51, 58 (sessionId is None): skips session validation.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1348",
- "community": 529,
- "norm_label": "covers lines 37-38, 46, 51, 58 (sessionid is none): skips session validation.",
- "id": "tests_test_controllers_coverage_rationale_1348"
+ "label": "8. Controller Endpoints",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L597",
+ "community": 6,
+ "norm_label": "8. controller endpoints",
+ "id": "plans_memory_system_plan_8_controller_endpoints"
},
{
- "label": "Covers line 16: empty password raises ValueError.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1372",
- "community": 482,
- "norm_label": "covers line 16: empty password raises valueerror.",
- "id": "tests_test_controllers_coverage_rationale_1372"
+ "label": "`prometheus_controller.py` additions",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L599",
+ "community": 6,
+ "norm_label": "`prometheus_controller.py` additions",
+ "id": "plans_memory_system_plan_prometheus_controller_py_additions"
},
{
- "label": "Covers lines 50-51: jwt.InvalidTokenError.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1401",
- "community": 525,
- "norm_label": "covers lines 50-51: jwt.invalidtokenerror.",
- "id": "tests_test_controllers_coverage_rationale_1401"
+ "label": "code:python (# GET /memories \u2014 list user's memories)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L603",
+ "community": 6,
+ "norm_label": "code:python (# get /memories \u2014 list user's memories)",
+ "id": "plans_memory_system_plan_codeblock_13"
},
{
- "label": "Covers line 67: extractTokenPayload re-raises HTTPException from verifyAccessTok",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1413",
- "community": 114,
- "norm_label": "covers line 67: extracttokenpayload re-raises httpexception from verifyaccesstok",
- "id": "tests_test_controllers_coverage_rationale_1413"
+ "label": "9. Memory Decay (Background Job)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L658",
+ "community": 6,
+ "norm_label": "9. memory decay (background job)",
+ "id": "plans_memory_system_plan_9_memory_decay_background_job"
},
{
- "label": "Covers line 13: UserManager.__init__.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1432",
- "community": 21,
- "norm_label": "covers line 13: usermanager.__init__.",
- "id": "tests_test_controllers_coverage_rationale_1432"
+ "label": "code:python (# Daily at 3 AM)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L660",
+ "community": 6,
+ "norm_label": "code:python (# daily at 3 am)",
+ "id": "plans_memory_system_plan_codeblock_14"
},
{
- "label": "Return (client, app, mock_session) for testing Google callback.",
- "file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L22",
- "community": 40,
- "norm_label": "return (client, app, mock_session) for testing google callback.",
- "id": "tests_test_oauth_cookie_security_rationale_22"
+ "label": "10. File Changes Summary",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L671",
+ "community": 6,
+ "norm_label": "10. file changes summary",
+ "id": "plans_memory_system_plan_10_file_changes_summary"
},
{
- "label": "Helper to setup common mock values for callback tests.",
- "file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L37",
- "community": 40,
- "norm_label": "helper to setup common mock values for callback tests.",
- "id": "tests_test_oauth_cookie_security_rationale_37"
+ "label": "11. Implementation Order",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L686",
+ "community": 6,
+ "norm_label": "11. implementation order",
+ "id": "plans_memory_system_plan_11_implementation_order"
},
{
- "label": "Verify JWT token is NOT leaked in redirect URL after OAuth callback.",
- "file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L61",
- "community": 40,
- "norm_label": "verify jwt token is not leaked in redirect url after oauth callback.",
- "id": "tests_test_oauth_cookie_security_rationale_61"
+ "label": "12. Key Design Decisions",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L704",
+ "community": 6,
+ "norm_label": "12. key design decisions",
+ "id": "plans_memory_system_plan_12_key_design_decisions"
},
{
- "label": "RED TEST: Token should NOT appear in redirect URL query parameters.",
- "file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L70",
- "community": 399,
- "norm_label": "red test: token should not appear in redirect url query parameters.",
- "id": "tests_test_oauth_cookie_security_rationale_70"
+ "label": "13. Risks & Mitigations",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L720",
+ "community": 6,
+ "norm_label": "13. risks & mitigations",
+ "id": "plans_memory_system_plan_13_risks_mitigations"
},
{
- "label": "Cookie must be httponly (not accessible via JavaScript).",
- "file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L99",
- "community": 400,
- "norm_label": "cookie must be httponly (not accessible via javascript).",
- "id": "tests_test_oauth_cookie_security_rationale_99"
+ "label": "14. Future Enhancements (v2+)",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L732",
+ "community": 6,
+ "norm_label": "14. future enhancements (v2+)",
+ "id": "plans_memory_system_plan_14_future_enhancements_v2"
},
{
- "label": "A readable cookie must be set for frontend JavaScript to access.",
+ "label": "All memory operations. Stateless class methods.",
"file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L131",
- "community": 401,
- "norm_label": "a readable cookie must be set for frontend javascript to access.",
- "id": "tests_test_oauth_cookie_security_rationale_131"
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L14",
+ "community": 140,
+ "norm_label": "all memory operations. stateless class methods.",
+ "id": "prometheus_memory_rationale_14"
},
{
- "label": "Both cookies should have secure flag (HTTPS only).",
- "file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L164",
- "community": 402,
- "norm_label": "both cookies should have secure flag (https only).",
- "id": "tests_test_oauth_cookie_security_rationale_164"
+ "label": "_build_system_prompt()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L27",
+ "community": 116,
+ "norm_label": "_build_system_prompt()",
+ "id": "prometheus_agent_build_system_prompt"
},
{
- "label": "When no state param, return JSON response (not redirect).",
- "file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L196",
- "community": 403,
- "norm_label": "when no state param, return json response (not redirect).",
- "id": "tests_test_oauth_cookie_security_rationale_196"
+ "label": "_get_memory_tools()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L57",
+ "community": 116,
+ "norm_label": "_get_memory_tools()",
+ "id": "prometheus_agent_get_memory_tools"
},
{
- "label": "Verify frontend can still get token after OAuth redirect.",
- "file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L216",
- "community": 40,
- "norm_label": "verify frontend can still get token after oauth redirect.",
- "id": "tests_test_oauth_cookie_security_rationale_216"
+ "label": "_execute_memory_tool()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L92",
+ "community": 116,
+ "norm_label": "_execute_memory_tool()",
+ "id": "prometheus_agent_execute_memory_tool"
},
{
- "label": "Frontend JavaScript should be able to read token from readable cookie.",
+ "label": "Build system prompt with user memories injected.",
"file_type": "rationale",
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L225",
- "community": 404,
- "norm_label": "frontend javascript should be able to read token from readable cookie.",
- "id": "tests_test_oauth_cookie_security_rationale_225"
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L28",
+ "community": 116,
+ "norm_label": "build system prompt with user memories injected.",
+ "id": "prometheus_agent_rationale_28"
},
{
- "label": "Covers lines 164, 171-173: existing Google user, no new account created.",
+ "label": "Native Gemini function declarations for memory operations.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L433",
- "community": 405,
- "norm_label": "covers lines 164, 171-173: existing google user, no new account created.",
- "id": "tests_test_controllers_coverage_rationale_433"
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L58",
+ "community": 116,
+ "norm_label": "native gemini function declarations for memory operations.",
+ "id": "prometheus_agent_rationale_58"
},
{
- "label": "Covers line 165: verify_and_process returns None.",
+ "label": "Handle memory tool calls from Gemini.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L459",
- "community": 406,
- "norm_label": "covers line 165: verify_and_process returns none.",
- "id": "tests_test_controllers_coverage_rationale_459"
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L93",
+ "community": 116,
+ "norm_label": "handle memory tool calls from gemini.",
+ "id": "prometheus_agent_rationale_93"
},
{
- "label": "Covers lines 190-195: state param triggers RedirectResponse.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L476",
- "community": 407,
- "norm_label": "covers lines 190-195: state param triggers redirectresponse.",
- "id": "tests_test_controllers_coverage_rationale_476"
+ "label": "get_memory_limit()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L17",
+ "community": 53,
+ "norm_label": "get_memory_limit()",
+ "id": "prometheus_memory_get_memory_limit"
},
{
- "label": "Covers lines 202-204: generic Exception in callback.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L505",
- "community": 408,
- "norm_label": "covers lines 202-204: generic exception in callback.",
- "id": "tests_test_controllers_coverage_rationale_505"
+ "label": "count_memories()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L24",
+ "community": 53,
+ "norm_label": "count_memories()",
+ "id": "prometheus_memory_count_memories"
},
{
- "label": "Covers line 19: GET /user/health.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L522",
- "community": 498,
- "norm_label": "covers line 19: get /user/health.",
- "id": "tests_test_controllers_coverage_rationale_522"
+ "label": "upsert_memory()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L34",
+ "community": 53,
+ "norm_label": "upsert_memory()",
+ "id": "prometheus_memory_upsert_memory"
},
{
- "label": "Covers line 24: GET /user/me returns currentUser.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L536",
- "community": 47,
- "norm_label": "covers line 24: get /user/me returns currentuser.",
- "id": "tests_test_controllers_coverage_rationale_536"
+ "label": "_fulltext_search()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L138",
+ "community": 53,
+ "norm_label": "_fulltext_search()",
+ "id": "prometheus_memory_fulltext_search"
},
{
- "label": "Covers lines 31-32, 36, 43-44, 48: upgrade developer starter/enterprise.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L550",
- "community": 47,
- "norm_label": "covers lines 31-32, 36, 43-44, 48: upgrade developer starter/enterprise.",
- "id": "tests_test_controllers_coverage_rationale_550"
+ "label": "get_user_memories()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L168",
+ "community": 53,
+ "norm_label": "get_user_memories()",
+ "id": "prometheus_memory_get_user_memories"
},
{
- "label": "Covers lines 53-54, 56: admin access granted / denied.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L590",
- "community": 47,
- "norm_label": "covers lines 53-54, 56: admin access granted / denied.",
- "id": "tests_test_controllers_coverage_rationale_590"
+ "label": "delete_memory()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L195",
+ "community": 53,
+ "norm_label": "delete_memory()",
+ "id": "prometheus_memory_delete_memory"
},
{
- "label": "Covers lines 66, 68-72, 74: GET /user/sessions.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L609",
- "community": 178,
- "norm_label": "covers lines 66, 68-72, 74: get /user/sessions.",
- "id": "tests_test_controllers_coverage_rationale_609"
+ "label": "decay_scores()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L209",
+ "community": 53,
+ "norm_label": "decay_scores()",
+ "id": "prometheus_memory_decay_scores"
},
{
- "label": "Covers lines 66, 68-72, 74: full sessions listing.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L612",
- "community": 178,
- "norm_label": "covers lines 66, 68-72, 74: full sessions listing.",
- "id": "tests_test_controllers_coverage_rationale_612"
+ "label": "archive_dead()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L223",
+ "community": 53,
+ "norm_label": "archive_dead()",
+ "id": "prometheus_memory_archive_dead"
},
{
- "label": "Covers lines 100-104, 106: GET /user/sessions/current.",
+ "label": "Determine max memories based on user permissions.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L663",
- "community": 104,
- "norm_label": "covers lines 100-104, 106: get /user/sessions/current.",
- "id": "tests_test_controllers_coverage_rationale_663"
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L18",
+ "community": 370,
+ "norm_label": "determine max memories based on user permissions.",
+ "id": "prometheus_memory_rationale_18"
},
{
- "label": "Covers lines 100-104, 106: session found.",
+ "label": "Count active memories for a user.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L666",
- "community": 104,
- "norm_label": "covers lines 100-104, 106: session found.",
- "id": "tests_test_controllers_coverage_rationale_666"
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L25",
+ "community": 371,
+ "norm_label": "count active memories for a user.",
+ "id": "prometheus_memory_rationale_25"
},
{
- "label": "Covers line 104: session not found.",
+ "label": "Insert or update a memory. Checks limit before insert.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L699",
- "community": 104,
- "norm_label": "covers line 104: session not found.",
- "id": "tests_test_controllers_coverage_rationale_699"
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L45",
+ "community": 372,
+ "norm_label": "insert or update a memory. checks limit before insert.",
+ "id": "prometheus_memory_rationale_45"
},
{
- "label": "Covers lines 126-136: DELETE /user/sessions/{sessionId}.",
+ "label": "Search user memories. Vector cosine \u2192 FULLTEXT fallback.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L722",
- "community": 104,
- "norm_label": "covers lines 126-136: delete /user/sessions/{sessionid}.",
- "id": "tests_test_controllers_coverage_rationale_722"
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L97",
+ "community": 373,
+ "norm_label": "search user memories. vector cosine \u2192 fulltext fallback.",
+ "id": "prometheus_memory_rationale_97"
},
{
- "label": "Covers lines 126, 131, 135-136.",
+ "label": "List user's memories (paginated).",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L725",
- "community": 104,
- "norm_label": "covers lines 126, 131, 135-136.",
- "id": "tests_test_controllers_coverage_rationale_725"
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L171",
+ "community": 374,
+ "norm_label": "list user's memories (paginated).",
+ "id": "prometheus_memory_rationale_171"
},
{
- "label": "Covers lines 127-129: session not found.",
+ "label": "Soft-delete a memory.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L752",
- "community": 104,
- "norm_label": "covers lines 127-129: session not found.",
- "id": "tests_test_controllers_coverage_rationale_752"
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L196",
+ "community": 375,
+ "norm_label": "soft-delete a memory.",
+ "id": "prometheus_memory_rationale_196"
},
{
- "label": "Covers lines 132-133: revokeSession returns False.",
+ "label": "Background job: decay relevanceScore for old memories.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L774",
- "community": 104,
- "norm_label": "covers lines 132-133: revokesession returns false.",
- "id": "tests_test_controllers_coverage_rationale_774"
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L210",
+ "community": 376,
+ "norm_label": "background job: decay relevancescore for old memories.",
+ "id": "prometheus_memory_rationale_210"
},
{
- "label": "Covers lines 143, 145, 147-148: POST /user/sessions/revoke-all.",
+ "label": "Archive memories with very low score and no access.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L800",
- "community": 221,
- "norm_label": "covers lines 143, 145, 147-148: post /user/sessions/revoke-all.",
- "id": "tests_test_controllers_coverage_rationale_800"
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L224",
+ "community": 377,
+ "norm_label": "archive memories with very low score and no access.",
+ "id": "prometheus_memory_rationale_224"
},
{
- "label": "Covers lines 143, 145, 147-148.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L803",
- "community": 221,
- "norm_label": "covers lines 143, 145, 147-148.",
- "id": "tests_test_controllers_coverage_rationale_803"
+ "label": "get_memories()",
+ "file_type": "code",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L163",
+ "community": 84,
+ "norm_label": "get_memories()",
+ "id": "controller_prometheus_controller_get_memories"
},
{
- "label": "Covers line 24: GET /prometheus/health.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L830",
- "community": 498,
- "norm_label": "covers line 24: get /prometheus/health.",
- "id": "tests_test_controllers_coverage_rationale_830"
+ "label": "create_memory()",
+ "file_type": "code",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L177",
+ "community": 530,
+ "norm_label": "create_memory()",
+ "id": "controller_prometheus_controller_create_memory"
},
{
- "label": "Covers lines 33-36: GET /prometheus/sessions.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L844",
- "community": 540,
- "norm_label": "covers lines 33-36: get /prometheus/sessions.",
- "id": "tests_test_controllers_coverage_rationale_844"
+ "label": "delete_memory()",
+ "file_type": "code",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L201",
+ "community": 84,
+ "norm_label": "delete_memory()",
+ "id": "controller_prometheus_controller_delete_memory"
},
{
- "label": "Covers line 52: POST /prometheus/sessions.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L862",
- "community": 16,
- "norm_label": "covers line 52: post /prometheus/sessions.",
- "id": "tests_test_controllers_coverage_rationale_862"
+ "label": "pack_vector()",
+ "file_type": "code",
+ "source_file": "main/utils/vector.py",
+ "source_location": "L5",
+ "community": 131,
+ "norm_label": "pack_vector()",
+ "id": "utils_vector_pack_vector"
},
{
- "label": "Covers lines 62-63, 65-68: PUT /prometheus/sessions/{sessionId}.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L876",
- "community": 16,
- "norm_label": "covers lines 62-63, 65-68: put /prometheus/sessions/{sessionid}.",
- "id": "tests_test_controllers_coverage_rationale_876"
+ "label": "unpack_vector()",
+ "file_type": "code",
+ "source_file": "main/utils/vector.py",
+ "source_location": "L11",
+ "community": 131,
+ "norm_label": "unpack_vector()",
+ "id": "utils_vector_unpack_vector"
},
{
- "label": "Covers lines 65-68: title updated successfully.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L879",
- "community": 16,
- "norm_label": "covers lines 65-68: title updated successfully.",
- "id": "tests_test_controllers_coverage_rationale_879"
+ "label": "cosine_similarity()",
+ "file_type": "code",
+ "source_file": "main/utils/vector.py",
+ "source_location": "L16",
+ "community": 76,
+ "norm_label": "cosine_similarity()",
+ "id": "utils_vector_cosine_similarity"
},
{
- "label": "Covers lines 62-63: not the session owner.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L890",
- "community": 16,
- "norm_label": "covers lines 62-63: not the session owner.",
- "id": "tests_test_controllers_coverage_rationale_890"
+ "label": "batch_cosine_similarity()",
+ "file_type": "code",
+ "source_file": "main/utils/vector.py",
+ "source_location": "L28",
+ "community": 13,
+ "norm_label": "batch_cosine_similarity()",
+ "id": "utils_vector_batch_cosine_similarity"
},
{
- "label": "Covers lines 66-67: session not found.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L899",
- "community": 16,
- "norm_label": "covers lines 66-67: session not found.",
- "id": "tests_test_controllers_coverage_rationale_899"
+ "label": "content_hash()",
+ "file_type": "code",
+ "source_file": "main/utils/vector.py",
+ "source_location": "L41",
+ "community": 112,
+ "norm_label": "content_hash()",
+ "id": "utils_vector_content_hash"
},
{
- "label": "Covers lines 77, 83-84, 86: GET /prometheus/history/{sessionId}.",
+ "label": "Unpack MySQL BLOB to float list.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L910",
- "community": 208,
- "norm_label": "covers lines 77, 83-84, 86: get /prometheus/history/{sessionid}.",
- "id": "tests_test_controllers_coverage_rationale_910"
+ "source_file": "main/utils/vector.py",
+ "source_location": "L12",
+ "community": 131,
+ "norm_label": "unpack mysql blob to float list.",
+ "id": "utils_vector_rationale_12"
},
{
- "label": "Covers lines 77, 86: session found with history.",
+ "label": "Single-pair cosine similarity.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L913",
- "community": 208,
- "norm_label": "covers lines 77, 86: session found with history.",
- "id": "tests_test_controllers_coverage_rationale_913"
+ "source_file": "main/utils/vector.py",
+ "source_location": "L17",
+ "community": 76,
+ "norm_label": "single-pair cosine similarity.",
+ "id": "utils_vector_rationale_17"
},
{
- "label": "Covers lines 83-84: session not found.",
+ "label": "Vectorized cosine similarity: one query against N embeddings.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L957",
- "community": 208,
- "norm_label": "covers lines 83-84: session not found.",
- "id": "tests_test_controllers_coverage_rationale_957"
+ "source_file": "main/utils/vector.py",
+ "source_location": "L29",
+ "community": 13,
+ "norm_label": "vectorized cosine similarity: one query against n embeddings.",
+ "id": "utils_vector_rationale_29"
},
{
- "label": "Covers lines 95-98: DELETE /prometheus/sessions/{sessionId}.",
+ "label": "MD5 hash for change detection.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L992",
- "community": 94,
- "norm_label": "covers lines 95-98: delete /prometheus/sessions/{sessionid}.",
- "id": "tests_test_controllers_coverage_rationale_992"
+ "source_file": "main/utils/vector.py",
+ "source_location": "L42",
+ "community": 112,
+ "norm_label": "md5 hash for change detection.",
+ "id": "utils_vector_rationale_42"
},
{
- "label": "Covers lines 95-98: session deleted.",
+ "label": "Verify memory endpoints exist and are wired correctly.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L995",
- "community": 94,
- "norm_label": "covers lines 95-98: session deleted.",
- "id": "tests_test_controllers_coverage_rationale_995"
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L11",
+ "community": 99,
+ "norm_label": "verify memory endpoints exist and are wired correctly.",
+ "id": "tests_test_memory_controller_rationale_11"
},
{
- "label": "Covers lines 96-97: session not found.",
+ "label": "GET /prometheus/memories exists.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1005",
- "community": 94,
- "norm_label": "covers lines 96-97: session not found.",
- "id": "tests_test_controllers_coverage_rationale_1005"
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L14",
+ "community": 99,
+ "norm_label": "get /prometheus/memories exists.",
+ "id": "tests_test_memory_controller_rationale_14"
},
{
- "label": "Covers lines 114-115, 117-120, 122, 125: POST /prometheus/chat.",
+ "label": "POST /prometheus/memories exists.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1015",
- "community": 101,
- "norm_label": "covers lines 114-115, 117-120, 122, 125: post /prometheus/chat.",
- "id": "tests_test_controllers_coverage_rationale_1015"
- },
- {
- "label": "Covers lines 111-112: sessionId is None, new session created.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1018",
- "community": 101,
- "norm_label": "covers lines 111-112: sessionid is none, new session created.",
- "id": "tests_test_controllers_coverage_rationale_1018"
- },
- {
- "label": "Covers lines 114-115, 117-120, 122: existing session with verified ownership.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1036",
- "community": 101,
- "norm_label": "covers lines 114-115, 117-120, 122: existing session with verified ownership.",
- "id": "tests_test_controllers_coverage_rationale_1036"
- },
- {
- "label": "Covers lines 114-115: session ownership check fails.",
- "file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1078",
- "community": 104,
- "norm_label": "covers lines 114-115: session ownership check fails.",
- "id": "tests_test_controllers_coverage_rationale_1078"
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L20",
+ "community": 99,
+ "norm_label": "post /prometheus/memories exists.",
+ "id": "tests_test_memory_controller_rationale_20"
},
{
- "label": "Generic Exception in chat propagates to FastAPI's default 500 handler.",
+ "label": "DELETE /prometheus/memories/{id} exists.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1115",
- "community": 101,
- "norm_label": "generic exception in chat propagates to fastapi's default 500 handler.",
- "id": "tests_test_controllers_coverage_rationale_1115"
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L25",
+ "community": 99,
+ "norm_label": "delete /prometheus/memories/{id} exists.",
+ "id": "tests_test_memory_controller_rationale_25"
},
{
- "label": "Covers line 18: GET /stocks/health.",
+ "label": "GET /memories requires authentication.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1133",
- "community": 498,
- "norm_label": "covers line 18: get /stocks/health.",
- "id": "tests_test_controllers_coverage_rationale_1133"
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L30",
+ "community": 99,
+ "norm_label": "get /memories requires authentication.",
+ "id": "tests_test_memory_controller_rationale_30"
},
{
- "label": "Covers line 35: GET /stocks/historical.",
+ "label": "GET /memories requires USE_PROMETHEUS (basic USER role denied).",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1147",
- "community": 14,
- "norm_label": "covers line 35: get /stocks/historical.",
- "id": "tests_test_controllers_coverage_rationale_1147"
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L47",
+ "community": 99,
+ "norm_label": "get /memories requires use_prometheus (basic user role denied).",
+ "id": "tests_test_memory_controller_rationale_47"
},
{
- "label": "Covers line 47: GET /stocks/fundamental.",
+ "label": "Full integration tests using mocked MemoryManager.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1161",
- "community": 14,
- "norm_label": "covers line 47: get /stocks/fundamental.",
- "id": "tests_test_controllers_coverage_rationale_1161"
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L75",
+ "community": 99,
+ "norm_label": "full integration tests using mocked memorymanager.",
+ "id": "tests_test_memory_controller_rationale_75"
},
{
- "label": "Covers lines 52-53, 57-63: GET /stocks/key/generate. NOTE: stocksapi_cont",
+ "label": "GET /memories delegates to MemoryManager.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1175",
- "community": 85,
- "norm_label": "covers lines 52-53, 57-63: get /stocks/key/generate. note: stocksapi_cont",
- "id": "tests_test_controllers_coverage_rationale_1175"
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L79",
+ "community": 378,
+ "norm_label": "get /memories delegates to memorymanager.",
+ "id": "tests_test_memory_controller_rationale_79"
},
{
- "label": "Covers lines 52-53: user without GENERATE_API_KEYS permission gets 403.",
+ "label": "POST /memories delegates to MemoryManager.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1183",
- "community": 14,
- "norm_label": "covers lines 52-53: user without generate_api_keys permission gets 403.",
- "id": "tests_test_controllers_coverage_rationale_1183"
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L96",
+ "community": 379,
+ "norm_label": "post /memories delegates to memorymanager.",
+ "id": "tests_test_memory_controller_rationale_96"
},
{
- "label": "Covers lines 57-60: admin bypasses permission check and generates key.",
+ "label": "POST /memories returns 403 when limit reached.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1191",
- "community": 85,
- "norm_label": "covers lines 57-60: admin bypasses permission check and generates key.",
- "id": "tests_test_controllers_coverage_rationale_1191"
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L113",
+ "community": 380,
+ "norm_label": "post /memories returns 403 when limit reached.",
+ "id": "tests_test_memory_controller_rationale_113"
},
{
- "label": "Covers lines 13, 17, 19-20, 22-27: UserManager.addRoleToUser.",
+ "label": "DELETE /memories/{id} delegates to MemoryManager.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1218",
- "community": 137,
- "norm_label": "covers lines 13, 17, 19-20, 22-27: usermanager.addroletouser.",
- "id": "tests_test_controllers_coverage_rationale_1218"
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L124",
+ "community": 381,
+ "norm_label": "delete /memories/{id} delegates to memorymanager.",
+ "id": "tests_test_memory_controller_rationale_124"
},
{
- "label": "Covers lines 17, 22-27: user found, role not present, role added.",
+ "label": "DELETE /memories/{id} returns 404 when not found.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1221",
- "community": 137,
- "norm_label": "covers lines 17, 22-27: user found, role not present, role added.",
- "id": "tests_test_controllers_coverage_rationale_1221"
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L134",
+ "community": 382,
+ "norm_label": "delete /memories/{id} returns 404 when not found.",
+ "id": "tests_test_memory_controller_rationale_134"
},
{
- "label": "Covers line 27: user already has the role.",
+ "label": "POST /memories rejects missing key.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1238",
- "community": 488,
- "norm_label": "covers line 27: user already has the role.",
- "id": "tests_test_controllers_coverage_rationale_1238"
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L141",
+ "community": 99,
+ "norm_label": "post /memories rejects missing key.",
+ "id": "tests_test_memory_controller_rationale_141"
},
{
- "label": "Covers lines 19-20: user not found raises 404.",
+ "label": "POST /memories rejects missing value.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1253",
- "community": 528,
- "norm_label": "covers lines 19-20: user not found raises 404.",
- "id": "tests_test_controllers_coverage_rationale_1253"
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L146",
+ "community": 99,
+ "norm_label": "post /memories rejects missing value.",
+ "id": "tests_test_memory_controller_rationale_146"
},
{
- "label": "Covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: UserManager.getC",
+ "label": "Non-extended role gets basic limit.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1265",
- "community": 493,
- "norm_label": "covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: usermanager.getc",
- "id": "tests_test_controllers_coverage_rationale_1265"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L11",
+ "community": 543,
+ "norm_label": "non-extended role gets basic limit.",
+ "id": "tests_test_memory_manager_rationale_11"
},
{
- "label": "Covers lines 36-38, 40-44, 46, 48-49, 51, 58-59, 61: successful user retrieval.",
+ "label": "Premium user gets extended limit.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1272",
- "community": 493,
- "norm_label": "covers lines 36-38, 40-44, 46, 48-49, 51, 58-59, 61: successful user retrieval.",
- "id": "tests_test_controllers_coverage_rationale_1272"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L15",
+ "community": 140,
+ "norm_label": "premium user gets extended limit.",
+ "id": "tests_test_memory_manager_rationale_15"
},
{
- "label": "Covers lines 42-44: session validation fails.",
+ "label": "Admin gets extended limit (has all permissions).",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1297",
- "community": 488,
- "norm_label": "covers lines 42-44: session validation fails.",
- "id": "tests_test_controllers_coverage_rationale_1297"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L19",
+ "community": 140,
+ "norm_label": "admin gets extended limit (has all permissions).",
+ "id": "tests_test_memory_manager_rationale_19"
},
{
- "label": "Covers lines 48-49: user not in DB.",
+ "label": "Creates a new memory.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1313",
- "community": 482,
- "norm_label": "covers lines 48-49: user not in db.",
- "id": "tests_test_controllers_coverage_rationale_1313"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L25",
+ "community": 140,
+ "norm_label": "creates a new memory.",
+ "id": "tests_test_memory_manager_rationale_25"
},
{
- "label": "Covers lines 65-67: unexpected exception.",
+ "label": "Updates existing memory when value changes.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1330",
- "community": 538,
- "norm_label": "covers lines 65-67: unexpected exception.",
- "id": "tests_test_controllers_coverage_rationale_1330"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L35",
+ "community": 140,
+ "norm_label": "updates existing memory when value changes.",
+ "id": "tests_test_memory_manager_rationale_35"
},
{
- "label": "Covers lines 37-38, 46, 51, 58 (sessionId is None): skips session validation.",
+ "label": "Returns unchanged when value is identical.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1347",
- "community": 529,
- "norm_label": "covers lines 37-38, 46, 51, 58 (sessionid is none): skips session validation.",
- "id": "tests_test_controllers_coverage_rationale_1347"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L43",
+ "community": 140,
+ "norm_label": "returns unchanged when value is identical.",
+ "id": "tests_test_memory_manager_rationale_43"
},
{
- "label": "Covers line 16: empty password raises ValueError.",
+ "label": "Rejects new memory when limit reached.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1371",
- "community": 486,
- "norm_label": "covers line 16: empty password raises valueerror.",
- "id": "tests_test_controllers_coverage_rationale_1371"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L49",
+ "community": 140,
+ "norm_label": "rejects new memory when limit reached.",
+ "id": "tests_test_memory_manager_rationale_49"
},
{
- "label": "Covers lines 45-51: verifyAccessToken with expired and invalid tokens.",
+ "label": "No role check when user_roles not provided.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1381",
- "community": 525,
- "norm_label": "covers lines 45-51: verifyaccesstoken with expired and invalid tokens.",
- "id": "tests_test_controllers_coverage_rationale_1381"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L61",
+ "community": 140,
+ "norm_label": "no role check when user_roles not provided.",
+ "id": "tests_test_memory_manager_rationale_61"
},
{
- "label": "Covers lines 48-49: jwt.ExpiredSignatureError.",
+ "label": "Stores embedding alongside memory.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1384",
- "community": 525,
- "norm_label": "covers lines 48-49: jwt.expiredsignatureerror.",
- "id": "tests_test_controllers_coverage_rationale_1384"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L69",
+ "community": 140,
+ "norm_label": "stores embedding alongside memory.",
+ "id": "tests_test_memory_manager_rationale_69"
},
{
- "label": "Covers lines 50-51: jwt.InvalidTokenError.",
+ "label": "Counts only non-archived memories.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1400",
- "community": 525,
- "norm_label": "covers lines 50-51: jwt.invalidtokenerror.",
- "id": "tests_test_controllers_coverage_rationale_1400"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L82",
+ "community": 140,
+ "norm_label": "counts only non-archived memories.",
+ "id": "tests_test_memory_manager_rationale_82"
},
{
- "label": "Covers line 67: extractTokenPayload re-raises HTTPException from verifyAccessTok",
+ "label": "Archived memories not counted.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1412",
- "community": 114,
- "norm_label": "covers line 67: extracttokenpayload re-raises httpexception from verifyaccesstok",
- "id": "tests_test_controllers_coverage_rationale_1412"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L88",
+ "community": 140,
+ "norm_label": "archived memories not counted.",
+ "id": "tests_test_memory_manager_rationale_88"
},
{
- "label": "Covers line 67: HTTPException raised by verifyAccessToken is re-raised.",
+ "label": "Returns paginated memories.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1415",
- "community": 114,
- "norm_label": "covers line 67: httpexception raised by verifyaccesstoken is re-raised.",
- "id": "tests_test_controllers_coverage_rationale_1415"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L107",
+ "community": 140,
+ "norm_label": "returns paginated memories.",
+ "id": "tests_test_memory_manager_rationale_107"
},
{
- "label": "Covers line 13: UserManager.__init__.",
+ "label": "Offset and limit work.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1431",
- "community": 21,
- "norm_label": "covers line 13: usermanager.__init__.",
- "id": "tests_test_controllers_coverage_rationale_1431"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L115",
+ "community": 140,
+ "norm_label": "offset and limit work.",
+ "id": "tests_test_memory_manager_rationale_115"
},
{
- "label": "GET /fundamental?fields=P/L must not return 422 (validation error).",
+ "label": "Archived memories excluded.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L56",
- "community": 129,
- "norm_label": "get /fundamental?fields=p/l must not return 422 (validation error).",
- "id": "tests_test_stocks_api_fields_rationale_56"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L122",
+ "community": 140,
+ "norm_label": "archived memories excluded.",
+ "id": "tests_test_memory_manager_rationale_122"
},
{
- "label": "GET /fundamental?fields=MARG. LIQUIDA must not return 422.",
+ "label": "Soft-deletes a memory.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L61",
- "community": 167,
- "norm_label": "get /fundamental?fields=marg. liquida must not return 422.",
- "id": "tests_test_stocks_api_fields_rationale_61"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L135",
+ "community": 140,
+ "norm_label": "soft-deletes a memory.",
+ "id": "tests_test_memory_manager_rationale_135"
},
{
- "label": "GET /fundamental?fields=P/L,ROE,DY must not return 422.",
+ "label": "Returns False for non-existent memory.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L66",
- "community": 166,
- "norm_label": "get /fundamental?fields=p/l,roe,dy must not return 422.",
- "id": "tests_test_stocks_api_fields_rationale_66"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L142",
+ "community": 140,
+ "norm_label": "returns false for non-existent memory.",
+ "id": "tests_test_memory_manager_rationale_142"
},
{
- "label": "GET /historical?fields=P/L must not return 422.",
+ "label": "Cannot delete another user's memory.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L75",
- "community": 129,
- "norm_label": "get /historical?fields=p/l must not return 422.",
- "id": "tests_test_stocks_api_fields_rationale_75"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L146",
+ "community": 140,
+ "norm_label": "cannot delete another user's memory.",
+ "id": "tests_test_memory_manager_rationale_146"
},
{
- "label": "GET /historical?fields=MARG. LIQUIDA must not return 422.",
+ "label": "FULLTEXT search finds matching memories (MySQL only).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L80",
- "community": 167,
- "norm_label": "get /historical?fields=marg. liquida must not return 422.",
- "id": "tests_test_stocks_api_fields_rationale_80"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L155",
+ "community": 140,
+ "norm_label": "fulltext search finds matching memories (mysql only).",
+ "id": "tests_test_memory_manager_rationale_155"
},
{
- "label": "GET /historical?fields=LUCRO LIQUIDO,P/L must not return 422.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L85",
- "community": 166,
- "norm_label": "get /historical?fields=lucro liquido,p/l must not return 422.",
- "id": "tests_test_stocks_api_fields_rationale_85"
+ "label": "TestPackUnpack",
+ "file_type": "code",
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L11",
+ "community": 131,
+ "norm_label": "testpackunpack",
+ "id": "tests_test_vector_utils_testpackunpack"
},
{
- "label": "When tickers have different date coverage, each should get its closest snapshot.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L94",
- "community": 191,
- "norm_label": "when tickers have different date coverage, each should get its closest snapshot.",
- "id": "tests_test_stocks_api_fields_rationale_94"
+ "label": ".test_roundtrip()",
+ "file_type": "code",
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L12",
+ "community": 131,
+ "norm_label": ".test_roundtrip()",
+ "id": "tests_test_vector_utils_testpackunpack_test_roundtrip"
},
{
- "label": ".putCache()",
+ "label": ".test_empty()",
"file_type": "code",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L101",
- "community": 82,
- "norm_label": ".putcache()",
- "id": "stocks_api_cache_stockscachemanager_putcache"
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L20",
+ "community": 131,
+ "norm_label": ".test_empty()",
+ "id": "tests_test_vector_utils_testpackunpack_test_empty"
},
{
- "label": ".clearQueryCache()",
+ "label": ".test_384_dims()",
"file_type": "code",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L107",
- "community": 42,
- "norm_label": ".clearquerycache()",
- "id": "stocks_api_cache_stockscachemanager_clearquerycache"
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L26",
+ "community": 131,
+ "norm_label": ".test_384_dims()",
+ "id": "tests_test_vector_utils_testpackunpack_test_384_dims"
},
{
- "label": "parseCotationDates()",
+ "label": "TestCosineSimilarity",
"file_type": "code",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L42",
- "community": 63,
- "norm_label": "parsecotationdates()",
- "id": "stocks_api_query_parsecotationdates"
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L33",
+ "community": 76,
+ "norm_label": "testcosinesimilarity",
+ "id": "tests_test_vector_utils_testcosinesimilarity"
},
{
- "label": "TestCacheLRUEviction",
+ "label": ".test_identical()",
"file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L14",
- "community": 95,
- "norm_label": "testcachelrueviction",
- "id": "tests_test_cache_testcachelrueviction"
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L34",
+ "community": 76,
+ "norm_label": ".test_identical()",
+ "id": "tests_test_vector_utils_testcosinesimilarity_test_identical"
},
{
- "label": "._make_manager()",
+ "label": ".test_orthogonal()",
"file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L17",
- "community": 95,
- "norm_label": "._make_manager()",
- "id": "tests_test_cache_testcachelrueviction_make_manager"
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L39",
+ "community": 76,
+ "norm_label": ".test_orthogonal()",
+ "id": "tests_test_vector_utils_testcosinesimilarity_test_orthogonal"
},
{
- "label": ".test_query_cache_starts_empty()",
+ "label": ".test_opposite()",
"file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L22",
- "community": 95,
- "norm_label": ".test_query_cache_starts_empty()",
- "id": "tests_test_cache_testcachelrueviction_test_query_cache_starts_empty"
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L45",
+ "community": 76,
+ "norm_label": ".test_opposite()",
+ "id": "tests_test_vector_utils_testcosinesimilarity_test_opposite"
},
{
- "label": ".test_query_cache_max_size_constant()",
+ "label": ".test_zero_vector()",
"file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L26",
- "community": 95,
- "norm_label": ".test_query_cache_max_size_constant()",
- "id": "tests_test_cache_testcachelrueviction_test_query_cache_max_size_constant"
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L51",
+ "community": 76,
+ "norm_label": ".test_zero_vector()",
+ "id": "tests_test_vector_utils_testcosinesimilarity_test_zero_vector"
},
{
- "label": ".test_lru_eviction_when_over_limit()",
+ "label": ".test_partial_overlap()",
"file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L29",
- "community": 95,
- "norm_label": ".test_lru_eviction_when_over_limit()",
- "id": "tests_test_cache_testcachelrueviction_test_lru_eviction_when_over_limit"
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L55",
+ "community": 76,
+ "norm_label": ".test_partial_overlap()",
+ "id": "tests_test_vector_utils_testcosinesimilarity_test_partial_overlap"
},
{
- "label": ".test_move_to_end_on_cache_hit()",
- "file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L50",
- "community": 95,
- "norm_label": ".test_move_to_end_on_cache_hit()",
- "id": "tests_test_cache_testcachelrueviction_test_move_to_end_on_cache_hit"
+ "label": "pack \u2192 unpack preserves values.",
+ "file_type": "rationale",
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L13",
+ "community": 131,
+ "norm_label": "pack \u2192 unpack preserves values.",
+ "id": "tests_test_vector_utils_rationale_13"
},
{
- "label": ".test_clear_query_cache()",
- "file_type": "code",
- "source_file": "tests/test_cache.py",
+ "label": "Empty list roundtrips.",
+ "file_type": "rationale",
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L21",
+ "community": 131,
+ "norm_label": "empty list roundtrips.",
+ "id": "tests_test_vector_utils_rationale_21"
+ },
+ {
+ "label": "384-dim vector packs to 1536 bytes.",
+ "file_type": "rationale",
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L27",
+ "community": 131,
+ "norm_label": "384-dim vector packs to 1536 bytes.",
+ "id": "tests_test_vector_utils_rationale_27"
+ },
+ {
+ "label": "Identical vectors \u2192 score 1.0.",
+ "file_type": "rationale",
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L35",
+ "community": 76,
+ "norm_label": "identical vectors \u2192 score 1.0.",
+ "id": "tests_test_vector_utils_rationale_35"
+ },
+ {
+ "label": "Orthogonal vectors \u2192 score 0.0.",
+ "file_type": "rationale",
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L40",
+ "community": 76,
+ "norm_label": "orthogonal vectors \u2192 score 0.0.",
+ "id": "tests_test_vector_utils_rationale_40"
+ },
+ {
+ "label": "Opposite vectors \u2192 score -1.0.",
+ "file_type": "rationale",
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L46",
+ "community": 76,
+ "norm_label": "opposite vectors \u2192 score -1.0.",
+ "id": "tests_test_vector_utils_rationale_46"
+ },
+ {
+ "label": "Zero vector \u2192 score 0.0.",
+ "file_type": "rationale",
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L52",
+ "community": 76,
+ "norm_label": "zero vector \u2192 score 0.0.",
+ "id": "tests_test_vector_utils_rationale_52"
+ },
+ {
+ "label": "Partially overlapping vectors.",
+ "file_type": "rationale",
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L56",
+ "community": 76,
+ "norm_label": "partially overlapping vectors.",
+ "id": "tests_test_vector_utils_rationale_56"
+ },
+ {
+ "label": "Empty matrix \u2192 empty array.",
+ "file_type": "rationale",
+ "source_file": "tests/test_vector_utils.py",
"source_location": "L68",
- "community": 95,
- "norm_label": ".test_clear_query_cache()",
- "id": "tests_test_cache_testcachelrueviction_test_clear_query_cache"
+ "community": 13,
+ "norm_label": "empty matrix \u2192 empty array.",
+ "id": "tests_test_vector_utils_rationale_68"
},
{
- "label": ".test_none_columns_key_is_none()",
- "file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L77",
- "community": 95,
- "norm_label": ".test_none_columns_key_is_none()",
- "id": "tests_test_cache_testcachelrueviction_test_none_columns_key_is_none"
+ "label": "Single row matches cosine_similarity.",
+ "file_type": "rationale",
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L73",
+ "community": 13,
+ "norm_label": "single row matches cosine_similarity.",
+ "id": "tests_test_vector_utils_rationale_73"
},
{
- "label": ".test_columns_key_is_tuple()",
- "file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L83",
- "community": 95,
- "norm_label": ".test_columns_key_is_tuple()",
- "id": "tests_test_cache_testcachelrueviction_test_columns_key_is_tuple"
+ "label": "Multiple rows ranked correctly.",
+ "file_type": "rationale",
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L80",
+ "community": 13,
+ "norm_label": "multiple rows ranked correctly.",
+ "id": "tests_test_vector_utils_rationale_80"
},
{
- "label": "TestColumnValidator",
+ "label": "Zero query \u2192 all zeros.",
+ "file_type": "rationale",
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L93",
+ "community": 13,
+ "norm_label": "zero query \u2192 all zeros.",
+ "id": "tests_test_vector_utils_rationale_93"
+ },
+ {
+ "label": "Same input \u2192 same hash.",
+ "file_type": "rationale",
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L101",
+ "community": 112,
+ "norm_label": "same input \u2192 same hash.",
+ "id": "tests_test_vector_utils_rationale_101"
+ },
+ {
+ "label": "Different inputs \u2192 different hashes.",
+ "file_type": "rationale",
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L105",
+ "community": 112,
+ "norm_label": "different inputs \u2192 different hashes.",
+ "id": "tests_test_vector_utils_rationale_105"
+ },
+ {
+ "label": "Returns 32-char hex string.",
+ "file_type": "rationale",
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L109",
+ "community": 112,
+ "norm_label": "returns 32-char hex string.",
+ "id": "tests_test_vector_utils_rationale_109"
+ },
+ {
+ "label": "save_memory()",
"file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L89",
- "community": 222,
- "norm_label": "testcolumnvalidator",
- "id": "tests_test_cache_testcolumnvalidator"
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L3",
+ "community": 53,
+ "norm_label": "save_memory()",
+ "id": "prometheus_memory_save_memory"
},
{
- "label": ".test_valid_column_names()",
+ "label": "search_memory()",
"file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L90",
- "community": 222,
- "norm_label": ".test_valid_column_names()",
- "id": "tests_test_cache_testcolumnvalidator_test_valid_column_names"
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L6",
+ "community": 53,
+ "norm_label": "search_memory()",
+ "id": "prometheus_memory_search_memory"
},
{
- "label": ".test_invalid_column_names()",
+ "label": "New table: `user_memory`",
+ "file_type": "document",
+ "source_file": "PLANS/memory-system-plan.md",
+ "source_location": "L59",
+ "community": 6,
+ "norm_label": "new table: `user_memory`",
+ "id": "plans_memory_system_plan_new_table_user_memory"
+ },
+ {
+ "label": "train_script.py",
"file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L97",
- "community": 222,
- "norm_label": ".test_invalid_column_names()",
- "id": "tests_test_cache_testcolumnvalidator_test_invalid_column_names"
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
+ "source_location": "L1",
+ "community": 139,
+ "norm_label": "train_script.py",
+ "id": "main_utils_models_all_minilm_l6_v2_train_script_py"
},
{
- "label": ".test_empty_string()",
+ "label": "AutoModelForSentenceEmbedding",
"file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L103",
- "community": 222,
- "norm_label": ".test_empty_string()",
- "id": "tests_test_cache_testcolumnvalidator_test_empty_string"
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
+ "source_location": "L40",
+ "community": 180,
+ "norm_label": "automodelforsentenceembedding",
+ "id": "all_minilm_l6_v2_train_script_automodelforsentenceembedding"
},
{
- "label": "TestCacheTTLLogic",
+ "label": ".__init__()",
"file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L107",
- "community": 95,
- "norm_label": "testcachettllogic",
- "id": "tests_test_cache_testcachettllogic"
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
+ "source_location": "L41",
+ "community": 180,
+ "norm_label": ".__init__()",
+ "id": "all_minilm_l6_v2_train_script_automodelforsentenceembedding_init"
},
{
- "label": "._make_manager()",
+ "label": ".forward()",
"file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L108",
- "community": 95,
- "norm_label": "._make_manager()",
- "id": "tests_test_cache_testcachettllogic_make_manager"
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
+ "source_location": "L48",
+ "community": 180,
+ "norm_label": ".forward()",
+ "id": "all_minilm_l6_v2_train_script_automodelforsentenceembedding_forward"
},
{
- "label": ".test_expired_entry_detected()",
+ "label": ".mean_pooling()",
"file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L112",
- "community": 95,
- "norm_label": ".test_expired_entry_detected()",
- "id": "tests_test_cache_testcachettllogic_test_expired_entry_detected"
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
+ "source_location": "L56",
+ "community": 180,
+ "norm_label": ".mean_pooling()",
+ "id": "all_minilm_l6_v2_train_script_automodelforsentenceembedding_mean_pooling"
},
{
- "label": ".test_fresh_entry_detected()",
+ "label": ".save_pretrained()",
"file_type": "code",
- "source_file": "tests/test_cache.py",
- "source_location": "L123",
- "community": 95,
- "norm_label": ".test_fresh_entry_detected()",
- "id": "tests_test_cache_testcachettllogic_test_fresh_entry_detected"
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
+ "source_location": "L61",
+ "community": 180,
+ "norm_label": ".save_pretrained()",
+ "id": "all_minilm_l6_v2_train_script_automodelforsentenceembedding_save_pretrained"
},
{
- "label": "Tests for StocksCacheManager queryCache LRU eviction.",
- "file_type": "rationale",
- "source_file": "tests/test_cache.py",
- "source_location": "L15",
- "community": 95,
- "norm_label": "tests for stockscachemanager querycache lru eviction.",
- "id": "tests_test_cache_rationale_15"
+ "label": "train_function()",
+ "file_type": "code",
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
+ "source_location": "L71",
+ "community": 180,
+ "norm_label": "train_function()",
+ "id": "all_minilm_l6_v2_train_script_train_function"
},
{
- "label": "Create a StocksCacheManager with a mock DB engine.",
- "file_type": "rationale",
- "source_file": "tests/test_cache.py",
- "source_location": "L18",
- "community": 95,
- "norm_label": "create a stockscachemanager with a mock db engine.",
- "id": "tests_test_cache_rationale_18"
+ "label": "produce_data()",
+ "file_type": "code",
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
+ "source_location": "L168",
+ "community": 139,
+ "norm_label": "produce_data()",
+ "id": "all_minilm_l6_v2_train_script_produce_data"
},
{
- "label": "When columns is None, cache key should be None.",
- "file_type": "rationale",
- "source_file": "tests/test_cache.py",
- "source_location": "L78",
- "community": 95,
- "norm_label": "when columns is none, cache key should be none.",
- "id": "tests_test_cache_rationale_78"
+ "label": "RedditDataset",
+ "file_type": "code",
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
+ "source_location": "L223",
+ "community": 139,
+ "norm_label": "redditdataset",
+ "id": "all_minilm_l6_v2_train_script_redditdataset"
},
{
- "label": ".test_putCache_adds_entry_and_evicts_when_full()",
+ "label": ".__init__()",
"file_type": "code",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L70",
- "community": 3,
- "norm_label": ".test_putcache_adds_entry_and_evicts_when_full()",
- "id": "tests_test_stocks_api_coverage_teststockscachemanager_test_putcache_adds_entry_and_evicts_when_full"
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
+ "source_location": "L227",
+ "community": 139,
+ "norm_label": ".__init__()",
+ "id": "all_minilm_l6_v2_train_script_redditdataset_init"
},
{
- "label": ".test_clearQueryCache_empties_cache()",
+ "label": ".__iter__()",
"file_type": "code",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L89",
- "community": 3,
- "norm_label": ".test_clearquerycache_empties_cache()",
- "id": "tests_test_stocks_api_coverage_teststockscachemanager_test_clearquerycache_empties_cache"
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
+ "source_location": "L230",
+ "community": 139,
+ "norm_label": ".__iter__()",
+ "id": "all_minilm_l6_v2_train_script_redditdataset_iter"
},
{
- "label": ".test_getCachedStocks_cache_hit()",
+ "label": "Dataset",
"file_type": "code",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L97",
- "community": 3,
- "norm_label": ".test_getcachedstocks_cache_hit()",
- "id": "tests_test_stocks_api_coverage_teststockscachemanager_test_getcachedstocks_cache_hit"
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
+ "source_location": "L239",
+ "community": 139,
+ "norm_label": "dataset",
+ "id": "all_minilm_l6_v2_train_script_dataset"
},
{
- "label": ".test_getCachedStocks_cache_hit_expired()",
+ "label": ".__init__()",
"file_type": "code",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L107",
- "community": 3,
- "norm_label": ".test_getcachedstocks_cache_hit_expired()",
- "id": "tests_test_stocks_api_coverage_teststockscachemanager_test_getcachedstocks_cache_hit_expired"
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
+ "source_location": "L243",
+ "community": 180,
+ "norm_label": ".__init__()",
+ "id": "all_minilm_l6_v2_train_script_dataset_init"
},
{
- "label": ".test_getCachedStocks_force_refresh()",
+ "label": ".__iter__()",
"file_type": "code",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L127",
- "community": 3,
- "norm_label": ".test_getcachedstocks_force_refresh()",
- "id": "tests_test_stocks_api_coverage_teststockscachemanager_test_getcachedstocks_force_refresh"
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
+ "source_location": "L246",
+ "community": 139,
+ "norm_label": ".__iter__()",
+ "id": "all_minilm_l6_v2_train_script_dataset_iter"
},
{
- "label": "Tests covering key.py lines 15-40. Uses asyncio.run() since pytest-asyncio",
+ "label": "Train script for a single file Need to set the TPU address first: export XRT_TP",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L229",
- "community": 21,
- "norm_label": "tests covering key.py lines 15-40. uses asyncio.run() since pytest-asyncio",
- "id": "tests_test_stocks_api_coverage_rationale_229"
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
+ "source_location": "L1",
+ "community": 139,
+ "norm_label": "train script for a single file need to set the tpu address first: export xrt_tp",
+ "id": "all_minilm_l6_v2_train_script_rationale_1"
},
{
- "label": "When KEY.SYSTEM is falsy, return None (line 16).",
+ "label": "A class that handles the reddit data files",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L234",
- "community": 409,
- "norm_label": "when key.system is falsy, return none (line 16).",
- "id": "tests_test_stocks_api_coverage_rationale_234"
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
+ "source_location": "L224",
+ "community": 139,
+ "norm_label": "a class that handles the reddit data files",
+ "id": "all_minilm_l6_v2_train_script_rationale_224"
},
{
- "label": "When key is required but not provided (line 19).",
+ "label": "A class that handles one dataset",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L245",
- "community": 410,
- "norm_label": "when key is required but not provided (line 19).",
- "id": "tests_test_stocks_api_coverage_rationale_245"
+ "source_file": "main/utils/models/all-MiniLM-L6-v2/train_script.py",
+ "source_location": "L240",
+ "community": 139,
+ "norm_label": "a class that handles one dataset",
+ "id": "all_minilm_l6_v2_train_script_rationale_240"
},
{
- "label": "When atomic UPDATE returns 0 rows and query finds no key -> 401.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L258",
- "community": 411,
- "norm_label": "when atomic update returns 0 rows and query finds no key -> 401.",
- "id": "tests_test_stocks_api_coverage_rationale_258"
+ "label": "benchmark_embeddings.py",
+ "file_type": "code",
+ "source_file": "scripts/benchmark_embeddings.py",
+ "source_location": "L1",
+ "community": 176,
+ "norm_label": "benchmark_embeddings.py",
+ "id": "scripts_benchmark_embeddings_py"
},
{
- "label": "When atomic UPDATE returns 0 rows and query finds key at limit -> 429.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L275",
- "community": 412,
- "norm_label": "when atomic update returns 0 rows and query finds key at limit -> 429.",
- "id": "tests_test_stocks_api_coverage_rationale_275"
+ "label": "benchmark_st()",
+ "file_type": "code",
+ "source_file": "scripts/benchmark_embeddings.py",
+ "source_location": "L17",
+ "community": 176,
+ "norm_label": "benchmark_st()",
+ "id": "scripts_benchmark_embeddings_benchmark_st"
},
{
- "label": "Happy path: atomic UPDATE succeeds, returns key (lines 22-33).",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L293",
- "community": 413,
- "norm_label": "happy path: atomic update succeeds, returns key (lines 22-33).",
- "id": "tests_test_stocks_api_coverage_rationale_293"
+ "label": "benchmark_onnx()",
+ "file_type": "code",
+ "source_file": "scripts/benchmark_embeddings.py",
+ "source_location": "L53",
+ "community": 176,
+ "norm_label": "benchmark_onnx()",
+ "id": "scripts_benchmark_embeddings_benchmark_onnx"
},
{
- "label": "Generic DB exception should rollback and raise 500 (lines 38-40).",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L326",
- "community": 414,
- "norm_label": "generic db exception should rollback and raise 500 (lines 38-40).",
- "id": "tests_test_stocks_api_coverage_rationale_326"
+ "label": "benchmark_onnx_direct()",
+ "file_type": "code",
+ "source_file": "scripts/benchmark_embeddings.py",
+ "source_location": "L102",
+ "community": 176,
+ "norm_label": "benchmark_onnx_direct()",
+ "id": "scripts_benchmark_embeddings_benchmark_onnx_direct"
},
{
- "label": "Tests covering key.py line 44.",
+ "label": "Fast embedding benchmark \u2014 run locally where model is cached. Compares: 1. sent",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L341",
- "community": 141,
- "norm_label": "tests covering key.py line 44.",
- "id": "tests_test_stocks_api_coverage_rationale_341"
+ "source_file": "scripts/benchmark_embeddings.py",
+ "source_location": "L1",
+ "community": 176,
+ "norm_label": "fast embedding benchmark \u2014 run locally where model is cached. compares: 1. sent",
+ "id": "scripts_benchmark_embeddings_rationale_1"
},
{
- "label": "Tests covering key.py lines 48-66.",
+ "label": "Benchmark sentence-transformers (PyTorch).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L364",
- "community": 21,
- "norm_label": "tests covering key.py lines 48-66.",
- "id": "tests_test_stocks_api_coverage_rationale_364"
+ "source_file": "scripts/benchmark_embeddings.py",
+ "source_location": "L18",
+ "community": 176,
+ "norm_label": "benchmark sentence-transformers (pytorch).",
+ "id": "scripts_benchmark_embeddings_rationale_18"
},
{
- "label": "New key created when no existing key for user (lines 57-59).",
+ "label": "Benchmark ONNX Runtime \u2014 fastest path.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L368",
- "community": 415,
- "norm_label": "new key created when no existing key for user (lines 57-59).",
- "id": "tests_test_stocks_api_coverage_rationale_368"
+ "source_file": "scripts/benchmark_embeddings.py",
+ "source_location": "L54",
+ "community": 176,
+ "norm_label": "benchmark onnx runtime \u2014 fastest path.",
+ "id": "scripts_benchmark_embeddings_rationale_54"
},
{
- "label": "Existing key is updated (lines 54-56).",
+ "label": "Benchmark ONNX Runtime directly \u2014 export model first, then run.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L383",
- "community": 416,
- "norm_label": "existing key is updated (lines 54-56).",
- "id": "tests_test_stocks_api_coverage_rationale_383"
+ "source_file": "scripts/benchmark_embeddings.py",
+ "source_location": "L103",
+ "community": 176,
+ "norm_label": "benchmark onnx runtime directly \u2014 export model first, then run.",
+ "id": "scripts_benchmark_embeddings_rationale_103"
},
{
- "label": "Exception during creation triggers rollback and 500 (lines 64-66).",
+ "label": "streamMessage must handle function_calls as a list (not dict).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L400",
- "community": 417,
- "norm_label": "exception during creation triggers rollback and 500 (lines 64-66).",
- "id": "tests_test_stocks_api_coverage_rationale_400"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L203",
+ "community": 383,
+ "norm_label": "streammessage must handle function_calls as a list (not dict).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_203"
},
{
- "label": "Tests covering query.py lines 22-48.",
+ "label": "Cover all methods in chat.py (lines 11-120).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L418",
- "community": 3,
- "norm_label": "tests covering query.py lines 22-48.",
- "id": "tests_test_stocks_api_coverage_rationale_418"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L268",
+ "community": 52,
+ "norm_label": "cover all methods in chat.py (lines 11-120).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_268"
},
{
- "label": "replaceNan handles direct float NaN values (line 34).",
+ "label": "Cover all methods in authentication.py (lines 13-75).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L496",
- "community": 135,
- "norm_label": "replacenan handles direct float nan values (line 34).",
- "id": "tests_test_stocks_api_coverage_rationale_496"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L492",
+ "community": 88,
+ "norm_label": "cover all methods in authentication.py (lines 13-75).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_492"
},
{
- "label": "Non-JSON-dict/list string is left as-is.",
+ "label": "Cover all methods in session.py (lines 14-154).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L510",
- "community": 517,
- "norm_label": "non-json-dict/list string is left as-is.",
- "id": "tests_test_stocks_api_coverage_rationale_510"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L669",
+ "community": 60,
+ "norm_label": "cover all methods in session.py (lines 14-154).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_669"
},
{
- "label": "pd.NA is not a string, so lambda returns it unchanged.",
+ "label": "Exercises the tzinfo-is-None branch (line 144-148).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L519",
- "community": 542,
- "norm_label": "pd.na is not a string, so lambda returns it unchanged.",
- "id": "tests_test_stocks_api_coverage_rationale_519"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L904",
+ "community": 190,
+ "norm_label": "exercises the tzinfo-is-none branch (line 144-148).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_904"
},
{
- "label": "Regression: is_string_dtype fails when column has strings + None (pandas 2.x).",
+ "label": "Exercises the expiresAt-is-None branch (line 143).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L528",
- "community": 3,
- "norm_label": "regression: is_string_dtype fails when column has strings + none (pandas 2.x).",
- "id": "tests_test_stocks_api_coverage_rationale_528"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L918",
+ "community": 165,
+ "norm_label": "exercises the expiresat-is-none branch (line 143).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_918"
},
{
- "label": "All four SPECIAL_COLS should parse correctly when mixed with None.",
+ "label": "Cover getGoogleSSO (lines 6-14).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L550",
- "community": 3,
- "norm_label": "all four special_cols should parse correctly when mixed with none.",
- "id": "tests_test_stocks_api_coverage_rationale_550"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L937",
+ "community": 68,
+ "norm_label": "cover getgooglesso (lines 6-14).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_937"
},
{
- "label": "Tests covering query.py lines 50-67.",
+ "label": "streamMessage inlines MCP setup \u2014 chatSession no longer exists.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L575",
- "community": 3,
- "norm_label": "tests covering query.py lines 50-67.",
- "id": "tests_test_stocks_api_coverage_rationale_575"
+ "source_file": "tests/test_streammessage_no_chatsession.py",
+ "source_location": "L24",
+ "community": 138,
+ "norm_label": "streammessage inlines mcp setup \u2014 chatsession no longer exists.",
+ "id": "tests_test_streammessage_no_chatsession_rationale_24"
},
{
- "label": "Tests covering query.py lines 77-132.",
+ "label": "streamMessage yields text chunks via inlined MCP setup.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L630",
- "community": 110,
- "norm_label": "tests covering query.py lines 77-132.",
- "id": "tests_test_stocks_api_coverage_rationale_630"
+ "source_file": "tests/test_streammessage_no_chatsession.py",
+ "source_location": "L34",
+ "community": 384,
+ "norm_label": "streammessage yields text chunks via inlined mcp setup.",
+ "id": "tests_test_streammessage_no_chatsession_rationale_34"
},
{
- "label": "Pass field name WITHOUT year (how categorizeColumns returns them).",
+ "label": "chatSession attribute must not exist \u2014 MCP setup is inlined.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L668",
- "community": 520,
- "norm_label": "pass field name without year (how categorizecolumns returns them).",
- "id": "tests_test_stocks_api_coverage_rationale_668"
+ "source_file": "tests/test_streammessage_no_chatsession.py",
+ "source_location": "L82",
+ "community": 385,
+ "norm_label": "chatsession attribute must not exist \u2014 mcp setup is inlined.",
+ "id": "tests_test_streammessage_no_chatsession_rationale_82"
},
{
- "label": "If an unexpected exception occurs in queryHistorical.",
+ "label": "streamMessage handles function call loops via inlined MCP setup.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L719",
- "community": 28,
- "norm_label": "if an unexpected exception occurs in queryhistorical.",
- "id": "tests_test_stocks_api_coverage_rationale_719"
+ "source_file": "tests/test_streammessage_no_chatsession.py",
+ "source_location": "L105",
+ "community": 386,
+ "norm_label": "streammessage handles function call loops via inlined mcp setup.",
+ "id": "tests_test_streammessage_no_chatsession_rationale_105"
},
{
- "label": "Invalid date format raises exception (line 132).",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L737",
- "community": 136,
- "norm_label": "invalid date format raises exception (line 132).",
- "id": "tests_test_stocks_api_coverage_rationale_737"
+ "label": "PROMETHEUS_PLAN.md",
+ "file_type": "document",
+ "source_file": "PROMETHEUS_PLAN.md",
+ "source_location": "L1",
+ "community": 77,
+ "norm_label": "prometheus_plan.md",
+ "id": "prometheus_plan_md"
},
{
- "label": "No historical columns at all -> inner 400 caught by outer except -> 500.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L753",
- "community": 127,
- "norm_label": "no historical columns at all -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_753"
+ "label": "Prometheus Roadmap \u2014 4 Features",
+ "file_type": "document",
+ "source_file": "PROMETHEUS_PLAN.md",
+ "source_location": "L1",
+ "community": 77,
+ "norm_label": "prometheus roadmap \u2014 4 features",
+ "id": "server_prometheus_plan_prometheus_roadmap_4_features"
},
{
- "label": "Historical query with a year range.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L763",
- "community": 28,
- "norm_label": "historical query with a year range.",
- "id": "tests_test_stocks_api_coverage_rationale_763"
+ "label": "Phase 1: Code Sandbox (Docker MicroVMs)",
+ "file_type": "document",
+ "source_file": "PROMETHEUS_PLAN.md",
+ "source_location": "L3",
+ "community": 77,
+ "norm_label": "phase 1: code sandbox (docker microvms)",
+ "id": "server_prometheus_plan_phase_1_code_sandbox_docker_microvms"
},
{
- "label": "Multiple search terms, all found in tickerIndex.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L770",
- "community": 28,
- "norm_label": "multiple search terms, all found in tickerindex.",
- "id": "tests_test_stocks_api_coverage_rationale_770"
+ "label": "Architecture",
+ "file_type": "document",
+ "source_file": "PROMETHEUS_PLAN.md",
+ "source_location": "L5",
+ "community": 77,
+ "norm_label": "architecture",
+ "id": "server_prometheus_plan_architecture"
},
{
- "label": "Calling with all None returns 400.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L778",
- "community": 110,
- "norm_label": "calling with all none returns 400.",
- "id": "tests_test_stocks_api_coverage_rationale_778"
+ "label": "code:block1 (Agent calls tools (StocksAPI, etc.) \u2192 gets data \u2192 agent deci)",
+ "file_type": "document",
+ "source_file": "PROMETHEUS_PLAN.md",
+ "source_location": "L19",
+ "community": 77,
+ "norm_label": "code:block1 (agent calls tools (stocksapi, etc.) \u2192 gets data \u2192 agent deci)",
+ "id": "server_prometheus_plan_codeblock_1"
},
{
- "label": "Tests covering query.py lines 142-202.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L789",
- "community": 110,
- "norm_label": "tests covering query.py lines 142-202.",
- "id": "tests_test_stocks_api_coverage_rationale_789"
+ "label": "code:python (import sys, io, base64, json, matplotlib)",
+ "file_type": "document",
+ "source_file": "PROMETHEUS_PLAN.md",
+ "source_location": "L44",
+ "community": 77,
+ "norm_label": "code:python (import sys, io, base64, json, matplotlib)",
+ "id": "server_prometheus_plan_codeblock_2"
},
{
- "label": "Invalid date -> inner 400 passes through (not wrapped as 500).",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L843",
- "community": 17,
- "norm_label": "invalid date -> inner 400 passes through (not wrapped as 500).",
- "id": "tests_test_stocks_api_coverage_rationale_843"
+ "label": "code:json ({\"type\": \"sandbox_start\", \"stream\": \"system\"})",
+ "file_type": "document",
+ "source_file": "PROMETHEUS_PLAN.md",
+ "source_location": "L75",
+ "community": 77,
+ "norm_label": "code:json ({\"type\": \"sandbox_start\", \"stream\": \"system\"})",
+ "id": "server_prometheus_plan_codeblock_3"
},
{
- "label": "search.strip() == '' should still dedup (line 181).",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L896",
- "community": 39,
- "norm_label": "search.strip() == '' should still dedup (line 181).",
- "id": "tests_test_stocks_api_coverage_rationale_896"
+ "label": "Implementation steps",
+ "file_type": "document",
+ "source_file": "PROMETHEUS_PLAN.md",
+ "source_location": "L83",
+ "community": 77,
+ "norm_label": "implementation steps",
+ "id": "server_prometheus_plan_implementation_steps"
},
{
- "label": "DataFrame without TIME column.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L905",
- "community": 17,
- "norm_label": "dataframe without time column.",
- "id": "tests_test_stocks_api_coverage_rationale_905"
+ "label": "Phase 2: Per-Session Vector Memory",
+ "file_type": "document",
+ "source_file": "PROMETHEUS_PLAN.md",
+ "source_location": "L94",
+ "community": 77,
+ "norm_label": "phase 2: per-session vector memory",
+ "id": "server_prometheus_plan_phase_2_per_session_vector_memory"
},
{
- "label": "Two dates in the range, both valid.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L918",
- "community": 39,
- "norm_label": "two dates in the range, both valid.",
- "id": "tests_test_stocks_api_coverage_rationale_918"
+ "label": "Architecture",
+ "file_type": "document",
+ "source_file": "PROMETHEUS_PLAN.md",
+ "source_location": "L96",
+ "community": 77,
+ "norm_label": "architecture",
+ "id": "server_prometheus_plan_architecture_96"
},
{
- "label": "Single invalid date -> inner 400 passes through.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L932",
- "community": 46,
- "norm_label": "single invalid date -> inner 400 passes through.",
- "id": "tests_test_stocks_api_coverage_rationale_932"
+ "label": "code:json ({)",
+ "file_type": "document",
+ "source_file": "PROMETHEUS_PLAN.md",
+ "source_location": "L102",
+ "community": 77,
+ "norm_label": "code:json ({)",
+ "id": "server_prometheus_plan_codeblock_4"
},
{
- "label": "Invalid fields now raise 400 with actionable error message.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L942",
- "community": 46,
- "norm_label": "invalid fields now raise 400 with actionable error message.",
- "id": "tests_test_stocks_api_coverage_rationale_942"
+ "label": "code:python (class MemoryManager:)",
+ "file_type": "document",
+ "source_file": "PROMETHEUS_PLAN.md",
+ "source_location": "L120",
+ "community": 77,
+ "norm_label": "code:python (class memorymanager:)",
+ "id": "server_prometheus_plan_codeblock_5"
},
{
- "label": "Multiple search terms with tickerIndex.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L959",
- "community": 17,
- "norm_label": "multiple search terms with tickerindex.",
- "id": "tests_test_stocks_api_coverage_rationale_959"
+ "label": "Implementation steps",
+ "file_type": "document",
+ "source_file": "PROMETHEUS_PLAN.md",
+ "source_location": "L132",
+ "community": 77,
+ "norm_label": "implementation steps",
+ "id": "server_prometheus_plan_implementation_steps_132"
},
{
- "label": "Search with no index match falls back to string startswith.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L967",
- "community": 39,
- "norm_label": "search with no index match falls back to string startswith.",
- "id": "tests_test_stocks_api_coverage_rationale_967"
+ "label": "Phase 3: Multi-Session Memory with Ranking",
+ "file_type": "document",
+ "source_file": "PROMETHEUS_PLAN.md",
+ "source_location": "L141",
+ "community": 77,
+ "norm_label": "phase 3: multi-session memory with ranking",
+ "id": "server_prometheus_plan_phase_3_multi_session_memory_with_ranking"
},
{
- "label": "len(dateRange) == 1 -> per-ticker closest snapshot.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L975",
- "community": 39,
- "norm_label": "len(daterange) == 1 -> per-ticker closest snapshot.",
- "id": "tests_test_stocks_api_coverage_rationale_975"
+ "label": "Architecture",
+ "file_type": "document",
+ "source_file": "PROMETHEUS_PLAN.md",
+ "source_location": "L143",
+ "community": 77,
+ "norm_label": "architecture",
+ "id": "server_prometheus_plan_architecture_143"
},
{
- "label": "COTACAO 10Y PADRAO and COTACAO 10Y AJUSTADA belong to /cotations, not /fundament",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L990",
- "community": 521,
- "norm_label": "cotacao 10y padrao and cotacao 10y ajustada belong to /cotations, not /fundament",
- "id": "tests_test_stocks_api_coverage_rationale_990"
+ "label": "code:sql (CREATE TABLE prometheus_memory ()",
+ "file_type": "document",
+ "source_file": "PROMETHEUS_PLAN.md",
+ "source_location": "L147",
+ "community": 77,
+ "norm_label": "code:sql (create table prometheus_memory ()",
+ "id": "server_prometheus_plan_codeblock_6"
},
{
- "label": "Regression: queryFundamental must not mutate the shared cache TIME column.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1017",
- "community": 46,
- "norm_label": "regression: queryfundamental must not mutate the shared cache time column.",
- "id": "tests_test_stocks_api_coverage_rationale_1017"
+ "label": "code:python (def recency_weight(days_since: float, half_life: float = 70.)",
+ "file_type": "document",
+ "source_file": "PROMETHEUS_PLAN.md",
+ "source_location": "L178",
+ "community": 77,
+ "norm_label": "code:python (def recency_weight(days_since: float, half_life: float = 70.)",
+ "id": "server_prometheus_plan_codeblock_7"
},
{
- "label": "Tests for queryCotations and /stocks/cotations.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1060",
- "community": 10,
- "norm_label": "tests for querycotations and /stocks/cotations.",
- "id": "tests_test_stocks_api_coverage_rationale_1060"
+ "label": "Implementation steps",
+ "file_type": "document",
+ "source_file": "PROMETHEUS_PLAN.md",
+ "source_location": "L198",
+ "community": 77,
+ "norm_label": "implementation steps",
+ "id": "server_prometheus_plan_implementation_steps_198"
},
{
- "label": "2 tickers x 2 rows. Rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. M",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1072",
- "community": 10,
- "norm_label": "2 tickers x 2 rows. rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. m",
- "id": "tests_test_stocks_api_coverage_rationale_1072"
+ "label": ".updateDates()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L33",
+ "community": 116,
+ "norm_label": ".updatedates()",
+ "id": "prometheus_agent_prometheus_updatedates"
},
{
- "label": "4 rows for 2 tickers -> 2 results, one per ticker, both with latest TIME.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1118",
- "community": 10,
- "norm_label": "4 rows for 2 tickers -> 2 results, one per ticker, both with latest time.",
- "id": "tests_test_stocks_api_coverage_rationale_1118"
+ "label": "chatSession()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L47",
+ "community": 116,
+ "norm_label": "chatsession()",
+ "id": "prometheus_agent_chatsession"
},
{
- "label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each JSON list.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1130",
- "community": 10,
- "norm_label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each json list.",
- "id": "tests_test_stocks_api_coverage_rationale_1130"
+ "label": "test_init_creates_client_and_updates_dates_debug()",
+ "file_type": "code",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L31",
+ "community": 29,
+ "norm_label": "test_init_creates_client_and_updates_dates_debug()",
+ "id": "tests_test_prometheus_auth_coverage_test_init_creates_client_and_updates_dates_debug"
},
{
- "label": "Hit the actual /stocks/cotations HTTP endpoint with adjusted=false.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1216",
- "community": 491,
- "norm_label": "hit the actual /stocks/cotations http endpoint with adjusted=false.",
- "id": "tests_test_stocks_api_coverage_rationale_1216"
+ "label": "test_init_creates_client_and_updates_dates_prod()",
+ "file_type": "code",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L46",
+ "community": 29,
+ "norm_label": "test_init_creates_client_and_updates_dates_prod()",
+ "id": "tests_test_prometheus_auth_coverage_test_init_creates_client_and_updates_dates_prod"
},
{
- "label": "Tests for queryLiveCotation and /stocks/cotations/live.",
+ "label": "Cover __init__ and updateDates.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1243",
- "community": 22,
- "norm_label": "tests for querylivecotation and /stocks/cotations/live.",
- "id": "tests_test_stocks_api_coverage_rationale_1243"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L27",
+ "community": 68,
+ "norm_label": "cover __init__ and updatedates.",
+ "id": "tests_test_prometheus_auth_coverage_rationale_27"
},
{
- "label": "GET /stocks/realtime-cotation without search returns 422.",
+ "label": "Cover sendMessage and streamMessage in agent.py.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1342",
- "community": 22,
- "norm_label": "get /stocks/realtime-cotation without search returns 422.",
- "id": "tests_test_stocks_api_coverage_rationale_1342"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L58",
+ "community": 68,
+ "norm_label": "cover sendmessage and streammessage in agent.py.",
+ "id": "tests_test_prometheus_auth_coverage_rationale_58"
},
{
- "label": "GET /cotations without search returns 422.",
+ "label": "Cover all methods in chat.py (lines 11-120).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1392",
- "community": 22,
- "norm_label": "get /cotations without search returns 422.",
- "id": "tests_test_stocks_api_coverage_rationale_1392"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L174",
+ "community": 52,
+ "norm_label": "cover all methods in chat.py (lines 11-120).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_174"
},
{
- "label": "stocks_client()",
- "file_type": "code",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L52",
- "community": 129,
- "norm_label": "stocks_client()",
- "id": "tests_test_stocks_api_fields_stocks_client"
+ "label": "Cover all methods in authentication.py (lines 13-75).",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L398",
+ "community": 88,
+ "norm_label": "cover all methods in authentication.py (lines 13-75).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_398"
},
{
- "label": "Direct tests on the regex pattern used for the `fields` query param.",
+ "label": "Cover all methods in session.py (lines 14-154).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L18",
- "community": 128,
- "norm_label": "direct tests on the regex pattern used for the `fields` query param.",
- "id": "tests_test_stocks_api_fields_rationale_18"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L575",
+ "community": 60,
+ "norm_label": "cover all methods in session.py (lines 14-154).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_575"
},
{
- "label": "P/L must be accepted \u2014 it's a standard valuation metric.",
+ "label": "Exercises the tzinfo-is-None branch (line 144-148).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L21",
- "community": 128,
- "norm_label": "p/l must be accepted \u2014 it's a standard valuation metric.",
- "id": "tests_test_stocks_api_fields_rationale_21"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L810",
+ "community": 190,
+ "norm_label": "exercises the tzinfo-is-none branch (line 144-148).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_810"
},
{
- "label": "MARG. LIQUIDA must be accepted \u2014 returned by /stocks/fields.",
+ "label": "Exercises the expiresAt-is-None branch (line 143).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L25",
- "community": 254,
- "norm_label": "marg. liquida must be accepted \u2014 returned by /stocks/fields.",
- "id": "tests_test_stocks_api_fields_rationale_25"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L824",
+ "community": 165,
+ "norm_label": "exercises the expiresat-is-none branch (line 143).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_824"
},
{
- "label": "P/VP and similar combos must be accepted.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L29",
- "community": 128,
- "norm_label": "p/vp and similar combos must be accepted.",
- "id": "tests_test_stocks_api_fields_rationale_29"
- },
- {
- "label": "Basic fields like ROE must still pass.",
+ "label": "Cover getGoogleSSO (lines 6-14).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L33",
- "community": 255,
- "norm_label": "basic fields like roe must still pass.",
- "id": "tests_test_stocks_api_fields_rationale_33"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L843",
+ "community": 68,
+ "norm_label": "cover getgooglesso (lines 6-14).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_843"
},
{
- "label": "Comma-separated list containing slash fields must pass.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L37",
- "community": 252,
- "norm_label": "comma-separated list containing slash fields must pass.",
- "id": "tests_test_stocks_api_fields_rationale_37"
+ "label": "TestPrometheusGeneratorInit",
+ "file_type": "code",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L26",
+ "community": 68,
+ "norm_label": "testprometheusgeneratorinit",
+ "id": "tests_test_prometheus_auth_coverage_testprometheusgeneratorinit"
},
{
- "label": "Pattern must reject potential injection \u2014 no angle brackets.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L41",
- "community": 253,
- "norm_label": "pattern must reject potential injection \u2014 no angle brackets.",
- "id": "tests_test_stocks_api_fields_rationale_41"
+ "label": "TestPrometheusGeneratorExecuteWorkflow",
+ "file_type": "code",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L57",
+ "community": 68,
+ "norm_label": "testprometheusgeneratorexecuteworkflow",
+ "id": "tests_test_prometheus_auth_coverage_testprometheusgeneratorexecuteworkflow"
},
{
- "label": "GET /historical?fields=MARG. LIQUIDA must not return 422.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L99",
- "community": 167,
- "norm_label": "get /historical?fields=marg. liquida must not return 422.",
- "id": "tests_test_stocks_api_fields_rationale_99"
+ "label": "_make_generator()",
+ "file_type": "code",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L62",
+ "community": 29,
+ "norm_label": "_make_generator()",
+ "id": "tests_test_prometheus_auth_coverage_make_generator"
},
{
- "label": "GET /historical?fields=LUCRO LIQUIDO,P/L must not return 422.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L104",
- "community": 166,
- "norm_label": "get /historical?fields=lucro liquido,p/l must not return 422.",
- "id": "tests_test_stocks_api_fields_rationale_104"
+ "label": "test_execute_workflow_basic_no_history()",
+ "file_type": "code",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L72",
+ "community": 29,
+ "norm_label": "test_execute_workflow_basic_no_history()",
+ "id": "tests_test_prometheus_auth_coverage_test_execute_workflow_basic_no_history"
},
{
- "label": "Integration: /stocks/fundamental date filter should work per-ticker.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L110",
- "community": 179,
- "norm_label": "integration: /stocks/fundamental date filter should work per-ticker.",
- "id": "tests_test_stocks_api_fields_rationale_110"
+ "label": "test_execute_workflow_with_history()",
+ "file_type": "code",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L117",
+ "community": 29,
+ "norm_label": "test_execute_workflow_with_history()",
+ "id": "tests_test_prometheus_auth_coverage_test_execute_workflow_with_history"
},
{
- "label": "When tickers have different date coverage, each should get its closest snapshot.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L113",
- "community": 179,
- "norm_label": "when tickers have different date coverage, each should get its closest snapshot.",
- "id": "tests_test_stocks_api_fields_rationale_113"
+ "label": "test_execute_workflow_with_session_summary()",
+ "file_type": "code",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L144",
+ "community": 29,
+ "norm_label": "test_execute_workflow_with_session_summary()",
+ "id": "tests_test_prometheus_auth_coverage_test_execute_workflow_with_session_summary"
},
{
- "label": "Tests for queryLiveCotation and /stocks/cotations/live.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1245",
- "community": 22,
- "norm_label": "tests for querylivecotation and /stocks/cotations/live.",
- "id": "tests_test_stocks_api_coverage_rationale_1245"
+ "label": "test_execute_workflow_session_db_exception()",
+ "file_type": "code",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L175",
+ "community": 29,
+ "norm_label": "test_execute_workflow_session_db_exception()",
+ "id": "tests_test_prometheus_auth_coverage_test_execute_workflow_session_db_exception"
},
{
- "label": "GET /stocks/realtime-cotation without search returns 422.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1344",
- "community": 22,
- "norm_label": "get /stocks/realtime-cotation without search returns 422.",
- "id": "tests_test_stocks_api_coverage_rationale_1344"
+ "label": "test_execute_workflow_global_request_with_api_key()",
+ "file_type": "code",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L202",
+ "community": 29,
+ "norm_label": "test_execute_workflow_global_request_with_api_key()",
+ "id": "tests_test_prometheus_auth_coverage_test_execute_workflow_global_request_with_api_key"
},
{
- "label": "GET /cotations without search returns 422.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1394",
- "community": 22,
- "norm_label": "get /cotations without search returns 422.",
- "id": "tests_test_stocks_api_coverage_rationale_1394"
+ "label": "test_execute_workflow_global_request_api_error()",
+ "file_type": "code",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L251",
+ "community": 29,
+ "norm_label": "test_execute_workflow_global_request_api_error()",
+ "id": "tests_test_prometheus_auth_coverage_test_execute_workflow_global_request_api_error"
},
{
- "label": "Direct tests on the regex pattern used for the `fields` query param.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L17",
- "community": 128,
- "norm_label": "direct tests on the regex pattern used for the `fields` query param.",
- "id": "tests_test_stocks_api_fields_rationale_17"
+ "label": "test_fetch_stock_data_exception()",
+ "file_type": "code",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L289",
+ "community": 29,
+ "norm_label": "test_fetch_stock_data_exception()",
+ "id": "tests_test_prometheus_auth_coverage_test_fetch_stock_data_exception"
},
{
- "label": "P/L must be accepted \u2014 it's a standard valuation metric.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L20",
- "community": 128,
- "norm_label": "p/l must be accepted \u2014 it's a standard valuation metric.",
- "id": "tests_test_stocks_api_fields_rationale_20"
+ "label": "test_fetch_stock_data_non_200()",
+ "file_type": "code",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L325",
+ "community": 29,
+ "norm_label": "test_fetch_stock_data_non_200()",
+ "id": "tests_test_prometheus_auth_coverage_test_fetch_stock_data_non_200"
},
{
- "label": "MARG. LIQUIDA must be accepted \u2014 returned by /stocks/fields.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L24",
- "community": 254,
- "norm_label": "marg. liquida must be accepted \u2014 returned by /stocks/fields.",
- "id": "tests_test_stocks_api_fields_rationale_24"
+ "label": "test_execute_workflow_stage4_summary_update()",
+ "file_type": "code",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L364",
+ "community": 29,
+ "norm_label": "test_execute_workflow_stage4_summary_update()",
+ "id": "tests_test_prometheus_auth_coverage_test_execute_workflow_stage4_summary_update"
},
{
- "label": "P/VP and similar combos must be accepted.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L28",
- "community": 128,
- "norm_label": "p/vp and similar combos must be accepted.",
- "id": "tests_test_stocks_api_fields_rationale_28"
+ "label": "test_execute_workflow_global_request_status_not_200()",
+ "file_type": "code",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L396",
+ "community": 29,
+ "norm_label": "test_execute_workflow_global_request_status_not_200()",
+ "id": "tests_test_prometheus_auth_coverage_test_execute_workflow_global_request_status_not_200"
},
{
- "label": "Basic fields like ROE must still pass.",
+ "label": "Stage 1 + Stage 2 + Stage 3, no history, no sessionId.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L32",
- "community": 255,
- "norm_label": "basic fields like roe must still pass.",
- "id": "tests_test_stocks_api_fields_rationale_32"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L73",
+ "community": 387,
+ "norm_label": "stage 1 + stage 2 + stage 3, no history, no sessionid.",
+ "id": "tests_test_prometheus_auth_coverage_rationale_73"
},
{
- "label": "Comma-separated list containing slash fields must pass.",
+ "label": "Test history formatting (lines 48-49, 159-162).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L36",
- "community": 252,
- "norm_label": "comma-separated list containing slash fields must pass.",
- "id": "tests_test_stocks_api_fields_rationale_36"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L118",
+ "community": 388,
+ "norm_label": "test history formatting (lines 48-49, 159-162).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_118"
},
{
- "label": "Pattern must reject potential injection \u2014 no angle brackets.",
+ "label": "Stage 0: sessionId+db summary loading (lines 55-62).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L40",
- "community": 253,
- "norm_label": "pattern must reject potential injection \u2014 no angle brackets.",
- "id": "tests_test_stocks_api_fields_rationale_40"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L145",
+ "community": 389,
+ "norm_label": "stage 0: sessionid+db summary loading (lines 55-62).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_145"
},
{
- "label": "Minimal TestClient with just the stocks router for validation tests.",
+ "label": "Global request API error (lines 208-209).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L51",
- "community": 129,
- "norm_label": "minimal testclient with just the stocks router for validation tests.",
- "id": "tests_test_stocks_api_fields_rationale_51"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L252",
+ "community": 390,
+ "norm_label": "global request api error (lines 208-209).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_252"
},
{
- "label": "Integration: /stocks/fundamental must accept slash and dot fields.",
+ "label": "fetchStockData exception path (lines 223-225).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L70",
- "community": 129,
- "norm_label": "integration: /stocks/fundamental must accept slash and dot fields.",
- "id": "tests_test_stocks_api_fields_rationale_70"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L290",
+ "community": 391,
+ "norm_label": "fetchstockdata exception path (lines 223-225).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_290"
},
{
- "label": "GET /fundamental?fields=P/L must not return 422 (validation error).",
+ "label": "fetchStockData non-200 status (line 222).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L73",
- "community": 129,
- "norm_label": "get /fundamental?fields=p/l must not return 422 (validation error).",
- "id": "tests_test_stocks_api_fields_rationale_73"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L326",
+ "community": 392,
+ "norm_label": "fetchstockdata non-200 status (line 222).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_326"
},
{
- "label": "GET /fundamental?fields=MARG. LIQUIDA must not return 422.",
+ "label": "Stage 4: summary update when len(history) % 10 == 0 (lines 325-363).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L78",
- "community": 167,
- "norm_label": "get /fundamental?fields=marg. liquida must not return 422.",
- "id": "tests_test_stocks_api_fields_rationale_78"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L365",
+ "community": 393,
+ "norm_label": "stage 4: summary update when len(history) % 10 == 0 (lines 325-363).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_365"
},
{
- "label": "GET /fundamental?fields=P/L,ROE,DY must not return 422.",
+ "label": "Global request with non-200 status (line 201-203 skipped).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L83",
- "community": 166,
- "norm_label": "get /fundamental?fields=p/l,roe,dy must not return 422.",
- "id": "tests_test_stocks_api_fields_rationale_83"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L397",
+ "community": 394,
+ "norm_label": "global request with non-200 status (line 201-203 skipped).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_397"
},
{
- "label": "Integration: /stocks/historical must accept slash and dot fields.",
+ "label": "Cover all methods in chat.py (lines 11-120).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L89",
- "community": 191,
- "norm_label": "integration: /stocks/historical must accept slash and dot fields.",
- "id": "tests_test_stocks_api_fields_rationale_89"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L440",
+ "community": 52,
+ "norm_label": "cover all methods in chat.py (lines 11-120).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_440"
},
{
- "label": "GET /historical?fields=P/L must not return 422.",
+ "label": "Cover all methods in authentication.py (lines 13-75).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L92",
- "community": 191,
- "norm_label": "get /historical?fields=p/l must not return 422.",
- "id": "tests_test_stocks_api_fields_rationale_92"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L664",
+ "community": 88,
+ "norm_label": "cover all methods in authentication.py (lines 13-75).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_664"
},
{
- "label": "GET /historical?fields=MARG. LIQUIDA must not return 422.",
+ "label": "Cover all methods in session.py (lines 14-154).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L97",
- "community": 167,
- "norm_label": "get /historical?fields=marg. liquida must not return 422.",
- "id": "tests_test_stocks_api_fields_rationale_97"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L841",
+ "community": 60,
+ "norm_label": "cover all methods in session.py (lines 14-154).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_841"
},
{
- "label": "GET /historical?fields=LUCRO LIQUIDO,P/L must not return 422.",
+ "label": "Exercises the tzinfo-is-None branch (line 144-148).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L102",
- "community": 166,
- "norm_label": "get /historical?fields=lucro liquido,p/l must not return 422.",
- "id": "tests_test_stocks_api_fields_rationale_102"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L1076",
+ "community": 190,
+ "norm_label": "exercises the tzinfo-is-none branch (line 144-148).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_1076"
},
{
- "label": "Integration: /stocks/fundamental date filter should work per-ticker.",
+ "label": "Exercises the expiresAt-is-None branch (line 143).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L108",
- "community": 179,
- "norm_label": "integration: /stocks/fundamental date filter should work per-ticker.",
- "id": "tests_test_stocks_api_fields_rationale_108"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L1090",
+ "community": 165,
+ "norm_label": "exercises the expiresat-is-none branch (line 143).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_1090"
},
{
- "label": "When tickers have different date coverage, each should get its closest snapshot.",
+ "label": "Cover getGoogleSSO (lines 6-14).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_fields.py",
- "source_location": "L111",
- "community": 179,
- "norm_label": "when tickers have different date coverage, each should get its closest snapshot.",
- "id": "tests_test_stocks_api_fields_rationale_111"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L1109",
+ "community": 68,
+ "norm_label": "cover getgooglesso (lines 6-14).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_1109"
},
{
- "label": "Tests for queryLiveCotation and /stocks/cotations/live.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1261",
- "community": 22,
- "norm_label": "tests for querylivecotation and /stocks/cotations/live.",
- "id": "tests_test_stocks_api_coverage_rationale_1261"
+ "label": "generation.py",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/generation.py",
+ "source_location": "L1",
+ "community": 487,
+ "norm_label": "generation.py",
+ "id": "main_app_prometheus_generation_py"
},
{
- "label": "GET /stocks/realtime-cotation without search returns 422.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1400",
- "community": 22,
- "norm_label": "get /stocks/realtime-cotation without search returns 422.",
- "id": "tests_test_stocks_api_coverage_rationale_1400"
+ "label": "PrometheusGenerator",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/generation.py",
+ "source_location": "L18",
+ "community": 29,
+ "norm_label": "prometheusgenerator",
+ "id": "prometheus_generation_prometheusgenerator"
},
{
- "label": "GET /cotations without search returns 422.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1468",
- "community": 22,
- "norm_label": "get /cotations without search returns 422.",
- "id": "tests_test_stocks_api_coverage_rationale_1468"
+ "label": ".__init__()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/generation.py",
+ "source_location": "L19",
+ "community": 29,
+ "norm_label": ".__init__()",
+ "id": "prometheus_generation_prometheusgenerator_init"
},
{
- "label": "Return a small DataFrame with the columns the query module expects.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
+ "label": ".updateDates()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/generation.py",
"source_location": "L23",
- "community": 110,
- "norm_label": "return a small dataframe with the columns the query module expects.",
- "id": "tests_test_stocks_api_coverage_rationale_23"
+ "community": 29,
+ "norm_label": ".updatedates()",
+ "id": "prometheus_generation_prometheusgenerator_updatedates"
},
{
- "label": "Tests covering cache.py lines 28-76.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L43",
- "community": 3,
- "norm_label": "tests covering cache.py lines 28-76.",
- "id": "tests_test_stocks_api_coverage_rationale_43"
+ "label": ".executeWorkflow()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/generation.py",
+ "source_location": "L36",
+ "community": 487,
+ "norm_label": ".executeworkflow()",
+ "id": "prometheus_generation_prometheusgenerator_executeworkflow"
},
{
- "label": "Tests covering key.py lines 15-40. Uses asyncio.run() since pytest-asyncio",
+ "label": "Get year-based historical financial data for Brazilian B3 stocks. Returns",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L228",
- "community": 21,
- "norm_label": "tests covering key.py lines 15-40. uses asyncio.run() since pytest-asyncio",
- "id": "tests_test_stocks_api_coverage_rationale_228"
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L65",
+ "community": 197,
+ "norm_label": "get year-based historical financial data for brazilian b3 stocks. returns",
+ "id": "controller_stocksapi_controller_rationale_65"
},
{
- "label": "When KEY.SYSTEM is falsy, return None (line 16).",
+ "label": "Get point-in-time fundamental/valuation data for Brazilian B3 stocks. Ret",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L233",
- "community": 418,
- "norm_label": "when key.system is falsy, return none (line 16).",
- "id": "tests_test_stocks_api_coverage_rationale_233"
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L123",
+ "community": 157,
+ "norm_label": "get point-in-time fundamental/valuation data for brazilian b3 stocks. ret",
+ "id": "controller_stocksapi_controller_rationale_123"
},
{
- "label": "When key is required but not provided (line 19).",
+ "label": "Get 10-year daily price history (cotation) for Brazilian B3 stocks. Retur",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L244",
- "community": 419,
- "norm_label": "when key is required but not provided (line 19).",
- "id": "tests_test_stocks_api_coverage_rationale_244"
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L184",
+ "community": 169,
+ "norm_label": "get 10-year daily price history (cotation) for brazilian b3 stocks. retur",
+ "id": "controller_stocksapi_controller_rationale_184"
},
{
- "label": "When atomic UPDATE returns 0 rows and query finds no key -> 401.",
+ "label": "Get real-time price quotation for a single Brazilian B3 stock. Returns th",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L257",
- "community": 420,
- "norm_label": "when atomic update returns 0 rows and query finds no key -> 401.",
- "id": "tests_test_stocks_api_coverage_rationale_257"
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L232",
+ "community": 81,
+ "norm_label": "get real-time price quotation for a single brazilian b3 stock. returns th",
+ "id": "controller_stocksapi_controller_rationale_232"
},
{
- "label": "When atomic UPDATE returns 0 rows and query finds key at limit -> 429.",
+ "label": "Both cookies should have secure flag (HTTPS only).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L274",
- "community": 421,
- "norm_label": "when atomic update returns 0 rows and query finds key at limit -> 429.",
- "id": "tests_test_stocks_api_coverage_rationale_274"
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L167",
+ "community": 395,
+ "norm_label": "both cookies should have secure flag (https only).",
+ "id": "tests_test_oauth_cookie_security_rationale_167"
},
{
- "label": "HTTPException should cause rollback then re-raise (lines 35-37).",
+ "label": "When no state param, return JSON response (not redirect).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L306",
- "community": 422,
- "norm_label": "httpexception should cause rollback then re-raise (lines 35-37).",
- "id": "tests_test_stocks_api_coverage_rationale_306"
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L199",
+ "community": 396,
+ "norm_label": "when no state param, return json response (not redirect).",
+ "id": "tests_test_oauth_cookie_security_rationale_199"
},
{
- "label": "Generic DB exception should rollback and raise 500 (lines 38-40).",
+ "label": "Frontend JavaScript should be able to read token from readable cookie.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L325",
- "community": 423,
- "norm_label": "generic db exception should rollback and raise 500 (lines 38-40).",
- "id": "tests_test_stocks_api_coverage_rationale_325"
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L228",
+ "community": 397,
+ "norm_label": "frontend javascript should be able to read token from readable cookie.",
+ "id": "tests_test_oauth_cookie_security_rationale_228"
},
{
- "label": "Tests covering key.py line 44.",
+ "label": "Set required env vars before test collection. config.py eagerly instantia",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L340",
- "community": 141,
- "norm_label": "tests covering key.py line 44.",
- "id": "tests_test_stocks_api_coverage_rationale_340"
+ "source_file": "tests/conftest.py",
+ "source_location": "L13",
+ "community": 527,
+ "norm_label": "set required env vars before test collection. config.py eagerly instantia",
+ "id": "tests_conftest_rationale_13"
},
{
- "label": "Tests covering key.py lines 48-66.",
+ "label": "TestClient with stocks router + verifyAPIKey + getCurrentUser overrides.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L363",
- "community": 21,
- "norm_label": "tests covering key.py lines 48-66.",
- "id": "tests_test_stocks_api_coverage_rationale_363"
+ "source_file": "tests/conftest.py",
+ "source_location": "L74",
+ "community": 186,
+ "norm_label": "testclient with stocks router + verifyapikey + getcurrentuser overrides.",
+ "id": "tests_conftest_rationale_74"
},
{
- "label": "New key created when no existing key for user (lines 57-59).",
+ "label": "TestClient with all routers mounted \u2014 no lifespan (no DB/service init). O",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L367",
- "community": 424,
- "norm_label": "new key created when no existing key for user (lines 57-59).",
- "id": "tests_test_stocks_api_coverage_rationale_367"
+ "source_file": "tests/conftest.py",
+ "source_location": "L99",
+ "community": 186,
+ "norm_label": "testclient with all routers mounted \u2014 no lifespan (no db/service init). o",
+ "id": "tests_conftest_rationale_99"
},
{
- "label": "Existing key is updated (lines 54-56).",
+ "label": "Covers lines 202-204: generic Exception in callback.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L382",
- "community": 425,
- "norm_label": "existing key is updated (lines 54-56).",
- "id": "tests_test_stocks_api_coverage_rationale_382"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L507",
+ "community": 398,
+ "norm_label": "covers lines 202-204: generic exception in callback.",
+ "id": "tests_test_controllers_coverage_rationale_507"
},
{
- "label": "Exception during creation triggers rollback and 500 (lines 64-66).",
+ "label": "Covers line 19: GET /user/health.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L399",
- "community": 426,
- "norm_label": "exception during creation triggers rollback and 500 (lines 64-66).",
- "id": "tests_test_stocks_api_coverage_rationale_399"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L524",
+ "community": 498,
+ "norm_label": "covers line 19: get /user/health.",
+ "id": "tests_test_controllers_coverage_rationale_524"
},
{
- "label": "Tests covering query.py lines 22-48.",
+ "label": "Covers line 24: GET /user/me returns currentUser.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L417",
- "community": 3,
- "norm_label": "tests covering query.py lines 22-48.",
- "id": "tests_test_stocks_api_coverage_rationale_417"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L538",
+ "community": 47,
+ "norm_label": "covers line 24: get /user/me returns currentuser.",
+ "id": "tests_test_controllers_coverage_rationale_538"
},
{
- "label": "replaceNan handles direct float NaN values (line 34).",
+ "label": "Covers lines 31-32, 36, 43-44, 48: upgrade developer starter/enterprise.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L495",
- "community": 135,
- "norm_label": "replacenan handles direct float nan values (line 34).",
- "id": "tests_test_stocks_api_coverage_rationale_495"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L552",
+ "community": 47,
+ "norm_label": "covers lines 31-32, 36, 43-44, 48: upgrade developer starter/enterprise.",
+ "id": "tests_test_controllers_coverage_rationale_552"
},
{
- "label": "Non-JSON-dict/list string is left as-is.",
+ "label": "Covers lines 53-54, 56: admin access granted / denied.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L509",
- "community": 517,
- "norm_label": "non-json-dict/list string is left as-is.",
- "id": "tests_test_stocks_api_coverage_rationale_509"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L592",
+ "community": 47,
+ "norm_label": "covers lines 53-54, 56: admin access granted / denied.",
+ "id": "tests_test_controllers_coverage_rationale_592"
},
{
- "label": "pd.NA is not a string, so lambda returns it unchanged.",
+ "label": "Covers lines 66, 68-72, 74: GET /user/sessions.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L518",
- "community": 542,
- "norm_label": "pd.na is not a string, so lambda returns it unchanged.",
- "id": "tests_test_stocks_api_coverage_rationale_518"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L611",
+ "community": 178,
+ "norm_label": "covers lines 66, 68-72, 74: get /user/sessions.",
+ "id": "tests_test_controllers_coverage_rationale_611"
},
{
- "label": "Regression: is_string_dtype fails when column has strings + None (pandas 2.x).",
+ "label": "Covers lines 66, 68-72, 74: full sessions listing.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L527",
- "community": 3,
- "norm_label": "regression: is_string_dtype fails when column has strings + none (pandas 2.x).",
- "id": "tests_test_stocks_api_coverage_rationale_527"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L614",
+ "community": 178,
+ "norm_label": "covers lines 66, 68-72, 74: full sessions listing.",
+ "id": "tests_test_controllers_coverage_rationale_614"
},
{
- "label": "All four SPECIAL_COLS should parse correctly when mixed with None.",
+ "label": "Covers lines 100-104, 106: GET /user/sessions/current.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L549",
- "community": 3,
- "norm_label": "all four special_cols should parse correctly when mixed with none.",
- "id": "tests_test_stocks_api_coverage_rationale_549"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L665",
+ "community": 107,
+ "norm_label": "covers lines 100-104, 106: get /user/sessions/current.",
+ "id": "tests_test_controllers_coverage_rationale_665"
},
{
- "label": "Tests covering query.py lines 50-67.",
+ "label": "Covers lines 100-104, 106: session found.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L574",
- "community": 3,
- "norm_label": "tests covering query.py lines 50-67.",
- "id": "tests_test_stocks_api_coverage_rationale_574"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L668",
+ "community": 107,
+ "norm_label": "covers lines 100-104, 106: session found.",
+ "id": "tests_test_controllers_coverage_rationale_668"
},
{
- "label": "Tests covering query.py lines 77-132.",
+ "label": "Covers line 104: session not found.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L629",
- "community": 110,
- "norm_label": "tests covering query.py lines 77-132.",
- "id": "tests_test_stocks_api_coverage_rationale_629"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L701",
+ "community": 107,
+ "norm_label": "covers line 104: session not found.",
+ "id": "tests_test_controllers_coverage_rationale_701"
},
{
- "label": "Pass field name WITHOUT year (how categorizeColumns returns them).",
+ "label": "Covers lines 126-136: DELETE /user/sessions/{sessionId}.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L667",
- "community": 520,
- "norm_label": "pass field name without year (how categorizecolumns returns them).",
- "id": "tests_test_stocks_api_coverage_rationale_667"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L724",
+ "community": 104,
+ "norm_label": "covers lines 126-136: delete /user/sessions/{sessionid}.",
+ "id": "tests_test_controllers_coverage_rationale_724"
},
{
- "label": "No historical data columns -> inner 400 caught by outer except -> 500.",
+ "label": "Covers lines 126, 131, 135-136.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L693",
- "community": 28,
- "norm_label": "no historical data columns -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_693"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L727",
+ "community": 104,
+ "norm_label": "covers lines 126, 131, 135-136.",
+ "id": "tests_test_controllers_coverage_rationale_727"
},
{
- "label": "If an unexpected exception occurs in queryHistorical.",
+ "label": "Covers lines 127-129: session not found.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L718",
- "community": 28,
- "norm_label": "if an unexpected exception occurs in queryhistorical.",
- "id": "tests_test_stocks_api_coverage_rationale_718"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L754",
+ "community": 104,
+ "norm_label": "covers lines 127-129: session not found.",
+ "id": "tests_test_controllers_coverage_rationale_754"
},
{
- "label": "Invalid date format raises exception (line 132).",
+ "label": "Covers lines 132-133: revokeSession returns False.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L736",
- "community": 136,
- "norm_label": "invalid date format raises exception (line 132).",
- "id": "tests_test_stocks_api_coverage_rationale_736"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L776",
+ "community": 104,
+ "norm_label": "covers lines 132-133: revokesession returns false.",
+ "id": "tests_test_controllers_coverage_rationale_776"
},
{
- "label": "No historical columns at all -> inner 400 caught by outer except -> 500.",
+ "label": "Covers lines 143, 145, 147-148: POST /user/sessions/revoke-all.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L752",
- "community": 127,
- "norm_label": "no historical columns at all -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_752"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L802",
+ "community": 221,
+ "norm_label": "covers lines 143, 145, 147-148: post /user/sessions/revoke-all.",
+ "id": "tests_test_controllers_coverage_rationale_802"
},
{
- "label": "Historical query with a year range.",
+ "label": "Covers lines 143, 145, 147-148.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L762",
- "community": 28,
- "norm_label": "historical query with a year range.",
- "id": "tests_test_stocks_api_coverage_rationale_762"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L805",
+ "community": 221,
+ "norm_label": "covers lines 143, 145, 147-148.",
+ "id": "tests_test_controllers_coverage_rationale_805"
},
{
- "label": "Multiple search terms, all found in tickerIndex.",
+ "label": "Covers line 24: GET /prometheus/health.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L769",
- "community": 28,
- "norm_label": "multiple search terms, all found in tickerindex.",
- "id": "tests_test_stocks_api_coverage_rationale_769"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L832",
+ "community": 498,
+ "norm_label": "covers line 24: get /prometheus/health.",
+ "id": "tests_test_controllers_coverage_rationale_832"
},
{
- "label": "Calling with all None returns 400.",
+ "label": "Covers lines 33-36: GET /prometheus/sessions.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L777",
- "community": 110,
- "norm_label": "calling with all none returns 400.",
- "id": "tests_test_stocks_api_coverage_rationale_777"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L846",
+ "community": 16,
+ "norm_label": "covers lines 33-36: get /prometheus/sessions.",
+ "id": "tests_test_controllers_coverage_rationale_846"
},
{
- "label": "Tests covering query.py lines 142-202.",
+ "label": "Covers line 52: POST /prometheus/sessions.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L788",
- "community": 110,
- "norm_label": "tests covering query.py lines 142-202.",
- "id": "tests_test_stocks_api_coverage_rationale_788"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L864",
+ "community": 16,
+ "norm_label": "covers line 52: post /prometheus/sessions.",
+ "id": "tests_test_controllers_coverage_rationale_864"
},
{
- "label": "search.strip() == '' should still dedup (line 181).",
+ "label": "Covers lines 62-63, 65-68: PUT /prometheus/sessions/{sessionId}.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L895",
- "community": 17,
- "norm_label": "search.strip() == '' should still dedup (line 181).",
- "id": "tests_test_stocks_api_coverage_rationale_895"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L878",
+ "community": 16,
+ "norm_label": "covers lines 62-63, 65-68: put /prometheus/sessions/{sessionid}.",
+ "id": "tests_test_controllers_coverage_rationale_878"
},
{
- "label": "DataFrame without TIME column.",
+ "label": "Covers lines 65-68: title updated successfully.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L904",
- "community": 17,
- "norm_label": "dataframe without time column.",
- "id": "tests_test_stocks_api_coverage_rationale_904"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L881",
+ "community": 16,
+ "norm_label": "covers lines 65-68: title updated successfully.",
+ "id": "tests_test_controllers_coverage_rationale_881"
},
{
- "label": "Two dates in the range, both valid.",
+ "label": "Covers lines 62-63: not the session owner.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L917",
- "community": 39,
- "norm_label": "two dates in the range, both valid.",
- "id": "tests_test_stocks_api_coverage_rationale_917"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L892",
+ "community": 16,
+ "norm_label": "covers lines 62-63: not the session owner.",
+ "id": "tests_test_controllers_coverage_rationale_892"
},
{
- "label": "Single invalid date -> inner 400 caught by outer except -> 500.",
+ "label": "Covers lines 66-67: session not found.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L931",
- "community": 46,
- "norm_label": "single invalid date -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_931"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L901",
+ "community": 16,
+ "norm_label": "covers lines 66-67: session not found.",
+ "id": "tests_test_controllers_coverage_rationale_901"
},
{
- "label": "Multiple search terms with tickerIndex.",
+ "label": "Covers lines 77, 83-84, 86: GET /prometheus/history/{sessionId}.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L956",
- "community": 17,
- "norm_label": "multiple search terms with tickerindex.",
- "id": "tests_test_stocks_api_coverage_rationale_956"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L912",
+ "community": 208,
+ "norm_label": "covers lines 77, 83-84, 86: get /prometheus/history/{sessionid}.",
+ "id": "tests_test_controllers_coverage_rationale_912"
},
{
- "label": "Search with no index match falls back to string startswith.",
+ "label": "Covers lines 77, 86: session found with history.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L964",
- "community": 39,
- "norm_label": "search with no index match falls back to string startswith.",
- "id": "tests_test_stocks_api_coverage_rationale_964"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L915",
+ "community": 208,
+ "norm_label": "covers lines 77, 86: session found with history.",
+ "id": "tests_test_controllers_coverage_rationale_915"
},
{
- "label": "len(dateRange) == 1 -> single date filter.",
+ "label": "Covers lines 83-84: session not found.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L972",
- "community": 39,
- "norm_label": "len(daterange) == 1 -> single date filter.",
- "id": "tests_test_stocks_api_coverage_rationale_972"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L959",
+ "community": 208,
+ "norm_label": "covers lines 83-84: session not found.",
+ "id": "tests_test_controllers_coverage_rationale_959"
},
{
- "label": "COTACAO 10Y PADRAO and COTACAO 10Y AJUSTADA belong to /cotations, not /fundament",
+ "label": "Covers lines 95-98: DELETE /prometheus/sessions/{sessionId}.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L986",
- "community": 521,
- "norm_label": "cotacao 10y padrao and cotacao 10y ajustada belong to /cotations, not /fundament",
- "id": "tests_test_stocks_api_coverage_rationale_986"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L994",
+ "community": 474,
+ "norm_label": "covers lines 95-98: delete /prometheus/sessions/{sessionid}.",
+ "id": "tests_test_controllers_coverage_rationale_994"
},
{
- "label": "Regression: queryFundamental must not mutate the shared cache TIME column.",
+ "label": "Covers lines 95-98: session deleted.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1013",
- "community": 46,
- "norm_label": "regression: queryfundamental must not mutate the shared cache time column.",
- "id": "tests_test_stocks_api_coverage_rationale_1013"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L997",
+ "community": 474,
+ "norm_label": "covers lines 95-98: session deleted.",
+ "id": "tests_test_controllers_coverage_rationale_997"
},
{
- "label": "Tests for queryCotations and /stocks/cotations.",
+ "label": "Covers lines 96-97: session not found.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1056",
- "community": 10,
- "norm_label": "tests for querycotations and /stocks/cotations.",
- "id": "tests_test_stocks_api_coverage_rationale_1056"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1007",
+ "community": 474,
+ "norm_label": "covers lines 96-97: session not found.",
+ "id": "tests_test_controllers_coverage_rationale_1007"
},
{
- "label": "2 tickers x 2 rows. Rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. M",
+ "label": "Covers lines 114-115, 117-120, 122, 125: POST /prometheus/chat.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1068",
- "community": 10,
- "norm_label": "2 tickers x 2 rows. rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. m",
- "id": "tests_test_stocks_api_coverage_rationale_1068"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1017",
+ "community": 101,
+ "norm_label": "covers lines 114-115, 117-120, 122, 125: post /prometheus/chat.",
+ "id": "tests_test_controllers_coverage_rationale_1017"
},
{
- "label": "4 rows for 2 tickers -> 2 results, one per ticker, both with latest TIME.",
+ "label": "Covers lines 111-112: sessionId is None, new session created.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1114",
- "community": 10,
- "norm_label": "4 rows for 2 tickers -> 2 results, one per ticker, both with latest time.",
- "id": "tests_test_stocks_api_coverage_rationale_1114"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1020",
+ "community": 16,
+ "norm_label": "covers lines 111-112: sessionid is none, new session created.",
+ "id": "tests_test_controllers_coverage_rationale_1020"
},
{
- "label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each JSON list.",
+ "label": "Covers lines 114-115, 117-120, 122: existing session with verified ownership.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1126",
- "community": 10,
- "norm_label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each json list.",
- "id": "tests_test_stocks_api_coverage_rationale_1126"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1038",
+ "community": 101,
+ "norm_label": "covers lines 114-115, 117-120, 122: existing session with verified ownership.",
+ "id": "tests_test_controllers_coverage_rationale_1038"
},
{
- "label": "Hit the actual /stocks/cotations HTTP endpoint with adjusted=false.",
+ "label": "Covers lines 114-115: session ownership check fails.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1212",
- "community": 491,
- "norm_label": "hit the actual /stocks/cotations http endpoint with adjusted=false.",
- "id": "tests_test_stocks_api_coverage_rationale_1212"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1079",
+ "community": 101,
+ "norm_label": "covers lines 114-115: session ownership check fails.",
+ "id": "tests_test_controllers_coverage_rationale_1079"
},
{
- "label": "Tests for queryLiveCotation and /stocks/cotations/live.",
+ "label": "Generic Exception in chat propagates to FastAPI's default 500 handler.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1257",
- "community": 22,
- "norm_label": "tests for querylivecotation and /stocks/cotations/live.",
- "id": "tests_test_stocks_api_coverage_rationale_1257"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1116",
+ "community": 101,
+ "norm_label": "generic exception in chat propagates to fastapi's default 500 handler.",
+ "id": "tests_test_controllers_coverage_rationale_1116"
},
{
- "label": "GET /stocks/realtime-cotation without search returns 422.",
+ "label": "Covers line 18: GET /stocks/health.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1396",
- "community": 22,
- "norm_label": "get /stocks/realtime-cotation without search returns 422.",
- "id": "tests_test_stocks_api_coverage_rationale_1396"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1134",
+ "community": 498,
+ "norm_label": "covers line 18: get /stocks/health.",
+ "id": "tests_test_controllers_coverage_rationale_1134"
},
{
- "label": "GET /cotations without search returns 422.",
+ "label": "Covers line 35: GET /stocks/historical.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1464",
- "community": 22,
- "norm_label": "get /cotations without search returns 422.",
- "id": "tests_test_stocks_api_coverage_rationale_1464"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1148",
+ "community": 14,
+ "norm_label": "covers line 35: get /stocks/historical.",
+ "id": "tests_test_controllers_coverage_rationale_1148"
},
{
- "label": "cotations.py",
- "file_type": "code",
- "source_file": "cotations.py",
- "source_location": "L1",
- "community": 267,
- "norm_label": "cotations.py",
- "id": "cotations_py"
+ "label": "Covers line 47: GET /stocks/fundamental.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1162",
+ "community": 14,
+ "norm_label": "covers line 47: get /stocks/fundamental.",
+ "id": "tests_test_controllers_coverage_rationale_1162"
},
{
- "label": "queryLiveCotations()",
- "file_type": "code",
- "source_file": "cotations.py",
- "source_location": "L5",
- "community": 267,
- "norm_label": "querylivecotations()",
- "id": "server_cotations_querylivecotations"
+ "label": "Covers lines 52-53, 57-63: GET /stocks/key/generate. NOTE: stocksapi_cont",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1176",
+ "community": 14,
+ "norm_label": "covers lines 52-53, 57-63: get /stocks/key/generate. note: stocksapi_cont",
+ "id": "tests_test_controllers_coverage_rationale_1176"
},
{
- "label": "GET /stocks/realtime-cotation without search returns 422.",
+ "label": "Covers lines 52-53: user without GENERATE_API_KEYS permission gets 403.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1388",
- "community": 22,
- "norm_label": "get /stocks/realtime-cotation without search returns 422.",
- "id": "tests_test_stocks_api_coverage_rationale_1388"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1184",
+ "community": 14,
+ "norm_label": "covers lines 52-53: user without generate_api_keys permission gets 403.",
+ "id": "tests_test_controllers_coverage_rationale_1184"
},
{
- "label": "GET /cotations without search returns 422.",
+ "label": "Covers lines 57-60: admin bypasses permission check and generates key.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1456",
- "community": 22,
- "norm_label": "get /cotations without search returns 422.",
- "id": "tests_test_stocks_api_coverage_rationale_1456"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1192",
+ "community": 14,
+ "norm_label": "covers lines 57-60: admin bypasses permission check and generates key.",
+ "id": "tests_test_controllers_coverage_rationale_1192"
},
{
- "label": ".test_cotations_filter_cotation_column_filters_by_date()",
- "file_type": "code",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1253",
- "community": 22,
- "norm_label": ".test_cotations_filter_cotation_column_filters_by_date()",
- "id": "tests_test_stocks_api_coverage_testquerycotations_test_cotations_filter_cotation_column_filters_by_date"
+ "label": "Covers lines 61-63: exception during key generation (admin path).",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1204",
+ "community": 14,
+ "norm_label": "covers lines 61-63: exception during key generation (admin path).",
+ "id": "tests_test_controllers_coverage_rationale_1204"
},
{
- "label": ".test_cotations_filter_cotation_column_range()",
- "file_type": "code",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1269",
- "community": 22,
- "norm_label": ".test_cotations_filter_cotation_column_range()",
- "id": "tests_test_stocks_api_coverage_testquerycotations_test_cotations_filter_cotation_column_range"
+ "label": "Covers lines 13, 17, 19-20, 22-27: UserManager.addRoleToUser.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1219",
+ "community": 528,
+ "norm_label": "covers lines 13, 17, 19-20, 22-27: usermanager.addroletouser.",
+ "id": "tests_test_controllers_coverage_rationale_1219"
},
{
- "label": ".test_cotations_filter_cotation_column_handles_non_list()",
- "file_type": "code",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1286",
- "community": 22,
- "norm_label": ".test_cotations_filter_cotation_column_handles_non_list()",
- "id": "tests_test_stocks_api_coverage_testquerycotations_test_cotations_filter_cotation_column_handles_non_list"
+ "label": "Covers lines 17, 22-27: user found, role not present, role added.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1222",
+ "community": 528,
+ "norm_label": "covers lines 17, 22-27: user found, role not present, role added.",
+ "id": "tests_test_controllers_coverage_rationale_1222"
},
{
- "label": ".test_cotations_search_required()",
- "file_type": "code",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1297",
- "community": 104,
- "norm_label": ".test_cotations_search_required()",
- "id": "tests_test_stocks_api_coverage_testquerycotations_test_cotations_search_required"
+ "label": "Covers line 27: user already has the role.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1239",
+ "community": 528,
+ "norm_label": "covers line 27: user already has the role.",
+ "id": "tests_test_controllers_coverage_rationale_1239"
},
{
- "label": "GET /cotations without search returns 422.",
+ "label": "Covers lines 19-20: user not found raises 404.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1298",
- "community": 104,
- "norm_label": "get /cotations without search returns 422.",
- "id": "tests_test_stocks_api_coverage_rationale_1298"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1254",
+ "community": 528,
+ "norm_label": "covers lines 19-20: user not found raises 404.",
+ "id": "tests_test_controllers_coverage_rationale_1254"
},
{
- "label": "2 tickers x 2 rows. Rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. M",
+ "label": "Covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: UserManager.getC",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1066",
- "community": 10,
- "norm_label": "2 tickers x 2 rows. rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. m",
- "id": "tests_test_stocks_api_coverage_rationale_1066"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1266",
+ "community": 493,
+ "norm_label": "covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: usermanager.getc",
+ "id": "tests_test_controllers_coverage_rationale_1266"
},
{
- "label": "4 rows for 2 tickers -> 2 results, one per ticker, both with latest TIME.",
+ "label": "Covers lines 36-38, 40-44, 46, 48-49, 51, 58-59, 61: successful user retrieval.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1112",
- "community": 10,
- "norm_label": "4 rows for 2 tickers -> 2 results, one per ticker, both with latest time.",
- "id": "tests_test_stocks_api_coverage_rationale_1112"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1273",
+ "community": 493,
+ "norm_label": "covers lines 36-38, 40-44, 46, 48-49, 51, 58-59, 61: successful user retrieval.",
+ "id": "tests_test_controllers_coverage_rationale_1273"
},
{
- "label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each JSON list.",
+ "label": "Covers lines 42-44: session validation fails.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1124",
- "community": 10,
- "norm_label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each json list.",
- "id": "tests_test_stocks_api_coverage_rationale_1124"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1298",
+ "community": 528,
+ "norm_label": "covers lines 42-44: session validation fails.",
+ "id": "tests_test_controllers_coverage_rationale_1298"
},
{
- "label": "Hit the actual /stocks/cotations HTTP endpoint with adjusted=false.",
+ "label": "Covers lines 48-49: user not in DB.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1210",
- "community": 491,
- "norm_label": "hit the actual /stocks/cotations http endpoint with adjusted=false.",
- "id": "tests_test_stocks_api_coverage_rationale_1210"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1314",
+ "community": 493,
+ "norm_label": "covers lines 48-49: user not in db.",
+ "id": "tests_test_controllers_coverage_rationale_1314"
},
{
- "label": "GET /cotations without search returns 422.",
+ "label": "Covers lines 65-67: unexpected exception.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1288",
- "community": 104,
- "norm_label": "get /cotations without search returns 422.",
- "id": "tests_test_stocks_api_coverage_rationale_1288"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1331",
+ "community": 493,
+ "norm_label": "covers lines 65-67: unexpected exception.",
+ "id": "tests_test_controllers_coverage_rationale_1331"
},
{
- "label": "Invalid date -> inner 400 caught by outer except -> 500.",
+ "label": "Covers lines 37-38, 46, 51, 58 (sessionId is None): skips session validation.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L832",
- "community": 17,
- "norm_label": "invalid date -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_832"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1348",
+ "community": 493,
+ "norm_label": "covers lines 37-38, 46, 51, 58 (sessionid is none): skips session validation.",
+ "id": "tests_test_controllers_coverage_rationale_1348"
},
{
- "label": "search.strip() == '' should still dedup (line 181).",
+ "label": "Covers line 16: empty password raises ValueError.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L885",
- "community": 17,
- "norm_label": "search.strip() == '' should still dedup (line 181).",
- "id": "tests_test_stocks_api_coverage_rationale_885"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1372",
+ "community": 493,
+ "norm_label": "covers line 16: empty password raises valueerror.",
+ "id": "tests_test_controllers_coverage_rationale_1372"
},
{
- "label": "DataFrame without TIME column.",
+ "label": "Covers lines 50-51: jwt.InvalidTokenError.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L894",
- "community": 17,
- "norm_label": "dataframe without time column.",
- "id": "tests_test_stocks_api_coverage_rationale_894"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1401",
+ "community": 519,
+ "norm_label": "covers lines 50-51: jwt.invalidtokenerror.",
+ "id": "tests_test_controllers_coverage_rationale_1401"
},
{
- "label": "Two dates in the range, both valid.",
+ "label": "Covers line 67: extractTokenPayload re-raises HTTPException from verifyAccessTok",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L907",
- "community": 39,
- "norm_label": "two dates in the range, both valid.",
- "id": "tests_test_stocks_api_coverage_rationale_907"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1413",
+ "community": 114,
+ "norm_label": "covers line 67: extracttokenpayload re-raises httpexception from verifyaccesstok",
+ "id": "tests_test_controllers_coverage_rationale_1413"
},
{
- "label": "Single invalid date -> inner 400 caught by outer except -> 500.",
+ "label": "Covers line 13: UserManager.__init__.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L921",
- "community": 46,
- "norm_label": "single invalid date -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_921"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1432",
+ "community": 498,
+ "norm_label": "covers line 13: usermanager.__init__.",
+ "id": "tests_test_controllers_coverage_rationale_1432"
},
{
- "label": "Multiple search terms with tickerIndex.",
+ "label": "Return (client, app, mock_session) for testing Google callback.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L946",
- "community": 17,
- "norm_label": "multiple search terms with tickerindex.",
- "id": "tests_test_stocks_api_coverage_rationale_946"
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L22",
+ "community": 40,
+ "norm_label": "return (client, app, mock_session) for testing google callback.",
+ "id": "tests_test_oauth_cookie_security_rationale_22"
},
{
- "label": "Search with no index match falls back to string startswith.",
+ "label": "Helper to setup common mock values for callback tests.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L954",
- "community": 39,
- "norm_label": "search with no index match falls back to string startswith.",
- "id": "tests_test_stocks_api_coverage_rationale_954"
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L37",
+ "community": 40,
+ "norm_label": "helper to setup common mock values for callback tests.",
+ "id": "tests_test_oauth_cookie_security_rationale_37"
},
{
- "label": "len(dateRange) == 1 -> single date filter.",
+ "label": "Verify JWT token is NOT leaked in redirect URL after OAuth callback.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L962",
- "community": 39,
- "norm_label": "len(daterange) == 1 -> single date filter.",
- "id": "tests_test_stocks_api_coverage_rationale_962"
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L61",
+ "community": 541,
+ "norm_label": "verify jwt token is not leaked in redirect url after oauth callback.",
+ "id": "tests_test_oauth_cookie_security_rationale_61"
},
{
- "label": "COTACAO 10Y PADRAO and COTACAO 10Y AJUSTADA belong to /cotations, not /fundament",
+ "label": "RED TEST: Token should NOT appear in redirect URL query parameters.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L976",
- "community": 521,
- "norm_label": "cotacao 10y padrao and cotacao 10y ajustada belong to /cotations, not /fundament",
- "id": "tests_test_stocks_api_coverage_rationale_976"
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L70",
+ "community": 399,
+ "norm_label": "red test: token should not appear in redirect url query parameters.",
+ "id": "tests_test_oauth_cookie_security_rationale_70"
},
{
- "label": "Regression: queryFundamental must not mutate the shared cache TIME column.",
+ "label": "Cookie must be httponly (not accessible via JavaScript).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1003",
- "community": 46,
- "norm_label": "regression: queryfundamental must not mutate the shared cache time column.",
- "id": "tests_test_stocks_api_coverage_rationale_1003"
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L99",
+ "community": 400,
+ "norm_label": "cookie must be httponly (not accessible via javascript).",
+ "id": "tests_test_oauth_cookie_security_rationale_99"
},
{
- "label": "Tests for queryCotations and /stocks/cotations.",
+ "label": "A readable cookie must be set for frontend JavaScript to access.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1035",
- "community": 10,
- "norm_label": "tests for querycotations and /stocks/cotations.",
- "id": "tests_test_stocks_api_coverage_rationale_1035"
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L131",
+ "community": 401,
+ "norm_label": "a readable cookie must be set for frontend javascript to access.",
+ "id": "tests_test_oauth_cookie_security_rationale_131"
},
{
- "label": "2 tickers x 2 rows. Rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. M",
+ "label": "Both cookies should have secure flag (HTTPS only).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1047",
- "community": 10,
- "norm_label": "2 tickers x 2 rows. rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. m",
- "id": "tests_test_stocks_api_coverage_rationale_1047"
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L164",
+ "community": 402,
+ "norm_label": "both cookies should have secure flag (https only).",
+ "id": "tests_test_oauth_cookie_security_rationale_164"
},
{
- "label": "4 rows for 2 tickers -> 2 results, one per ticker, both with latest TIME.",
+ "label": "When no state param, return JSON response (not redirect).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1093",
- "community": 10,
- "norm_label": "4 rows for 2 tickers -> 2 results, one per ticker, both with latest time.",
- "id": "tests_test_stocks_api_coverage_rationale_1093"
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L196",
+ "community": 403,
+ "norm_label": "when no state param, return json response (not redirect).",
+ "id": "tests_test_oauth_cookie_security_rationale_196"
},
{
- "label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each JSON list.",
+ "label": "Verify frontend can still get token after OAuth redirect.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1105",
- "community": 10,
- "norm_label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each json list.",
- "id": "tests_test_stocks_api_coverage_rationale_1105"
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L216",
+ "community": 529,
+ "norm_label": "verify frontend can still get token after oauth redirect.",
+ "id": "tests_test_oauth_cookie_security_rationale_216"
},
{
- "label": "Hit the actual /stocks/cotations HTTP endpoint with adjusted=false.",
+ "label": "Frontend JavaScript should be able to read token from readable cookie.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1191",
- "community": 491,
- "norm_label": "hit the actual /stocks/cotations http endpoint with adjusted=false.",
- "id": "tests_test_stocks_api_coverage_rationale_1191"
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L225",
+ "community": 404,
+ "norm_label": "frontend javascript should be able to read token from readable cookie.",
+ "id": "tests_test_oauth_cookie_security_rationale_225"
},
{
- "label": "2026-06-22-sandbox-mcp-design.md",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L1",
- "community": 103,
- "norm_label": "2026-06-22-sandbox-mcp-design.md",
- "id": "docs_superpowers_specs_2026_06_22_sandbox_mcp_design_md"
+ "label": "Covers lines 164, 171-173: existing Google user, no new account created.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L433",
+ "community": 405,
+ "norm_label": "covers lines 164, 171-173: existing google user, no new account created.",
+ "id": "tests_test_controllers_coverage_rationale_433"
},
{
- "label": "Mansa Prometheus \u2014 MCP Tool Calling + Sandbox Pool Design",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L1",
- "community": 103,
- "norm_label": "mansa prometheus \u2014 mcp tool calling + sandbox pool design",
- "id": "specs_2026_06_22_sandbox_mcp_design_mansa_prometheus_mcp_tool_calling_sandbox_pool_design"
+ "label": "Covers line 165: verify_and_process returns None.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L459",
+ "community": 406,
+ "norm_label": "covers line 165: verify_and_process returns none.",
+ "id": "tests_test_controllers_coverage_rationale_459"
},
{
- "label": "1. Executive Summary",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L9",
- "community": 103,
- "norm_label": "1. executive summary",
- "id": "specs_2026_06_22_sandbox_mcp_design_1_executive_summary"
+ "label": "Covers lines 190-195: state param triggers RedirectResponse.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L476",
+ "community": 407,
+ "norm_label": "covers lines 190-195: state param triggers redirectresponse.",
+ "id": "tests_test_controllers_coverage_rationale_476"
},
{
- "label": "2. Context & Motivation",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L17",
- "community": 103,
- "norm_label": "2. context & motivation",
- "id": "specs_2026_06_22_sandbox_mcp_design_2_context_motivation"
+ "label": "Covers lines 202-204: generic Exception in callback.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L505",
+ "community": 408,
+ "norm_label": "covers lines 202-204: generic exception in callback.",
+ "id": "tests_test_controllers_coverage_rationale_505"
},
{
- "label": "3. Goals & Non-Goals",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L32",
- "community": 261,
- "norm_label": "3. goals & non-goals",
- "id": "specs_2026_06_22_sandbox_mcp_design_3_goals_non_goals"
+ "label": "Covers line 19: GET /user/health.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L522",
+ "community": 498,
+ "norm_label": "covers line 19: get /user/health.",
+ "id": "tests_test_controllers_coverage_rationale_522"
},
{
- "label": "Goals",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L34",
- "community": 261,
- "norm_label": "goals",
- "id": "specs_2026_06_22_sandbox_mcp_design_goals"
+ "label": "Covers line 24: GET /user/me returns currentUser.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L536",
+ "community": 47,
+ "norm_label": "covers line 24: get /user/me returns currentuser.",
+ "id": "tests_test_controllers_coverage_rationale_536"
},
{
- "label": "Non-Goals (YAGNI)",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L42",
- "community": 261,
- "norm_label": "non-goals (yagni)",
- "id": "specs_2026_06_22_sandbox_mcp_design_non_goals_yagni"
+ "label": "Covers lines 31-32, 36, 43-44, 48: upgrade developer starter/enterprise.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L550",
+ "community": 47,
+ "norm_label": "covers lines 31-32, 36, 43-44, 48: upgrade developer starter/enterprise.",
+ "id": "tests_test_controllers_coverage_rationale_550"
},
{
- "label": "4. Background Research",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L53",
- "community": 209,
- "norm_label": "4. background research",
- "id": "specs_2026_06_22_sandbox_mcp_design_4_background_research"
+ "label": "Covers lines 53-54, 56: admin access granted / denied.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L590",
+ "community": 47,
+ "norm_label": "covers lines 53-54, 56: admin access granted / denied.",
+ "id": "tests_test_controllers_coverage_rationale_590"
},
{
- "label": "4.1 Sandbox Technology Landscape",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L55",
- "community": 209,
- "norm_label": "4.1 sandbox technology landscape",
- "id": "specs_2026_06_22_sandbox_mcp_design_4_1_sandbox_technology_landscape"
+ "label": "Covers lines 66, 68-72, 74: GET /user/sessions.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L609",
+ "community": 178,
+ "norm_label": "covers lines 66, 68-72, 74: get /user/sessions.",
+ "id": "tests_test_controllers_coverage_rationale_609"
},
{
- "label": "4.2 Instant Startup Patterns",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L66",
- "community": 209,
- "norm_label": "4.2 instant startup patterns",
- "id": "specs_2026_06_22_sandbox_mcp_design_4_2_instant_startup_patterns"
+ "label": "Covers lines 66, 68-72, 74: full sessions listing.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L612",
+ "community": 178,
+ "norm_label": "covers lines 66, 68-72, 74: full sessions listing.",
+ "id": "tests_test_controllers_coverage_rationale_612"
},
{
- "label": "4.3 Cost & Scaling Math",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L79",
- "community": 209,
- "norm_label": "4.3 cost & scaling math",
- "id": "specs_2026_06_22_sandbox_mcp_design_4_3_cost_scaling_math"
+ "label": "Covers lines 100-104, 106: GET /user/sessions/current.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L663",
+ "community": 107,
+ "norm_label": "covers lines 100-104, 106: get /user/sessions/current.",
+ "id": "tests_test_controllers_coverage_rationale_663"
},
{
- "label": "4.4 Anthropic Containment Patterns",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L92",
- "community": 209,
- "norm_label": "4.4 anthropic containment patterns",
- "id": "specs_2026_06_22_sandbox_mcp_design_4_4_anthropic_containment_patterns"
+ "label": "Covers lines 100-104, 106: session found.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L666",
+ "community": 107,
+ "norm_label": "covers lines 100-104, 106: session found.",
+ "id": "tests_test_controllers_coverage_rationale_666"
},
{
- "label": "4.5 Hybrid Library Policy",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L104",
- "community": 209,
- "norm_label": "4.5 hybrid library policy",
- "id": "specs_2026_06_22_sandbox_mcp_design_4_5_hybrid_library_policy"
+ "label": "Covers line 104: session not found.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L699",
+ "community": 107,
+ "norm_label": "covers line 104: session not found.",
+ "id": "tests_test_controllers_coverage_rationale_699"
},
{
- "label": "5. Architecture Decision",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L110",
- "community": 103,
- "norm_label": "5. architecture decision",
- "id": "specs_2026_06_22_sandbox_mcp_design_5_architecture_decision"
- },
- {
- "label": "6. Component Design",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L122",
- "community": 117,
- "norm_label": "6. component design",
- "id": "specs_2026_06_22_sandbox_mcp_design_6_component_design"
+ "label": "Covers lines 126-136: DELETE /user/sessions/{sessionId}.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L722",
+ "community": 104,
+ "norm_label": "covers lines 126-136: delete /user/sessions/{sessionid}.",
+ "id": "tests_test_controllers_coverage_rationale_722"
},
{
- "label": "6.1 NEW: `sandbox-pool` Compose service",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L124",
- "community": 117,
- "norm_label": "6.1 new: `sandbox-pool` compose service",
- "id": "specs_2026_06_22_sandbox_mcp_design_6_1_new_sandbox_pool_compose_service"
+ "label": "Covers lines 126, 131, 135-136.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L725",
+ "community": 104,
+ "norm_label": "covers lines 126, 131, 135-136.",
+ "id": "tests_test_controllers_coverage_rationale_725"
},
{
- "label": "6.2 NEW: Sandbox executor image",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L131",
- "community": 117,
- "norm_label": "6.2 new: sandbox executor image",
- "id": "specs_2026_06_22_sandbox_mcp_design_6_2_new_sandbox_executor_image"
+ "label": "Covers lines 127-129: session not found.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L752",
+ "community": 104,
+ "norm_label": "covers lines 127-129: session not found.",
+ "id": "tests_test_controllers_coverage_rationale_752"
},
{
- "label": "6.3 NEW: `SandboxPoolSettings` in `config.py`",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L137",
- "community": 117,
- "norm_label": "6.3 new: `sandboxpoolsettings` in `config.py`",
- "id": "specs_2026_06_22_sandbox_mcp_design_6_3_new_sandboxpoolsettings_in_config_py"
+ "label": "Covers lines 132-133: revokeSession returns False.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L774",
+ "community": 104,
+ "norm_label": "covers lines 132-133: revokesession returns false.",
+ "id": "tests_test_controllers_coverage_rationale_774"
},
{
- "label": "code:python (class SandboxPoolSettings(BaseMansaSettings):)",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L139",
- "community": 117,
- "norm_label": "code:python (class sandboxpoolsettings(basemansasettings):)",
- "id": "specs_2026_06_22_sandbox_mcp_design_codeblock_1"
+ "label": "Covers lines 143, 145, 147-148: POST /user/sessions/revoke-all.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L800",
+ "community": 221,
+ "norm_label": "covers lines 143, 145, 147-148: post /user/sessions/revoke-all.",
+ "id": "tests_test_controllers_coverage_rationale_800"
},
{
- "label": "6.4 NEW: `sandbox_client.py` in `main/app/prometheus/`",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L155",
- "community": 117,
- "norm_label": "6.4 new: `sandbox_client.py` in `main/app/prometheus/`",
- "id": "specs_2026_06_22_sandbox_mcp_design_6_4_new_sandbox_client_py_in_main_app_prometheus"
+ "label": "Covers lines 143, 145, 147-148.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L803",
+ "community": 221,
+ "norm_label": "covers lines 143, 145, 147-148.",
+ "id": "tests_test_controllers_coverage_rationale_803"
},
{
- "label": "code:python (class SandboxClient:)",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L158",
- "community": 117,
- "norm_label": "code:python (class sandboxclient:)",
- "id": "specs_2026_06_22_sandbox_mcp_design_codeblock_2"
+ "label": "Covers line 24: GET /prometheus/health.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L830",
+ "community": 498,
+ "norm_label": "covers line 24: get /prometheus/health.",
+ "id": "tests_test_controllers_coverage_rationale_830"
},
{
- "label": "6.5 MODIFIED: `main/service/stocksapi_service.py` (add fastapi-mcp)",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L173",
- "community": 117,
- "norm_label": "6.5 modified: `main/service/stocksapi_service.py` (add fastapi-mcp)",
- "id": "specs_2026_06_22_sandbox_mcp_design_6_5_modified_main_service_stocksapi_service_py_add_fastapi_mcp"
+ "label": "Covers lines 33-36: GET /prometheus/sessions.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L844",
+ "community": 16,
+ "norm_label": "covers lines 33-36: get /prometheus/sessions.",
+ "id": "tests_test_controllers_coverage_rationale_844"
},
{
- "label": "code:python (from fastapi_mcp import FastApiMCP)",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L175",
- "community": 117,
- "norm_label": "code:python (from fastapi_mcp import fastapimcp)",
- "id": "specs_2026_06_22_sandbox_mcp_design_codeblock_3"
+ "label": "Covers line 52: POST /prometheus/sessions.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L862",
+ "community": 16,
+ "norm_label": "covers line 52: post /prometheus/sessions.",
+ "id": "tests_test_controllers_coverage_rationale_862"
},
{
- "label": "6.6 MODIFIED: `main/app/prometheus/generation.py` (the big refactor)",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L183",
- "community": 117,
- "norm_label": "6.6 modified: `main/app/prometheus/generation.py` (the big refactor)",
- "id": "specs_2026_06_22_sandbox_mcp_design_6_6_modified_main_app_prometheus_generation_py_the_big_refactor"
+ "label": "Covers lines 62-63, 65-68: PUT /prometheus/sessions/{sessionId}.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L876",
+ "community": 16,
+ "norm_label": "covers lines 62-63, 65-68: put /prometheus/sessions/{sessionid}.",
+ "id": "tests_test_controllers_coverage_rationale_876"
},
{
- "label": "6.7 MODIFIED: `docker-compose.yml`",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L194",
- "community": 117,
- "norm_label": "6.7 modified: `docker-compose.yml`",
- "id": "specs_2026_06_22_sandbox_mcp_design_6_7_modified_docker_compose_yml"
+ "label": "Covers lines 65-68: title updated successfully.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L879",
+ "community": 16,
+ "norm_label": "covers lines 65-68: title updated successfully.",
+ "id": "tests_test_controllers_coverage_rationale_879"
},
{
- "label": "code:yaml (services:)",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L195",
- "community": 117,
- "norm_label": "code:yaml (services:)",
- "id": "specs_2026_06_22_sandbox_mcp_design_codeblock_4"
+ "label": "Covers lines 62-63: not the session owner.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L890",
+ "community": 16,
+ "norm_label": "covers lines 62-63: not the session owner.",
+ "id": "tests_test_controllers_coverage_rationale_890"
},
{
- "label": "6.8 MODIFIED: `requirements.txt`",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L215",
- "community": 117,
- "norm_label": "6.8 modified: `requirements.txt`",
- "id": "specs_2026_06_22_sandbox_mcp_design_6_8_modified_requirements_txt"
+ "label": "Covers lines 66-67: session not found.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L899",
+ "community": 16,
+ "norm_label": "covers lines 66-67: session not found.",
+ "id": "tests_test_controllers_coverage_rationale_899"
},
{
- "label": "7. Data Flow \u2014 One Real Query",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L220",
- "community": 103,
- "norm_label": "7. data flow \u2014 one real query",
- "id": "specs_2026_06_22_sandbox_mcp_design_7_data_flow_one_real_query"
+ "label": "Covers lines 77, 83-84, 86: GET /prometheus/history/{sessionId}.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L910",
+ "community": 208,
+ "norm_label": "covers lines 77, 83-84, 86: get /prometheus/history/{sessionid}.",
+ "id": "tests_test_controllers_coverage_rationale_910"
},
{
- "label": "code:block5 (User: \"Show me the correlation between PETR4 and the oil sec)",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L222",
- "community": 103,
- "norm_label": "code:block5 (user: \"show me the correlation between petr4 and the oil sec)",
- "id": "specs_2026_06_22_sandbox_mcp_design_codeblock_5"
+ "label": "Covers lines 77, 86: session found with history.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L913",
+ "community": 208,
+ "norm_label": "covers lines 77, 86: session found with history.",
+ "id": "tests_test_controllers_coverage_rationale_913"
},
{
- "label": "8. Build Sequence (4 phases, each independently shippable)",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L244",
- "community": 233,
- "norm_label": "8. build sequence (4 phases, each independently shippable)",
- "id": "specs_2026_06_22_sandbox_mcp_design_8_build_sequence_4_phases_each_independently_shippable"
+ "label": "Covers lines 83-84: session not found.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L957",
+ "community": 208,
+ "norm_label": "covers lines 83-84: session not found.",
+ "id": "tests_test_controllers_coverage_rationale_957"
},
{
- "label": "Phase 0 \u2014 Sandbox foundation (1-2 days, no user-facing change)",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L246",
- "community": 233,
- "norm_label": "phase 0 \u2014 sandbox foundation (1-2 days, no user-facing change)",
- "id": "specs_2026_06_22_sandbox_mcp_design_phase_0_sandbox_foundation_1_2_days_no_user_facing_change"
+ "label": "Covers lines 95-98: DELETE /prometheus/sessions/{sessionId}.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L992",
+ "community": 474,
+ "norm_label": "covers lines 95-98: delete /prometheus/sessions/{sessionid}.",
+ "id": "tests_test_controllers_coverage_rationale_992"
},
{
- "label": "Phase 1 \u2014 MCP exposure of STOCKS_API (1 day)",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L258",
- "community": 233,
- "norm_label": "phase 1 \u2014 mcp exposure of stocks_api (1 day)",
- "id": "specs_2026_06_22_sandbox_mcp_design_phase_1_mcp_exposure_of_stocks_api_1_day"
+ "label": "Covers lines 95-98: session deleted.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L995",
+ "community": 474,
+ "norm_label": "covers lines 95-98: session deleted.",
+ "id": "tests_test_controllers_coverage_rationale_995"
},
{
- "label": "Phase 2 \u2014 Refactor PROMETHEUS to agentic (3-5 days, the big one)",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L264",
- "community": 233,
- "norm_label": "phase 2 \u2014 refactor prometheus to agentic (3-5 days, the big one)",
- "id": "specs_2026_06_22_sandbox_mcp_design_phase_2_refactor_prometheus_to_agentic_3_5_days_the_big_one"
+ "label": "Covers lines 96-97: session not found.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1005",
+ "community": 474,
+ "norm_label": "covers lines 96-97: session not found.",
+ "id": "tests_test_controllers_coverage_rationale_1005"
},
{
- "label": "Phase 3 \u2014 Hardening (1-2 days, can ship incrementally)",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L276",
- "community": 233,
- "norm_label": "phase 3 \u2014 hardening (1-2 days, can ship incrementally)",
- "id": "specs_2026_06_22_sandbox_mcp_design_phase_3_hardening_1_2_days_can_ship_incrementally"
+ "label": "Covers lines 114-115, 117-120, 122, 125: POST /prometheus/chat.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1015",
+ "community": 101,
+ "norm_label": "covers lines 114-115, 117-120, 122, 125: post /prometheus/chat.",
+ "id": "tests_test_controllers_coverage_rationale_1015"
},
{
- "label": "9. Security",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L285",
- "community": 103,
- "norm_label": "9. security",
- "id": "specs_2026_06_22_sandbox_mcp_design_9_security"
+ "label": "Covers lines 111-112: sessionId is None, new session created.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1018",
+ "community": 16,
+ "norm_label": "covers lines 111-112: sessionid is none, new session created.",
+ "id": "tests_test_controllers_coverage_rationale_1018"
},
{
- "label": "10. Performance",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L308",
- "community": 103,
- "norm_label": "10. performance",
- "id": "specs_2026_06_22_sandbox_mcp_design_10_performance"
+ "label": "Covers lines 114-115, 117-120, 122: existing session with verified ownership.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1036",
+ "community": 101,
+ "norm_label": "covers lines 114-115, 117-120, 122: existing session with verified ownership.",
+ "id": "tests_test_controllers_coverage_rationale_1036"
},
{
- "label": "11. Testing",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L324",
- "community": 103,
- "norm_label": "11. testing",
- "id": "specs_2026_06_22_sandbox_mcp_design_11_testing"
+ "label": "Covers lines 114-115: session ownership check fails.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1078",
+ "community": 101,
+ "norm_label": "covers lines 114-115: session ownership check fails.",
+ "id": "tests_test_controllers_coverage_rationale_1078"
},
{
- "label": "12. Risks",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L337",
- "community": 103,
- "norm_label": "12. risks",
- "id": "specs_2026_06_22_sandbox_mcp_design_12_risks"
+ "label": "Generic Exception in chat propagates to FastAPI's default 500 handler.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1115",
+ "community": 101,
+ "norm_label": "generic exception in chat propagates to fastapi's default 500 handler.",
+ "id": "tests_test_controllers_coverage_rationale_1115"
},
{
- "label": "13. Out of Scope (YAGNI)",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L351",
- "community": 103,
- "norm_label": "13. out of scope (yagni)",
- "id": "specs_2026_06_22_sandbox_mcp_design_13_out_of_scope_yagni"
+ "label": "Covers line 18: GET /stocks/health.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1133",
+ "community": 498,
+ "norm_label": "covers line 18: get /stocks/health.",
+ "id": "tests_test_controllers_coverage_rationale_1133"
},
{
- "label": "14. Open Questions",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L364",
- "community": 103,
- "norm_label": "14. open questions",
- "id": "specs_2026_06_22_sandbox_mcp_design_14_open_questions"
+ "label": "Covers line 35: GET /stocks/historical.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1147",
+ "community": 14,
+ "norm_label": "covers line 35: get /stocks/historical.",
+ "id": "tests_test_controllers_coverage_rationale_1147"
},
{
- "label": "Appendix A: Codebase Findings",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L374",
- "community": 123,
- "norm_label": "appendix a: codebase findings",
- "id": "specs_2026_06_22_sandbox_mcp_design_appendix_a_codebase_findings"
+ "label": "Covers line 47: GET /stocks/fundamental.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1161",
+ "community": 14,
+ "norm_label": "covers line 47: get /stocks/fundamental.",
+ "id": "tests_test_controllers_coverage_rationale_1161"
},
{
- "label": "Critical path correction",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L376",
- "community": 123,
- "norm_label": "critical path correction",
- "id": "specs_2026_06_22_sandbox_mcp_design_critical_path_correction"
+ "label": "Covers lines 52-53, 57-63: GET /stocks/key/generate. NOTE: stocksapi_cont",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1175",
+ "community": 14,
+ "norm_label": "covers lines 52-53, 57-63: get /stocks/key/generate. note: stocksapi_cont",
+ "id": "tests_test_controllers_coverage_rationale_1175"
},
{
- "label": "Project structure (key files only)",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L380",
- "community": 123,
- "norm_label": "project structure (key files only)",
- "id": "specs_2026_06_22_sandbox_mcp_design_project_structure_key_files_only"
+ "label": "Covers lines 52-53: user without GENERATE_API_KEYS permission gets 403.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1183",
+ "community": 14,
+ "norm_label": "covers lines 52-53: user without generate_api_keys permission gets 403.",
+ "id": "tests_test_controllers_coverage_rationale_1183"
},
{
- "label": "code:block6 (D:\\Repositories\\server\\)",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L381",
- "community": 123,
- "norm_label": "code:block6 (d:\\repositories\\server\\)",
- "id": "specs_2026_06_22_sandbox_mcp_design_codeblock_6"
+ "label": "Covers lines 57-60: admin bypasses permission check and generates key.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1191",
+ "community": 14,
+ "norm_label": "covers lines 57-60: admin bypasses permission check and generates key.",
+ "id": "tests_test_controllers_coverage_rationale_1191"
},
{
- "label": "STOCKS_API \u2014 endpoints (MCP candidates)",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L413",
- "community": 123,
- "norm_label": "stocks_api \u2014 endpoints (mcp candidates)",
- "id": "specs_2026_06_22_sandbox_mcp_design_stocks_api_endpoints_mcp_candidates"
+ "label": "Covers lines 13, 17, 19-20, 22-27: UserManager.addRoleToUser.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1218",
+ "community": 528,
+ "norm_label": "covers lines 13, 17, 19-20, 22-27: usermanager.addroletouser.",
+ "id": "tests_test_controllers_coverage_rationale_1218"
},
{
- "label": "Prometheus controller \u2014 endpoints (existing)",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L424",
- "community": 123,
- "norm_label": "prometheus controller \u2014 endpoints (existing)",
- "id": "specs_2026_06_22_sandbox_mcp_design_prometheus_controller_endpoints_existing"
+ "label": "Covers lines 17, 22-27: user found, role not present, role added.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1221",
+ "community": 528,
+ "norm_label": "covers lines 17, 22-27: user found, role not present, role added.",
+ "id": "tests_test_controllers_coverage_rationale_1221"
},
{
- "label": "The 4-stage pipeline (current `generation.py`)",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L436",
- "community": 123,
- "norm_label": "the 4-stage pipeline (current `generation.py`)",
- "id": "specs_2026_06_22_sandbox_mcp_design_the_4_stage_pipeline_current_generation_py"
+ "label": "Covers line 27: user already has the role.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1238",
+ "community": 528,
+ "norm_label": "covers line 27: user already has the role.",
+ "id": "tests_test_controllers_coverage_rationale_1238"
},
{
- "label": "Key config patterns",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L448",
- "community": 123,
- "norm_label": "key config patterns",
- "id": "specs_2026_06_22_sandbox_mcp_design_key_config_patterns"
+ "label": "Covers lines 19-20: user not found raises 404.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1253",
+ "community": 528,
+ "norm_label": "covers lines 19-20: user not found raises 404.",
+ "id": "tests_test_controllers_coverage_rationale_1253"
},
{
- "label": "Two MySQL engines",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L454",
- "community": 123,
- "norm_label": "two mysql engines",
- "id": "specs_2026_06_22_sandbox_mcp_design_two_mysql_engines"
+ "label": "Covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: UserManager.getC",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1265",
+ "community": 493,
+ "norm_label": "covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: usermanager.getc",
+ "id": "tests_test_controllers_coverage_rationale_1265"
},
{
- "label": "code:python (engine = create_engine(...) # user_db (mansa_db))",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L456",
- "community": 123,
- "norm_label": "code:python (engine = create_engine(...) # user_db (mansa_db))",
- "id": "specs_2026_06_22_sandbox_mcp_design_codeblock_7"
+ "label": "Covers lines 36-38, 40-44, 46, 48-49, 51, 58-59, 61: successful user retrieval.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1272",
+ "community": 493,
+ "norm_label": "covers lines 36-38, 40-44, 46, 48-49, 51, 58-59, 61: successful user retrieval.",
+ "id": "tests_test_controllers_coverage_rationale_1272"
},
{
- "label": "Port collision in current setup",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L466",
- "community": 123,
- "norm_label": "port collision in current setup",
- "id": "specs_2026_06_22_sandbox_mcp_design_port_collision_in_current_setup"
- },
- {
- "label": "Existing dependencies (from `requirements.txt`)",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L470",
- "community": 123,
- "norm_label": "existing dependencies (from `requirements.txt`)",
- "id": "specs_2026_06_22_sandbox_mcp_design_existing_dependencies_from_requirements_txt"
- },
- {
- "label": "Appendix B: Research References",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L479",
- "community": 103,
- "norm_label": "appendix b: research references",
- "id": "specs_2026_06_22_sandbox_mcp_design_appendix_b_research_references"
+ "label": "Covers lines 42-44: session validation fails.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1297",
+ "community": 528,
+ "norm_label": "covers lines 42-44: session validation fails.",
+ "id": "tests_test_controllers_coverage_rationale_1297"
},
{
- "label": "Status",
- "file_type": "document",
- "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
- "source_location": "L489",
- "community": 103,
- "norm_label": "status",
- "id": "specs_2026_06_22_sandbox_mcp_design_status"
+ "label": "Covers lines 48-49: user not in DB.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1313",
+ "community": 493,
+ "norm_label": "covers lines 48-49: user not in db.",
+ "id": "tests_test_controllers_coverage_rationale_1313"
},
{
- "label": "filterCotationData()",
- "file_type": "code",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L49",
- "community": 63,
- "norm_label": "filtercotationdata()",
- "id": "stocks_api_query_filtercotationdata"
+ "label": "Covers lines 65-67: unexpected exception.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1330",
+ "community": 493,
+ "norm_label": "covers lines 65-67: unexpected exception.",
+ "id": "tests_test_controllers_coverage_rationale_1330"
},
{
- "label": "Tests for queryCotations and /stocks/cotations.",
+ "label": "Covers lines 37-38, 46, 51, 58 (sessionId is None): skips session validation.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1014",
- "community": 10,
- "norm_label": "tests for querycotations and /stocks/cotations.",
- "id": "tests_test_stocks_api_coverage_rationale_1014"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1347",
+ "community": 493,
+ "norm_label": "covers lines 37-38, 46, 51, 58 (sessionid is none): skips session validation.",
+ "id": "tests_test_controllers_coverage_rationale_1347"
},
{
- "label": "2 tickers x 2 rows. Rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. M",
+ "label": "Covers line 16: empty password raises ValueError.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1026",
- "community": 10,
- "norm_label": "2 tickers x 2 rows. rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. m",
- "id": "tests_test_stocks_api_coverage_rationale_1026"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1371",
+ "community": 525,
+ "norm_label": "covers line 16: empty password raises valueerror.",
+ "id": "tests_test_controllers_coverage_rationale_1371"
},
{
- "label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each JSON list.",
+ "label": "Covers lines 45-51: verifyAccessToken with expired and invalid tokens.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1084",
- "community": 10,
- "norm_label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each json list.",
- "id": "tests_test_stocks_api_coverage_rationale_1084"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1381",
+ "community": 525,
+ "norm_label": "covers lines 45-51: verifyaccesstoken with expired and invalid tokens.",
+ "id": "tests_test_controllers_coverage_rationale_1381"
},
{
- "label": "Hit the actual /stocks/cotations HTTP endpoint with adjusted=false.",
+ "label": "Covers lines 48-49: jwt.ExpiredSignatureError.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1170",
- "community": 491,
- "norm_label": "hit the actual /stocks/cotations http endpoint with adjusted=false.",
- "id": "tests_test_stocks_api_coverage_rationale_1170"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1384",
+ "community": 525,
+ "norm_label": "covers lines 48-49: jwt.expiredsignatureerror.",
+ "id": "tests_test_controllers_coverage_rationale_1384"
},
{
- "label": "Tests for queryCotations and /stocks/cotations.",
+ "label": "Covers lines 50-51: jwt.InvalidTokenError.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L985",
- "community": 10,
- "norm_label": "tests for querycotations and /stocks/cotations.",
- "id": "tests_test_stocks_api_coverage_rationale_985"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1400",
+ "community": 519,
+ "norm_label": "covers lines 50-51: jwt.invalidtokenerror.",
+ "id": "tests_test_controllers_coverage_rationale_1400"
},
{
- "label": "2 tickers x 2 rows. Rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. M",
+ "label": "Covers line 67: extractTokenPayload re-raises HTTPException from verifyAccessTok",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L997",
- "community": 10,
- "norm_label": "2 tickers x 2 rows. rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. m",
- "id": "tests_test_stocks_api_coverage_rationale_997"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1412",
+ "community": 114,
+ "norm_label": "covers line 67: extracttokenpayload re-raises httpexception from verifyaccesstok",
+ "id": "tests_test_controllers_coverage_rationale_1412"
},
{
- "label": "4 rows for 2 tickers -> 2 results, one per ticker, both with latest TIME.",
+ "label": "Covers line 67: HTTPException raised by verifyAccessToken is re-raised.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1043",
- "community": 10,
- "norm_label": "4 rows for 2 tickers -> 2 results, one per ticker, both with latest time.",
- "id": "tests_test_stocks_api_coverage_rationale_1043"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1415",
+ "community": 114,
+ "norm_label": "covers line 67: httpexception raised by verifyaccesstoken is re-raised.",
+ "id": "tests_test_controllers_coverage_rationale_1415"
},
{
- "label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each JSON list.",
+ "label": "Covers line 13: UserManager.__init__.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1055",
- "community": 10,
- "norm_label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each json list.",
- "id": "tests_test_stocks_api_coverage_rationale_1055"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1431",
+ "community": 498,
+ "norm_label": "covers line 13: usermanager.__init__.",
+ "id": "tests_test_controllers_coverage_rationale_1431"
},
{
- "label": "Hit the actual /stocks/cotations HTTP endpoint with adjusted=false.",
+ "label": "GET /fundamental?fields=P/L must not return 422 (validation error).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1141",
- "community": 491,
- "norm_label": "hit the actual /stocks/cotations http endpoint with adjusted=false.",
- "id": "tests_test_stocks_api_coverage_rationale_1141"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L56",
+ "community": 129,
+ "norm_label": "get /fundamental?fields=p/l must not return 422 (validation error).",
+ "id": "tests_test_stocks_api_fields_rationale_56"
},
{
- "label": "_parseCotationDate()",
- "file_type": "code",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L45",
- "community": 63,
- "norm_label": "_parsecotationdate()",
- "id": "stocks_api_query_parsecotationdate"
+ "label": "GET /fundamental?fields=MARG. LIQUIDA must not return 422.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L61",
+ "community": 167,
+ "norm_label": "get /fundamental?fields=marg. liquida must not return 422.",
+ "id": "tests_test_stocks_api_fields_rationale_61"
},
{
- "label": "_filterCotationByDate()",
- "file_type": "code",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L55",
- "community": 63,
- "norm_label": "_filtercotationbydate()",
- "id": "stocks_api_query_filtercotationbydate"
+ "label": "GET /fundamental?fields=P/L,ROE,DY must not return 422.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L66",
+ "community": 166,
+ "norm_label": "get /fundamental?fields=p/l,roe,dy must not return 422.",
+ "id": "tests_test_stocks_api_fields_rationale_66"
},
{
- "label": ".queryRealtimeCotation()",
- "file_type": "code",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L344",
- "community": 63,
- "norm_label": ".queryrealtimecotation()",
- "id": "stocks_api_query_stocksquerymanager_queryrealtimecotation"
+ "label": "GET /historical?fields=P/L must not return 422.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L75",
+ "community": 129,
+ "norm_label": "get /historical?fields=p/l must not return 422.",
+ "id": "tests_test_stocks_api_fields_rationale_75"
},
{
- "label": "Parse DD-MM-YYYY from COTACAO 10Y JSON DATA field. ponytail: stdlib datetime onl",
+ "label": "GET /historical?fields=MARG. LIQUIDA must not return 422.",
"file_type": "rationale",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L46",
- "community": 63,
- "norm_label": "parse dd-mm-yyyy from cotacao 10y json data field. ponytail: stdlib datetime onl",
- "id": "stocks_api_query_rationale_46"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L80",
+ "community": 167,
+ "norm_label": "get /historical?fields=marg. liquida must not return 422.",
+ "id": "tests_test_stocks_api_fields_rationale_80"
},
{
- "label": "Filter COTACAO 10Y JSON entries by their inner DATA field (DD-MM-YYYY).",
+ "label": "GET /historical?fields=LUCRO LIQUIDO,P/L must not return 422.",
"file_type": "rationale",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L56",
- "community": 63,
- "norm_label": "filter cotacao 10y json entries by their inner data field (dd-mm-yyyy).",
- "id": "stocks_api_query_rationale_56"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L85",
+ "community": 166,
+ "norm_label": "get /historical?fields=lucro liquido,p/l must not return 422.",
+ "id": "tests_test_stocks_api_fields_rationale_85"
},
{
- "label": "Fetch live prices for B3 tickers via yfinance. B3 tickers must match",
+ "label": "When tickers have different date coverage, each should get its closest snapshot.",
"file_type": "rationale",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L345",
- "community": 63,
- "norm_label": "fetch live prices for b3 tickers via yfinance. b3 tickers must match",
- "id": "stocks_api_query_rationale_345"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L94",
+ "community": 191,
+ "norm_label": "when tickers have different date coverage, each should get its closest snapshot.",
+ "id": "tests_test_stocks_api_fields_rationale_94"
},
{
- "label": "getRealtimeCotation()",
+ "label": ".putCache()",
"file_type": "code",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L63",
- "community": 169,
- "norm_label": "getrealtimecotation()",
- "id": "controller_stocksapi_controller_getrealtimecotation"
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L101",
+ "community": 82,
+ "norm_label": ".putcache()",
+ "id": "stocks_api_cache_stockscachemanager_putcache"
},
{
- "label": ".test_cotations_with_limit()",
+ "label": ".clearQueryCache()",
"file_type": "code",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1122",
- "community": 10,
- "norm_label": ".test_cotations_with_limit()",
- "id": "tests_test_stocks_api_coverage_testquerycotations_test_cotations_with_limit"
- },
- {
- "label": "Hit the actual /stocks/cotations HTTP endpoint with adjusted=false.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1148",
- "community": 491,
- "norm_label": "hit the actual /stocks/cotations http endpoint with adjusted=false.",
- "id": "tests_test_stocks_api_coverage_rationale_1148"
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L107",
+ "community": 42,
+ "norm_label": ".clearquerycache()",
+ "id": "stocks_api_cache_stockscachemanager_clearquerycache"
},
{
- "label": ".__getitem__()",
+ "label": "parseCotationDates()",
"file_type": "code",
- "source_file": "config.py",
- "source_location": "L47",
- "community": 102,
- "norm_label": ".__getitem__()",
- "id": "server_config_mysqlsettings_getitem"
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L42",
+ "community": 63,
+ "norm_label": "parsecotationdates()",
+ "id": "stocks_api_query_parsecotationdates"
},
{
- "label": "test_cache_load.py",
+ "label": "TestCacheLRUEviction",
"file_type": "code",
- "source_file": "test_cache_load.py",
- "source_location": "L1",
- "community": 427,
- "norm_label": "test_cache_load.py",
- "id": "test_cache_load_py"
+ "source_file": "tests/test_cache.py",
+ "source_location": "L14",
+ "community": 95,
+ "norm_label": "testcachelrueviction",
+ "id": "tests_test_cache_testcachelrueviction"
},
{
- "label": ".__init__()",
+ "label": "._make_manager()",
"file_type": "code",
- "source_file": "main/app/prometheus/chat.py",
- "source_location": "L14",
- "community": 68,
- "norm_label": ".__init__()",
- "id": "prometheus_chat_prometheuschatmanager_init"
+ "source_file": "tests/test_cache.py",
+ "source_location": "L17",
+ "community": 95,
+ "norm_label": "._make_manager()",
+ "id": "tests_test_cache_testcachelrueviction_make_manager"
},
{
- "label": "SessionProxy",
+ "label": ".test_query_cache_starts_empty()",
"file_type": "code",
- "source_file": "main/app/prometheus/generation.py",
- "source_location": "L19",
- "community": 215,
- "norm_label": "sessionproxy",
- "id": "prometheus_generation_sessionproxy"
+ "source_file": "tests/test_cache.py",
+ "source_location": "L22",
+ "community": 95,
+ "norm_label": ".test_query_cache_starts_empty()",
+ "id": "tests_test_cache_testcachelrueviction_test_query_cache_starts_empty"
},
{
- "label": ".get()",
+ "label": ".test_query_cache_max_size_constant()",
"file_type": "code",
- "source_file": "main/app/prometheus/generation.py",
- "source_location": "L20",
- "community": 215,
- "norm_label": ".get()",
- "id": "prometheus_generation_sessionproxy_get"
+ "source_file": "tests/test_cache.py",
+ "source_location": "L26",
+ "community": 95,
+ "norm_label": ".test_query_cache_max_size_constant()",
+ "id": "tests_test_cache_testcachelrueviction_test_query_cache_max_size_constant"
},
{
- "label": ".post()",
+ "label": ".test_lru_eviction_when_over_limit()",
"file_type": "code",
- "source_file": "main/app/prometheus/generation.py",
- "source_location": "L23",
- "community": 215,
- "norm_label": ".post()",
- "id": "prometheus_generation_sessionproxy_post"
+ "source_file": "tests/test_cache.py",
+ "source_location": "L29",
+ "community": 95,
+ "norm_label": ".test_lru_eviction_when_over_limit()",
+ "id": "tests_test_cache_testcachelrueviction_test_lru_eviction_when_over_limit"
},
{
- "label": "normalizeColumns()",
+ "label": ".test_move_to_end_on_cache_hit()",
"file_type": "code",
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L27",
- "community": 477,
- "norm_label": "normalizecolumns()",
- "id": "stocks_api_util_normalizecolumns"
+ "source_file": "tests/test_cache.py",
+ "source_location": "L50",
+ "community": 95,
+ "norm_label": ".test_move_to_end_on_cache_hit()",
+ "id": "tests_test_cache_testcachelrueviction_test_move_to_end_on_cache_hit"
},
{
- "label": "_verify_session_ownership()",
+ "label": ".test_clear_query_cache()",
"file_type": "code",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L22",
- "community": 84,
- "norm_label": "_verify_session_ownership()",
- "id": "controller_prometheus_controller_verify_session_ownership"
+ "source_file": "tests/test_cache.py",
+ "source_location": "L68",
+ "community": 95,
+ "norm_label": ".test_clear_query_cache()",
+ "id": "tests_test_cache_testcachelrueviction_test_clear_query_cache"
},
{
- "label": "Verify the user owns the session, raise 403 otherwise.",
- "file_type": "rationale",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L23",
- "community": 84,
- "norm_label": "verify the user owns the session, raise 403 otherwise.",
- "id": "controller_prometheus_controller_rationale_23"
+ "label": ".test_none_columns_key_is_none()",
+ "file_type": "code",
+ "source_file": "tests/test_cache.py",
+ "source_location": "L77",
+ "community": 95,
+ "norm_label": ".test_none_columns_key_is_none()",
+ "id": "tests_test_cache_testcachelrueviction_test_none_columns_key_is_none"
},
{
- "label": "apiKeyTest()",
+ "label": ".test_columns_key_is_tuple()",
"file_type": "code",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L23",
- "community": 169,
- "norm_label": "apikeytest()",
- "id": "controller_stocksapi_controller_apikeytest"
+ "source_file": "tests/test_cache.py",
+ "source_location": "L83",
+ "community": 95,
+ "norm_label": ".test_columns_key_is_tuple()",
+ "id": "tests_test_cache_testcachelrueviction_test_columns_key_is_tuple"
},
{
- "label": ".__repr__()",
+ "label": "TestColumnValidator",
"file_type": "code",
- "source_file": "main/models/stocksapi_key.py",
- "source_location": "L21",
- "community": 37,
- "norm_label": ".__repr__()",
- "id": "models_stocksapi_key_stocksapikey_repr"
+ "source_file": "tests/test_cache.py",
+ "source_location": "L89",
+ "community": 95,
+ "norm_label": "testcolumnvalidator",
+ "id": "tests_test_cache_testcolumnvalidator"
},
{
- "label": ".__repr__()",
+ "label": ".test_valid_column_names()",
"file_type": "code",
- "source_file": "main/models/user.py",
- "source_location": "L20",
- "community": 61,
- "norm_label": ".__repr__()",
- "id": "models_user_user_repr"
+ "source_file": "tests/test_cache.py",
+ "source_location": "L90",
+ "community": 95,
+ "norm_label": ".test_valid_column_names()",
+ "id": "tests_test_cache_testcolumnvalidator_test_valid_column_names"
},
{
- "label": ".removeRole()",
+ "label": ".test_invalid_column_names()",
"file_type": "code",
- "source_file": "main/models/user.py",
- "source_location": "L36",
- "community": 61,
- "norm_label": ".removerole()",
- "id": "models_user_user_removerole"
+ "source_file": "tests/test_cache.py",
+ "source_location": "L97",
+ "community": 95,
+ "norm_label": ".test_invalid_column_names()",
+ "id": "tests_test_cache_testcolumnvalidator_test_invalid_column_names"
},
{
- "label": ".__repr__()",
+ "label": ".test_empty_string()",
"file_type": "code",
- "source_file": "main/models/user_session.py",
- "source_location": "L23",
- "community": 44,
- "norm_label": ".__repr__()",
- "id": "models_user_session_usersession_repr"
+ "source_file": "tests/test_cache.py",
+ "source_location": "L103",
+ "community": 95,
+ "norm_label": ".test_empty_string()",
+ "id": "tests_test_cache_testcolumnvalidator_test_empty_string"
},
{
- "label": ".toDict()",
+ "label": "TestCacheTTLLogic",
"file_type": "code",
- "source_file": "main/models/user_session.py",
- "source_location": "L26",
- "community": 44,
- "norm_label": ".todict()",
- "id": "models_user_session_usersession_todict"
+ "source_file": "tests/test_cache.py",
+ "source_location": "L107",
+ "community": 95,
+ "norm_label": "testcachettllogic",
+ "id": "tests_test_cache_testcachettllogic"
},
{
- "label": "cleanup()",
+ "label": "._make_manager()",
"file_type": "code",
- "source_file": "main/utils/http_session.py",
- "source_location": "L18",
- "community": 500,
- "norm_label": "cleanup()",
- "id": "utils_http_session_cleanup"
+ "source_file": "tests/test_cache.py",
+ "source_location": "L108",
+ "community": 95,
+ "norm_label": "._make_manager()",
+ "id": "tests_test_cache_testcachettllogic_make_manager"
},
{
- "label": "pagination.py",
+ "label": ".test_expired_entry_detected()",
"file_type": "code",
- "source_file": "main/utils/pagination.py",
- "source_location": "L1",
- "community": 132,
- "norm_label": "pagination.py",
- "id": "main_utils_pagination_py"
+ "source_file": "tests/test_cache.py",
+ "source_location": "L112",
+ "community": 95,
+ "norm_label": ".test_expired_entry_detected()",
+ "id": "tests_test_cache_testcachettllogic_test_expired_entry_detected"
},
{
- "label": "PaginationParams",
+ "label": ".test_fresh_entry_detected()",
"file_type": "code",
- "source_file": "main/utils/pagination.py",
- "source_location": "L4",
- "community": 132,
- "norm_label": "paginationparams",
- "id": "utils_pagination_paginationparams"
+ "source_file": "tests/test_cache.py",
+ "source_location": "L123",
+ "community": 95,
+ "norm_label": ".test_fresh_entry_detected()",
+ "id": "tests_test_cache_testcachettllogic_test_fresh_entry_detected"
},
{
- "label": ".__init__()",
- "file_type": "code",
- "source_file": "main/utils/pagination.py",
- "source_location": "L5",
- "community": 132,
- "norm_label": ".__init__()",
- "id": "utils_pagination_paginationparams_init"
+ "label": "Tests for StocksCacheManager queryCache LRU eviction.",
+ "file_type": "rationale",
+ "source_file": "tests/test_cache.py",
+ "source_location": "L15",
+ "community": 95,
+ "norm_label": "tests for stockscachemanager querycache lru eviction.",
+ "id": "tests_test_cache_rationale_15"
},
{
- "label": "Set required env vars before test collection. config.py eagerly instantia",
+ "label": "Create a StocksCacheManager with a mock DB engine.",
"file_type": "rationale",
- "source_file": "tests/conftest.py",
- "source_location": "L9",
- "community": 527,
- "norm_label": "set required env vars before test collection. config.py eagerly instantia",
- "id": "tests_conftest_rationale_9"
+ "source_file": "tests/test_cache.py",
+ "source_location": "L18",
+ "community": 95,
+ "norm_label": "create a stockscachemanager with a mock db engine.",
+ "id": "tests_test_cache_rationale_18"
},
{
- "label": "TestClient with all routers mounted \u2014 no lifespan (no DB/service init). O",
+ "label": "When columns is None, cache key should be None.",
"file_type": "rationale",
- "source_file": "tests/conftest.py",
- "source_location": "L75",
- "community": 527,
- "norm_label": "testclient with all routers mounted \u2014 no lifespan (no db/service init). o",
- "id": "tests_conftest_rationale_75"
+ "source_file": "tests/test_cache.py",
+ "source_location": "L78",
+ "community": 95,
+ "norm_label": "when columns is none, cache key should be none.",
+ "id": "tests_test_cache_rationale_78"
},
{
- "label": "dbSession()",
+ "label": ".test_putCache_adds_entry_and_evicts_when_full()",
"file_type": "code",
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L20",
- "community": 26,
- "norm_label": "dbsession()",
- "id": "tests_test_api_key_quota_atomic_dbsession"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L70",
+ "community": 3,
+ "norm_label": ".test_putcache_adds_entry_and_evicts_when_full()",
+ "id": "tests_test_stocks_api_coverage_teststockscachemanager_test_putcache_adds_entry_and_evicts_when_full"
},
{
- "label": "Create an in-memory SQLite database for testing.",
- "file_type": "rationale",
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L21",
- "community": 26,
- "norm_label": "create an in-memory sqlite database for testing.",
- "id": "tests_test_api_key_quota_atomic_rationale_21"
+ "label": ".test_clearQueryCache_empties_cache()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L89",
+ "community": 3,
+ "norm_label": ".test_clearquerycache_empties_cache()",
+ "id": "tests_test_stocks_api_coverage_teststockscachemanager_test_clearquerycache_empties_cache"
},
{
- "label": "Sample API key data for tests.",
- "file_type": "rationale",
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L34",
- "community": 26,
- "norm_label": "sample api key data for tests.",
- "id": "tests_test_api_key_quota_atomic_rationale_34"
+ "label": ".test_getCachedStocks_cache_hit()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L97",
+ "community": 3,
+ "norm_label": ".test_getcachedstocks_cache_hit()",
+ "id": "tests_test_stocks_api_coverage_teststockscachemanager_test_getcachedstocks_cache_hit"
},
{
- "label": "Test that atomic increment prevents race conditions.",
- "file_type": "rationale",
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L39",
- "community": 26,
- "norm_label": "test that atomic increment prevents race conditions.",
- "id": "tests_test_api_key_quota_atomic_rationale_39"
+ "label": ".test_getCachedStocks_cache_hit_expired()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L107",
+ "community": 3,
+ "norm_label": ".test_getcachedstocks_cache_hit_expired()",
+ "id": "tests_test_stocks_api_coverage_teststockscachemanager_test_getcachedstocks_cache_hit_expired"
},
{
- "label": "Test that normal quota check still works with atomic increment.",
- "file_type": "rationale",
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L42",
- "community": 26,
- "norm_label": "test that normal quota check still works with atomic increment.",
- "id": "tests_test_api_key_quota_atomic_rationale_42"
+ "label": ".test_getCachedStocks_force_refresh()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L127",
+ "community": 3,
+ "norm_label": ".test_getcachedstocks_force_refresh()",
+ "id": "tests_test_stocks_api_coverage_teststockscachemanager_test_getcachedstocks_force_refresh"
},
{
- "label": "Test that atomic increment prevents quota overuse.",
+ "label": "Tests covering key.py lines 15-40. Uses asyncio.run() since pytest-asyncio",
"file_type": "rationale",
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L68",
- "community": 26,
- "norm_label": "test that atomic increment prevents quota overuse.",
- "id": "tests_test_api_key_quota_atomic_rationale_68"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L229",
+ "community": 90,
+ "norm_label": "tests covering key.py lines 15-40. uses asyncio.run() since pytest-asyncio",
+ "id": "tests_test_stocks_api_coverage_rationale_229"
},
{
- "label": "Test that concurrent requests are properly serialized at DB level. Th",
+ "label": "When KEY.SYSTEM is falsy, return None (line 16).",
"file_type": "rationale",
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L104",
- "community": 26,
- "norm_label": "test that concurrent requests are properly serialized at db level. th",
- "id": "tests_test_api_key_quota_atomic_rationale_104"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L234",
+ "community": 409,
+ "norm_label": "when key.system is falsy, return none (line 16).",
+ "id": "tests_test_stocks_api_coverage_rationale_234"
},
{
- "label": "Test edge case: request exactly at quota limit.",
+ "label": "When key is required but not provided (line 19).",
"file_type": "rationale",
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L143",
- "community": 26,
- "norm_label": "test edge case: request exactly at quota limit.",
- "id": "tests_test_api_key_quota_atomic_rationale_143"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L245",
+ "community": 410,
+ "norm_label": "when key is required but not provided (line 19).",
+ "id": "tests_test_stocks_api_coverage_rationale_245"
},
{
- "label": "Test that invalid API key returns zero rows affected.",
+ "label": "When atomic UPDATE returns 0 rows and query finds no key -> 401.",
"file_type": "rationale",
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L166",
- "community": 26,
- "norm_label": "test that invalid api key returns zero rows affected.",
- "id": "tests_test_api_key_quota_atomic_rationale_166"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L258",
+ "community": 411,
+ "norm_label": "when atomic update returns 0 rows and query finds no key -> 401.",
+ "id": "tests_test_stocks_api_coverage_rationale_258"
},
{
- "label": "Test that multiple API keys have independent quotas.",
+ "label": "When atomic UPDATE returns 0 rows and query finds key at limit -> 429.",
"file_type": "rationale",
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L180",
- "community": 26,
- "norm_label": "test that multiple api keys have independent quotas.",
- "id": "tests_test_api_key_quota_atomic_rationale_180"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L275",
+ "community": 412,
+ "norm_label": "when atomic update returns 0 rows and query finds key at limit -> 429.",
+ "id": "tests_test_stocks_api_coverage_rationale_275"
},
{
- "label": "Test that increment works from zero usage.",
+ "label": "Happy path: atomic UPDATE succeeds, returns key (lines 22-33).",
"file_type": "rationale",
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L215",
- "community": 26,
- "norm_label": "test that increment works from zero usage.",
- "id": "tests_test_api_key_quota_atomic_rationale_215"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L293",
+ "community": 413,
+ "norm_label": "happy path: atomic update succeeds, returns key (lines 22-33).",
+ "id": "tests_test_stocks_api_coverage_rationale_293"
},
{
- "label": "Integration tests for the verifyAPIKey function.",
+ "label": "Generic DB exception should rollback and raise 500 (lines 38-40).",
"file_type": "rationale",
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L236",
- "community": 90,
- "norm_label": "integration tests for the verifyapikey function.",
- "id": "tests_test_api_key_quota_atomic_rationale_236"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L326",
+ "community": 414,
+ "norm_label": "generic db exception should rollback and raise 500 (lines 38-40).",
+ "id": "tests_test_stocks_api_coverage_rationale_326"
},
{
- "label": "Test API key verification with invalid key.",
+ "label": "Tests covering key.py line 44.",
"file_type": "rationale",
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L269",
- "community": 90,
- "norm_label": "test api key verification with invalid key.",
- "id": "tests_test_api_key_quota_atomic_rationale_269"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L341",
+ "community": 141,
+ "norm_label": "tests covering key.py line 44.",
+ "id": "tests_test_stocks_api_coverage_rationale_341"
},
{
- "label": "Test API key verification with missing key.",
+ "label": "Tests covering key.py lines 48-66.",
"file_type": "rationale",
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L280",
- "community": 90,
- "norm_label": "test api key verification with missing key.",
- "id": "tests_test_api_key_quota_atomic_rationale_280"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L364",
+ "community": 567,
+ "norm_label": "tests covering key.py lines 48-66.",
+ "id": "tests_test_stocks_api_coverage_rationale_364"
},
{
- "label": "Test that API key system can be disabled.",
+ "label": "New key created when no existing key for user (lines 57-59).",
"file_type": "rationale",
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L291",
- "community": 90,
- "norm_label": "test that api key system can be disabled.",
- "id": "tests_test_api_key_quota_atomic_rationale_291"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L368",
+ "community": 415,
+ "norm_label": "new key created when no existing key for user (lines 57-59).",
+ "id": "tests_test_stocks_api_coverage_rationale_368"
},
{
- "label": "._make_register_client()",
- "file_type": "code",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L150",
- "community": 120,
- "norm_label": "._make_register_client()",
- "id": "tests_test_controllers_coverage_testregisterendpoint_make_register_client"
+ "label": "Existing key is updated (lines 54-56).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L383",
+ "community": 416,
+ "norm_label": "existing key is updated (lines 54-56).",
+ "id": "tests_test_stocks_api_coverage_rationale_383"
},
{
- "label": "._make_login_client()",
- "file_type": "code",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L230",
- "community": 120,
- "norm_label": "._make_login_client()",
- "id": "tests_test_controllers_coverage_testloginendpoint_make_login_client"
+ "label": "Exception during creation triggers rollback and 500 (lines 64-66).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L400",
+ "community": 417,
+ "norm_label": "exception during creation triggers rollback and 500 (lines 64-66).",
+ "id": "tests_test_stocks_api_coverage_rationale_400"
},
{
- "label": "._make_logout_client()",
- "file_type": "code",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L283",
- "community": 120,
- "norm_label": "._make_logout_client()",
- "id": "tests_test_controllers_coverage_testlogoutendpoint_make_logout_client"
+ "label": "Tests covering query.py lines 22-48.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L418",
+ "community": 3,
+ "norm_label": "tests covering query.py lines 22-48.",
+ "id": "tests_test_stocks_api_coverage_rationale_418"
},
{
- "label": "._make_callback_client()",
- "file_type": "code",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L427",
- "community": 120,
- "norm_label": "._make_callback_client()",
- "id": "tests_test_controllers_coverage_testgooglecallback_make_callback_client"
+ "label": "replaceNan handles direct float NaN values (line 34).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L496",
+ "community": 488,
+ "norm_label": "replacenan handles direct float nan values (line 34).",
+ "id": "tests_test_stocks_api_coverage_rationale_496"
},
{
- "label": "TestStocksApiKeyTest",
- "file_type": "code",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1194",
- "community": 14,
- "norm_label": "teststocksapikeytest",
- "id": "tests_test_controllers_coverage_teststocksapikeytest"
+ "label": "Non-JSON-dict/list string is left as-is.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L510",
+ "community": 509,
+ "norm_label": "non-json-dict/list string is left as-is.",
+ "id": "tests_test_stocks_api_coverage_rationale_510"
},
{
- "label": ".test_api_key_valid()",
- "file_type": "code",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1197",
- "community": 14,
- "norm_label": ".test_api_key_valid()",
- "id": "tests_test_controllers_coverage_teststocksapikeytest_test_api_key_valid"
+ "label": "pd.NA is not a string, so lambda returns it unchanged.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L519",
+ "community": 520,
+ "norm_label": "pd.na is not a string, so lambda returns it unchanged.",
+ "id": "tests_test_stocks_api_coverage_rationale_519"
},
{
- "label": "Return (client, app) with stocks router and mocked deps.",
+ "label": "Regression: is_string_dtype fails when column has strings + None (pandas 2.x).",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L80",
- "community": 14,
- "norm_label": "return (client, app) with stocks router and mocked deps.",
- "id": "tests_test_controllers_coverage_rationale_80"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L528",
+ "community": 3,
+ "norm_label": "regression: is_string_dtype fails when column has strings + none (pandas 2.x).",
+ "id": "tests_test_stocks_api_coverage_rationale_528"
},
{
- "label": "Covers line 23: isSecureScheme helper.",
+ "label": "All four SPECIAL_COLS should parse correctly when mixed with None.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L107",
- "community": 58,
- "norm_label": "covers line 23: issecurescheme helper.",
- "id": "tests_test_controllers_coverage_rationale_107"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L550",
+ "community": 3,
+ "norm_label": "all four special_cols should parse correctly when mixed with none.",
+ "id": "tests_test_stocks_api_coverage_rationale_550"
},
{
- "label": "Covers line 28: GET /auth/health.",
+ "label": "Tests covering query.py lines 50-67.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L132",
- "community": 498,
- "norm_label": "covers line 28: get /auth/health.",
- "id": "tests_test_controllers_coverage_rationale_132"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L575",
+ "community": 3,
+ "norm_label": "tests covering query.py lines 50-67.",
+ "id": "tests_test_stocks_api_coverage_rationale_575"
},
{
- "label": "Covers lines 44-54, 63, 66-71: register success, ValueError, generic Exception.",
+ "label": "Tests covering query.py lines 77-132.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L148",
- "community": 120,
- "norm_label": "covers lines 44-54, 63, 66-71: register success, valueerror, generic exception.",
- "id": "tests_test_controllers_coverage_rationale_148"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L630",
+ "community": 21,
+ "norm_label": "tests covering query.py lines 77-132.",
+ "id": "tests_test_stocks_api_coverage_rationale_630"
},
{
- "label": "Covers lines 44-54, 63: successful registration + auto-login.",
+ "label": "Pass field name WITHOUT year (how categorizeColumns returns them).",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L165",
- "community": 428,
- "norm_label": "covers lines 44-54, 63: successful registration + auto-login.",
- "id": "tests_test_controllers_coverage_rationale_165"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L668",
+ "community": 222,
+ "norm_label": "pass field name without year (how categorizecolumns returns them).",
+ "id": "tests_test_stocks_api_coverage_rationale_668"
},
{
- "label": "Covers line 46: auto-login fails after registration.",
+ "label": "If an unexpected exception occurs in queryHistorical.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L191",
- "community": 429,
- "norm_label": "covers line 46: auto-login fails after registration.",
- "id": "tests_test_controllers_coverage_rationale_191"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L719",
+ "community": 28,
+ "norm_label": "if an unexpected exception occurs in queryhistorical.",
+ "id": "tests_test_stocks_api_coverage_rationale_719"
},
{
- "label": "Covers lines 87-93, 102: login success and failure paths.",
+ "label": "Invalid date format raises exception (line 132).",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L228",
- "community": 120,
- "norm_label": "covers lines 87-93, 102: login success and failure paths.",
- "id": "tests_test_controllers_coverage_rationale_228"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L737",
+ "community": 136,
+ "norm_label": "invalid date format raises exception (line 132).",
+ "id": "tests_test_stocks_api_coverage_rationale_737"
},
{
- "label": "Covers lines 87-93, 102: successful login.",
+ "label": "No historical columns at all -> inner 400 caught by outer except -> 500.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L245",
- "community": 430,
- "norm_label": "covers lines 87-93, 102: successful login.",
- "id": "tests_test_controllers_coverage_rationale_245"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L753",
+ "community": 127,
+ "norm_label": "no historical columns at all -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_753"
},
{
- "label": "Covers line 85: authenticateUser returns None.",
+ "label": "Historical query with a year range.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L267",
- "community": 431,
- "norm_label": "covers line 85: authenticateuser returns none.",
- "id": "tests_test_controllers_coverage_rationale_267"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L763",
+ "community": 28,
+ "norm_label": "historical query with a year range.",
+ "id": "tests_test_stocks_api_coverage_rationale_763"
},
{
- "label": "Covers lines 109, 115-125: logout with X-Access-Token header.",
+ "label": "Multiple search terms, all found in tickerIndex.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L298",
- "community": 432,
- "norm_label": "covers lines 109, 115-125: logout with x-access-token header.",
- "id": "tests_test_controllers_coverage_rationale_298"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L770",
+ "community": 28,
+ "norm_label": "multiple search terms, all found in tickerindex.",
+ "id": "tests_test_stocks_api_coverage_rationale_770"
},
{
- "label": "Covers lines 111-113: token extracted from Authorization Bearer header.",
+ "label": "Calling with all None returns 400.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L315",
- "community": 433,
- "norm_label": "covers lines 111-113: token extracted from authorization bearer header.",
- "id": "tests_test_controllers_coverage_rationale_315"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L778",
+ "community": 21,
+ "norm_label": "calling with all none returns 400.",
+ "id": "tests_test_stocks_api_coverage_rationale_778"
},
{
- "label": "Covers lines 122-124: sessionId is not a valid int, ValueError caught.",
+ "label": "Tests covering query.py lines 142-202.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L330",
- "community": 434,
- "norm_label": "covers lines 122-124: sessionid is not a valid int, valueerror caught.",
- "id": "tests_test_controllers_coverage_rationale_330"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L789",
+ "community": 21,
+ "norm_label": "tests covering query.py lines 142-202.",
+ "id": "tests_test_stocks_api_coverage_rationale_789"
},
{
- "label": "Covers lines 126-128: verifyAccessToken raises Exception.",
+ "label": "Invalid date -> inner 400 passes through (not wrapped as 500).",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L344",
- "community": 435,
- "norm_label": "covers lines 126-128: verifyaccesstoken raises exception.",
- "id": "tests_test_controllers_coverage_rationale_344"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L843",
+ "community": 39,
+ "norm_label": "invalid date -> inner 400 passes through (not wrapped as 500).",
+ "id": "tests_test_stocks_api_coverage_rationale_843"
},
{
- "label": "Covers lines 109-113: no token provided at all.",
+ "label": "search.strip() == '' should still dedup (line 181).",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L356",
- "community": 436,
- "norm_label": "covers lines 109-113: no token provided at all.",
- "id": "tests_test_controllers_coverage_rationale_356"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L896",
+ "community": 39,
+ "norm_label": "search.strip() == '' should still dedup (line 181).",
+ "id": "tests_test_stocks_api_coverage_rationale_896"
},
{
- "label": "Covers line 120: userId or sessionId missing from payload.",
+ "label": "DataFrame without TIME column.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L367",
- "community": 437,
- "norm_label": "covers line 120: userid or sessionid missing from payload.",
- "id": "tests_test_controllers_coverage_rationale_367"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L905",
+ "community": 39,
+ "norm_label": "dataframe without time column.",
+ "id": "tests_test_stocks_api_coverage_rationale_905"
},
{
- "label": "Covers lines 139, 141-149: googleLogin endpoint.",
+ "label": "Two dates in the range, both valid.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L379",
- "community": 498,
- "norm_label": "covers lines 139, 141-149: googlelogin endpoint.",
- "id": "tests_test_controllers_coverage_rationale_379"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L918",
+ "community": 39,
+ "norm_label": "two dates in the range, both valid.",
+ "id": "tests_test_stocks_api_coverage_rationale_918"
},
{
- "label": "Covers lines 139, 141-149: Google login with redirect_url query param.",
+ "label": "Single invalid date -> inner 400 passes through.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L383",
- "community": 438,
- "norm_label": "covers lines 139, 141-149: google login with redirect_url query param.",
- "id": "tests_test_controllers_coverage_rationale_383"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L932",
+ "community": 46,
+ "norm_label": "single invalid date -> inner 400 passes through.",
+ "id": "tests_test_stocks_api_coverage_rationale_932"
},
{
- "label": "Covers line 143: redirect_url falls back to referer header.",
+ "label": "Invalid fields now raise 400 with actionable error message.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L403",
- "community": 439,
- "norm_label": "covers line 143: redirect_url falls back to referer header.",
- "id": "tests_test_controllers_coverage_rationale_403"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L942",
+ "community": 46,
+ "norm_label": "invalid fields now raise 400 with actionable error message.",
+ "id": "tests_test_stocks_api_coverage_rationale_942"
},
{
- "label": "Covers lines 155-156, 158, 160-168, 170-177, 179-184, 186, 190-204: googleCallba",
+ "label": "Multiple search terms with tickerIndex.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L425",
- "community": 120,
- "norm_label": "covers lines 155-156, 158, 160-168, 170-177, 179-184, 186, 190-204: googlecallba",
- "id": "tests_test_controllers_coverage_rationale_425"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L959",
+ "community": 17,
+ "norm_label": "multiple search terms with tickerindex.",
+ "id": "tests_test_stocks_api_coverage_rationale_959"
},
{
- "label": "Covers lines 160-168, 170-177, 179-184, 186, 197-198: new Google user.",
+ "label": "Search with no index match falls back to string startswith.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L443",
- "community": 440,
- "norm_label": "covers lines 160-168, 170-177, 179-184, 186, 197-198: new google user.",
- "id": "tests_test_controllers_coverage_rationale_443"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L967",
+ "community": 17,
+ "norm_label": "search with no index match falls back to string startswith.",
+ "id": "tests_test_stocks_api_coverage_rationale_967"
},
{
- "label": "Covers line 165: verify_and_process returns None.",
+ "label": "len(dateRange) == 1 -> per-ticker closest snapshot.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L504",
- "community": 441,
- "norm_label": "covers line 165: verify_and_process returns none.",
- "id": "tests_test_controllers_coverage_rationale_504"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L975",
+ "community": 39,
+ "norm_label": "len(daterange) == 1 -> per-ticker closest snapshot.",
+ "id": "tests_test_stocks_api_coverage_rationale_975"
},
{
- "label": "Covers lines 190-195: state param triggers RedirectResponse.",
+ "label": "COTACAO 10Y PADRAO and COTACAO 10Y AJUSTADA belong to /cotations, not /fundament",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L521",
- "community": 442,
- "norm_label": "covers lines 190-195: state param triggers redirectresponse.",
- "id": "tests_test_controllers_coverage_rationale_521"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L990",
+ "community": 538,
+ "norm_label": "cotacao 10y padrao and cotacao 10y ajustada belong to /cotations, not /fundament",
+ "id": "tests_test_stocks_api_coverage_rationale_990"
},
{
- "label": "Covers line 19: GET /user/health.",
+ "label": "Regression: queryFundamental must not mutate the shared cache TIME column.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L567",
- "community": 498,
- "norm_label": "covers line 19: get /user/health.",
- "id": "tests_test_controllers_coverage_rationale_567"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1017",
+ "community": 46,
+ "norm_label": "regression: queryfundamental must not mutate the shared cache time column.",
+ "id": "tests_test_stocks_api_coverage_rationale_1017"
},
{
- "label": "Covers line 24: GET /user/me returns currentUser.",
+ "label": "Tests for queryCotations and /stocks/cotations.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L581",
- "community": 47,
- "norm_label": "covers line 24: get /user/me returns currentuser.",
- "id": "tests_test_controllers_coverage_rationale_581"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1060",
+ "community": 10,
+ "norm_label": "tests for querycotations and /stocks/cotations.",
+ "id": "tests_test_stocks_api_coverage_rationale_1060"
},
{
- "label": "Covers lines 31-32, 36, 43-44, 48: upgrade developer starter/enterprise.",
+ "label": "2 tickers x 2 rows. Rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. M",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L595",
- "community": 47,
- "norm_label": "covers lines 31-32, 36, 43-44, 48: upgrade developer starter/enterprise.",
- "id": "tests_test_controllers_coverage_rationale_595"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1072",
+ "community": 10,
+ "norm_label": "2 tickers x 2 rows. rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. m",
+ "id": "tests_test_stocks_api_coverage_rationale_1072"
},
{
- "label": "Covers lines 53-54, 56: admin access granted / denied.",
+ "label": "4 rows for 2 tickers -> 2 results, one per ticker, both with latest TIME.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L635",
- "community": 47,
- "norm_label": "covers lines 53-54, 56: admin access granted / denied.",
- "id": "tests_test_controllers_coverage_rationale_635"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1118",
+ "community": 10,
+ "norm_label": "4 rows for 2 tickers -> 2 results, one per ticker, both with latest time.",
+ "id": "tests_test_stocks_api_coverage_rationale_1118"
},
{
- "label": "Covers lines 66, 68-72, 74: GET /user/sessions.",
+ "label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each JSON list.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L654",
- "community": 178,
- "norm_label": "covers lines 66, 68-72, 74: get /user/sessions.",
- "id": "tests_test_controllers_coverage_rationale_654"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1130",
+ "community": 10,
+ "norm_label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each json list.",
+ "id": "tests_test_stocks_api_coverage_rationale_1130"
},
{
- "label": "Covers lines 66, 68-72, 74: full sessions listing.",
+ "label": "Hit the actual /stocks/cotations HTTP endpoint with adjusted=false.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L657",
- "community": 178,
- "norm_label": "covers lines 66, 68-72, 74: full sessions listing.",
- "id": "tests_test_controllers_coverage_rationale_657"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1216",
+ "community": 130,
+ "norm_label": "hit the actual /stocks/cotations http endpoint with adjusted=false.",
+ "id": "tests_test_stocks_api_coverage_rationale_1216"
},
{
- "label": "Covers lines 100-104, 106: GET /user/sessions/current.",
+ "label": "Tests for queryLiveCotation and /stocks/cotations/live.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L708",
- "community": 104,
- "norm_label": "covers lines 100-104, 106: get /user/sessions/current.",
- "id": "tests_test_controllers_coverage_rationale_708"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1243",
+ "community": 22,
+ "norm_label": "tests for querylivecotation and /stocks/cotations/live.",
+ "id": "tests_test_stocks_api_coverage_rationale_1243"
},
{
- "label": "Covers lines 100-104, 106: session found.",
+ "label": "GET /stocks/realtime-cotation without search returns 422.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L711",
- "community": 104,
- "norm_label": "covers lines 100-104, 106: session found.",
- "id": "tests_test_controllers_coverage_rationale_711"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1342",
+ "community": 22,
+ "norm_label": "get /stocks/realtime-cotation without search returns 422.",
+ "id": "tests_test_stocks_api_coverage_rationale_1342"
},
{
- "label": "Covers line 104: session not found.",
+ "label": "GET /cotations without search returns 422.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L744",
- "community": 104,
- "norm_label": "covers line 104: session not found.",
- "id": "tests_test_controllers_coverage_rationale_744"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1392",
+ "community": 22,
+ "norm_label": "get /cotations without search returns 422.",
+ "id": "tests_test_stocks_api_coverage_rationale_1392"
},
{
- "label": "Covers lines 126-136: DELETE /user/sessions/{sessionId}.",
+ "label": "stocks_client()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L52",
+ "community": 129,
+ "norm_label": "stocks_client()",
+ "id": "tests_test_stocks_api_fields_stocks_client"
+ },
+ {
+ "label": "Direct tests on the regex pattern used for the `fields` query param.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L767",
- "community": 104,
- "norm_label": "covers lines 126-136: delete /user/sessions/{sessionid}.",
- "id": "tests_test_controllers_coverage_rationale_767"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L18",
+ "community": 128,
+ "norm_label": "direct tests on the regex pattern used for the `fields` query param.",
+ "id": "tests_test_stocks_api_fields_rationale_18"
},
{
- "label": "Covers lines 126, 131, 135-136.",
+ "label": "P/L must be accepted \u2014 it's a standard valuation metric.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L770",
- "community": 104,
- "norm_label": "covers lines 126, 131, 135-136.",
- "id": "tests_test_controllers_coverage_rationale_770"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L21",
+ "community": 128,
+ "norm_label": "p/l must be accepted \u2014 it's a standard valuation metric.",
+ "id": "tests_test_stocks_api_fields_rationale_21"
},
{
- "label": "Covers lines 127-129: session not found.",
+ "label": "MARG. LIQUIDA must be accepted \u2014 returned by /stocks/fields.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L797",
- "community": 104,
- "norm_label": "covers lines 127-129: session not found.",
- "id": "tests_test_controllers_coverage_rationale_797"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L25",
+ "community": 254,
+ "norm_label": "marg. liquida must be accepted \u2014 returned by /stocks/fields.",
+ "id": "tests_test_stocks_api_fields_rationale_25"
},
{
- "label": "Covers lines 132-133: revokeSession returns False.",
+ "label": "P/VP and similar combos must be accepted.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L819",
- "community": 104,
- "norm_label": "covers lines 132-133: revokesession returns false.",
- "id": "tests_test_controllers_coverage_rationale_819"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L29",
+ "community": 128,
+ "norm_label": "p/vp and similar combos must be accepted.",
+ "id": "tests_test_stocks_api_fields_rationale_29"
},
{
- "label": "Covers lines 143, 145, 147-148: POST /user/sessions/revoke-all.",
+ "label": "Basic fields like ROE must still pass.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L845",
- "community": 221,
- "norm_label": "covers lines 143, 145, 147-148: post /user/sessions/revoke-all.",
- "id": "tests_test_controllers_coverage_rationale_845"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L33",
+ "community": 255,
+ "norm_label": "basic fields like roe must still pass.",
+ "id": "tests_test_stocks_api_fields_rationale_33"
},
{
- "label": "Covers lines 143, 145, 147-148.",
+ "label": "Comma-separated list containing slash fields must pass.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L848",
- "community": 221,
- "norm_label": "covers lines 143, 145, 147-148.",
- "id": "tests_test_controllers_coverage_rationale_848"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L37",
+ "community": 252,
+ "norm_label": "comma-separated list containing slash fields must pass.",
+ "id": "tests_test_stocks_api_fields_rationale_37"
},
{
- "label": "Covers line 24: GET /prometheus/health.",
+ "label": "Pattern must reject potential injection \u2014 no angle brackets.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L875",
- "community": 498,
- "norm_label": "covers line 24: get /prometheus/health.",
- "id": "tests_test_controllers_coverage_rationale_875"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L41",
+ "community": 253,
+ "norm_label": "pattern must reject potential injection \u2014 no angle brackets.",
+ "id": "tests_test_stocks_api_fields_rationale_41"
},
{
- "label": "Covers lines 33-36: GET /prometheus/sessions.",
+ "label": "GET /historical?fields=MARG. LIQUIDA must not return 422.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L889",
- "community": 540,
- "norm_label": "covers lines 33-36: get /prometheus/sessions.",
- "id": "tests_test_controllers_coverage_rationale_889"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L99",
+ "community": 167,
+ "norm_label": "get /historical?fields=marg. liquida must not return 422.",
+ "id": "tests_test_stocks_api_fields_rationale_99"
},
{
- "label": "Covers line 52: POST /prometheus/sessions.",
+ "label": "GET /historical?fields=LUCRO LIQUIDO,P/L must not return 422.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L907",
- "community": 16,
- "norm_label": "covers line 52: post /prometheus/sessions.",
- "id": "tests_test_controllers_coverage_rationale_907"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L104",
+ "community": 166,
+ "norm_label": "get /historical?fields=lucro liquido,p/l must not return 422.",
+ "id": "tests_test_stocks_api_fields_rationale_104"
},
{
- "label": "Covers lines 62-63, 65-68: PUT /prometheus/sessions/{sessionId}.",
+ "label": "Integration: /stocks/fundamental date filter should work per-ticker.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L921",
- "community": 16,
- "norm_label": "covers lines 62-63, 65-68: put /prometheus/sessions/{sessionid}.",
- "id": "tests_test_controllers_coverage_rationale_921"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L110",
+ "community": 179,
+ "norm_label": "integration: /stocks/fundamental date filter should work per-ticker.",
+ "id": "tests_test_stocks_api_fields_rationale_110"
},
{
- "label": "Covers lines 65-68: title updated successfully.",
+ "label": "When tickers have different date coverage, each should get its closest snapshot.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L924",
- "community": 16,
- "norm_label": "covers lines 65-68: title updated successfully.",
- "id": "tests_test_controllers_coverage_rationale_924"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L113",
+ "community": 179,
+ "norm_label": "when tickers have different date coverage, each should get its closest snapshot.",
+ "id": "tests_test_stocks_api_fields_rationale_113"
},
{
- "label": "Covers lines 62-63: not the session owner.",
+ "label": "Tests for queryLiveCotation and /stocks/cotations/live.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L935",
- "community": 16,
- "norm_label": "covers lines 62-63: not the session owner.",
- "id": "tests_test_controllers_coverage_rationale_935"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1245",
+ "community": 22,
+ "norm_label": "tests for querylivecotation and /stocks/cotations/live.",
+ "id": "tests_test_stocks_api_coverage_rationale_1245"
},
{
- "label": "Covers lines 66-67: session not found.",
+ "label": "GET /stocks/realtime-cotation without search returns 422.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L944",
- "community": 16,
- "norm_label": "covers lines 66-67: session not found.",
- "id": "tests_test_controllers_coverage_rationale_944"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1344",
+ "community": 22,
+ "norm_label": "get /stocks/realtime-cotation without search returns 422.",
+ "id": "tests_test_stocks_api_coverage_rationale_1344"
},
{
- "label": "Covers lines 77, 83-84, 86: GET /prometheus/history/{sessionId}.",
+ "label": "GET /cotations without search returns 422.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L955",
- "community": 208,
- "norm_label": "covers lines 77, 83-84, 86: get /prometheus/history/{sessionid}.",
- "id": "tests_test_controllers_coverage_rationale_955"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1394",
+ "community": 22,
+ "norm_label": "get /cotations without search returns 422.",
+ "id": "tests_test_stocks_api_coverage_rationale_1394"
},
{
- "label": "Covers lines 77, 86: session found with history.",
+ "label": "Direct tests on the regex pattern used for the `fields` query param.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L958",
- "community": 208,
- "norm_label": "covers lines 77, 86: session found with history.",
- "id": "tests_test_controllers_coverage_rationale_958"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L17",
+ "community": 128,
+ "norm_label": "direct tests on the regex pattern used for the `fields` query param.",
+ "id": "tests_test_stocks_api_fields_rationale_17"
},
{
- "label": "Covers lines 83-84: session not found.",
+ "label": "P/L must be accepted \u2014 it's a standard valuation metric.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1002",
- "community": 208,
- "norm_label": "covers lines 83-84: session not found.",
- "id": "tests_test_controllers_coverage_rationale_1002"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L20",
+ "community": 128,
+ "norm_label": "p/l must be accepted \u2014 it's a standard valuation metric.",
+ "id": "tests_test_stocks_api_fields_rationale_20"
},
{
- "label": "Covers lines 95-98: DELETE /prometheus/sessions/{sessionId}.",
+ "label": "MARG. LIQUIDA must be accepted \u2014 returned by /stocks/fields.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1037",
- "community": 94,
- "norm_label": "covers lines 95-98: delete /prometheus/sessions/{sessionid}.",
- "id": "tests_test_controllers_coverage_rationale_1037"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L24",
+ "community": 254,
+ "norm_label": "marg. liquida must be accepted \u2014 returned by /stocks/fields.",
+ "id": "tests_test_stocks_api_fields_rationale_24"
},
{
- "label": "Covers lines 95-98: session deleted.",
+ "label": "P/VP and similar combos must be accepted.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1040",
- "community": 94,
- "norm_label": "covers lines 95-98: session deleted.",
- "id": "tests_test_controllers_coverage_rationale_1040"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L28",
+ "community": 128,
+ "norm_label": "p/vp and similar combos must be accepted.",
+ "id": "tests_test_stocks_api_fields_rationale_28"
},
{
- "label": "Covers lines 96-97: session not found.",
+ "label": "Basic fields like ROE must still pass.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1050",
- "community": 94,
- "norm_label": "covers lines 96-97: session not found.",
- "id": "tests_test_controllers_coverage_rationale_1050"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L32",
+ "community": 255,
+ "norm_label": "basic fields like roe must still pass.",
+ "id": "tests_test_stocks_api_fields_rationale_32"
},
{
- "label": "Covers lines 114-115, 117-120, 122, 125: POST /prometheus/chat.",
+ "label": "Comma-separated list containing slash fields must pass.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1060",
- "community": 101,
- "norm_label": "covers lines 114-115, 117-120, 122, 125: post /prometheus/chat.",
- "id": "tests_test_controllers_coverage_rationale_1060"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L36",
+ "community": 252,
+ "norm_label": "comma-separated list containing slash fields must pass.",
+ "id": "tests_test_stocks_api_fields_rationale_36"
},
{
- "label": "Covers lines 111-112: sessionId is None, new session created.",
+ "label": "Pattern must reject potential injection \u2014 no angle brackets.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1063",
- "community": 101,
- "norm_label": "covers lines 111-112: sessionid is none, new session created.",
- "id": "tests_test_controllers_coverage_rationale_1063"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L40",
+ "community": 253,
+ "norm_label": "pattern must reject potential injection \u2014 no angle brackets.",
+ "id": "tests_test_stocks_api_fields_rationale_40"
},
{
- "label": "Covers lines 114-115, 117-120, 122: existing session with verified ownership.",
+ "label": "Minimal TestClient with just the stocks router for validation tests.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1081",
- "community": 101,
- "norm_label": "covers lines 114-115, 117-120, 122: existing session with verified ownership.",
- "id": "tests_test_controllers_coverage_rationale_1081"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L51",
+ "community": 129,
+ "norm_label": "minimal testclient with just the stocks router for validation tests.",
+ "id": "tests_test_stocks_api_fields_rationale_51"
},
{
- "label": "Covers lines 114-115: session ownership check fails.",
+ "label": "Integration: /stocks/fundamental must accept slash and dot fields.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1123",
- "community": 104,
- "norm_label": "covers lines 114-115: session ownership check fails.",
- "id": "tests_test_controllers_coverage_rationale_1123"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L70",
+ "community": 129,
+ "norm_label": "integration: /stocks/fundamental must accept slash and dot fields.",
+ "id": "tests_test_stocks_api_fields_rationale_70"
},
{
- "label": "Covers line 125, 126-128: generic Exception in chat.",
+ "label": "GET /fundamental?fields=P/L must not return 422 (validation error).",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1160",
- "community": 101,
- "norm_label": "covers line 125, 126-128: generic exception in chat.",
- "id": "tests_test_controllers_coverage_rationale_1160"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L73",
+ "community": 129,
+ "norm_label": "get /fundamental?fields=p/l must not return 422 (validation error).",
+ "id": "tests_test_stocks_api_fields_rationale_73"
},
{
- "label": "Covers line 18: GET /stocks/health.",
+ "label": "GET /fundamental?fields=MARG. LIQUIDA must not return 422.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1181",
- "community": 498,
- "norm_label": "covers line 18: get /stocks/health.",
- "id": "tests_test_controllers_coverage_rationale_1181"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L78",
+ "community": 167,
+ "norm_label": "get /fundamental?fields=marg. liquida must not return 422.",
+ "id": "tests_test_stocks_api_fields_rationale_78"
},
{
- "label": "Covers line 23: valid API key returns secured=True.",
+ "label": "GET /fundamental?fields=P/L,ROE,DY must not return 422.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1198",
- "community": 14,
- "norm_label": "covers line 23: valid api key returns secured=true.",
- "id": "tests_test_controllers_coverage_rationale_1198"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L83",
+ "community": 166,
+ "norm_label": "get /fundamental?fields=p/l,roe,dy must not return 422.",
+ "id": "tests_test_stocks_api_fields_rationale_83"
},
{
- "label": "Covers line 35: GET /stocks/historical.",
+ "label": "Integration: /stocks/historical must accept slash and dot fields.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1206",
- "community": 14,
- "norm_label": "covers line 35: get /stocks/historical.",
- "id": "tests_test_controllers_coverage_rationale_1206"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L89",
+ "community": 191,
+ "norm_label": "integration: /stocks/historical must accept slash and dot fields.",
+ "id": "tests_test_stocks_api_fields_rationale_89"
},
{
- "label": "Covers line 47: GET /stocks/fundamental.",
+ "label": "GET /historical?fields=P/L must not return 422.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1220",
- "community": 14,
- "norm_label": "covers line 47: get /stocks/fundamental.",
- "id": "tests_test_controllers_coverage_rationale_1220"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L92",
+ "community": 191,
+ "norm_label": "get /historical?fields=p/l must not return 422.",
+ "id": "tests_test_stocks_api_fields_rationale_92"
},
{
- "label": "Covers lines 52-53, 57-63: GET /stocks/key/generate. NOTE: stocksapi_cont",
+ "label": "GET /historical?fields=MARG. LIQUIDA must not return 422.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1234",
- "community": 85,
- "norm_label": "covers lines 52-53, 57-63: get /stocks/key/generate. note: stocksapi_cont",
- "id": "tests_test_controllers_coverage_rationale_1234"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L97",
+ "community": 167,
+ "norm_label": "get /historical?fields=marg. liquida must not return 422.",
+ "id": "tests_test_stocks_api_fields_rationale_97"
},
{
- "label": "Covers lines 52-53: user without GENERATE_API_KEYS permission gets 403.",
+ "label": "GET /historical?fields=LUCRO LIQUIDO,P/L must not return 422.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1242",
- "community": 14,
- "norm_label": "covers lines 52-53: user without generate_api_keys permission gets 403.",
- "id": "tests_test_controllers_coverage_rationale_1242"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L102",
+ "community": 166,
+ "norm_label": "get /historical?fields=lucro liquido,p/l must not return 422.",
+ "id": "tests_test_stocks_api_fields_rationale_102"
},
{
- "label": "Covers lines 61-63: exception during key generation (admin path).",
+ "label": "Integration: /stocks/fundamental date filter should work per-ticker.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1262",
- "community": 85,
- "norm_label": "covers lines 61-63: exception during key generation (admin path).",
- "id": "tests_test_controllers_coverage_rationale_1262"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L108",
+ "community": 179,
+ "norm_label": "integration: /stocks/fundamental date filter should work per-ticker.",
+ "id": "tests_test_stocks_api_fields_rationale_108"
},
{
- "label": "Covers lines 17, 22-27: user found, role not present, role added.",
+ "label": "When tickers have different date coverage, each should get its closest snapshot.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1280",
- "community": 137,
- "norm_label": "covers lines 17, 22-27: user found, role not present, role added.",
- "id": "tests_test_controllers_coverage_rationale_1280"
+ "source_file": "tests/test_stocks_api_fields.py",
+ "source_location": "L111",
+ "community": 179,
+ "norm_label": "when tickers have different date coverage, each should get its closest snapshot.",
+ "id": "tests_test_stocks_api_fields_rationale_111"
},
{
- "label": "Covers lines 19-20: user not found raises 404.",
+ "label": "Tests for queryLiveCotation and /stocks/cotations/live.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1312",
- "community": 528,
- "norm_label": "covers lines 19-20: user not found raises 404.",
- "id": "tests_test_controllers_coverage_rationale_1312"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1261",
+ "community": 22,
+ "norm_label": "tests for querylivecotation and /stocks/cotations/live.",
+ "id": "tests_test_stocks_api_coverage_rationale_1261"
},
{
- "label": "Covers lines 42-44: session validation fails.",
+ "label": "GET /stocks/realtime-cotation without search returns 422.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1356",
- "community": 488,
- "norm_label": "covers lines 42-44: session validation fails.",
- "id": "tests_test_controllers_coverage_rationale_1356"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1400",
+ "community": 22,
+ "norm_label": "get /stocks/realtime-cotation without search returns 422.",
+ "id": "tests_test_stocks_api_coverage_rationale_1400"
},
{
- "label": "Covers lines 37-38, 46, 51, 58 (sessionId is None): skips session validation.",
+ "label": "GET /cotations without search returns 422.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1406",
- "community": 529,
- "norm_label": "covers lines 37-38, 46, 51, 58 (sessionid is none): skips session validation.",
- "id": "tests_test_controllers_coverage_rationale_1406"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1468",
+ "community": 22,
+ "norm_label": "get /cotations without search returns 422.",
+ "id": "tests_test_stocks_api_coverage_rationale_1468"
},
{
- "label": "Covers line 16: empty password raises ValueError.",
+ "label": "Return a small DataFrame with the columns the query module expects.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1430",
- "community": 486,
- "norm_label": "covers line 16: empty password raises valueerror.",
- "id": "tests_test_controllers_coverage_rationale_1430"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L23",
+ "community": 21,
+ "norm_label": "return a small dataframe with the columns the query module expects.",
+ "id": "tests_test_stocks_api_coverage_rationale_23"
},
{
- "label": "Covers lines 45-51: verifyAccessToken with expired and invalid tokens.",
+ "label": "Tests covering cache.py lines 28-76.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1440",
- "community": 525,
- "norm_label": "covers lines 45-51: verifyaccesstoken with expired and invalid tokens.",
- "id": "tests_test_controllers_coverage_rationale_1440"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L43",
+ "community": 3,
+ "norm_label": "tests covering cache.py lines 28-76.",
+ "id": "tests_test_stocks_api_coverage_rationale_43"
},
{
- "label": "Covers lines 48-49: jwt.ExpiredSignatureError.",
+ "label": "Tests covering key.py lines 15-40. Uses asyncio.run() since pytest-asyncio",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1443",
- "community": 525,
- "norm_label": "covers lines 48-49: jwt.expiredsignatureerror.",
- "id": "tests_test_controllers_coverage_rationale_1443"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L228",
+ "community": 90,
+ "norm_label": "tests covering key.py lines 15-40. uses asyncio.run() since pytest-asyncio",
+ "id": "tests_test_stocks_api_coverage_rationale_228"
},
{
- "label": "Covers lines 50-51: jwt.InvalidTokenError.",
+ "label": "When KEY.SYSTEM is falsy, return None (line 16).",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1459",
- "community": 525,
- "norm_label": "covers lines 50-51: jwt.invalidtokenerror.",
- "id": "tests_test_controllers_coverage_rationale_1459"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L233",
+ "community": 418,
+ "norm_label": "when key.system is falsy, return none (line 16).",
+ "id": "tests_test_stocks_api_coverage_rationale_233"
},
{
- "label": "Covers line 67: extractTokenPayload re-raises HTTPException from verifyAccessTok",
+ "label": "When key is required but not provided (line 19).",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1471",
- "community": 114,
- "norm_label": "covers line 67: extracttokenpayload re-raises httpexception from verifyaccesstok",
- "id": "tests_test_controllers_coverage_rationale_1471"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L244",
+ "community": 419,
+ "norm_label": "when key is required but not provided (line 19).",
+ "id": "tests_test_stocks_api_coverage_rationale_244"
},
{
- "label": "Covers line 67: HTTPException raised by verifyAccessToken is re-raised.",
+ "label": "When atomic UPDATE returns 0 rows and query finds no key -> 401.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1474",
- "community": 114,
- "norm_label": "covers line 67: httpexception raised by verifyaccesstoken is re-raised.",
- "id": "tests_test_controllers_coverage_rationale_1474"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L257",
+ "community": 420,
+ "norm_label": "when atomic update returns 0 rows and query finds no key -> 401.",
+ "id": "tests_test_stocks_api_coverage_rationale_257"
},
{
- "label": "Covers line 13: UserManager.__init__.",
+ "label": "When atomic UPDATE returns 0 rows and query finds key at limit -> 429.",
"file_type": "rationale",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1490",
- "community": 21,
- "norm_label": "covers line 13: usermanager.__init__.",
- "id": "tests_test_controllers_coverage_rationale_1490"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L274",
+ "community": 421,
+ "norm_label": "when atomic update returns 0 rows and query finds key at limit -> 429.",
+ "id": "tests_test_stocks_api_coverage_rationale_274"
},
{
- "label": ".test_creates_new_session()",
- "file_type": "code",
- "source_file": "tests/test_http_session_coverage.py",
- "source_location": "L9",
- "community": 500,
- "norm_label": ".test_creates_new_session()",
- "id": "tests_test_http_session_coverage_testgetsession_test_creates_new_session"
+ "label": "HTTPException should cause rollback then re-raise (lines 35-37).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L306",
+ "community": 422,
+ "norm_label": "httpexception should cause rollback then re-raise (lines 35-37).",
+ "id": "tests_test_stocks_api_coverage_rationale_306"
},
{
- "label": "TestCleanup",
- "file_type": "code",
- "source_file": "tests/test_http_session_coverage.py",
- "source_location": "L28",
- "community": 500,
- "norm_label": "testcleanup",
- "id": "tests_test_http_session_coverage_testcleanup"
+ "label": "Generic DB exception should rollback and raise 500 (lines 38-40).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L325",
+ "community": 423,
+ "norm_label": "generic db exception should rollback and raise 500 (lines 38-40).",
+ "id": "tests_test_stocks_api_coverage_rationale_325"
},
{
- "label": ".test_cleanup_closes_session()",
- "file_type": "code",
- "source_file": "tests/test_http_session_coverage.py",
- "source_location": "L29",
- "community": 500,
- "norm_label": ".test_cleanup_closes_session()",
- "id": "tests_test_http_session_coverage_testcleanup_test_cleanup_closes_session"
+ "label": "Tests covering key.py line 44.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L340",
+ "community": 141,
+ "norm_label": "tests covering key.py line 44.",
+ "id": "tests_test_stocks_api_coverage_rationale_340"
},
{
- "label": ".test_cleanup_no_session()",
- "file_type": "code",
- "source_file": "tests/test_http_session_coverage.py",
- "source_location": "L37",
- "community": 500,
- "norm_label": ".test_cleanup_no_session()",
- "id": "tests_test_http_session_coverage_testcleanup_test_cleanup_no_session"
+ "label": "Tests covering key.py lines 48-66.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L363",
+ "community": 567,
+ "norm_label": "tests covering key.py lines 48-66.",
+ "id": "tests_test_stocks_api_coverage_rationale_363"
},
{
- "label": ".test_cleanup_exception_during_close()",
- "file_type": "code",
- "source_file": "tests/test_http_session_coverage.py",
- "source_location": "L46",
- "community": 500,
- "norm_label": ".test_cleanup_exception_during_close()",
- "id": "tests_test_http_session_coverage_testcleanup_test_cleanup_exception_during_close"
+ "label": "New key created when no existing key for user (lines 57-59).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L367",
+ "community": 424,
+ "norm_label": "new key created when no existing key for user (lines 57-59).",
+ "id": "tests_test_stocks_api_coverage_rationale_367"
},
{
- "label": ".test_remove_role_existing()",
- "file_type": "code",
- "source_file": "tests/test_models.py",
- "source_location": "L50",
- "community": 61,
- "norm_label": ".test_remove_role_existing()",
- "id": "tests_test_models_testusermodel_test_remove_role_existing"
+ "label": "Existing key is updated (lines 54-56).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L382",
+ "community": 425,
+ "norm_label": "existing key is updated (lines 54-56).",
+ "id": "tests_test_stocks_api_coverage_rationale_382"
},
{
- "label": ".test_remove_role_last_role()",
- "file_type": "code",
- "source_file": "tests/test_models.py",
- "source_location": "L57",
- "community": 61,
- "norm_label": ".test_remove_role_last_role()",
- "id": "tests_test_models_testusermodel_test_remove_role_last_role"
+ "label": "Exception during creation triggers rollback and 500 (lines 64-66).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L399",
+ "community": 426,
+ "norm_label": "exception during creation triggers rollback and 500 (lines 64-66).",
+ "id": "tests_test_stocks_api_coverage_rationale_399"
},
{
- "label": "TestPaginationParams",
- "file_type": "code",
- "source_file": "tests/test_pagination.py",
- "source_location": "L37",
- "community": 132,
- "norm_label": "testpaginationparams",
- "id": "tests_test_pagination_testpaginationparams"
+ "label": "Tests covering query.py lines 22-48.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L417",
+ "community": 3,
+ "norm_label": "tests covering query.py lines 22-48.",
+ "id": "tests_test_stocks_api_coverage_rationale_417"
},
{
- "label": ".test_defaults()",
- "file_type": "code",
- "source_file": "tests/test_pagination.py",
- "source_location": "L38",
- "community": 132,
- "norm_label": ".test_defaults()",
- "id": "tests_test_pagination_testpaginationparams_test_defaults"
+ "label": "replaceNan handles direct float NaN values (line 34).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L495",
+ "community": 488,
+ "norm_label": "replacenan handles direct float nan values (line 34).",
+ "id": "tests_test_stocks_api_coverage_rationale_495"
},
{
- "label": ".test_custom_limit()",
- "file_type": "code",
- "source_file": "tests/test_pagination.py",
- "source_location": "L46",
- "community": 132,
- "norm_label": ".test_custom_limit()",
- "id": "tests_test_pagination_testpaginationparams_test_custom_limit"
+ "label": "Non-JSON-dict/list string is left as-is.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L509",
+ "community": 509,
+ "norm_label": "non-json-dict/list string is left as-is.",
+ "id": "tests_test_stocks_api_coverage_rationale_509"
},
{
- "label": ".test_custom_offset()",
- "file_type": "code",
- "source_file": "tests/test_pagination.py",
- "source_location": "L52",
- "community": 132,
- "norm_label": ".test_custom_offset()",
- "id": "tests_test_pagination_testpaginationparams_test_custom_offset"
+ "label": "pd.NA is not a string, so lambda returns it unchanged.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L518",
+ "community": 520,
+ "norm_label": "pd.na is not a string, so lambda returns it unchanged.",
+ "id": "tests_test_stocks_api_coverage_rationale_518"
},
{
- "label": ".test_limit_and_offset()",
- "file_type": "code",
- "source_file": "tests/test_pagination.py",
- "source_location": "L59",
- "community": 132,
- "norm_label": ".test_limit_and_offset()",
- "id": "tests_test_pagination_testpaginationparams_test_limit_and_offset"
+ "label": "Regression: is_string_dtype fails when column has strings + None (pandas 2.x).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L527",
+ "community": 3,
+ "norm_label": "regression: is_string_dtype fails when column has strings + none (pandas 2.x).",
+ "id": "tests_test_stocks_api_coverage_rationale_527"
},
{
- "label": ".test_limit_exceeds_max_rejected()",
- "file_type": "code",
- "source_file": "tests/test_pagination.py",
- "source_location": "L67",
- "community": 132,
- "norm_label": ".test_limit_exceeds_max_rejected()",
- "id": "tests_test_pagination_testpaginationparams_test_limit_exceeds_max_rejected"
+ "label": "All four SPECIAL_COLS should parse correctly when mixed with None.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L549",
+ "community": 3,
+ "norm_label": "all four special_cols should parse correctly when mixed with none.",
+ "id": "tests_test_stocks_api_coverage_rationale_549"
},
{
- "label": ".test_limit_zero_rejected()",
- "file_type": "code",
- "source_file": "tests/test_pagination.py",
- "source_location": "L71",
- "community": 132,
- "norm_label": ".test_limit_zero_rejected()",
- "id": "tests_test_pagination_testpaginationparams_test_limit_zero_rejected"
+ "label": "Tests covering query.py lines 50-67.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L574",
+ "community": 3,
+ "norm_label": "tests covering query.py lines 50-67.",
+ "id": "tests_test_stocks_api_coverage_rationale_574"
},
{
- "label": ".test_negative_offset_rejected()",
- "file_type": "code",
- "source_file": "tests/test_pagination.py",
- "source_location": "L75",
- "community": 132,
- "norm_label": ".test_negative_offset_rejected()",
- "id": "tests_test_pagination_testpaginationparams_test_negative_offset_rejected"
+ "label": "Tests covering query.py lines 77-132.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L629",
+ "community": 21,
+ "norm_label": "tests covering query.py lines 77-132.",
+ "id": "tests_test_stocks_api_coverage_rationale_629"
},
{
- "label": ".test_offset_beyond_total()",
- "file_type": "code",
- "source_file": "tests/test_pagination.py",
- "source_location": "L79",
- "community": 132,
- "norm_label": ".test_offset_beyond_total()",
- "id": "tests_test_pagination_testpaginationparams_test_offset_beyond_total"
+ "label": "Pass field name WITHOUT year (how categorizeColumns returns them).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L667",
+ "community": 222,
+ "norm_label": "pass field name without year (how categorizecolumns returns them).",
+ "id": "tests_test_stocks_api_coverage_rationale_667"
},
{
- "label": ".test_limit_equals_max()",
- "file_type": "code",
- "source_file": "tests/test_pagination.py",
- "source_location": "L84",
- "community": 132,
- "norm_label": ".test_limit_equals_max()",
- "id": "tests_test_pagination_testpaginationparams_test_limit_equals_max"
+ "label": "No historical data columns -> inner 400 caught by outer except -> 500.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L693",
+ "community": 28,
+ "norm_label": "no historical data columns -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_693"
},
{
- "label": "Cover __init__ and updateDates (lines 22-37).",
+ "label": "If an unexpected exception occurs in queryHistorical.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L28",
- "community": 68,
- "norm_label": "cover __init__ and updatedates (lines 22-37).",
- "id": "tests_test_prometheus_auth_coverage_rationale_28"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L718",
+ "community": 28,
+ "norm_label": "if an unexpected exception occurs in queryhistorical.",
+ "id": "tests_test_stocks_api_coverage_rationale_718"
},
{
- "label": "Cover executeWorkflow (lines 39-363).",
+ "label": "Invalid date format raises exception (line 132).",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L59",
- "community": 68,
- "norm_label": "cover executeworkflow (lines 39-363).",
- "id": "tests_test_prometheus_auth_coverage_rationale_59"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L736",
+ "community": 136,
+ "norm_label": "invalid date format raises exception (line 132).",
+ "id": "tests_test_stocks_api_coverage_rationale_736"
},
{
- "label": "Stage 1 + Stage 2 + Stage 3, no history, no sessionId.",
+ "label": "No historical columns at all -> inner 400 caught by outer except -> 500.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L74",
- "community": 443,
- "norm_label": "stage 1 + stage 2 + stage 3, no history, no sessionid.",
- "id": "tests_test_prometheus_auth_coverage_rationale_74"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L752",
+ "community": 127,
+ "norm_label": "no historical columns at all -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_752"
},
{
- "label": "Test history formatting (lines 48-49, 159-162).",
+ "label": "Historical query with a year range.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L119",
- "community": 444,
- "norm_label": "test history formatting (lines 48-49, 159-162).",
- "id": "tests_test_prometheus_auth_coverage_rationale_119"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L762",
+ "community": 28,
+ "norm_label": "historical query with a year range.",
+ "id": "tests_test_stocks_api_coverage_rationale_762"
},
{
- "label": "Stage 0: sessionId+db summary loading (lines 55-62).",
+ "label": "Multiple search terms, all found in tickerIndex.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L146",
- "community": 445,
- "norm_label": "stage 0: sessionid+db summary loading (lines 55-62).",
- "id": "tests_test_prometheus_auth_coverage_rationale_146"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L769",
+ "community": 28,
+ "norm_label": "multiple search terms, all found in tickerindex.",
+ "id": "tests_test_stocks_api_coverage_rationale_769"
},
{
- "label": "Stage 0: exception loading session (line 62).",
+ "label": "Calling with all None returns 400.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L177",
- "community": 446,
- "norm_label": "stage 0: exception loading session (line 62).",
- "id": "tests_test_prometheus_auth_coverage_rationale_177"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L777",
+ "community": 21,
+ "norm_label": "calling with all none returns 400.",
+ "id": "tests_test_stocks_api_coverage_rationale_777"
},
{
- "label": "Global request resolution with KEY_SYSTEM=True (lines 180-209).",
+ "label": "Tests covering query.py lines 142-202.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L204",
- "community": 447,
- "norm_label": "global request resolution with key_system=true (lines 180-209).",
- "id": "tests_test_prometheus_auth_coverage_rationale_204"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L788",
+ "community": 21,
+ "norm_label": "tests covering query.py lines 142-202.",
+ "id": "tests_test_stocks_api_coverage_rationale_788"
},
{
- "label": "Global request API error (lines 208-209).",
+ "label": "search.strip() == '' should still dedup (line 181).",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L253",
- "community": 448,
- "norm_label": "global request api error (lines 208-209).",
- "id": "tests_test_prometheus_auth_coverage_rationale_253"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L895",
+ "community": 39,
+ "norm_label": "search.strip() == '' should still dedup (line 181).",
+ "id": "tests_test_stocks_api_coverage_rationale_895"
},
{
- "label": "fetchStockData exception path (lines 223-225).",
+ "label": "DataFrame without TIME column.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L291",
- "community": 449,
- "norm_label": "fetchstockdata exception path (lines 223-225).",
- "id": "tests_test_prometheus_auth_coverage_rationale_291"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L904",
+ "community": 39,
+ "norm_label": "dataframe without time column.",
+ "id": "tests_test_stocks_api_coverage_rationale_904"
},
{
- "label": "fetchStockData non-200 status (line 222).",
+ "label": "Two dates in the range, both valid.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L327",
- "community": 450,
- "norm_label": "fetchstockdata non-200 status (line 222).",
- "id": "tests_test_prometheus_auth_coverage_rationale_327"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L917",
+ "community": 39,
+ "norm_label": "two dates in the range, both valid.",
+ "id": "tests_test_stocks_api_coverage_rationale_917"
},
{
- "label": "Stage 4: summary update when len(history) % 10 == 0 (lines 325-363).",
+ "label": "Single invalid date -> inner 400 caught by outer except -> 500.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L366",
- "community": 451,
- "norm_label": "stage 4: summary update when len(history) % 10 == 0 (lines 325-363).",
- "id": "tests_test_prometheus_auth_coverage_rationale_366"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L931",
+ "community": 46,
+ "norm_label": "single invalid date -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_931"
},
{
- "label": "Cover all methods in chat.py (lines 11-120).",
+ "label": "Multiple search terms with tickerIndex.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L441",
- "community": 52,
- "norm_label": "cover all methods in chat.py (lines 11-120).",
- "id": "tests_test_prometheus_auth_coverage_rationale_441"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L956",
+ "community": 17,
+ "norm_label": "multiple search terms with tickerindex.",
+ "id": "tests_test_stocks_api_coverage_rationale_956"
},
{
- "label": "Cover all methods in authentication.py (lines 13-75).",
+ "label": "Search with no index match falls back to string startswith.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L665",
- "community": 88,
- "norm_label": "cover all methods in authentication.py (lines 13-75).",
- "id": "tests_test_prometheus_auth_coverage_rationale_665"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L964",
+ "community": 17,
+ "norm_label": "search with no index match falls back to string startswith.",
+ "id": "tests_test_stocks_api_coverage_rationale_964"
},
{
- "label": "Cover all methods in session.py (lines 14-154).",
+ "label": "len(dateRange) == 1 -> single date filter.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L842",
- "community": 60,
- "norm_label": "cover all methods in session.py (lines 14-154).",
- "id": "tests_test_prometheus_auth_coverage_rationale_842"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L972",
+ "community": 39,
+ "norm_label": "len(daterange) == 1 -> single date filter.",
+ "id": "tests_test_stocks_api_coverage_rationale_972"
},
{
- "label": "Exercises the tzinfo-is-None branch (line 144-148).",
+ "label": "COTACAO 10Y PADRAO and COTACAO 10Y AJUSTADA belong to /cotations, not /fundament",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L1077",
- "community": 190,
- "norm_label": "exercises the tzinfo-is-none branch (line 144-148).",
- "id": "tests_test_prometheus_auth_coverage_rationale_1077"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L986",
+ "community": 538,
+ "norm_label": "cotacao 10y padrao and cotacao 10y ajustada belong to /cotations, not /fundament",
+ "id": "tests_test_stocks_api_coverage_rationale_986"
},
{
- "label": "Exercises the expiresAt-is-None branch (line 143).",
+ "label": "Regression: queryFundamental must not mutate the shared cache TIME column.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L1091",
- "community": 165,
- "norm_label": "exercises the expiresat-is-none branch (line 143).",
- "id": "tests_test_prometheus_auth_coverage_rationale_1091"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1013",
+ "community": 46,
+ "norm_label": "regression: queryfundamental must not mutate the shared cache time column.",
+ "id": "tests_test_stocks_api_coverage_rationale_1013"
},
{
- "label": "Cover getGoogleSSO (lines 6-14).",
+ "label": "Tests for queryCotations and /stocks/cotations.",
"file_type": "rationale",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L1110",
- "community": 68,
- "norm_label": "cover getgooglesso (lines 6-14).",
- "id": "tests_test_prometheus_auth_coverage_rationale_1110"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1056",
+ "community": 10,
+ "norm_label": "tests for querycotations and /stocks/cotations.",
+ "id": "tests_test_stocks_api_coverage_rationale_1056"
},
{
- "label": ".test_repr()",
- "file_type": "code",
- "source_file": "tests/test_sessions.py",
- "source_location": "L13",
- "community": 44,
- "norm_label": ".test_repr()",
- "id": "tests_test_sessions_testusersessionmodel_test_repr"
+ "label": "2 tickers x 2 rows. Rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. M",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1068",
+ "community": 10,
+ "norm_label": "2 tickers x 2 rows. rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. m",
+ "id": "tests_test_stocks_api_coverage_rationale_1068"
},
{
- "label": ".test_toDict_basic()",
- "file_type": "code",
- "source_file": "tests/test_sessions.py",
- "source_location": "L18",
- "community": 44,
- "norm_label": ".test_todict_basic()",
- "id": "tests_test_sessions_testusersessionmodel_test_toDict_basic"
+ "label": "4 rows for 2 tickers -> 2 results, one per ticker, both with latest TIME.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1114",
+ "community": 10,
+ "norm_label": "4 rows for 2 tickers -> 2 results, one per ticker, both with latest time.",
+ "id": "tests_test_stocks_api_coverage_rationale_1114"
},
{
- "label": ".test_toDict_with_sensitive()",
- "file_type": "code",
- "source_file": "tests/test_sessions.py",
- "source_location": "L35",
- "community": 44,
- "norm_label": ".test_todict_with_sensitive()",
- "id": "tests_test_sessions_testusersessionmodel_test_toDict_with_sensitive"
+ "label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each JSON list.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1126",
+ "community": 10,
+ "norm_label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each json list.",
+ "id": "tests_test_stocks_api_coverage_rationale_1126"
},
{
- "label": ".test_toDict_hides_userAgent()",
- "file_type": "code",
- "source_file": "tests/test_sessions.py",
- "source_location": "L46",
- "community": 44,
- "norm_label": ".test_todict_hides_useragent()",
- "id": "tests_test_sessions_testusersessionmodel_test_toDict_hides_useragent"
+ "label": "Hit the actual /stocks/cotations HTTP endpoint with adjusted=false.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1212",
+ "community": 130,
+ "norm_label": "hit the actual /stocks/cotations http endpoint with adjusted=false.",
+ "id": "tests_test_stocks_api_coverage_rationale_1212"
},
{
- "label": ".test_toDict_with_timestamps()",
- "file_type": "code",
- "source_file": "tests/test_sessions.py",
- "source_location": "L117",
- "community": 44,
- "norm_label": ".test_todict_with_timestamps()",
- "id": "tests_test_sessions_testusersessionmodel_test_todict_with_timestamps"
+ "label": "Tests for queryLiveCotation and /stocks/cotations/live.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1257",
+ "community": 22,
+ "norm_label": "tests for querylivecotation and /stocks/cotations/live.",
+ "id": "tests_test_stocks_api_coverage_rationale_1257"
},
{
- "label": ".test_toDict_without_timestamps()",
- "file_type": "code",
- "source_file": "tests/test_sessions.py",
- "source_location": "L133",
- "community": 44,
- "norm_label": ".test_todict_without_timestamps()",
- "id": "tests_test_sessions_testusersessionmodel_test_todict_without_timestamps"
+ "label": "GET /stocks/realtime-cotation without search returns 422.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1396",
+ "community": 22,
+ "norm_label": "get /stocks/realtime-cotation without search returns 422.",
+ "id": "tests_test_stocks_api_coverage_rationale_1396"
},
{
- "label": "TestNormalizeColumns",
- "file_type": "code",
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L86",
- "community": 477,
- "norm_label": "testnormalizecolumns",
- "id": "tests_test_stocks_api_util_coverage_testnormalizecolumns"
+ "label": "GET /cotations without search returns 422.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1464",
+ "community": 22,
+ "norm_label": "get /cotations without search returns 422.",
+ "id": "tests_test_stocks_api_coverage_rationale_1464"
},
{
- "label": ".test_reorder_columns()",
+ "label": "cotations.py",
"file_type": "code",
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L87",
- "community": 477,
- "norm_label": ".test_reorder_columns()",
- "id": "tests_test_stocks_api_util_coverage_testnormalizecolumns_test_reorder_columns"
+ "source_file": "cotations.py",
+ "source_location": "L1",
+ "community": 267,
+ "norm_label": "cotations.py",
+ "id": "cotations_py"
},
{
- "label": ".test_partial_order()",
+ "label": "queryLiveCotations()",
"file_type": "code",
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L92",
- "community": 477,
- "norm_label": ".test_partial_order()",
- "id": "tests_test_stocks_api_util_coverage_testnormalizecolumns_test_partial_order"
+ "source_file": "cotations.py",
+ "source_location": "L5",
+ "community": 267,
+ "norm_label": "querylivecotations()",
+ "id": "server_cotations_querylivecotations"
},
{
- "label": ".test_missing_columns_ignored()",
- "file_type": "code",
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L97",
- "community": 477,
- "norm_label": ".test_missing_columns_ignored()",
- "id": "tests_test_stocks_api_util_coverage_testnormalizecolumns_test_missing_columns_ignored"
+ "label": "GET /stocks/realtime-cotation without search returns 422.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1388",
+ "community": 22,
+ "norm_label": "get /stocks/realtime-cotation without search returns 422.",
+ "id": "tests_test_stocks_api_coverage_rationale_1388"
},
{
- "label": ".test_empty_order()",
- "file_type": "code",
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L102",
- "community": 477,
- "norm_label": ".test_empty_order()",
- "id": "tests_test_stocks_api_util_coverage_testnormalizecolumns_test_empty_order"
+ "label": "GET /cotations without search returns 422.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1456",
+ "community": 22,
+ "norm_label": "get /cotations without search returns 422.",
+ "id": "tests_test_stocks_api_coverage_rationale_1456"
},
{
- "label": ".test_remaining_sorted()",
+ "label": ".test_cotations_filter_cotation_column_filters_by_date()",
"file_type": "code",
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L107",
- "community": 477,
- "norm_label": ".test_remaining_sorted()",
- "id": "tests_test_stocks_api_util_coverage_testnormalizecolumns_test_remaining_sorted"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1253",
+ "community": 22,
+ "norm_label": ".test_cotations_filter_cotation_column_filters_by_date()",
+ "id": "tests_test_stocks_api_coverage_testquerycotations_test_cotations_filter_cotation_column_filters_by_date"
},
{
- "label": "TestConcurrentHttpProxy",
+ "label": ".test_cotations_filter_cotation_column_range()",
"file_type": "code",
- "source_file": "tests/test_thread_safety.py",
- "source_location": "L175",
- "community": 172,
- "norm_label": "testconcurrenthttpproxy",
- "id": "tests_test_thread_safety_testconcurrenthttpproxy"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1269",
+ "community": 22,
+ "norm_label": ".test_cotations_filter_cotation_column_range()",
+ "id": "tests_test_stocks_api_coverage_testquerycotations_test_cotations_filter_cotation_column_range"
},
{
- "label": ".test_proxy_returns_thread_local_sessions()",
+ "label": ".test_cotations_filter_cotation_column_handles_non_list()",
"file_type": "code",
- "source_file": "tests/test_thread_safety.py",
- "source_location": "L178",
- "community": 172,
- "norm_label": ".test_proxy_returns_thread_local_sessions()",
- "id": "tests_test_thread_safety_testconcurrenthttpproxy_test_proxy_returns_thread_local_sessions"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1286",
+ "community": 22,
+ "norm_label": ".test_cotations_filter_cotation_column_handles_non_list()",
+ "id": "tests_test_stocks_api_coverage_testquerycotations_test_cotations_filter_cotation_column_handles_non_list"
},
{
- "label": ".test_connectivity_uses_getSession()",
+ "label": ".test_cotations_search_required()",
"file_type": "code",
- "source_file": "tests/test_thread_safety.py",
- "source_location": "L203",
- "community": 172,
- "norm_label": ".test_connectivity_uses_getsession()",
- "id": "tests_test_thread_safety_testconcurrenthttpproxy_test_connectivity_uses_getsession"
- },
- {
- "label": "connectivity.checkServiceConnection must call getSession(), not use a global Ses",
- "file_type": "rationale",
- "source_file": "tests/test_thread_safety.py",
- "source_location": "L204",
- "community": 172,
- "norm_label": "connectivity.checkserviceconnection must call getsession(), not use a global ses",
- "id": "tests_test_thread_safety_rationale_204"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1297",
+ "community": 120,
+ "norm_label": ".test_cotations_search_required()",
+ "id": "tests_test_stocks_api_coverage_testquerycotations_test_cotations_search_required"
},
{
- "label": "Tests covering key.py lines 15-40. Uses asyncio.run() since pytest-asyncio",
+ "label": "GET /cotations without search returns 422.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L227",
- "community": 21,
- "norm_label": "tests covering key.py lines 15-40. uses asyncio.run() since pytest-asyncio",
- "id": "tests_test_stocks_api_coverage_rationale_227"
+ "source_location": "L1298",
+ "community": 120,
+ "norm_label": "get /cotations without search returns 422.",
+ "id": "tests_test_stocks_api_coverage_rationale_1298"
},
{
- "label": "When KEY.SYSTEM is falsy, return None (line 16).",
+ "label": "2 tickers x 2 rows. Rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. M",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L232",
- "community": 452,
- "norm_label": "when key.system is falsy, return none (line 16).",
- "id": "tests_test_stocks_api_coverage_rationale_232"
+ "source_location": "L1066",
+ "community": 10,
+ "norm_label": "2 tickers x 2 rows. rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. m",
+ "id": "tests_test_stocks_api_coverage_rationale_1066"
},
{
- "label": "When key is required but not provided (line 19).",
+ "label": "4 rows for 2 tickers -> 2 results, one per ticker, both with latest TIME.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L243",
- "community": 453,
- "norm_label": "when key is required but not provided (line 19).",
- "id": "tests_test_stocks_api_coverage_rationale_243"
+ "source_location": "L1112",
+ "community": 10,
+ "norm_label": "4 rows for 2 tickers -> 2 results, one per ticker, both with latest time.",
+ "id": "tests_test_stocks_api_coverage_rationale_1112"
},
{
- "label": "When atomic UPDATE returns 0 rows and query finds no key -> 401.",
+ "label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each JSON list.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L256",
- "community": 454,
- "norm_label": "when atomic update returns 0 rows and query finds no key -> 401.",
- "id": "tests_test_stocks_api_coverage_rationale_256"
+ "source_location": "L1124",
+ "community": 10,
+ "norm_label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each json list.",
+ "id": "tests_test_stocks_api_coverage_rationale_1124"
},
{
- "label": "When atomic UPDATE returns 0 rows and query finds key at limit -> 429.",
+ "label": "Hit the actual /stocks/cotations HTTP endpoint with adjusted=false.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L273",
- "community": 455,
- "norm_label": "when atomic update returns 0 rows and query finds key at limit -> 429.",
- "id": "tests_test_stocks_api_coverage_rationale_273"
+ "source_location": "L1210",
+ "community": 130,
+ "norm_label": "hit the actual /stocks/cotations http endpoint with adjusted=false.",
+ "id": "tests_test_stocks_api_coverage_rationale_1210"
},
{
- "label": "Happy path: atomic UPDATE succeeds, returns key (lines 22-33).",
+ "label": "GET /cotations without search returns 422.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L291",
- "community": 456,
- "norm_label": "happy path: atomic update succeeds, returns key (lines 22-33).",
- "id": "tests_test_stocks_api_coverage_rationale_291"
+ "source_location": "L1288",
+ "community": 120,
+ "norm_label": "get /cotations without search returns 422.",
+ "id": "tests_test_stocks_api_coverage_rationale_1288"
},
{
- "label": "HTTPException should cause rollback then re-raise (lines 35-37).",
+ "label": "Invalid date -> inner 400 caught by outer except -> 500.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L305",
- "community": 457,
- "norm_label": "httpexception should cause rollback then re-raise (lines 35-37).",
- "id": "tests_test_stocks_api_coverage_rationale_305"
+ "source_location": "L832",
+ "community": 39,
+ "norm_label": "invalid date -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_832"
},
{
- "label": "Tests covering key.py line 44.",
+ "label": "search.strip() == '' should still dedup (line 181).",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L339",
- "community": 141,
- "norm_label": "tests covering key.py line 44.",
- "id": "tests_test_stocks_api_coverage_rationale_339"
+ "source_location": "L885",
+ "community": 39,
+ "norm_label": "search.strip() == '' should still dedup (line 181).",
+ "id": "tests_test_stocks_api_coverage_rationale_885"
},
{
- "label": "Tests covering key.py lines 48-66.",
+ "label": "DataFrame without TIME column.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L362",
- "community": 21,
- "norm_label": "tests covering key.py lines 48-66.",
- "id": "tests_test_stocks_api_coverage_rationale_362"
+ "source_location": "L894",
+ "community": 39,
+ "norm_label": "dataframe without time column.",
+ "id": "tests_test_stocks_api_coverage_rationale_894"
},
{
- "label": "New key created when no existing key for user (lines 57-59).",
+ "label": "Two dates in the range, both valid.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L366",
- "community": 458,
- "norm_label": "new key created when no existing key for user (lines 57-59).",
- "id": "tests_test_stocks_api_coverage_rationale_366"
+ "source_location": "L907",
+ "community": 39,
+ "norm_label": "two dates in the range, both valid.",
+ "id": "tests_test_stocks_api_coverage_rationale_907"
},
{
- "label": "Existing key is updated (lines 54-56).",
+ "label": "Single invalid date -> inner 400 caught by outer except -> 500.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L381",
- "community": 459,
- "norm_label": "existing key is updated (lines 54-56).",
- "id": "tests_test_stocks_api_coverage_rationale_381"
+ "source_location": "L921",
+ "community": 46,
+ "norm_label": "single invalid date -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_921"
},
{
- "label": "Exception during creation triggers rollback and 500 (lines 64-66).",
+ "label": "Multiple search terms with tickerIndex.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L398",
- "community": 460,
- "norm_label": "exception during creation triggers rollback and 500 (lines 64-66).",
- "id": "tests_test_stocks_api_coverage_rationale_398"
+ "source_location": "L946",
+ "community": 17,
+ "norm_label": "multiple search terms with tickerindex.",
+ "id": "tests_test_stocks_api_coverage_rationale_946"
},
{
- "label": "Tests covering query.py lines 22-48.",
+ "label": "Search with no index match falls back to string startswith.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L416",
- "community": 3,
- "norm_label": "tests covering query.py lines 22-48.",
- "id": "tests_test_stocks_api_coverage_rationale_416"
+ "source_location": "L954",
+ "community": 17,
+ "norm_label": "search with no index match falls back to string startswith.",
+ "id": "tests_test_stocks_api_coverage_rationale_954"
},
{
- "label": "replaceNan handles direct float NaN values (line 34).",
+ "label": "len(dateRange) == 1 -> single date filter.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L494",
- "community": 135,
- "norm_label": "replacenan handles direct float nan values (line 34).",
- "id": "tests_test_stocks_api_coverage_rationale_494"
+ "source_location": "L962",
+ "community": 39,
+ "norm_label": "len(daterange) == 1 -> single date filter.",
+ "id": "tests_test_stocks_api_coverage_rationale_962"
},
{
- "label": "Non-JSON-dict/list string is left as-is.",
+ "label": "COTACAO 10Y PADRAO and COTACAO 10Y AJUSTADA belong to /cotations, not /fundament",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L508",
- "community": 517,
- "norm_label": "non-json-dict/list string is left as-is.",
- "id": "tests_test_stocks_api_coverage_rationale_508"
+ "source_location": "L976",
+ "community": 538,
+ "norm_label": "cotacao 10y padrao and cotacao 10y ajustada belong to /cotations, not /fundament",
+ "id": "tests_test_stocks_api_coverage_rationale_976"
},
{
- "label": "pd.NA is not a string, so lambda returns it unchanged.",
+ "label": "Regression: queryFundamental must not mutate the shared cache TIME column.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L517",
- "community": 542,
- "norm_label": "pd.na is not a string, so lambda returns it unchanged.",
- "id": "tests_test_stocks_api_coverage_rationale_517"
+ "source_location": "L1003",
+ "community": 46,
+ "norm_label": "regression: queryfundamental must not mutate the shared cache time column.",
+ "id": "tests_test_stocks_api_coverage_rationale_1003"
},
{
- "label": "Regression: is_string_dtype fails when column has strings + None (pandas 2.x).",
+ "label": "Tests for queryCotations and /stocks/cotations.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L526",
- "community": 3,
- "norm_label": "regression: is_string_dtype fails when column has strings + none (pandas 2.x).",
- "id": "tests_test_stocks_api_coverage_rationale_526"
+ "source_location": "L1035",
+ "community": 10,
+ "norm_label": "tests for querycotations and /stocks/cotations.",
+ "id": "tests_test_stocks_api_coverage_rationale_1035"
},
{
- "label": "All four SPECIAL_COLS should parse correctly when mixed with None.",
+ "label": "2 tickers x 2 rows. Rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. M",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L548",
- "community": 3,
- "norm_label": "all four special_cols should parse correctly when mixed with none.",
- "id": "tests_test_stocks_api_coverage_rationale_548"
+ "source_location": "L1047",
+ "community": 10,
+ "norm_label": "2 tickers x 2 rows. rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. m",
+ "id": "tests_test_stocks_api_coverage_rationale_1047"
},
{
- "label": "Tests covering query.py lines 50-67.",
+ "label": "4 rows for 2 tickers -> 2 results, one per ticker, both with latest TIME.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L573",
- "community": 3,
- "norm_label": "tests covering query.py lines 50-67.",
- "id": "tests_test_stocks_api_coverage_rationale_573"
+ "source_location": "L1093",
+ "community": 10,
+ "norm_label": "4 rows for 2 tickers -> 2 results, one per ticker, both with latest time.",
+ "id": "tests_test_stocks_api_coverage_rationale_1093"
},
{
- "label": "Tests covering query.py lines 77-132.",
+ "label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each JSON list.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L628",
- "community": 110,
- "norm_label": "tests covering query.py lines 77-132.",
- "id": "tests_test_stocks_api_coverage_rationale_628"
+ "source_location": "L1105",
+ "community": 10,
+ "norm_label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each json list.",
+ "id": "tests_test_stocks_api_coverage_rationale_1105"
},
{
- "label": "Pass field name WITHOUT year (how categorizeColumns returns them).",
+ "label": "Hit the actual /stocks/cotations HTTP endpoint with adjusted=false.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L666",
- "community": 520,
- "norm_label": "pass field name without year (how categorizecolumns returns them).",
- "id": "tests_test_stocks_api_coverage_rationale_666"
+ "source_location": "L1191",
+ "community": 130,
+ "norm_label": "hit the actual /stocks/cotations http endpoint with adjusted=false.",
+ "id": "tests_test_stocks_api_coverage_rationale_1191"
},
{
- "label": "No historical data columns -> inner 400 caught by outer except -> 500.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L692",
- "community": 28,
- "norm_label": "no historical data columns -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_692"
+ "label": "2026-06-22-sandbox-mcp-design.md",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L1",
+ "community": 103,
+ "norm_label": "2026-06-22-sandbox-mcp-design.md",
+ "id": "docs_superpowers_specs_2026_06_22_sandbox_mcp_design_md"
},
{
- "label": "If an unexpected exception occurs in queryHistorical.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L717",
- "community": 28,
- "norm_label": "if an unexpected exception occurs in queryhistorical.",
- "id": "tests_test_stocks_api_coverage_rationale_717"
+ "label": "Mansa Prometheus \u2014 MCP Tool Calling + Sandbox Pool Design",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L1",
+ "community": 103,
+ "norm_label": "mansa prometheus \u2014 mcp tool calling + sandbox pool design",
+ "id": "specs_2026_06_22_sandbox_mcp_design_mansa_prometheus_mcp_tool_calling_sandbox_pool_design"
},
{
- "label": "Invalid date format raises exception (line 132).",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L735",
- "community": 136,
- "norm_label": "invalid date format raises exception (line 132).",
- "id": "tests_test_stocks_api_coverage_rationale_735"
+ "label": "1. Executive Summary",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L9",
+ "community": 103,
+ "norm_label": "1. executive summary",
+ "id": "specs_2026_06_22_sandbox_mcp_design_1_executive_summary"
},
{
- "label": "No historical columns at all -> inner 400 caught by outer except -> 500.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L751",
- "community": 127,
- "norm_label": "no historical columns at all -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_751"
+ "label": "2. Context & Motivation",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L17",
+ "community": 103,
+ "norm_label": "2. context & motivation",
+ "id": "specs_2026_06_22_sandbox_mcp_design_2_context_motivation"
},
{
- "label": "Historical query with a year range.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L761",
- "community": 28,
- "norm_label": "historical query with a year range.",
- "id": "tests_test_stocks_api_coverage_rationale_761"
+ "label": "3. Goals & Non-Goals",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L32",
+ "community": 261,
+ "norm_label": "3. goals & non-goals",
+ "id": "specs_2026_06_22_sandbox_mcp_design_3_goals_non_goals"
},
{
- "label": "Multiple search terms, all found in tickerIndex.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L768",
- "community": 28,
- "norm_label": "multiple search terms, all found in tickerindex.",
- "id": "tests_test_stocks_api_coverage_rationale_768"
+ "label": "Goals",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L34",
+ "community": 261,
+ "norm_label": "goals",
+ "id": "specs_2026_06_22_sandbox_mcp_design_goals"
},
{
- "label": "Invalid date -> inner 400 caught by outer except -> 500.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L831",
- "community": 17,
- "norm_label": "invalid date -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_831"
+ "label": "Non-Goals (YAGNI)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L42",
+ "community": 261,
+ "norm_label": "non-goals (yagni)",
+ "id": "specs_2026_06_22_sandbox_mcp_design_non_goals_yagni"
},
{
- "label": "search.strip() == '' should still dedup (line 181).",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L884",
- "community": 17,
- "norm_label": "search.strip() == '' should still dedup (line 181).",
- "id": "tests_test_stocks_api_coverage_rationale_884"
+ "label": "4. Background Research",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L53",
+ "community": 209,
+ "norm_label": "4. background research",
+ "id": "specs_2026_06_22_sandbox_mcp_design_4_background_research"
},
{
- "label": "DataFrame without TIME column.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L893",
- "community": 17,
- "norm_label": "dataframe without time column.",
- "id": "tests_test_stocks_api_coverage_rationale_893"
+ "label": "4.1 Sandbox Technology Landscape",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L55",
+ "community": 209,
+ "norm_label": "4.1 sandbox technology landscape",
+ "id": "specs_2026_06_22_sandbox_mcp_design_4_1_sandbox_technology_landscape"
},
{
- "label": "Two dates in the range, both valid.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L906",
- "community": 39,
- "norm_label": "two dates in the range, both valid.",
- "id": "tests_test_stocks_api_coverage_rationale_906"
+ "label": "4.2 Instant Startup Patterns",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L66",
+ "community": 209,
+ "norm_label": "4.2 instant startup patterns",
+ "id": "specs_2026_06_22_sandbox_mcp_design_4_2_instant_startup_patterns"
},
{
- "label": "Single invalid date -> inner 400 caught by outer except -> 500.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L920",
- "community": 46,
- "norm_label": "single invalid date -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_920"
+ "label": "4.3 Cost & Scaling Math",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L79",
+ "community": 209,
+ "norm_label": "4.3 cost & scaling math",
+ "id": "specs_2026_06_22_sandbox_mcp_design_4_3_cost_scaling_math"
},
{
- "label": "Fields that don't exist in the dataframe are filtered out.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L930",
- "community": 46,
- "norm_label": "fields that don't exist in the dataframe are filtered out.",
- "id": "tests_test_stocks_api_coverage_rationale_930"
+ "label": "4.4 Anthropic Containment Patterns",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L92",
+ "community": 209,
+ "norm_label": "4.4 anthropic containment patterns",
+ "id": "specs_2026_06_22_sandbox_mcp_design_4_4_anthropic_containment_patterns"
},
{
- "label": "Multiple search terms with tickerIndex.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L945",
- "community": 39,
- "norm_label": "multiple search terms with tickerindex.",
- "id": "tests_test_stocks_api_coverage_rationale_945"
+ "label": "4.5 Hybrid Library Policy",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L104",
+ "community": 209,
+ "norm_label": "4.5 hybrid library policy",
+ "id": "specs_2026_06_22_sandbox_mcp_design_4_5_hybrid_library_policy"
},
{
- "label": "Search with no index match falls back to string startswith.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L953",
- "community": 39,
- "norm_label": "search with no index match falls back to string startswith.",
- "id": "tests_test_stocks_api_coverage_rationale_953"
+ "label": "5. Architecture Decision",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L110",
+ "community": 103,
+ "norm_label": "5. architecture decision",
+ "id": "specs_2026_06_22_sandbox_mcp_design_5_architecture_decision"
},
{
- "label": "len(dateRange) == 1 -> single date filter.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L961",
- "community": 39,
- "norm_label": "len(daterange) == 1 -> single date filter.",
- "id": "tests_test_stocks_api_coverage_rationale_961"
+ "label": "6. Component Design",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L122",
+ "community": 117,
+ "norm_label": "6. component design",
+ "id": "specs_2026_06_22_sandbox_mcp_design_6_component_design"
},
{
- "label": "parseYearInput()",
- "file_type": "code",
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L23",
- "community": 106,
- "norm_label": "parseyearinput()",
- "id": "stocks_api_util_parseyearinput"
+ "label": "6.1 NEW: `sandbox-pool` Compose service",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L124",
+ "community": 117,
+ "norm_label": "6.1 new: `sandbox-pool` compose service",
+ "id": "specs_2026_06_22_sandbox_mcp_design_6_1_new_sandbox_pool_compose_service"
},
{
- "label": "TestParseYearInput",
- "file_type": "code",
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L43",
- "community": 106,
- "norm_label": "testparseyearinput",
- "id": "tests_test_stocks_api_util_coverage_testparseyearinput"
+ "label": "6.2 NEW: Sandbox executor image",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L131",
+ "community": 117,
+ "norm_label": "6.2 new: sandbox executor image",
+ "id": "specs_2026_06_22_sandbox_mcp_design_6_2_new_sandbox_executor_image"
},
{
- "label": ".test_empty_string()",
- "file_type": "code",
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L44",
- "community": 106,
- "norm_label": ".test_empty_string()",
- "id": "tests_test_stocks_api_util_coverage_testparseyearinput_test_empty_string"
+ "label": "6.3 NEW: `SandboxPoolSettings` in `config.py`",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L137",
+ "community": 117,
+ "norm_label": "6.3 new: `sandboxpoolsettings` in `config.py`",
+ "id": "specs_2026_06_22_sandbox_mcp_design_6_3_new_sandboxpoolsettings_in_config_py"
},
{
- "label": ".test_none()",
- "file_type": "code",
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L47",
- "community": 106,
- "norm_label": ".test_none()",
- "id": "tests_test_stocks_api_util_coverage_testparseyearinput_test_none"
+ "label": "code:python (class SandboxPoolSettings(BaseMansaSettings):)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L139",
+ "community": 117,
+ "norm_label": "code:python (class sandboxpoolsettings(basemansasettings):)",
+ "id": "specs_2026_06_22_sandbox_mcp_design_codeblock_1"
},
{
- "label": ".test_single_year()",
- "file_type": "code",
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L50",
- "community": 106,
- "norm_label": ".test_single_year()",
- "id": "tests_test_stocks_api_util_coverage_testparseyearinput_test_single_year"
+ "label": "6.4 NEW: `sandbox_client.py` in `main/app/prometheus/`",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L155",
+ "community": 117,
+ "norm_label": "6.4 new: `sandbox_client.py` in `main/app/prometheus/`",
+ "id": "specs_2026_06_22_sandbox_mcp_design_6_4_new_sandbox_client_py_in_main_app_prometheus"
},
{
- "label": ".test_year_range()",
- "file_type": "code",
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L53",
- "community": 106,
- "norm_label": ".test_year_range()",
- "id": "tests_test_stocks_api_util_coverage_testparseyearinput_test_year_range"
+ "label": "code:python (class SandboxClient:)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L158",
+ "community": 117,
+ "norm_label": "code:python (class sandboxclient:)",
+ "id": "specs_2026_06_22_sandbox_mcp_design_codeblock_2"
},
{
- "label": ".test_spaces()",
- "file_type": "code",
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L56",
- "community": 106,
- "norm_label": ".test_spaces()",
- "id": "tests_test_stocks_api_util_coverage_testparseyearinput_test_spaces"
+ "label": "6.5 MODIFIED: `main/service/stocksapi_service.py` (add fastapi-mcp)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L173",
+ "community": 117,
+ "norm_label": "6.5 modified: `main/service/stocksapi_service.py` (add fastapi-mcp)",
+ "id": "specs_2026_06_22_sandbox_mcp_design_6_5_modified_main_service_stocksapi_service_py_add_fastapi_mcp"
},
{
- "label": ".test_three_years_raises()",
- "file_type": "code",
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L59",
- "community": 106,
- "norm_label": ".test_three_years_raises()",
- "id": "tests_test_stocks_api_util_coverage_testparseyearinput_test_three_years_raises"
+ "label": "code:python (from fastapi_mcp import FastApiMCP)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L175",
+ "community": 117,
+ "norm_label": "code:python (from fastapi_mcp import fastapimcp)",
+ "id": "specs_2026_06_22_sandbox_mcp_design_codeblock_3"
},
{
- "label": "TestParseYearInput",
- "file_type": "code",
- "source_file": "tests/test_stocks_util.py",
- "source_location": "L53",
- "community": 106,
- "norm_label": "testparseyearinput",
- "id": "tests_test_stocks_util_testparseyearinput"
+ "label": "6.6 MODIFIED: `main/app/prometheus/generation.py` (the big refactor)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L183",
+ "community": 117,
+ "norm_label": "6.6 modified: `main/app/prometheus/generation.py` (the big refactor)",
+ "id": "specs_2026_06_22_sandbox_mcp_design_6_6_modified_main_app_prometheus_generation_py_the_big_refactor"
},
{
- "label": ".test_parse_year_single()",
- "file_type": "code",
- "source_file": "tests/test_stocks_util.py",
- "source_location": "L54",
- "community": 106,
- "norm_label": ".test_parse_year_single()",
- "id": "tests_test_stocks_util_testparseyearinput_test_parse_year_single"
+ "label": "6.7 MODIFIED: `docker-compose.yml`",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L194",
+ "community": 117,
+ "norm_label": "6.7 modified: `docker-compose.yml`",
+ "id": "specs_2026_06_22_sandbox_mcp_design_6_7_modified_docker_compose_yml"
},
{
- "label": ".test_parse_year_range()",
- "file_type": "code",
- "source_file": "tests/test_stocks_util.py",
- "source_location": "L59",
- "community": 106,
- "norm_label": ".test_parse_year_range()",
- "id": "tests_test_stocks_util_testparseyearinput_test_parse_year_range"
+ "label": "code:yaml (services:)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L195",
+ "community": 117,
+ "norm_label": "code:yaml (services:)",
+ "id": "specs_2026_06_22_sandbox_mcp_design_codeblock_4"
},
{
- "label": ".test_parse_year_none()",
- "file_type": "code",
- "source_file": "tests/test_stocks_util.py",
- "source_location": "L64",
- "community": 106,
- "norm_label": ".test_parse_year_none()",
- "id": "tests_test_stocks_util_testparseyearinput_test_parse_year_none"
+ "label": "6.8 MODIFIED: `requirements.txt`",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L215",
+ "community": 117,
+ "norm_label": "6.8 modified: `requirements.txt`",
+ "id": "specs_2026_06_22_sandbox_mcp_design_6_8_modified_requirements_txt"
},
{
- "label": ".test_parse_year_empty_string()",
- "file_type": "code",
- "source_file": "tests/test_stocks_util.py",
- "source_location": "L69",
- "community": 106,
- "norm_label": ".test_parse_year_empty_string()",
- "id": "tests_test_stocks_util_testparseyearinput_test_parse_year_empty_string"
+ "label": "7. Data Flow \u2014 One Real Query",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L220",
+ "community": 103,
+ "norm_label": "7. data flow \u2014 one real query",
+ "id": "specs_2026_06_22_sandbox_mcp_design_7_data_flow_one_real_query"
},
{
- "label": ".test_parse_year_with_spaces()",
- "file_type": "code",
- "source_file": "tests/test_stocks_util.py",
- "source_location": "L74",
- "community": 106,
- "norm_label": ".test_parse_year_with_spaces()",
- "id": "tests_test_stocks_util_testparseyearinput_test_parse_year_with_spaces"
+ "label": "code:block5 (User: \"Show me the correlation between PETR4 and the oil sec)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L222",
+ "community": 103,
+ "norm_label": "code:block5 (user: \"show me the correlation between petr4 and the oil sec)",
+ "id": "specs_2026_06_22_sandbox_mcp_design_codeblock_5"
},
{
- "label": ".test_parse_year_invalid_format()",
- "file_type": "code",
- "source_file": "tests/test_stocks_util.py",
- "source_location": "L79",
- "community": 106,
- "norm_label": ".test_parse_year_invalid_format()",
- "id": "tests_test_stocks_util_testparseyearinput_test_parse_year_invalid_format"
+ "label": "8. Build Sequence (4 phases, each independently shippable)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L244",
+ "community": 233,
+ "norm_label": "8. build sequence (4 phases, each independently shippable)",
+ "id": "specs_2026_06_22_sandbox_mcp_design_8_build_sequence_4_phases_each_independently_shippable"
},
{
- "label": ".test_parse_year_invalid_non_digit()",
- "file_type": "code",
- "source_file": "tests/test_stocks_util.py",
- "source_location": "L84",
- "community": 106,
- "norm_label": ".test_parse_year_invalid_non_digit()",
- "id": "tests_test_stocks_util_testparseyearinput_test_parse_year_invalid_non_digit"
+ "label": "Phase 0 \u2014 Sandbox foundation (1-2 days, no user-facing change)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L246",
+ "community": 233,
+ "norm_label": "phase 0 \u2014 sandbox foundation (1-2 days, no user-facing change)",
+ "id": "specs_2026_06_22_sandbox_mcp_design_phase_0_sandbox_foundation_1_2_days_no_user_facing_change"
},
{
- "label": "Invalid date format raises exception (line 132).",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L731",
- "community": 136,
- "norm_label": "invalid date format raises exception (line 132).",
- "id": "tests_test_stocks_api_coverage_rationale_731"
+ "label": "Phase 1 \u2014 MCP exposure of STOCKS_API (1 day)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L258",
+ "community": 233,
+ "norm_label": "phase 1 \u2014 mcp exposure of stocks_api (1 day)",
+ "id": "specs_2026_06_22_sandbox_mcp_design_phase_1_mcp_exposure_of_stocks_api_1_day"
},
{
- "label": "No historical columns at all -> inner 400 caught by outer except -> 500.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L747",
- "community": 127,
- "norm_label": "no historical columns at all -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_747"
+ "label": "Phase 2 \u2014 Refactor PROMETHEUS to agentic (3-5 days, the big one)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L264",
+ "community": 233,
+ "norm_label": "phase 2 \u2014 refactor prometheus to agentic (3-5 days, the big one)",
+ "id": "specs_2026_06_22_sandbox_mcp_design_phase_2_refactor_prometheus_to_agentic_3_5_days_the_big_one"
},
{
- "label": "Historical query with a year range.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L757",
- "community": 28,
- "norm_label": "historical query with a year range.",
- "id": "tests_test_stocks_api_coverage_rationale_757"
+ "label": "Phase 3 \u2014 Hardening (1-2 days, can ship incrementally)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L276",
+ "community": 233,
+ "norm_label": "phase 3 \u2014 hardening (1-2 days, can ship incrementally)",
+ "id": "specs_2026_06_22_sandbox_mcp_design_phase_3_hardening_1_2_days_can_ship_incrementally"
},
{
- "label": "Multiple search terms, all found in tickerIndex.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L764",
- "community": 28,
- "norm_label": "multiple search terms, all found in tickerindex.",
- "id": "tests_test_stocks_api_coverage_rationale_764"
+ "label": "9. Security",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L285",
+ "community": 103,
+ "norm_label": "9. security",
+ "id": "specs_2026_06_22_sandbox_mcp_design_9_security"
},
{
- "label": "Tests covering query.py lines 142-202.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L773",
- "community": 110,
- "norm_label": "tests covering query.py lines 142-202.",
- "id": "tests_test_stocks_api_coverage_rationale_773"
+ "label": "10. Performance",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L308",
+ "community": 103,
+ "norm_label": "10. performance",
+ "id": "specs_2026_06_22_sandbox_mcp_design_10_performance"
},
{
- "label": "Invalid date -> inner 400 caught by outer except -> 500.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L827",
- "community": 17,
- "norm_label": "invalid date -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_827"
+ "label": "11. Testing",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L324",
+ "community": 103,
+ "norm_label": "11. testing",
+ "id": "specs_2026_06_22_sandbox_mcp_design_11_testing"
},
{
- "label": "search.strip() == '' should still dedup (line 181).",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L876",
- "community": 17,
- "norm_label": "search.strip() == '' should still dedup (line 181).",
- "id": "tests_test_stocks_api_coverage_rationale_876"
- },
- {
- "label": "Two dates in the range, both valid.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L898",
- "community": 39,
- "norm_label": "two dates in the range, both valid.",
- "id": "tests_test_stocks_api_coverage_rationale_898"
+ "label": "12. Risks",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L337",
+ "community": 103,
+ "norm_label": "12. risks",
+ "id": "specs_2026_06_22_sandbox_mcp_design_12_risks"
},
{
- "label": "Single invalid date -> inner 400 caught by outer except -> 500.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L912",
- "community": 46,
- "norm_label": "single invalid date -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_912"
+ "label": "13. Out of Scope (YAGNI)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L351",
+ "community": 103,
+ "norm_label": "13. out of scope (yagni)",
+ "id": "specs_2026_06_22_sandbox_mcp_design_13_out_of_scope_yagni"
},
{
- "label": "Fields that don't exist in the dataframe are filtered out.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L922",
- "community": 46,
- "norm_label": "fields that don't exist in the dataframe are filtered out.",
- "id": "tests_test_stocks_api_coverage_rationale_922"
+ "label": "14. Open Questions",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L364",
+ "community": 103,
+ "norm_label": "14. open questions",
+ "id": "specs_2026_06_22_sandbox_mcp_design_14_open_questions"
},
{
- "label": "Multiple search terms with tickerIndex.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L937",
- "community": 17,
- "norm_label": "multiple search terms with tickerindex.",
- "id": "tests_test_stocks_api_coverage_rationale_937"
+ "label": "Appendix A: Codebase Findings",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L374",
+ "community": 123,
+ "norm_label": "appendix a: codebase findings",
+ "id": "specs_2026_06_22_sandbox_mcp_design_appendix_a_codebase_findings"
},
{
- "label": "Invalid date format raises exception (line 132).",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L730",
- "community": 136,
- "norm_label": "invalid date format raises exception (line 132).",
- "id": "tests_test_stocks_api_coverage_rationale_730"
+ "label": "Critical path correction",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L376",
+ "community": 123,
+ "norm_label": "critical path correction",
+ "id": "specs_2026_06_22_sandbox_mcp_design_critical_path_correction"
},
{
- "label": "No historical columns at all -> inner 400 caught by outer except -> 500.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L746",
- "community": 127,
- "norm_label": "no historical columns at all -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_746"
+ "label": "Project structure (key files only)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L380",
+ "community": 123,
+ "norm_label": "project structure (key files only)",
+ "id": "specs_2026_06_22_sandbox_mcp_design_project_structure_key_files_only"
},
{
- "label": "Historical query with a year range.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L756",
- "community": 28,
- "norm_label": "historical query with a year range.",
- "id": "tests_test_stocks_api_coverage_rationale_756"
+ "label": "code:block6 (D:\\Repositories\\server\\)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L381",
+ "community": 123,
+ "norm_label": "code:block6 (d:\\repositories\\server\\)",
+ "id": "specs_2026_06_22_sandbox_mcp_design_codeblock_6"
},
{
- "label": "Tests covering query.py lines 142-202.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L772",
- "community": 110,
- "norm_label": "tests covering query.py lines 142-202.",
- "id": "tests_test_stocks_api_coverage_rationale_772"
+ "label": "STOCKS_API \u2014 endpoints (MCP candidates)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L413",
+ "community": 123,
+ "norm_label": "stocks_api \u2014 endpoints (mcp candidates)",
+ "id": "specs_2026_06_22_sandbox_mcp_design_stocks_api_endpoints_mcp_candidates"
},
{
- "label": "Invalid date -> inner 400 caught by outer except -> 500.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L826",
- "community": 17,
- "norm_label": "invalid date -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_826"
+ "label": "Prometheus controller \u2014 endpoints (existing)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L424",
+ "community": 123,
+ "norm_label": "prometheus controller \u2014 endpoints (existing)",
+ "id": "specs_2026_06_22_sandbox_mcp_design_prometheus_controller_endpoints_existing"
},
{
- "label": "search.strip() == '' should still dedup (line 181).",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L874",
- "community": 46,
- "norm_label": "search.strip() == '' should still dedup (line 181).",
- "id": "tests_test_stocks_api_coverage_rationale_874"
+ "label": "The 4-stage pipeline (current `generation.py`)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L436",
+ "community": 123,
+ "norm_label": "the 4-stage pipeline (current `generation.py`)",
+ "id": "specs_2026_06_22_sandbox_mcp_design_the_4_stage_pipeline_current_generation_py"
},
{
- "label": "Single invalid date -> inner 400 caught by outer except -> 500.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L910",
- "community": 46,
- "norm_label": "single invalid date -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_910"
+ "label": "Key config patterns",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L448",
+ "community": 123,
+ "norm_label": "key config patterns",
+ "id": "specs_2026_06_22_sandbox_mcp_design_key_config_patterns"
},
{
- "label": "Multiple search terms with tickerIndex.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L935",
- "community": 17,
- "norm_label": "multiple search terms with tickerindex.",
- "id": "tests_test_stocks_api_coverage_rationale_935"
+ "label": "Two MySQL engines",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L454",
+ "community": 123,
+ "norm_label": "two mysql engines",
+ "id": "specs_2026_06_22_sandbox_mcp_design_two_mysql_engines"
},
{
- "label": "Search with no index match falls back to string startswith.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L943",
- "community": 39,
- "norm_label": "search with no index match falls back to string startswith.",
- "id": "tests_test_stocks_api_coverage_rationale_943"
+ "label": "code:python (engine = create_engine(...) # user_db (mansa_db))",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L456",
+ "community": 123,
+ "norm_label": "code:python (engine = create_engine(...) # user_db (mansa_db))",
+ "id": "specs_2026_06_22_sandbox_mcp_design_codeblock_7"
},
{
- "label": "len(dateRange) == 1 -> single date filter.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L951",
- "community": 39,
- "norm_label": "len(daterange) == 1 -> single date filter.",
- "id": "tests_test_stocks_api_coverage_rationale_951"
+ "label": "Port collision in current setup",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L466",
+ "community": 123,
+ "norm_label": "port collision in current setup",
+ "id": "specs_2026_06_22_sandbox_mcp_design_port_collision_in_current_setup"
},
{
- "label": "Thread-safe proxy that delegates to per-thread sessions.",
- "file_type": "rationale",
- "source_file": "main/app/prometheus/generation.py",
- "source_location": "L20",
- "community": 215,
- "norm_label": "thread-safe proxy that delegates to per-thread sessions.",
- "id": "prometheus_generation_rationale_20"
+ "label": "Existing dependencies (from `requirements.txt`)",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L470",
+ "community": 123,
+ "norm_label": "existing dependencies (from `requirements.txt`)",
+ "id": "specs_2026_06_22_sandbox_mcp_design_existing_dependencies_from_requirements_txt"
},
{
- "label": "Tests covering query.py lines 77-132.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L582",
- "community": 110,
- "norm_label": "tests covering query.py lines 77-132.",
- "id": "tests_test_stocks_api_coverage_rationale_582"
+ "label": "Appendix B: Research References",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L479",
+ "community": 103,
+ "norm_label": "appendix b: research references",
+ "id": "specs_2026_06_22_sandbox_mcp_design_appendix_b_research_references"
},
{
- "label": "Pass field name WITHOUT year (how categorizeColumns returns them).",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L620",
- "community": 520,
- "norm_label": "pass field name without year (how categorizecolumns returns them).",
- "id": "tests_test_stocks_api_coverage_rationale_620"
+ "label": "Status",
+ "file_type": "document",
+ "source_file": "docs/superpowers/specs/2026-06-22-sandbox-mcp-design.md",
+ "source_location": "L489",
+ "community": 103,
+ "norm_label": "status",
+ "id": "specs_2026_06_22_sandbox_mcp_design_status"
},
{
- "label": "No historical data columns -> inner 400 caught by outer except -> 500.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L646",
- "community": 28,
- "norm_label": "no historical data columns -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_646"
+ "label": "filterCotationData()",
+ "file_type": "code",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L49",
+ "community": 63,
+ "norm_label": "filtercotationdata()",
+ "id": "stocks_api_query_filtercotationdata"
},
{
- "label": "If an unexpected exception occurs (line 132).",
+ "label": "Tests for queryCotations and /stocks/cotations.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L671",
- "community": 28,
- "norm_label": "if an unexpected exception occurs (line 132).",
- "id": "tests_test_stocks_api_coverage_rationale_671"
+ "source_location": "L1014",
+ "community": 10,
+ "norm_label": "tests for querycotations and /stocks/cotations.",
+ "id": "tests_test_stocks_api_coverage_rationale_1014"
},
{
- "label": "Invalid date format raises exception (line 132).",
+ "label": "2 tickers x 2 rows. Rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. M",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L684",
- "community": 136,
- "norm_label": "invalid date format raises exception (line 132).",
- "id": "tests_test_stocks_api_coverage_rationale_684"
+ "source_location": "L1026",
+ "community": 10,
+ "norm_label": "2 tickers x 2 rows. rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. m",
+ "id": "tests_test_stocks_api_coverage_rationale_1026"
},
{
- "label": "No historical columns at all -> inner 400 caught by outer except -> 500.",
+ "label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each JSON list.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L700",
- "community": 127,
- "norm_label": "no historical columns at all -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_700"
+ "source_location": "L1084",
+ "community": 10,
+ "norm_label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each json list.",
+ "id": "tests_test_stocks_api_coverage_rationale_1084"
},
{
- "label": "Historical query with a year range.",
+ "label": "Hit the actual /stocks/cotations HTTP endpoint with adjusted=false.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L710",
- "community": 28,
- "norm_label": "historical query with a year range.",
- "id": "tests_test_stocks_api_coverage_rationale_710"
+ "source_location": "L1170",
+ "community": 130,
+ "norm_label": "hit the actual /stocks/cotations http endpoint with adjusted=false.",
+ "id": "tests_test_stocks_api_coverage_rationale_1170"
},
{
- "label": "Tests covering query.py lines 142-202.",
+ "label": "Tests for queryCotations and /stocks/cotations.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L726",
- "community": 110,
- "norm_label": "tests covering query.py lines 142-202.",
- "id": "tests_test_stocks_api_coverage_rationale_726"
+ "source_location": "L985",
+ "community": 10,
+ "norm_label": "tests for querycotations and /stocks/cotations.",
+ "id": "tests_test_stocks_api_coverage_rationale_985"
},
{
- "label": "Invalid date -> inner 400 caught by outer except -> 500.",
+ "label": "2 tickers x 2 rows. Rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. M",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L780",
- "community": 17,
- "norm_label": "invalid date -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_780"
+ "source_location": "L997",
+ "community": 10,
+ "norm_label": "2 tickers x 2 rows. rows 0,2 are 2024-01-15; rows 1,3 are 2024-06-15. m",
+ "id": "tests_test_stocks_api_coverage_rationale_997"
},
{
- "label": "search.strip() == '' should still dedup (line 181).",
+ "label": "4 rows for 2 tickers -> 2 results, one per ticker, both with latest TIME.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L828",
- "community": 17,
- "norm_label": "search.strip() == '' should still dedup (line 181).",
- "id": "tests_test_stocks_api_coverage_rationale_828"
+ "source_location": "L1043",
+ "community": 10,
+ "norm_label": "4 rows for 2 tickers -> 2 results, one per ticker, both with latest time.",
+ "id": "tests_test_stocks_api_coverage_rationale_1043"
},
{
- "label": "DataFrame without TIME column.",
+ "label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each JSON list.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L837",
- "community": 17,
- "norm_label": "dataframe without time column.",
- "id": "tests_test_stocks_api_coverage_rationale_837"
+ "source_location": "L1055",
+ "community": 10,
+ "norm_label": "dates=\"2016-12-02\" should keep only the 02-12-2016 entry in each json list.",
+ "id": "tests_test_stocks_api_coverage_rationale_1055"
},
{
- "label": "Two dates in the range, both valid.",
+ "label": "Hit the actual /stocks/cotations HTTP endpoint with adjusted=false.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L850",
- "community": 39,
- "norm_label": "two dates in the range, both valid.",
- "id": "tests_test_stocks_api_coverage_rationale_850"
+ "source_location": "L1141",
+ "community": 130,
+ "norm_label": "hit the actual /stocks/cotations http endpoint with adjusted=false.",
+ "id": "tests_test_stocks_api_coverage_rationale_1141"
},
{
- "label": "Single invalid date -> inner 400 caught by outer except -> 500.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L864",
- "community": 46,
- "norm_label": "single invalid date -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_864"
+ "label": "_parseCotationDate()",
+ "file_type": "code",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L45",
+ "community": 63,
+ "norm_label": "_parsecotationdate()",
+ "id": "stocks_api_query_parsecotationdate"
},
{
- "label": "Multiple search terms with tickerIndex.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L889",
- "community": 17,
- "norm_label": "multiple search terms with tickerindex.",
- "id": "tests_test_stocks_api_coverage_rationale_889"
+ "label": "_filterCotationByDate()",
+ "file_type": "code",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L55",
+ "community": 63,
+ "norm_label": "_filtercotationbydate()",
+ "id": "stocks_api_query_filtercotationbydate"
},
{
- "label": "Search with no index match falls back to string startswith.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L897",
- "community": 39,
- "norm_label": "search with no index match falls back to string startswith.",
- "id": "tests_test_stocks_api_coverage_rationale_897"
+ "label": ".queryRealtimeCotation()",
+ "file_type": "code",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L344",
+ "community": 63,
+ "norm_label": ".queryrealtimecotation()",
+ "id": "stocks_api_query_stocksquerymanager_queryrealtimecotation"
},
{
- "label": "checkMySqlConnection \u2014 success, errors, engine=None paths.",
+ "label": "Parse DD-MM-YYYY from COTACAO 10Y JSON DATA field. ponytail: stdlib datetime onl",
"file_type": "rationale",
- "source_file": "tests/test_connectivity_coverage.py",
- "source_location": "L8",
- "community": 530,
- "norm_label": "checkmysqlconnection \u2014 success, errors, engine=none paths.",
- "id": "tests_test_connectivity_coverage_rationale_8"
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L46",
+ "community": 63,
+ "norm_label": "parse dd-mm-yyyy from cotacao 10y json data field. ponytail: stdlib datetime onl",
+ "id": "stocks_api_query_rationale_46"
},
{
- "label": "checkServiceConnection \u2014 success, not found, errors.",
+ "label": "Filter COTACAO 10Y JSON entries by their inner DATA field (DD-MM-YYYY).",
"file_type": "rationale",
- "source_file": "tests/test_connectivity_coverage.py",
- "source_location": "L105",
- "community": 524,
- "norm_label": "checkserviceconnection \u2014 success, not found, errors.",
- "id": "tests_test_connectivity_coverage_rationale_105"
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L56",
+ "community": 63,
+ "norm_label": "filter cotacao 10y json entries by their inner data field (dd-mm-yyyy).",
+ "id": "stocks_api_query_rationale_56"
},
{
- "label": "Create a test client for the status endpoint without running lifespan.",
+ "label": "Fetch live prices for B3 tickers via yfinance. B3 tickers must match",
"file_type": "rationale",
- "source_file": "tests/test_status_endpoint.py",
- "source_location": "L9",
- "community": 80,
- "norm_label": "create a test client for the status endpoint without running lifespan.",
- "id": "tests_test_status_endpoint_rationale_9"
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L345",
+ "community": 63,
+ "norm_label": "fetch live prices for b3 tickers via yfinance. b3 tickers must match",
+ "id": "stocks_api_query_rationale_345"
},
{
- "label": "test_cache_scheduler_starts_daemon_thread()",
+ "label": "getRealtimeCotation()",
"file_type": "code",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L54",
- "community": 499,
- "norm_label": "test_cache_scheduler_starts_daemon_thread()",
- "id": "tests_test_stocks_api_coverage_test_cache_scheduler_starts_daemon_thread"
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L63",
+ "community": 169,
+ "norm_label": "getrealtimecotation()",
+ "id": "controller_stocksapi_controller_getrealtimecotation"
},
{
- "label": "Tests covering query.py lines 77-132.",
- "file_type": "rationale",
+ "label": ".test_cotations_with_limit()",
+ "file_type": "code",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L583",
- "community": 110,
- "norm_label": "tests covering query.py lines 77-132.",
- "id": "tests_test_stocks_api_coverage_rationale_583"
+ "source_location": "L1122",
+ "community": 10,
+ "norm_label": ".test_cotations_with_limit()",
+ "id": "tests_test_stocks_api_coverage_testquerycotations_test_cotations_with_limit"
},
{
- "label": "Pass field name WITHOUT year (how categorizeColumns returns them).",
+ "label": "Hit the actual /stocks/cotations HTTP endpoint with adjusted=false.",
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L621",
- "community": 520,
- "norm_label": "pass field name without year (how categorizecolumns returns them).",
- "id": "tests_test_stocks_api_coverage_rationale_621"
+ "source_location": "L1148",
+ "community": 130,
+ "norm_label": "hit the actual /stocks/cotations http endpoint with adjusted=false.",
+ "id": "tests_test_stocks_api_coverage_rationale_1148"
},
{
- "label": "No historical data columns -> inner 400 caught by outer except -> 500.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L647",
- "community": 28,
- "norm_label": "no historical data columns -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_647"
+ "label": ".__getitem__()",
+ "file_type": "code",
+ "source_file": "config.py",
+ "source_location": "L47",
+ "community": 102,
+ "norm_label": ".__getitem__()",
+ "id": "server_config_mysqlsettings_getitem"
},
{
- "label": "If an unexpected exception occurs (line 132).",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L672",
- "community": 28,
- "norm_label": "if an unexpected exception occurs (line 132).",
- "id": "tests_test_stocks_api_coverage_rationale_672"
+ "label": "test_cache_load.py",
+ "file_type": "code",
+ "source_file": "test_cache_load.py",
+ "source_location": "L1",
+ "community": 427,
+ "norm_label": "test_cache_load.py",
+ "id": "test_cache_load_py"
},
{
- "label": "Invalid date format raises exception (line 132).",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L685",
- "community": 136,
- "norm_label": "invalid date format raises exception (line 132).",
- "id": "tests_test_stocks_api_coverage_rationale_685"
+ "label": ".__init__()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/chat.py",
+ "source_location": "L14",
+ "community": 68,
+ "norm_label": ".__init__()",
+ "id": "prometheus_chat_prometheuschatmanager_init"
},
{
- "label": "No historical columns at all -> inner 400 caught by outer except -> 500.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L701",
- "community": 127,
- "norm_label": "no historical columns at all -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_701"
+ "label": "SessionProxy",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/generation.py",
+ "source_location": "L19",
+ "community": 487,
+ "norm_label": "sessionproxy",
+ "id": "prometheus_generation_sessionproxy"
},
{
- "label": "Historical query with a year range.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L711",
- "community": 28,
- "norm_label": "historical query with a year range.",
- "id": "tests_test_stocks_api_coverage_rationale_711"
- },
- {
- "label": "Tests covering query.py lines 142-202.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L727",
- "community": 110,
- "norm_label": "tests covering query.py lines 142-202.",
- "id": "tests_test_stocks_api_coverage_rationale_727"
+ "label": ".get()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/generation.py",
+ "source_location": "L20",
+ "community": 487,
+ "norm_label": ".get()",
+ "id": "prometheus_generation_sessionproxy_get"
},
{
- "label": "Invalid date -> inner 400 caught by outer except -> 500.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L781",
- "community": 17,
- "norm_label": "invalid date -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_781"
+ "label": ".post()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/generation.py",
+ "source_location": "L23",
+ "community": 487,
+ "norm_label": ".post()",
+ "id": "prometheus_generation_sessionproxy_post"
},
{
- "label": "DataFrame without TIME column.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L838",
- "community": 17,
- "norm_label": "dataframe without time column.",
- "id": "tests_test_stocks_api_coverage_rationale_838"
+ "label": "normalizeColumns()",
+ "file_type": "code",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L27",
+ "community": 477,
+ "norm_label": "normalizecolumns()",
+ "id": "stocks_api_util_normalizecolumns"
},
{
- "label": "Two dates in the range, both valid.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L851",
- "community": 39,
- "norm_label": "two dates in the range, both valid.",
- "id": "tests_test_stocks_api_coverage_rationale_851"
+ "label": "_verify_session_ownership()",
+ "file_type": "code",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L22",
+ "community": 84,
+ "norm_label": "_verify_session_ownership()",
+ "id": "controller_prometheus_controller_verify_session_ownership"
},
{
- "label": "Single invalid date -> inner 400 caught by outer except -> 500.",
+ "label": "Verify the user owns the session, raise 403 otherwise.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L865",
- "community": 46,
- "norm_label": "single invalid date -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_865"
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L23",
+ "community": 84,
+ "norm_label": "verify the user owns the session, raise 403 otherwise.",
+ "id": "controller_prometheus_controller_rationale_23"
},
{
- "label": "Fields that don't exist in the dataframe are filtered out.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L875",
- "community": 46,
- "norm_label": "fields that don't exist in the dataframe are filtered out.",
- "id": "tests_test_stocks_api_coverage_rationale_875"
+ "label": "apiKeyTest()",
+ "file_type": "code",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L23",
+ "community": 169,
+ "norm_label": "apikeytest()",
+ "id": "controller_stocksapi_controller_apikeytest"
},
{
- "label": "Multiple search terms with tickerIndex.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L890",
- "community": 17,
- "norm_label": "multiple search terms with tickerindex.",
- "id": "tests_test_stocks_api_coverage_rationale_890"
+ "label": ".__repr__()",
+ "file_type": "code",
+ "source_file": "main/models/stocksapi_key.py",
+ "source_location": "L21",
+ "community": 37,
+ "norm_label": ".__repr__()",
+ "id": "models_stocksapi_key_stocksapikey_repr"
},
{
- "label": "_hash_key()",
+ "label": ".__repr__()",
"file_type": "code",
- "source_file": "main/app/stocks_api/key.py",
- "source_location": "L16",
- "community": 26,
- "norm_label": "_hash_key()",
- "id": "stocks_api_key_hash_key"
+ "source_file": "main/models/user.py",
+ "source_location": "L20",
+ "community": 61,
+ "norm_label": ".__repr__()",
+ "id": "models_user_user_repr"
},
{
- "label": "Return SHA-256 hex digest of the given key.",
- "file_type": "rationale",
- "source_file": "main/app/stocks_api/key.py",
- "source_location": "L17",
- "community": 26,
- "norm_label": "return sha-256 hex digest of the given key.",
- "id": "stocks_api_key_rationale_17"
+ "label": ".removeRole()",
+ "file_type": "code",
+ "source_file": "main/models/user.py",
+ "source_location": "L36",
+ "community": 61,
+ "norm_label": ".removerole()",
+ "id": "models_user_user_removerole"
},
{
- "label": "_build_error_response()",
+ "label": ".__repr__()",
"file_type": "code",
- "source_file": "main/utils/errors.py",
- "source_location": "L27",
- "community": 504,
- "norm_label": "_build_error_response()",
- "id": "utils_errors_build_error_response"
+ "source_file": "main/models/user_session.py",
+ "source_location": "L23",
+ "community": 44,
+ "norm_label": ".__repr__()",
+ "id": "models_user_session_usersession_repr"
},
{
- "label": "http_exception_handler()",
+ "label": ".toDict()",
"file_type": "code",
- "source_file": "main/utils/errors.py",
- "source_location": "L37",
- "community": 504,
- "norm_label": "http_exception_handler()",
- "id": "utils_errors_http_exception_handler"
+ "source_file": "main/models/user_session.py",
+ "source_location": "L26",
+ "community": 44,
+ "norm_label": ".todict()",
+ "id": "models_user_session_usersession_todict"
},
{
- "label": "validation_exception_handler()",
+ "label": "cleanup()",
"file_type": "code",
- "source_file": "main/utils/errors.py",
- "source_location": "L44",
- "community": 504,
- "norm_label": "validation_exception_handler()",
- "id": "utils_errors_validation_exception_handler"
+ "source_file": "main/utils/http_session.py",
+ "source_location": "L18",
+ "community": 491,
+ "norm_label": "cleanup()",
+ "id": "utils_http_session_cleanup"
},
{
- "label": "generic_exception_handler()",
+ "label": "pagination.py",
"file_type": "code",
- "source_file": "main/utils/errors.py",
- "source_location": "L56",
- "community": 504,
- "norm_label": "generic_exception_handler()",
- "id": "utils_errors_generic_exception_handler"
+ "source_file": "main/utils/pagination.py",
+ "source_location": "L1",
+ "community": 500,
+ "norm_label": "pagination.py",
+ "id": "main_utils_pagination_py"
},
{
- "label": "register_error_handlers()",
+ "label": "PaginationParams",
"file_type": "code",
- "source_file": "main/utils/errors.py",
- "source_location": "L65",
- "community": 104,
- "norm_label": "register_error_handlers()",
- "id": "utils_errors_register_error_handlers"
+ "source_file": "main/utils/pagination.py",
+ "source_location": "L4",
+ "community": 500,
+ "norm_label": "paginationparams",
+ "id": "utils_pagination_paginationparams"
},
{
- "label": "get_session()",
+ "label": ".__init__()",
"file_type": "code",
- "source_file": "main/utils/http_session.py",
- "source_location": "L9",
- "community": 522,
- "norm_label": "get_session()",
- "id": "utils_http_session_get_session"
+ "source_file": "main/utils/pagination.py",
+ "source_location": "L5",
+ "community": 500,
+ "norm_label": ".__init__()",
+ "id": "utils_pagination_paginationparams_init"
},
{
- "label": "Return a requests.Session for the current thread. Sessions are created la",
+ "label": "Set required env vars before test collection. config.py eagerly instantia",
"file_type": "rationale",
- "source_file": "main/utils/http_session.py",
- "source_location": "L10",
- "community": 522,
- "norm_label": "return a requests.session for the current thread. sessions are created la",
- "id": "utils_http_session_rationale_10"
+ "source_file": "tests/conftest.py",
+ "source_location": "L9",
+ "community": 527,
+ "norm_label": "set required env vars before test collection. config.py eagerly instantia",
+ "id": "tests_conftest_rationale_9"
},
{
- "label": "Close the main thread's session at interpreter shutdown.",
+ "label": "TestClient with all routers mounted \u2014 no lifespan (no DB/service init). O",
"file_type": "rationale",
- "source_file": "main/utils/http_session.py",
- "source_location": "L23",
- "community": 500,
- "norm_label": "close the main thread's session at interpreter shutdown.",
- "id": "utils_http_session_rationale_23"
+ "source_file": "tests/conftest.py",
+ "source_location": "L75",
+ "community": 186,
+ "norm_label": "testclient with all routers mounted \u2014 no lifespan (no db/service init). o",
+ "id": "tests_conftest_rationale_75"
},
{
- "label": ".test_connectivity_uses_get_session()",
+ "label": "dbSession()",
"file_type": "code",
- "source_file": "tests/test_thread_safety.py",
- "source_location": "L203",
- "community": 172,
- "norm_label": ".test_connectivity_uses_get_session()",
- "id": "tests_test_thread_safety_testconcurrenthttpproxy_test_connectivity_uses_get_session"
- },
- {
- "label": "CODE_REVIEW_FINAL.md",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L1",
- "community": 11,
- "norm_label": "code_review_final.md",
- "id": "code_review_final_md"
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L20",
+ "community": 546,
+ "norm_label": "dbsession()",
+ "id": "tests_test_api_key_quota_atomic_dbsession"
},
{
- "label": "Code Review Report \u2014 Final",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L1",
- "community": 11,
- "norm_label": "code review report \u2014 final",
- "id": "server_code_review_final_code_review_report_final"
+ "label": "Create an in-memory SQLite database for testing.",
+ "file_type": "rationale",
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L21",
+ "community": 546,
+ "norm_label": "create an in-memory sqlite database for testing.",
+ "id": "tests_test_api_key_quota_atomic_rationale_21"
},
{
- "label": "Summary",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L10",
- "community": 11,
- "norm_label": "summary",
- "id": "server_code_review_final_summary"
+ "label": "Sample API key data for tests.",
+ "file_type": "rationale",
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L34",
+ "community": 546,
+ "norm_label": "sample api key data for tests.",
+ "id": "tests_test_api_key_quota_atomic_rationale_34"
},
{
- "label": "HIGH Priority Findings",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L24",
- "community": 11,
- "norm_label": "high priority findings",
- "id": "server_code_review_final_high_priority_findings"
+ "label": "Test that atomic increment prevents race conditions.",
+ "file_type": "rationale",
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L39",
+ "community": 26,
+ "norm_label": "test that atomic increment prevents race conditions.",
+ "id": "tests_test_api_key_quota_atomic_rationale_39"
},
{
- "label": "H1. Session Cookies Over HTTP",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L26",
- "community": 11,
- "norm_label": "h1. session cookies over http",
- "id": "server_code_review_final_h1_session_cookies_over_http"
+ "label": "Test that normal quota check still works with atomic increment.",
+ "file_type": "rationale",
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L42",
+ "community": 26,
+ "norm_label": "test that normal quota check still works with atomic increment.",
+ "id": "tests_test_api_key_quota_atomic_rationale_42"
},
{
- "label": "H2. Service \u2192 Controller Layer Violations",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L32",
- "community": 11,
- "norm_label": "h2. service \u2192 controller layer violations",
- "id": "server_code_review_final_h2_service_controller_layer_violations"
+ "label": "Test that atomic increment prevents quota overuse.",
+ "file_type": "rationale",
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L68",
+ "community": 26,
+ "norm_label": "test that atomic increment prevents quota overuse.",
+ "id": "tests_test_api_key_quota_atomic_rationale_68"
},
{
- "label": "H3. Bare `except:` Blocks in Scraper",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L38",
- "community": 11,
- "norm_label": "h3. bare `except:` blocks in scraper",
- "id": "server_code_review_final_h3_bare_except_blocks_in_scraper"
+ "label": "Test that concurrent requests are properly serialized at DB level. Th",
+ "file_type": "rationale",
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L104",
+ "community": 26,
+ "norm_label": "test that concurrent requests are properly serialized at db level. th",
+ "id": "tests_test_api_key_quota_atomic_rationale_104"
},
{
- "label": "H4. Full DataFrame Copy Per Request",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L44",
- "community": 11,
- "norm_label": "h4. full dataframe copy per request",
- "id": "server_code_review_final_h4_full_dataframe_copy_per_request"
+ "label": "Test edge case: request exactly at quota limit.",
+ "file_type": "rationale",
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L143",
+ "community": 26,
+ "norm_label": "test edge case: request exactly at quota limit.",
+ "id": "tests_test_api_key_quota_atomic_rationale_143"
},
{
- "label": "H5. Missing Database Indexes",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L50",
- "community": 11,
- "norm_label": "h5. missing database indexes",
- "id": "server_code_review_final_h5_missing_database_indexes"
+ "label": "Test that invalid API key returns zero rows affected.",
+ "file_type": "rationale",
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L166",
+ "community": 26,
+ "norm_label": "test that invalid api key returns zero rows affected.",
+ "id": "tests_test_api_key_quota_atomic_rationale_166"
},
{
- "label": "H6. Scraper N+1 HTTP Pattern",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L56",
- "community": 11,
- "norm_label": "h6. scraper n+1 http pattern",
- "id": "server_code_review_final_h6_scraper_n_1_http_pattern"
+ "label": "Test that multiple API keys have independent quotas.",
+ "file_type": "rationale",
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L180",
+ "community": 561,
+ "norm_label": "test that multiple api keys have independent quotas.",
+ "id": "tests_test_api_key_quota_atomic_rationale_180"
},
{
- "label": "H7. Raw `SessionLocal()` Bypassing DI",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L62",
- "community": 11,
- "norm_label": "h7. raw `sessionlocal()` bypassing di",
- "id": "server_code_review_final_h7_raw_sessionlocal_bypassing_di"
+ "label": "Test that increment works from zero usage.",
+ "file_type": "rationale",
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L215",
+ "community": 26,
+ "norm_label": "test that increment works from zero usage.",
+ "id": "tests_test_api_key_quota_atomic_rationale_215"
},
{
- "label": "MEDIUM Priority Findings",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L70",
- "community": 11,
- "norm_label": "medium priority findings",
- "id": "server_code_review_final_medium_priority_findings"
+ "label": "Integration tests for the verifyAPIKey function.",
+ "file_type": "rationale",
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L236",
+ "community": 90,
+ "norm_label": "integration tests for the verifyapikey function.",
+ "id": "tests_test_api_key_quota_atomic_rationale_236"
},
{
- "label": "M1. SQL Injection in Scraper",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L72",
- "community": 11,
- "norm_label": "m1. sql injection in scraper",
- "id": "server_code_review_final_m1_sql_injection_in_scraper"
+ "label": "Test API key verification with invalid key.",
+ "file_type": "rationale",
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L269",
+ "community": 90,
+ "norm_label": "test api key verification with invalid key.",
+ "id": "tests_test_api_key_quota_atomic_rationale_269"
},
{
- "label": "M2. Error Messages Leak Internal Details",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L77",
- "community": 11,
- "norm_label": "m2. error messages leak internal details",
- "id": "server_code_review_final_m2_error_messages_leak_internal_details"
+ "label": "Test API key verification with missing key.",
+ "file_type": "rationale",
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L280",
+ "community": 90,
+ "norm_label": "test api key verification with missing key.",
+ "id": "tests_test_api_key_quota_atomic_rationale_280"
},
{
- "label": "M3. CORS Allow Headers Wildcard",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L82",
- "community": 11,
- "norm_label": "m3. cors allow headers wildcard",
- "id": "server_code_review_final_m3_cors_allow_headers_wildcard"
+ "label": "Test that API key system can be disabled.",
+ "file_type": "rationale",
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L291",
+ "community": 90,
+ "norm_label": "test that api key system can be disabled.",
+ "id": "tests_test_api_key_quota_atomic_rationale_291"
},
{
- "label": "M4. API Key Stored in Plaintext",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L87",
- "community": 11,
- "norm_label": "m4. api key stored in plaintext",
- "id": "server_code_review_final_m4_api_key_stored_in_plaintext"
+ "label": "._make_register_client()",
+ "file_type": "code",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L150",
+ "community": 120,
+ "norm_label": "._make_register_client()",
+ "id": "tests_test_controllers_coverage_testregisterendpoint_make_register_client"
},
{
- "label": "M5. Cookie `secure` Flag Conditional",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L92",
- "community": 11,
- "norm_label": "m5. cookie `secure` flag conditional",
- "id": "server_code_review_final_m5_cookie_secure_flag_conditional"
+ "label": "._make_login_client()",
+ "file_type": "code",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L230",
+ "community": 120,
+ "norm_label": "._make_login_client()",
+ "id": "tests_test_controllers_coverage_testloginendpoint_make_login_client"
},
{
- "label": "M6. No `pool_recycle` on SQLAlchemy Engines",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L97",
- "community": 11,
- "norm_label": "m6. no `pool_recycle` on sqlalchemy engines",
- "id": "server_code_review_final_m6_no_pool_recycle_on_sqlalchemy_engines"
+ "label": "._make_logout_client()",
+ "file_type": "code",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L283",
+ "community": 120,
+ "norm_label": "._make_logout_client()",
+ "id": "tests_test_controllers_coverage_testlogoutendpoint_make_logout_client"
},
{
- "label": "Synchronous Blocking in Async Endpoint",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L102",
- "community": 11,
- "norm_label": "synchronous blocking in async endpoint",
- "id": "server_code_review_final_synchronous_blocking_in_async_endpoint"
+ "label": "._make_callback_client()",
+ "file_type": "code",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L427",
+ "community": 120,
+ "norm_label": "._make_callback_client()",
+ "id": "tests_test_controllers_coverage_testgooglecallback_make_callback_client"
},
{
- "label": "M8. Scattered Manual commit/rollback",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L107",
- "community": 11,
- "norm_label": "m8. scattered manual commit/rollback",
- "id": "server_code_review_final_m8_scattered_manual_commit_rollback"
+ "label": "TestStocksApiKeyTest",
+ "file_type": "code",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1194",
+ "community": 14,
+ "norm_label": "teststocksapikeytest",
+ "id": "tests_test_controllers_coverage_teststocksapikeytest"
},
{
- "label": "M9. Circular Module Dependencies",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L112",
- "community": 11,
- "norm_label": "m9. circular module dependencies",
- "id": "server_code_review_final_m9_circular_module_dependencies"
- },
- {
- "label": "M10. Code Duplication in query.py",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L116",
- "community": 11,
- "norm_label": "m10. code duplication in query.py",
- "id": "server_code_review_final_m10_code_duplication_in_query_py"
+ "label": ".test_api_key_valid()",
+ "file_type": "code",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1197",
+ "community": 14,
+ "norm_label": ".test_api_key_valid()",
+ "id": "tests_test_controllers_coverage_teststocksapikeytest_test_api_key_valid"
},
{
- "label": "M11. Ownership Check Duplication",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L121",
- "community": 11,
- "norm_label": "m11. ownership check duplication",
- "id": "server_code_review_final_m11_ownership_check_duplication"
+ "label": "Return (client, app) with stocks router and mocked deps.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L80",
+ "community": 14,
+ "norm_label": "return (client, app) with stocks router and mocked deps.",
+ "id": "tests_test_controllers_coverage_rationale_80"
},
{
- "label": "M12. Recursive NaN Replace on Deserialization",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L126",
- "community": 11,
- "norm_label": "m12. recursive nan replace on deserialization",
- "id": "server_code_review_final_m12_recursive_nan_replace_on_deserialization"
+ "label": "Covers line 23: isSecureScheme helper.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L107",
+ "community": 58,
+ "norm_label": "covers line 23: issecurescheme helper.",
+ "id": "tests_test_controllers_coverage_rationale_107"
},
{
- "label": "M13. In-Memory Cache No Event-Driven Invalidation",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L131",
- "community": 11,
- "norm_label": "m13. in-memory cache no event-driven invalidation",
- "id": "server_code_review_final_m13_in_memory_cache_no_event_driven_invalidation"
+ "label": "Covers line 28: GET /auth/health.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L132",
+ "community": 498,
+ "norm_label": "covers line 28: get /auth/health.",
+ "id": "tests_test_controllers_coverage_rationale_132"
},
{
- "label": "M14. Thread-Unsafe Scheduler",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L136",
- "community": 11,
- "norm_label": "m14. thread-unsafe scheduler",
- "id": "server_code_review_final_m14_thread_unsafe_scheduler"
+ "label": "Covers lines 44-54, 63, 66-71: register success, ValueError, generic Exception.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L148",
+ "community": 498,
+ "norm_label": "covers lines 44-54, 63, 66-71: register success, valueerror, generic exception.",
+ "id": "tests_test_controllers_coverage_rationale_148"
},
{
- "label": "LOW Priority Findings",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L143",
- "community": 11,
- "norm_label": "low priority findings",
- "id": "server_code_review_final_low_priority_findings"
+ "label": "Covers lines 44-54, 63: successful registration + auto-login.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L165",
+ "community": 428,
+ "norm_label": "covers lines 44-54, 63: successful registration + auto-login.",
+ "id": "tests_test_controllers_coverage_rationale_165"
},
{
- "label": "L1. JWT Token Expiry \u2014 30 Days",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L145",
- "community": 11,
- "norm_label": "l1. jwt token expiry \u2014 30 days",
- "id": "server_code_review_final_l1_jwt_token_expiry_30_days"
+ "label": "Covers line 46: auto-login fails after registration.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L191",
+ "community": 429,
+ "norm_label": "covers line 46: auto-login fails after registration.",
+ "id": "tests_test_controllers_coverage_rationale_191"
},
{
- "label": "L2. No JWT Key Rotation",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L149",
- "community": 11,
- "norm_label": "l2. no jwt key rotation",
- "id": "server_code_review_final_l2_no_jwt_key_rotation"
+ "label": "Covers lines 87-93, 102: login success and failure paths.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L228",
+ "community": 498,
+ "norm_label": "covers lines 87-93, 102: login success and failure paths.",
+ "id": "tests_test_controllers_coverage_rationale_228"
},
{
- "label": "L3. Rate Limiter \u2014 No Per-Endpoint Config",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L153",
- "community": 11,
- "norm_label": "l3. rate limiter \u2014 no per-endpoint config",
- "id": "server_code_review_final_l3_rate_limiter_no_per_endpoint_config"
+ "label": "Covers lines 87-93, 102: successful login.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L245",
+ "community": 430,
+ "norm_label": "covers lines 87-93, 102: successful login.",
+ "id": "tests_test_controllers_coverage_rationale_245"
},
{
- "label": "L4. Discord Webhook Data Leak",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L157",
- "community": 11,
- "norm_label": "l4. discord webhook data leak",
- "id": "server_code_review_final_l4_discord_webhook_data_leak"
+ "label": "Covers line 85: authenticateUser returns None.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L267",
+ "community": 431,
+ "norm_label": "covers line 85: authenticateuser returns none.",
+ "id": "tests_test_controllers_coverage_rationale_267"
},
{
- "label": "L5. camelCase Naming (PEP 8 Violation)",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L161",
- "community": 11,
- "norm_label": "l5. camelcase naming (pep 8 violation)",
- "id": "server_code_review_final_l5_camelcase_naming_pep_8_violation"
+ "label": "Covers lines 109, 115-125: logout with X-Access-Token header.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L298",
+ "community": 432,
+ "norm_label": "covers lines 109, 115-125: logout with x-access-token header.",
+ "id": "tests_test_controllers_coverage_rationale_298"
},
{
- "label": "L6. Unused Imports",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L165",
- "community": 11,
- "norm_label": "l6. unused imports",
- "id": "server_code_review_final_l6_unused_imports"
+ "label": "Covers lines 111-113: token extracted from Authorization Bearer header.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L315",
+ "community": 433,
+ "norm_label": "covers lines 111-113: token extracted from authorization bearer header.",
+ "id": "tests_test_controllers_coverage_rationale_315"
},
{
- "label": "L7. Empty `__init__` in Static Class",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L169",
- "community": 11,
- "norm_label": "l7. empty `__init__` in static class",
- "id": "server_code_review_final_l7_empty_init_in_static_class"
+ "label": "Covers lines 122-124: sessionId is not a valid int, ValueError caught.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L330",
+ "community": 434,
+ "norm_label": "covers lines 122-124: sessionid is not a valid int, valueerror caught.",
+ "id": "tests_test_controllers_coverage_rationale_330"
},
{
- "label": "L8. Missing Return Type Hints",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L173",
- "community": 11,
- "norm_label": "l8. missing return type hints",
- "id": "server_code_review_final_l8_missing_return_type_hints"
+ "label": "Covers lines 126-128: verifyAccessToken raises Exception.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L344",
+ "community": 435,
+ "norm_label": "covers lines 126-128: verifyaccesstoken raises exception.",
+ "id": "tests_test_controllers_coverage_rationale_344"
},
{
- "label": "L9. Hardcoded Host/Port Defaults",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L177",
- "community": 11,
- "norm_label": "l9. hardcoded host/port defaults",
- "id": "server_code_review_final_l9_hardcoded_host_port_defaults"
+ "label": "Covers lines 109-113: no token provided at all.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L356",
+ "community": 436,
+ "norm_label": "covers lines 109-113: no token provided at all.",
+ "id": "tests_test_controllers_coverage_rationale_356"
},
{
- "label": "L10. Thread-Local Sessions Never Cleaned",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L181",
- "community": 11,
- "norm_label": "l10. thread-local sessions never cleaned",
- "id": "server_code_review_final_l10_thread_local_sessions_never_cleaned"
+ "label": "Covers line 120: userId or sessionId missing from payload.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L367",
+ "community": 437,
+ "norm_label": "covers line 120: userid or sessionid missing from payload.",
+ "id": "tests_test_controllers_coverage_rationale_367"
},
{
- "label": "L11. Prometheus Loads All Sessions, Paginates in Python",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L185",
- "community": 11,
- "norm_label": "l11. prometheus loads all sessions, paginates in python",
- "id": "server_code_review_final_l11_prometheus_loads_all_sessions_paginates_in_python"
+ "label": "Covers lines 139, 141-149: googleLogin endpoint.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L379",
+ "community": 498,
+ "norm_label": "covers lines 139, 141-149: googlelogin endpoint.",
+ "id": "tests_test_controllers_coverage_rationale_379"
},
{
- "label": "Priority Action Plan",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L191",
- "community": 11,
- "norm_label": "priority action plan",
- "id": "server_code_review_final_priority_action_plan"
+ "label": "Covers lines 139, 141-149: Google login with redirect_url query param.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L383",
+ "community": 438,
+ "norm_label": "covers lines 139, 141-149: google login with redirect_url query param.",
+ "id": "tests_test_controllers_coverage_rationale_383"
},
{
- "label": "Week 1 (Critical)",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L193",
- "community": 11,
- "norm_label": "week 1 (critical)",
- "id": "server_code_review_final_week_1_critical"
+ "label": "Covers line 143: redirect_url falls back to referer header.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L403",
+ "community": 439,
+ "norm_label": "covers line 143: redirect_url falls back to referer header.",
+ "id": "tests_test_controllers_coverage_rationale_403"
},
{
- "label": "Week 2-3 (High)",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L198",
- "community": 11,
- "norm_label": "week 2-3 (high)",
- "id": "server_code_review_final_week_2_3_high"
+ "label": "Covers lines 155-156, 158, 160-168, 170-177, 179-184, 186, 190-204: googleCallba",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L425",
+ "community": 498,
+ "norm_label": "covers lines 155-156, 158, 160-168, 170-177, 179-184, 186, 190-204: googlecallba",
+ "id": "tests_test_controllers_coverage_rationale_425"
},
{
- "label": "Month 1 (Medium)",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L204",
- "community": 11,
- "norm_label": "month 1 (medium)",
- "id": "server_code_review_final_month_1_medium"
+ "label": "Covers lines 160-168, 170-177, 179-184, 186, 197-198: new Google user.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L443",
+ "community": 440,
+ "norm_label": "covers lines 160-168, 170-177, 179-184, 186, 197-198: new google user.",
+ "id": "tests_test_controllers_coverage_rationale_443"
},
{
- "label": "Month 2+ (Low)",
- "file_type": "document",
- "source_file": "CODE_REVIEW_FINAL.md",
- "source_location": "L209",
- "community": 11,
- "norm_label": "month 2+ (low)",
- "id": "server_code_review_final_month_2_low"
+ "label": "Covers line 165: verify_and_process returns None.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L504",
+ "community": 441,
+ "norm_label": "covers line 165: verify_and_process returns none.",
+ "id": "tests_test_controllers_coverage_rationale_504"
},
{
- "label": "Return a requests.Session for the current thread. Sessions are created la",
+ "label": "Covers lines 190-195: state param triggers RedirectResponse.",
"file_type": "rationale",
- "source_file": "main/utils/http_session.py",
- "source_location": "L9",
- "community": 522,
- "norm_label": "return a requests.session for the current thread. sessions are created la",
- "id": "utils_http_session_rationale_9"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L521",
+ "community": 442,
+ "norm_label": "covers lines 190-195: state param triggers redirectresponse.",
+ "id": "tests_test_controllers_coverage_rationale_521"
},
{
- "label": "Verify the user owns the session, raise 403 otherwise.",
+ "label": "Covers line 19: GET /user/health.",
"file_type": "rationale",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L22",
- "community": 84,
- "norm_label": "verify the user owns the session, raise 403 otherwise.",
- "id": "controller_prometheus_controller_rationale_22"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L567",
+ "community": 498,
+ "norm_label": "covers line 19: get /user/health.",
+ "id": "tests_test_controllers_coverage_rationale_567"
},
{
- "label": ".__init__()",
- "file_type": "code",
- "source_file": "main/app/user/user.py",
- "source_location": "L12",
- "community": 21,
- "norm_label": ".__init__()",
- "id": "user_user_usermanager_init"
+ "label": "Covers line 24: GET /user/me returns currentUser.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L581",
+ "community": 47,
+ "norm_label": "covers line 24: get /user/me returns currentuser.",
+ "id": "tests_test_controllers_coverage_rationale_581"
},
{
- "label": "inactiveSessionsScheduler()",
- "file_type": "code",
- "source_file": "main/service/user_service.py",
- "source_location": "L35",
- "community": 72,
- "norm_label": "inactivesessionsscheduler()",
- "id": "service_user_service_inactivesessionsscheduler"
+ "label": "Covers lines 31-32, 36, 43-44, 48: upgrade developer starter/enterprise.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L595",
+ "community": 47,
+ "norm_label": "covers lines 31-32, 36, 43-44, 48: upgrade developer starter/enterprise.",
+ "id": "tests_test_controllers_coverage_rationale_595"
},
{
- "label": "CODEREVIEW.md",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L1",
- "community": 36,
- "norm_label": "codereview.md",
- "id": "codereview_md"
+ "label": "Covers lines 53-54, 56: admin access granted / denied.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L635",
+ "community": 47,
+ "norm_label": "covers lines 53-54, 56: admin access granted / denied.",
+ "id": "tests_test_controllers_coverage_rationale_635"
},
{
- "label": "Comprehensive Codebase Review \u2014 Mansa Server",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L1",
- "community": 36,
- "norm_label": "comprehensive codebase review \u2014 mansa server",
- "id": "server_codereview_comprehensive_codebase_review_mansa_server"
+ "label": "Covers lines 66, 68-72, 74: GET /user/sessions.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L654",
+ "community": 178,
+ "norm_label": "covers lines 66, 68-72, 74: get /user/sessions.",
+ "id": "tests_test_controllers_coverage_rationale_654"
},
{
- "label": "Overall Score: 60/100",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L9",
- "community": 36,
- "norm_label": "overall score: 60/100",
- "id": "server_codereview_overall_score_60_100"
+ "label": "Covers lines 66, 68-72, 74: full sessions listing.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L657",
+ "community": 178,
+ "norm_label": "covers lines 66, 68-72, 74: full sessions listing.",
+ "id": "tests_test_controllers_coverage_rationale_657"
},
{
- "label": "\ud83d\udd34 CRITICAL Issues (Must Fix Before Production)",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L21",
- "community": 36,
- "norm_label": "\ud83d\udd34 critical issues (must fix before production)",
- "id": "server_codereview_critical_issues_must_fix_before_production"
+ "label": "Covers lines 100-104, 106: GET /user/sessions/current.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L708",
+ "community": 107,
+ "norm_label": "covers lines 100-104, 106: get /user/sessions/current.",
+ "id": "tests_test_controllers_coverage_rationale_708"
},
{
- "label": "1. Open Redirect via OAuth State Parameter",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L23",
- "community": 36,
- "norm_label": "1. open redirect via oauth state parameter",
- "id": "server_codereview_1_open_redirect_via_oauth_state_parameter"
+ "label": "Covers lines 100-104, 106: session found.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L711",
+ "community": 107,
+ "norm_label": "covers lines 100-104, 106: session found.",
+ "id": "tests_test_controllers_coverage_rationale_711"
},
{
- "label": "2. SQL Injection Risk in Scraper",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L33",
- "community": 36,
- "norm_label": "2. sql injection risk in scraper",
- "id": "server_codereview_2_sql_injection_risk_in_scraper"
+ "label": "Covers line 104: session not found.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L744",
+ "community": 107,
+ "norm_label": "covers line 104: session not found.",
+ "id": "tests_test_controllers_coverage_rationale_744"
},
{
- "label": "3. JWT Token Leaked in URL",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L43",
- "community": 36,
- "norm_label": "3. jwt token leaked in url",
- "id": "server_codereview_3_jwt_token_leaked_in_url"
+ "label": "Covers lines 126-136: DELETE /user/sessions/{sessionId}.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L767",
+ "community": 104,
+ "norm_label": "covers lines 126-136: delete /user/sessions/{sessionid}.",
+ "id": "tests_test_controllers_coverage_rationale_767"
},
{
- "label": "4. Race Condition in API Key Quota Enforcement",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L53",
- "community": 36,
- "norm_label": "4. race condition in api key quota enforcement",
- "id": "server_codereview_4_race_condition_in_api_key_quota_enforcement"
+ "label": "Covers lines 126, 131, 135-136.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L770",
+ "community": 104,
+ "norm_label": "covers lines 126, 131, 135-136.",
+ "id": "tests_test_controllers_coverage_rationale_770"
},
{
- "label": "5. Thread Leak in Discord Error Handler",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L63",
- "community": 36,
- "norm_label": "5. thread leak in discord error handler",
- "id": "server_codereview_5_thread_leak_in_discord_error_handler"
+ "label": "Covers lines 127-129: session not found.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L797",
+ "community": 104,
+ "norm_label": "covers lines 127-129: session not found.",
+ "id": "tests_test_controllers_coverage_rationale_797"
},
{
- "label": "6. Thread-Unsafe `requests.Session()` Shared Across Threads",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L72",
- "community": 36,
- "norm_label": "6. thread-unsafe `requests.session()` shared across threads",
- "id": "server_codereview_6_thread_unsafe_requests_session_shared_across_threads"
+ "label": "Covers lines 132-133: revokeSession returns False.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L819",
+ "community": 104,
+ "norm_label": "covers lines 132-133: revokesession returns false.",
+ "id": "tests_test_controllers_coverage_rationale_819"
},
{
- "label": "7. Full Table Load Into Memory",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L81",
- "community": 36,
- "norm_label": "7. full table load into memory",
- "id": "server_codereview_7_full_table_load_into_memory"
- },
- {
- "label": "\ud83d\udfe0 HIGH Issues (Fix Soon)",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L90",
- "community": 36,
- "norm_label": "\ud83d\udfe0 high issues (fix soon)",
- "id": "server_codereview_high_issues_fix_soon"
- },
- {
- "label": "8. Role Escalation via Self-Service Upgrade",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L92",
- "community": 36,
- "norm_label": "8. role escalation via self-service upgrade",
- "id": "server_codereview_8_role_escalation_via_self_service_upgrade"
+ "label": "Covers lines 143, 145, 147-148: POST /user/sessions/revoke-all.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L845",
+ "community": 221,
+ "norm_label": "covers lines 143, 145, 147-148: post /user/sessions/revoke-all.",
+ "id": "tests_test_controllers_coverage_rationale_845"
},
{
- "label": "9. Weak JWT Algorithm (HS256)",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L97",
- "community": 36,
- "norm_label": "9. weak jwt algorithm (hs256)",
- "id": "server_codereview_9_weak_jwt_algorithm_hs256"
+ "label": "Covers lines 143, 145, 147-148.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L848",
+ "community": 221,
+ "norm_label": "covers lines 143, 145, 147-148.",
+ "id": "tests_test_controllers_coverage_rationale_848"
},
{
- "label": "10. Insecure SessionMiddleware Configuration",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L102",
- "community": 36,
- "norm_label": "10. insecure sessionmiddleware configuration",
- "id": "server_codereview_10_insecure_sessionmiddleware_configuration"
+ "label": "Covers line 24: GET /prometheus/health.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L875",
+ "community": 498,
+ "norm_label": "covers line 24: get /prometheus/health.",
+ "id": "tests_test_controllers_coverage_rationale_875"
},
{
- "label": "11. HTTPException in Business Logic",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L107",
- "community": 36,
- "norm_label": "11. httpexception in business logic",
- "id": "server_codereview_11_httpexception_in_business_logic"
+ "label": "Covers lines 33-36: GET /prometheus/sessions.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L889",
+ "community": 16,
+ "norm_label": "covers lines 33-36: get /prometheus/sessions.",
+ "id": "tests_test_controllers_coverage_rationale_889"
},
{
- "label": "12. Controllers Contain Business Logic",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L112",
- "community": 36,
- "norm_label": "12. controllers contain business logic",
- "id": "server_codereview_12_controllers_contain_business_logic"
+ "label": "Covers line 52: POST /prometheus/sessions.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L907",
+ "community": 16,
+ "norm_label": "covers line 52: post /prometheus/sessions.",
+ "id": "tests_test_controllers_coverage_rationale_907"
},
{
- "label": "13. `service/` Layer Misleading",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L117",
- "community": 36,
- "norm_label": "13. `service/` layer misleading",
- "id": "server_codereview_13_service_layer_misleading"
+ "label": "Covers lines 62-63, 65-68: PUT /prometheus/sessions/{sessionId}.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L921",
+ "community": 16,
+ "norm_label": "covers lines 62-63, 65-68: put /prometheus/sessions/{sessionid}.",
+ "id": "tests_test_controllers_coverage_rationale_921"
},
{
- "label": "14. Session Not Revoked on Logout with Invalid Token",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L122",
- "community": 36,
- "norm_label": "14. session not revoked on logout with invalid token",
- "id": "server_codereview_14_session_not_revoked_on_logout_with_invalid_token"
+ "label": "Covers lines 65-68: title updated successfully.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L924",
+ "community": 16,
+ "norm_label": "covers lines 65-68: title updated successfully.",
+ "id": "tests_test_controllers_coverage_rationale_924"
},
{
- "label": "15. Unbounded ThreadPoolExecutor Per Request",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L127",
- "community": 36,
- "norm_label": "15. unbounded threadpoolexecutor per request",
- "id": "server_codereview_15_unbounded_threadpoolexecutor_per_request"
+ "label": "Covers lines 62-63: not the session owner.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L935",
+ "community": 16,
+ "norm_label": "covers lines 62-63: not the session owner.",
+ "id": "tests_test_controllers_coverage_rationale_935"
},
{
- "label": "16. Full DataFrame Copy Per API Request",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L132",
- "community": 36,
- "norm_label": "16. full dataframe copy per api request",
- "id": "server_codereview_16_full_dataframe_copy_per_api_request"
+ "label": "Covers lines 66-67: session not found.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L944",
+ "community": 16,
+ "norm_label": "covers lines 66-67: session not found.",
+ "id": "tests_test_controllers_coverage_rationale_944"
},
{
- "label": "17. Unbounded Chat History Growth",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L137",
- "community": 36,
- "norm_label": "17. unbounded chat history growth",
- "id": "server_codereview_17_unbounded_chat_history_growth"
+ "label": "Covers lines 77, 83-84, 86: GET /prometheus/history/{sessionId}.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L955",
+ "community": 208,
+ "norm_label": "covers lines 77, 83-84, 86: get /prometheus/history/{sessionid}.",
+ "id": "tests_test_controllers_coverage_rationale_955"
},
{
- "label": "\ud83d\udfe1 MEDIUM Issues (Plan to Fix)",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L144",
- "community": 36,
- "norm_label": "\ud83d\udfe1 medium issues (plan to fix)",
- "id": "server_codereview_medium_issues_plan_to_fix"
+ "label": "Covers lines 77, 86: session found with history.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L958",
+ "community": 208,
+ "norm_label": "covers lines 77, 86: session found with history.",
+ "id": "tests_test_controllers_coverage_rationale_958"
},
{
- "label": "\ud83d\udfe2 LOW Issues (Nice to Have)",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L168",
- "community": 36,
- "norm_label": "\ud83d\udfe2 low issues (nice to have)",
- "id": "server_codereview_low_issues_nice_to_have"
+ "label": "Covers lines 83-84: session not found.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1002",
+ "community": 208,
+ "norm_label": "covers lines 83-84: session not found.",
+ "id": "tests_test_controllers_coverage_rationale_1002"
},
{
- "label": "Priority Action Plan",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L184",
- "community": 36,
- "norm_label": "priority action plan",
- "id": "server_codereview_priority_action_plan"
+ "label": "Covers lines 95-98: DELETE /prometheus/sessions/{sessionId}.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1037",
+ "community": 474,
+ "norm_label": "covers lines 95-98: delete /prometheus/sessions/{sessionid}.",
+ "id": "tests_test_controllers_coverage_rationale_1037"
},
{
- "label": "Week 1 \u2014 Critical Security Fixes",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L186",
- "community": 36,
- "norm_label": "week 1 \u2014 critical security fixes",
- "id": "server_codereview_week_1_critical_security_fixes"
+ "label": "Covers lines 95-98: session deleted.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1040",
+ "community": 474,
+ "norm_label": "covers lines 95-98: session deleted.",
+ "id": "tests_test_controllers_coverage_rationale_1040"
},
{
- "label": "Week 2-3 \u2014 Architecture & High Issues",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L193",
- "community": 36,
- "norm_label": "week 2-3 \u2014 architecture & high issues",
- "id": "server_codereview_week_2_3_architecture_high_issues"
+ "label": "Covers lines 96-97: session not found.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1050",
+ "community": 474,
+ "norm_label": "covers lines 96-97: session not found.",
+ "id": "tests_test_controllers_coverage_rationale_1050"
},
{
- "label": "Month 1-2 \u2014 Medium Issues",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L200",
- "community": 36,
- "norm_label": "month 1-2 \u2014 medium issues",
- "id": "server_codereview_month_1_2_medium_issues"
+ "label": "Covers lines 114-115, 117-120, 122, 125: POST /prometheus/chat.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1060",
+ "community": 101,
+ "norm_label": "covers lines 114-115, 117-120, 122, 125: post /prometheus/chat.",
+ "id": "tests_test_controllers_coverage_rationale_1060"
},
{
- "label": "Month 3+ \u2014 Performance & Polish",
- "file_type": "document",
- "source_file": "CODEREVIEW.md",
- "source_location": "L209",
- "community": 36,
- "norm_label": "month 3+ \u2014 performance & polish",
- "id": "server_codereview_month_3_performance_polish"
+ "label": "Covers lines 111-112: sessionId is None, new session created.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1063",
+ "community": 16,
+ "norm_label": "covers lines 111-112: sessionid is none, new session created.",
+ "id": "tests_test_controllers_coverage_rationale_1063"
},
{
- "label": "skills-lock.json",
- "file_type": "code",
- "source_file": "skills-lock.json",
- "source_location": "L1",
- "community": 177,
- "norm_label": "skills-lock.json",
- "id": "skills_lock_json"
+ "label": "Covers lines 114-115, 117-120, 122: existing session with verified ownership.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1081",
+ "community": 101,
+ "norm_label": "covers lines 114-115, 117-120, 122: existing session with verified ownership.",
+ "id": "tests_test_controllers_coverage_rationale_1081"
},
{
- "label": "version",
- "file_type": "code",
- "source_file": "skills-lock.json",
- "source_location": "L2",
- "community": 177,
- "norm_label": "version",
- "id": "server_skills_lock_version"
+ "label": "Covers lines 114-115: session ownership check fails.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1123",
+ "community": 101,
+ "norm_label": "covers lines 114-115: session ownership check fails.",
+ "id": "tests_test_controllers_coverage_rationale_1123"
},
{
- "label": "skills",
- "file_type": "code",
- "source_file": "skills-lock.json",
- "source_location": "L3",
- "community": 177,
- "norm_label": "skills",
- "id": "server_skills_lock_skills"
+ "label": "Covers line 125, 126-128: generic Exception in chat.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1160",
+ "community": 101,
+ "norm_label": "covers line 125, 126-128: generic exception in chat.",
+ "id": "tests_test_controllers_coverage_rationale_1160"
},
{
- "label": "backend-code-review",
- "file_type": "code",
- "source_file": "skills-lock.json",
- "source_location": "L4",
- "community": 177,
- "norm_label": "backend-code-review",
- "id": "server_skills_lock_skills_backend_code_review"
+ "label": "Covers line 18: GET /stocks/health.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1181",
+ "community": 498,
+ "norm_label": "covers line 18: get /stocks/health.",
+ "id": "tests_test_controllers_coverage_rationale_1181"
},
{
- "label": "source",
- "file_type": "code",
- "source_file": "skills-lock.json",
- "source_location": "L5",
- "community": 177,
- "norm_label": "source",
- "id": "server_skills_lock_backend_code_review_source"
+ "label": "Covers line 23: valid API key returns secured=True.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1198",
+ "community": 14,
+ "norm_label": "covers line 23: valid api key returns secured=true.",
+ "id": "tests_test_controllers_coverage_rationale_1198"
},
{
- "label": "sourceType",
- "file_type": "code",
- "source_file": "skills-lock.json",
- "source_location": "L6",
- "community": 177,
- "norm_label": "sourcetype",
- "id": "server_skills_lock_backend_code_review_sourcetype"
+ "label": "Covers line 35: GET /stocks/historical.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1206",
+ "community": 14,
+ "norm_label": "covers line 35: get /stocks/historical.",
+ "id": "tests_test_controllers_coverage_rationale_1206"
},
{
- "label": "skillPath",
- "file_type": "code",
- "source_file": "skills-lock.json",
- "source_location": "L7",
- "community": 177,
- "norm_label": "skillpath",
- "id": "server_skills_lock_backend_code_review_skillpath"
+ "label": "Covers line 47: GET /stocks/fundamental.",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1220",
+ "community": 14,
+ "norm_label": "covers line 47: get /stocks/fundamental.",
+ "id": "tests_test_controllers_coverage_rationale_1220"
},
{
- "label": "computedHash",
- "file_type": "code",
- "source_file": "skills-lock.json",
- "source_location": "L8",
- "community": 177,
- "norm_label": "computedhash",
- "id": "server_skills_lock_backend_code_review_computedhash"
+ "label": "Covers lines 52-53, 57-63: GET /stocks/key/generate. NOTE: stocksapi_cont",
+ "file_type": "rationale",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1234",
+ "community": 14,
+ "norm_label": "covers lines 52-53, 57-63: get /stocks/key/generate. note: stocksapi_cont",
+ "id": "tests_test_controllers_coverage_rationale_1234"
},
{
- "label": "Inject request_id from ContextVar into every log record.",
+ "label": "Covers lines 52-53: user without GENERATE_API_KEYS permission gets 403.",
"file_type": "rationale",
- "source_file": "main/utils/errors.py",
- "source_location": "L22",
- "community": 33,
- "norm_label": "inject request_id from contextvar into every log record.",
- "id": "utils_errors_rationale_22"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1242",
+ "community": 14,
+ "norm_label": "covers lines 52-53: user without generate_api_keys permission gets 403.",
+ "id": "tests_test_controllers_coverage_rationale_1242"
},
{
- "label": "Register exception handlers on the FastAPI app. Note: HTTPException and R",
+ "label": "Covers lines 61-63: exception during key generation (admin path).",
"file_type": "rationale",
- "source_file": "main/utils/errors.py",
- "source_location": "L68",
- "community": 104,
- "norm_label": "register exception handlers on the fastapi app. note: httpexception and r",
- "id": "utils_errors_rationale_68"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1262",
+ "community": 14,
+ "norm_label": "covers lines 61-63: exception during key generation (admin path).",
+ "id": "tests_test_controllers_coverage_rationale_1262"
},
{
- "label": "When quota is exceeded (line 28).",
+ "label": "Covers lines 17, 22-27: user found, role not present, role added.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L271",
- "community": 461,
- "norm_label": "when quota is exceeded (line 28).",
- "id": "tests_test_stocks_api_coverage_rationale_271"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1280",
+ "community": 528,
+ "norm_label": "covers lines 17, 22-27: user found, role not present, role added.",
+ "id": "tests_test_controllers_coverage_rationale_1280"
},
{
- "label": "Happy path: key found, quota OK, increment and commit (lines 30-33).",
+ "label": "Covers lines 19-20: user not found raises 404.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L287",
- "community": 462,
- "norm_label": "happy path: key found, quota ok, increment and commit (lines 30-33).",
- "id": "tests_test_stocks_api_coverage_rationale_287"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1312",
+ "community": 528,
+ "norm_label": "covers lines 19-20: user not found raises 404.",
+ "id": "tests_test_controllers_coverage_rationale_1312"
},
{
- "label": "HTTPException should cause rollback then re-raise (lines 35-37).",
+ "label": "Covers lines 42-44: session validation fails.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L303",
- "community": 463,
- "norm_label": "httpexception should cause rollback then re-raise (lines 35-37).",
- "id": "tests_test_stocks_api_coverage_rationale_303"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1356",
+ "community": 528,
+ "norm_label": "covers lines 42-44: session validation fails.",
+ "id": "tests_test_controllers_coverage_rationale_1356"
},
{
- "label": "Generic DB exception should rollback and raise 500 (lines 38-40).",
+ "label": "Covers lines 37-38, 46, 51, 58 (sessionId is None): skips session validation.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L320",
- "community": 464,
- "norm_label": "generic db exception should rollback and raise 500 (lines 38-40).",
- "id": "tests_test_stocks_api_coverage_rationale_320"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1406",
+ "community": 493,
+ "norm_label": "covers lines 37-38, 46, 51, 58 (sessionid is none): skips session validation.",
+ "id": "tests_test_controllers_coverage_rationale_1406"
},
{
- "label": "Tests covering key.py line 44.",
+ "label": "Covers line 16: empty password raises ValueError.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L335",
- "community": 141,
- "norm_label": "tests covering key.py line 44.",
- "id": "tests_test_stocks_api_coverage_rationale_335"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1430",
+ "community": 525,
+ "norm_label": "covers line 16: empty password raises valueerror.",
+ "id": "tests_test_controllers_coverage_rationale_1430"
},
{
- "label": "Tests covering key.py lines 48-66.",
+ "label": "Covers lines 45-51: verifyAccessToken with expired and invalid tokens.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L358",
- "community": 21,
- "norm_label": "tests covering key.py lines 48-66.",
- "id": "tests_test_stocks_api_coverage_rationale_358"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1440",
+ "community": 525,
+ "norm_label": "covers lines 45-51: verifyaccesstoken with expired and invalid tokens.",
+ "id": "tests_test_controllers_coverage_rationale_1440"
},
{
- "label": "Existing key is updated (lines 54-56).",
+ "label": "Covers lines 48-49: jwt.ExpiredSignatureError.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L377",
- "community": 465,
- "norm_label": "existing key is updated (lines 54-56).",
- "id": "tests_test_stocks_api_coverage_rationale_377"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1443",
+ "community": 525,
+ "norm_label": "covers lines 48-49: jwt.expiredsignatureerror.",
+ "id": "tests_test_controllers_coverage_rationale_1443"
},
{
- "label": "Exception during creation triggers rollback and 500 (lines 64-66).",
+ "label": "Covers lines 50-51: jwt.InvalidTokenError.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L393",
- "community": 466,
- "norm_label": "exception during creation triggers rollback and 500 (lines 64-66).",
- "id": "tests_test_stocks_api_coverage_rationale_393"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1459",
+ "community": 519,
+ "norm_label": "covers lines 50-51: jwt.invalidtokenerror.",
+ "id": "tests_test_controllers_coverage_rationale_1459"
},
{
- "label": "Tests covering query.py lines 22-48.",
+ "label": "Covers line 67: extractTokenPayload re-raises HTTPException from verifyAccessTok",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L411",
- "community": 3,
- "norm_label": "tests covering query.py lines 22-48.",
- "id": "tests_test_stocks_api_coverage_rationale_411"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1471",
+ "community": 114,
+ "norm_label": "covers line 67: extracttokenpayload re-raises httpexception from verifyaccesstok",
+ "id": "tests_test_controllers_coverage_rationale_1471"
},
{
- "label": "replaceNan handles direct float NaN values (line 34).",
+ "label": "Covers line 67: HTTPException raised by verifyAccessToken is re-raised.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L489",
- "community": 135,
- "norm_label": "replacenan handles direct float nan values (line 34).",
- "id": "tests_test_stocks_api_coverage_rationale_489"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1474",
+ "community": 114,
+ "norm_label": "covers line 67: httpexception raised by verifyaccesstoken is re-raised.",
+ "id": "tests_test_controllers_coverage_rationale_1474"
},
{
- "label": "Non-JSON-dict/list string is left as-is.",
+ "label": "Covers line 13: UserManager.__init__.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L503",
- "community": 517,
- "norm_label": "non-json-dict/list string is left as-is.",
- "id": "tests_test_stocks_api_coverage_rationale_503"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1490",
+ "community": 498,
+ "norm_label": "covers line 13: usermanager.__init__.",
+ "id": "tests_test_controllers_coverage_rationale_1490"
},
{
- "label": "pd.NA is not a string, so lambda returns it unchanged.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L512",
- "community": 542,
- "norm_label": "pd.na is not a string, so lambda returns it unchanged.",
- "id": "tests_test_stocks_api_coverage_rationale_512"
+ "label": ".test_creates_new_session()",
+ "file_type": "code",
+ "source_file": "tests/test_http_session_coverage.py",
+ "source_location": "L9",
+ "community": 251,
+ "norm_label": ".test_creates_new_session()",
+ "id": "tests_test_http_session_coverage_testgetsession_test_creates_new_session"
},
{
- "label": "Tests covering query.py lines 50-67.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L522",
- "community": 3,
- "norm_label": "tests covering query.py lines 50-67.",
- "id": "tests_test_stocks_api_coverage_rationale_522"
+ "label": "TestCleanup",
+ "file_type": "code",
+ "source_file": "tests/test_http_session_coverage.py",
+ "source_location": "L28",
+ "community": 491,
+ "norm_label": "testcleanup",
+ "id": "tests_test_http_session_coverage_testcleanup"
},
{
- "label": "Tests covering query.py lines 77-132.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L577",
- "community": 110,
- "norm_label": "tests covering query.py lines 77-132.",
- "id": "tests_test_stocks_api_coverage_rationale_577"
+ "label": ".test_cleanup_closes_session()",
+ "file_type": "code",
+ "source_file": "tests/test_http_session_coverage.py",
+ "source_location": "L29",
+ "community": 491,
+ "norm_label": ".test_cleanup_closes_session()",
+ "id": "tests_test_http_session_coverage_testcleanup_test_cleanup_closes_session"
},
{
- "label": "Pass field name WITHOUT year (how categorizeColumns returns them).",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L615",
- "community": 520,
- "norm_label": "pass field name without year (how categorizecolumns returns them).",
- "id": "tests_test_stocks_api_coverage_rationale_615"
+ "label": ".test_cleanup_no_session()",
+ "file_type": "code",
+ "source_file": "tests/test_http_session_coverage.py",
+ "source_location": "L37",
+ "community": 491,
+ "norm_label": ".test_cleanup_no_session()",
+ "id": "tests_test_http_session_coverage_testcleanup_test_cleanup_no_session"
},
{
- "label": "No historical data columns -> inner 400 caught by outer except -> 500.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L641",
- "community": 28,
- "norm_label": "no historical data columns -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_641"
+ "label": ".test_cleanup_exception_during_close()",
+ "file_type": "code",
+ "source_file": "tests/test_http_session_coverage.py",
+ "source_location": "L46",
+ "community": 491,
+ "norm_label": ".test_cleanup_exception_during_close()",
+ "id": "tests_test_http_session_coverage_testcleanup_test_cleanup_exception_during_close"
},
{
- "label": "Invalid date format raises exception (line 132).",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L679",
- "community": 136,
- "norm_label": "invalid date format raises exception (line 132).",
- "id": "tests_test_stocks_api_coverage_rationale_679"
+ "label": ".test_remove_role_existing()",
+ "file_type": "code",
+ "source_file": "tests/test_models.py",
+ "source_location": "L50",
+ "community": 61,
+ "norm_label": ".test_remove_role_existing()",
+ "id": "tests_test_models_testusermodel_test_remove_role_existing"
},
{
- "label": "No historical columns at all -> inner 400 caught by outer except -> 500.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L695",
- "community": 127,
- "norm_label": "no historical columns at all -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_695"
+ "label": ".test_remove_role_last_role()",
+ "file_type": "code",
+ "source_file": "tests/test_models.py",
+ "source_location": "L57",
+ "community": 61,
+ "norm_label": ".test_remove_role_last_role()",
+ "id": "tests_test_models_testusermodel_test_remove_role_last_role"
},
{
- "label": "Historical query with a year range.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L705",
- "community": 28,
- "norm_label": "historical query with a year range.",
- "id": "tests_test_stocks_api_coverage_rationale_705"
+ "label": "TestPaginationParams",
+ "file_type": "code",
+ "source_file": "tests/test_pagination.py",
+ "source_location": "L37",
+ "community": 482,
+ "norm_label": "testpaginationparams",
+ "id": "tests_test_pagination_testpaginationparams"
},
{
- "label": "Multiple search terms, all found in tickerIndex.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L712",
- "community": 28,
- "norm_label": "multiple search terms, all found in tickerindex.",
- "id": "tests_test_stocks_api_coverage_rationale_712"
+ "label": ".test_defaults()",
+ "file_type": "code",
+ "source_file": "tests/test_pagination.py",
+ "source_location": "L38",
+ "community": 482,
+ "norm_label": ".test_defaults()",
+ "id": "tests_test_pagination_testpaginationparams_test_defaults"
},
{
- "label": "Tests covering query.py lines 142-202.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L721",
- "community": 110,
- "norm_label": "tests covering query.py lines 142-202.",
- "id": "tests_test_stocks_api_coverage_rationale_721"
+ "label": ".test_custom_limit()",
+ "file_type": "code",
+ "source_file": "tests/test_pagination.py",
+ "source_location": "L46",
+ "community": 482,
+ "norm_label": ".test_custom_limit()",
+ "id": "tests_test_pagination_testpaginationparams_test_custom_limit"
},
{
- "label": "Invalid date -> inner 400 caught by outer except -> 500.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L775",
- "community": 17,
- "norm_label": "invalid date -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_775"
+ "label": ".test_custom_offset()",
+ "file_type": "code",
+ "source_file": "tests/test_pagination.py",
+ "source_location": "L52",
+ "community": 482,
+ "norm_label": ".test_custom_offset()",
+ "id": "tests_test_pagination_testpaginationparams_test_custom_offset"
},
{
- "label": "search.strip() == '' should still dedup (line 181).",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L823",
- "community": 17,
- "norm_label": "search.strip() == '' should still dedup (line 181).",
- "id": "tests_test_stocks_api_coverage_rationale_823"
+ "label": ".test_limit_and_offset()",
+ "file_type": "code",
+ "source_file": "tests/test_pagination.py",
+ "source_location": "L59",
+ "community": 482,
+ "norm_label": ".test_limit_and_offset()",
+ "id": "tests_test_pagination_testpaginationparams_test_limit_and_offset"
},
{
- "label": "Two dates in the range, both valid.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L845",
- "community": 39,
- "norm_label": "two dates in the range, both valid.",
- "id": "tests_test_stocks_api_coverage_rationale_845"
+ "label": ".test_limit_exceeds_max_rejected()",
+ "file_type": "code",
+ "source_file": "tests/test_pagination.py",
+ "source_location": "L67",
+ "community": 482,
+ "norm_label": ".test_limit_exceeds_max_rejected()",
+ "id": "tests_test_pagination_testpaginationparams_test_limit_exceeds_max_rejected"
},
{
- "label": "Single invalid date -> inner 400 caught by outer except -> 500.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L859",
- "community": 46,
- "norm_label": "single invalid date -> inner 400 caught by outer except -> 500.",
- "id": "tests_test_stocks_api_coverage_rationale_859"
+ "label": ".test_limit_zero_rejected()",
+ "file_type": "code",
+ "source_file": "tests/test_pagination.py",
+ "source_location": "L71",
+ "community": 482,
+ "norm_label": ".test_limit_zero_rejected()",
+ "id": "tests_test_pagination_testpaginationparams_test_limit_zero_rejected"
},
{
- "label": "Fields that don't exist in the dataframe are filtered out.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L869",
- "community": 46,
- "norm_label": "fields that don't exist in the dataframe are filtered out.",
- "id": "tests_test_stocks_api_coverage_rationale_869"
+ "label": ".test_negative_offset_rejected()",
+ "file_type": "code",
+ "source_file": "tests/test_pagination.py",
+ "source_location": "L75",
+ "community": 482,
+ "norm_label": ".test_negative_offset_rejected()",
+ "id": "tests_test_pagination_testpaginationparams_test_negative_offset_rejected"
},
{
- "label": "Search with no index match falls back to string startswith.",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L892",
- "community": 39,
- "norm_label": "search with no index match falls back to string startswith.",
- "id": "tests_test_stocks_api_coverage_rationale_892"
+ "label": ".test_offset_beyond_total()",
+ "file_type": "code",
+ "source_file": "tests/test_pagination.py",
+ "source_location": "L79",
+ "community": 482,
+ "norm_label": ".test_offset_beyond_total()",
+ "id": "tests_test_pagination_testpaginationparams_test_offset_beyond_total"
},
{
- "label": "len(dateRange) == 1 -> single date filter.",
+ "label": ".test_limit_equals_max()",
+ "file_type": "code",
+ "source_file": "tests/test_pagination.py",
+ "source_location": "L84",
+ "community": 482,
+ "norm_label": ".test_limit_equals_max()",
+ "id": "tests_test_pagination_testpaginationparams_test_limit_equals_max"
+ },
+ {
+ "label": "Cover __init__ and updateDates (lines 22-37).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L900",
- "community": 39,
- "norm_label": "len(daterange) == 1 -> single date filter.",
- "id": "tests_test_stocks_api_coverage_rationale_900"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L28",
+ "community": 68,
+ "norm_label": "cover __init__ and updatedates (lines 22-37).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_28"
},
{
- "label": "TestClient with all routers mounted \u2014 no lifespan (no DB/service init). O",
+ "label": "Cover executeWorkflow (lines 39-363).",
"file_type": "rationale",
- "source_file": "tests/conftest.py",
- "source_location": "L62",
- "community": 527,
- "norm_label": "testclient with all routers mounted \u2014 no lifespan (no db/service init). o",
- "id": "tests_conftest_rationale_62"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L59",
+ "community": 68,
+ "norm_label": "cover executeworkflow (lines 39-363).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_59"
},
{
- "label": "TestClient with all routers mounted \u2014 no lifespan (no DB/service init). O",
+ "label": "Stage 1 + Stage 2 + Stage 3, no history, no sessionId.",
"file_type": "rationale",
- "source_file": "tests/conftest.py",
- "source_location": "L61",
- "community": 527,
- "norm_label": "testclient with all routers mounted \u2014 no lifespan (no db/service init). o",
- "id": "tests_conftest_rationale_61"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L74",
+ "community": 443,
+ "norm_label": "stage 1 + stage 2 + stage 3, no history, no sessionid.",
+ "id": "tests_test_prometheus_auth_coverage_rationale_74"
},
{
- "label": "TestClient with all routers mounted \u2014 no lifespan (no DB/service init). O",
+ "label": "Test history formatting (lines 48-49, 159-162).",
"file_type": "rationale",
- "source_file": "tests/conftest.py",
- "source_location": "L57",
- "community": 527,
- "norm_label": "testclient with all routers mounted \u2014 no lifespan (no db/service init). o",
- "id": "tests_conftest_rationale_57"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L119",
+ "community": 444,
+ "norm_label": "test history formatting (lines 48-49, 159-162).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_119"
},
{
- "label": "TestClient with all routers mounted \u2014 no lifespan (no DB/service init). O",
+ "label": "Stage 0: sessionId+db summary loading (lines 55-62).",
"file_type": "rationale",
- "source_file": "tests/conftest.py",
- "source_location": "L49",
- "community": 527,
- "norm_label": "testclient with all routers mounted \u2014 no lifespan (no db/service init). o",
- "id": "tests_conftest_rationale_49"
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L146",
+ "community": 445,
+ "norm_label": "stage 0: sessionid+db summary loading (lines 55-62).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_146"
},
{
- "label": "Full Code Review Report",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L1",
- "community": 161,
- "norm_label": "full code review report",
- "id": "server_code_review_report_full_code_review_report"
+ "label": "Stage 0: exception loading session (line 62).",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L177",
+ "community": 446,
+ "norm_label": "stage 0: exception loading session (line 62).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_177"
},
{
- "label": "Category 1: Database Session Management (HIGH)",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L23",
- "community": 204,
- "norm_label": "category 1: database session management (high)",
- "id": "server_code_review_report_category_1_database_session_management_high"
+ "label": "Global request resolution with KEY_SYSTEM=True (lines 180-209).",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L204",
+ "community": 447,
+ "norm_label": "global request resolution with key_system=true (lines 180-209).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_204"
},
{
- "label": "Issue 1.1 \u2014 PrometheusController creates raw DB sessions",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L25",
- "community": 204,
- "norm_label": "issue 1.1 \u2014 prometheuscontroller creates raw db sessions",
- "id": "server_code_review_report_issue_1_1_prometheuscontroller_creates_raw_db_sessions"
+ "label": "Global request API error (lines 208-209).",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L253",
+ "community": 448,
+ "norm_label": "global request api error (lines 208-209).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_253"
},
{
- "label": "Issue 1.2 \u2014 PrometheusChatManager creates raw DB sessions on every call",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L45",
- "community": 204,
- "norm_label": "issue 1.2 \u2014 prometheuschatmanager creates raw db sessions on every call",
- "id": "server_code_review_report_issue_1_2_prometheuschatmanager_creates_raw_db_sessions_on_every_call"
+ "label": "fetchStockData exception path (lines 223-225).",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L291",
+ "community": 449,
+ "norm_label": "fetchstockdata exception path (lines 223-225).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_291"
},
{
- "label": "Issue 1.3 \u2014 User controller has duplicate token extraction",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L51",
- "community": 204,
- "norm_label": "issue 1.3 \u2014 user controller has duplicate token extraction",
- "id": "server_code_review_report_issue_1_3_user_controller_has_duplicate_token_extraction"
+ "label": "fetchStockData non-200 status (line 222).",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L327",
+ "community": 450,
+ "norm_label": "fetchstockdata non-200 status (line 222).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_327"
},
{
- "label": "Category 2: Async/Sync Inconsistencies (MEDIUM)",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L75",
- "community": 161,
- "norm_label": "category 2: async/sync inconsistencies (medium)",
- "id": "server_code_review_report_category_2_async_sync_inconsistencies_medium"
+ "label": "Stage 4: summary update when len(history) % 10 == 0 (lines 325-363).",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L366",
+ "community": 451,
+ "norm_label": "stage 4: summary update when len(history) % 10 == 0 (lines 325-363).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_366"
},
{
- "label": "Issue 2.1 \u2014 All route handlers are synchronous",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L77",
- "community": 161,
- "norm_label": "issue 2.1 \u2014 all route handlers are synchronous",
- "id": "server_code_review_report_issue_2_1_all_route_handlers_are_synchronous"
+ "label": "Cover all methods in chat.py (lines 11-120).",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L441",
+ "community": 52,
+ "norm_label": "cover all methods in chat.py (lines 11-120).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_441"
},
{
- "label": "Issue 2.2 \u2014 ServiceManager runs uvicorn in daemon threads",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L85",
- "community": 161,
- "norm_label": "issue 2.2 \u2014 servicemanager runs uvicorn in daemon threads",
- "id": "server_code_review_report_issue_2_2_servicemanager_runs_uvicorn_in_daemon_threads"
+ "label": "Cover all methods in authentication.py (lines 13-75).",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L665",
+ "community": 88,
+ "norm_label": "cover all methods in authentication.py (lines 13-75).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_665"
},
{
- "label": "Category 3: Security (HIGH)",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L95",
- "community": 205,
- "norm_label": "category 3: security (high)",
- "id": "server_code_review_report_category_3_security_high"
+ "label": "Cover all methods in session.py (lines 14-154).",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L842",
+ "community": 60,
+ "norm_label": "cover all methods in session.py (lines 14-154).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_842"
},
{
- "label": "Issue 3.1 \u2014 Hardcoded API key fallback",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L97",
- "community": 205,
- "norm_label": "issue 3.1 \u2014 hardcoded api key fallback",
- "id": "server_code_review_report_issue_3_1_hardcoded_api_key_fallback"
+ "label": "Exercises the tzinfo-is-None branch (line 144-148).",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L1077",
+ "community": 190,
+ "norm_label": "exercises the tzinfo-is-none branch (line 144-148).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_1077"
},
{
- "label": "Issue 3.2 \u2014 Missing rate limiting on auth endpoints",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L112",
- "community": 205,
- "norm_label": "issue 3.2 \u2014 missing rate limiting on auth endpoints",
- "id": "server_code_review_report_issue_3_2_missing_rate_limiting_on_auth_endpoints"
+ "label": "Exercises the expiresAt-is-None branch (line 143).",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L1091",
+ "community": 165,
+ "norm_label": "exercises the expiresat-is-none branch (line 143).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_1091"
},
{
- "label": "Issue 3.3 \u2014 API key uses `string` import but doesn't use it",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L117",
- "community": 205,
- "norm_label": "issue 3.3 \u2014 api key uses `string` import but doesn't use it",
- "id": "server_code_review_report_issue_3_3_api_key_uses_string_import_but_doesn_t_use_it"
+ "label": "Cover getGoogleSSO (lines 6-14).",
+ "file_type": "rationale",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L1110",
+ "community": 68,
+ "norm_label": "cover getgooglesso (lines 6-14).",
+ "id": "tests_test_prometheus_auth_coverage_rationale_1110"
},
{
- "label": "Issue 3.4 \u2014 Logout doesn't validate token before revoking",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L122",
- "community": 205,
- "norm_label": "issue 3.4 \u2014 logout doesn't validate token before revoking",
- "id": "server_code_review_report_issue_3_4_logout_doesn_t_validate_token_before_revoking"
+ "label": ".test_repr()",
+ "file_type": "code",
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L13",
+ "community": 44,
+ "norm_label": ".test_repr()",
+ "id": "tests_test_sessions_testusersessionmodel_test_repr"
},
{
- "label": "Category 4: Caching & Memory (MEDIUM)",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L129",
- "community": 161,
- "norm_label": "category 4: caching & memory (medium)",
- "id": "server_code_review_report_category_4_caching_memory_medium"
+ "label": ".test_toDict_basic()",
+ "file_type": "code",
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L18",
+ "community": 44,
+ "norm_label": ".test_todict_basic()",
+ "id": "tests_test_sessions_testusersessionmodel_test_toDict_basic"
},
{
- "label": "Issue 4.1 \u2014 PrometheusChatManager uses in-memory dict for sessions",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L131",
- "community": 161,
- "norm_label": "issue 4.1 \u2014 prometheuschatmanager uses in-memory dict for sessions",
- "id": "server_code_review_report_issue_4_1_prometheuschatmanager_uses_in_memory_dict_for_sessions"
+ "label": ".test_toDict_with_sensitive()",
+ "file_type": "code",
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L35",
+ "community": 44,
+ "norm_label": ".test_todict_with_sensitive()",
+ "id": "tests_test_sessions_testusersessionmodel_test_toDict_with_sensitive"
},
{
- "label": "Issue 4.2 \u2014 Scraper cache has no TTL",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L140",
- "community": 161,
- "norm_label": "issue 4.2 \u2014 scraper cache has no ttl",
- "id": "server_code_review_report_issue_4_2_scraper_cache_has_no_ttl"
- },
- {
- "label": "Category 5: Error Handling Gaps (MEDIUM)",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L147",
- "community": 250,
- "norm_label": "category 5: error handling gaps (medium)",
- "id": "server_code_review_report_category_5_error_handling_gaps_medium"
+ "label": ".test_toDict_hides_userAgent()",
+ "file_type": "code",
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L46",
+ "community": 44,
+ "norm_label": ".test_todict_hides_useragent()",
+ "id": "tests_test_sessions_testusersessionmodel_test_toDict_hides_useragent"
},
{
- "label": "Issue 5.1 \u2014 Generic exception handler swallows traceback in production",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L149",
- "community": 250,
- "norm_label": "issue 5.1 \u2014 generic exception handler swallows traceback in production",
- "id": "server_code_review_report_issue_5_1_generic_exception_handler_swallows_traceback_in_production"
+ "label": ".test_toDict_with_timestamps()",
+ "file_type": "code",
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L117",
+ "community": 44,
+ "norm_label": ".test_todict_with_timestamps()",
+ "id": "tests_test_sessions_testusersessionmodel_test_todict_with_timestamps"
},
{
- "label": "Issue 5.2 \u2014 DiscordHandler sends only message, not traceback",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L154",
- "community": 250,
- "norm_label": "issue 5.2 \u2014 discordhandler sends only message, not traceback",
- "id": "server_code_review_report_issue_5_2_discordhandler_sends_only_message_not_traceback"
+ "label": ".test_toDict_without_timestamps()",
+ "file_type": "code",
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L133",
+ "community": 44,
+ "norm_label": ".test_todict_without_timestamps()",
+ "id": "tests_test_sessions_testusersessionmodel_test_todict_without_timestamps"
},
{
- "label": "Issue 5.3 \u2014 `_build_error_response` ignores `status_code` parameter",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L159",
- "community": 250,
- "norm_label": "issue 5.3 \u2014 `_build_error_response` ignores `status_code` parameter",
- "id": "server_code_review_report_issue_5_3_build_error_response_ignores_status_code_parameter"
+ "label": "TestNormalizeColumns",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L86",
+ "community": 477,
+ "norm_label": "testnormalizecolumns",
+ "id": "tests_test_stocks_api_util_coverage_testnormalizecolumns"
},
{
- "label": "Category 6: Configuration & Environment (LOW)",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L166",
- "community": 161,
- "norm_label": "category 6: configuration & environment (low)",
- "id": "server_code_review_report_category_6_configuration_environment_low"
+ "label": ".test_reorder_columns()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L87",
+ "community": 477,
+ "norm_label": ".test_reorder_columns()",
+ "id": "tests_test_stocks_api_util_coverage_testnormalizecolumns_test_reorder_columns"
},
{
- "label": "Issue 6.1 \u2014 Config class uses dict-style access with string keys",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L168",
- "community": 161,
- "norm_label": "issue 6.1 \u2014 config class uses dict-style access with string keys",
- "id": "server_code_review_report_issue_6_1_config_class_uses_dict_style_access_with_string_keys"
+ "label": ".test_partial_order()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L92",
+ "community": 477,
+ "norm_label": ".test_partial_order()",
+ "id": "tests_test_stocks_api_util_coverage_testnormalizecolumns_test_partial_order"
},
{
- "label": "Issue 6.2 \u2014 `config.py` imports are circular-risk",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L173",
- "community": 161,
- "norm_label": "issue 6.2 \u2014 `config.py` imports are circular-risk",
- "id": "server_code_review_report_issue_6_2_config_py_imports_are_circular_risk"
+ "label": ".test_missing_columns_ignored()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L97",
+ "community": 477,
+ "norm_label": ".test_missing_columns_ignored()",
+ "id": "tests_test_stocks_api_util_coverage_testnormalizecolumns_test_missing_columns_ignored"
},
{
- "label": "Issue 6.3 \u2014 `database.py` is empty/unused",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L178",
- "community": 161,
- "norm_label": "issue 6.3 \u2014 `database.py` is empty/unused",
- "id": "server_code_review_report_issue_6_3_database_py_is_empty_unused"
+ "label": ".test_empty_order()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L102",
+ "community": 477,
+ "norm_label": ".test_empty_order()",
+ "id": "tests_test_stocks_api_util_coverage_testnormalizecolumns_test_empty_order"
},
{
- "label": "Category 7: Code Quality (LOW)",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L185",
- "community": 161,
- "norm_label": "category 7: code quality (low)",
- "id": "server_code_review_report_category_7_code_quality_low"
+ "label": ".test_remaining_sorted()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L107",
+ "community": 477,
+ "norm_label": ".test_remaining_sorted()",
+ "id": "tests_test_stocks_api_util_coverage_testnormalizecolumns_test_remaining_sorted"
},
{
- "label": "Issue 7.1 \u2014 Unused imports",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L187",
- "community": 161,
- "norm_label": "issue 7.1 \u2014 unused imports",
- "id": "server_code_review_report_issue_7_1_unused_imports"
+ "label": "TestConcurrentHttpProxy",
+ "file_type": "code",
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L175",
+ "community": 172,
+ "norm_label": "testconcurrenthttpproxy",
+ "id": "tests_test_thread_safety_testconcurrenthttpproxy"
},
{
- "label": "Issue 7.2 \u2014 Missing type hints",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L194",
- "community": 161,
- "norm_label": "issue 7.2 \u2014 missing type hints",
- "id": "server_code_review_report_issue_7_2_missing_type_hints"
+ "label": ".test_proxy_returns_thread_local_sessions()",
+ "file_type": "code",
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L178",
+ "community": 172,
+ "norm_label": ".test_proxy_returns_thread_local_sessions()",
+ "id": "tests_test_thread_safety_testconcurrenthttpproxy_test_proxy_returns_thread_local_sessions"
},
{
- "label": "Issue 7.3 \u2014 `UserManager.__init__` does nothing",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L205",
- "community": 161,
- "norm_label": "issue 7.3 \u2014 `usermanager.__init__` does nothing",
- "id": "server_code_review_report_issue_7_3_usermanager_init_does_nothing"
+ "label": ".test_connectivity_uses_getSession()",
+ "file_type": "code",
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L203",
+ "community": 172,
+ "norm_label": ".test_connectivity_uses_getsession()",
+ "id": "tests_test_thread_safety_testconcurrenthttpproxy_test_connectivity_uses_getsession"
},
{
- "label": "Issue 7.4 \u2014 Mixed async/sync in roles.py",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L210",
- "community": 161,
- "norm_label": "issue 7.4 \u2014 mixed async/sync in roles.py",
- "id": "server_code_review_report_issue_7_4_mixed_async_sync_in_roles_py"
+ "label": "connectivity.checkServiceConnection must call getSession(), not use a global Ses",
+ "file_type": "rationale",
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L204",
+ "community": 172,
+ "norm_label": "connectivity.checkserviceconnection must call getsession(), not use a global ses",
+ "id": "tests_test_thread_safety_rationale_204"
},
{
- "label": "Category 8: Testing Gaps (MEDIUM)",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L217",
- "community": 231,
- "norm_label": "category 8: testing gaps (medium)",
- "id": "server_code_review_report_category_8_testing_gaps_medium"
+ "label": "Tests covering key.py lines 15-40. Uses asyncio.run() since pytest-asyncio",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L227",
+ "community": 90,
+ "norm_label": "tests covering key.py lines 15-40. uses asyncio.run() since pytest-asyncio",
+ "id": "tests_test_stocks_api_coverage_rationale_227"
},
{
- "label": "Issue 8.1 \u2014 No integration tests for full request lifecycle",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L219",
- "community": 231,
- "norm_label": "issue 8.1 \u2014 no integration tests for full request lifecycle",
- "id": "server_code_review_report_issue_8_1_no_integration_tests_for_full_request_lifecycle"
+ "label": "When KEY.SYSTEM is falsy, return None (line 16).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L232",
+ "community": 452,
+ "norm_label": "when key.system is falsy, return none (line 16).",
+ "id": "tests_test_stocks_api_coverage_rationale_232"
},
{
- "label": "Issue 8.2 \u2014 No tests for scraper, stocks query, or cache",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L223",
- "community": 231,
- "norm_label": "issue 8.2 \u2014 no tests for scraper, stocks query, or cache",
- "id": "server_code_review_report_issue_8_2_no_tests_for_scraper_stocks_query_or_cache"
+ "label": "When key is required but not provided (line 19).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L243",
+ "community": 453,
+ "norm_label": "when key is required but not provided (line 19).",
+ "id": "tests_test_stocks_api_coverage_rationale_243"
},
{
- "label": "Issue 8.3 \u2014 No tests for Google OAuth callback",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L230",
- "community": 231,
- "norm_label": "issue 8.3 \u2014 no tests for google oauth callback",
- "id": "server_code_review_report_issue_8_3_no_tests_for_google_oauth_callback"
+ "label": "When atomic UPDATE returns 0 rows and query finds no key -> 401.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L256",
+ "community": 454,
+ "norm_label": "when atomic update returns 0 rows and query finds no key -> 401.",
+ "id": "tests_test_stocks_api_coverage_rationale_256"
},
{
- "label": "Issue 8.4 \u2014 No tests for session cleanup",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L234",
- "community": 231,
- "norm_label": "issue 8.4 \u2014 no tests for session cleanup",
- "id": "server_code_review_report_issue_8_4_no_tests_for_session_cleanup"
+ "label": "When atomic UPDATE returns 0 rows and query finds key at limit -> 429.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L273",
+ "community": 455,
+ "norm_label": "when atomic update returns 0 rows and query finds key at limit -> 429.",
+ "id": "tests_test_stocks_api_coverage_rationale_273"
},
{
- "label": "Priority Summary",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L240",
- "community": 161,
- "norm_label": "priority summary",
- "id": "server_code_review_report_priority_summary"
+ "label": "Happy path: atomic UPDATE succeeds, returns key (lines 22-33).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L291",
+ "community": 456,
+ "norm_label": "happy path: atomic update succeeds, returns key (lines 22-33).",
+ "id": "tests_test_stocks_api_coverage_rationale_291"
},
{
- "label": "Recommended Delegation Buckets",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L261",
- "community": 232,
- "norm_label": "recommended delegation buckets",
- "id": "server_code_review_report_recommended_delegation_buckets"
+ "label": "HTTPException should cause rollback then re-raise (lines 35-37).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L305",
+ "community": 457,
+ "norm_label": "httpexception should cause rollback then re-raise (lines 35-37).",
+ "id": "tests_test_stocks_api_coverage_rationale_305"
},
{
- "label": "Bucket A: Security Fixes (quick wins, 30 min)",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L263",
- "community": 232,
- "norm_label": "bucket a: security fixes (quick wins, 30 min)",
- "id": "server_code_review_report_bucket_a_security_fixes_quick_wins_30_min"
+ "label": "Tests covering key.py line 44.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L339",
+ "community": 141,
+ "norm_label": "tests covering key.py line 44.",
+ "id": "tests_test_stocks_api_coverage_rationale_339"
},
{
- "label": "Bucket B: DB Session Cleanup (medium, 1-2 hrs)",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L268",
- "community": 232,
- "norm_label": "bucket b: db session cleanup (medium, 1-2 hrs)",
- "id": "server_code_review_report_bucket_b_db_session_cleanup_medium_1_2_hrs"
+ "label": "Tests covering key.py lines 48-66.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L362",
+ "community": 567,
+ "norm_label": "tests covering key.py lines 48-66.",
+ "id": "tests_test_stocks_api_coverage_rationale_362"
},
{
- "label": "Bucket C: Testing (medium, 2-3 hrs)",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L273",
- "community": 232,
- "norm_label": "bucket c: testing (medium, 2-3 hrs)",
- "id": "server_code_review_report_bucket_c_testing_medium_2_3_hrs"
+ "label": "New key created when no existing key for user (lines 57-59).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L366",
+ "community": 458,
+ "norm_label": "new key created when no existing key for user (lines 57-59).",
+ "id": "tests_test_stocks_api_coverage_rationale_366"
},
{
- "label": "Bucket D: Infrastructure (large, 4+ hrs)",
- "file_type": "document",
- "source_file": "CODE_REVIEW_REPORT.md",
- "source_location": "L279",
- "community": 232,
- "norm_label": "bucket d: infrastructure (large, 4+ hrs)",
- "id": "server_code_review_report_bucket_d_infrastructure_large_4_hrs"
+ "label": "Existing key is updated (lines 54-56).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L381",
+ "community": 459,
+ "norm_label": "existing key is updated (lines 54-56).",
+ "id": "tests_test_stocks_api_coverage_rationale_381"
},
{
- "label": "Register exception handlers on the FastAPI app. Note: HTTPException and R",
+ "label": "Exception during creation triggers rollback and 500 (lines 64-66).",
"file_type": "rationale",
- "source_file": "main/utils/errors.py",
- "source_location": "L67",
- "community": 104,
- "norm_label": "register exception handlers on the fastapi app. note: httpexception and r",
- "id": "utils_errors_rationale_67"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L398",
+ "community": 460,
+ "norm_label": "exception during creation triggers rollback and 500 (lines 64-66).",
+ "id": "tests_test_stocks_api_coverage_rationale_398"
},
{
- "label": "getSessionByIdSafe()",
- "file_type": "code",
- "source_file": "main/app/authentication/session.py",
- "source_location": "L67",
- "community": 149,
- "norm_label": "getsessionbyidsafe()",
- "id": "authentication_session_getsessionbyidsafe"
+ "label": "Tests covering query.py lines 22-48.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L416",
+ "community": 3,
+ "norm_label": "tests covering query.py lines 22-48.",
+ "id": "tests_test_stocks_api_coverage_rationale_416"
},
{
- "label": "test_stocks_cache.py",
- "file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L1",
- "community": 502,
- "norm_label": "test_stocks_cache.py",
- "id": "tests_test_stocks_cache_py"
+ "label": "replaceNan handles direct float NaN values (line 34).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L494",
+ "community": 488,
+ "norm_label": "replacenan handles direct float nan values (line 34).",
+ "id": "tests_test_stocks_api_coverage_rationale_494"
},
{
- "label": "TestTickerIndex",
- "file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L17",
- "community": 42,
- "norm_label": "testtickerindex",
- "id": "tests_test_stocks_cache_testtickerindex"
+ "label": "Non-JSON-dict/list string is left as-is.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L508",
+ "community": 509,
+ "norm_label": "non-json-dict/list string is left as-is.",
+ "id": "tests_test_stocks_api_coverage_rationale_508"
},
{
- "label": ".test_tickerIndex_built_after_cache_load()",
- "file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L20",
- "community": 42,
- "norm_label": ".test_tickerindex_built_after_cache_load()",
- "id": "tests_test_stocks_cache_testtickerindex_test_tickerindex_built_after_cache_load"
+ "label": "pd.NA is not a string, so lambda returns it unchanged.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L517",
+ "community": 520,
+ "norm_label": "pd.na is not a string, so lambda returns it unchanged.",
+ "id": "tests_test_stocks_api_coverage_rationale_517"
},
{
- "label": ".test_tickerIndex_contains_all_tickers()",
- "file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L28",
- "community": 42,
- "norm_label": ".test_tickerindex_contains_all_tickers()",
- "id": "tests_test_stocks_cache_testtickerindex_test_tickerindex_contains_all_tickers"
+ "label": "Regression: is_string_dtype fails when column has strings + None (pandas 2.x).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L526",
+ "community": 3,
+ "norm_label": "regression: is_string_dtype fails when column has strings + none (pandas 2.x).",
+ "id": "tests_test_stocks_api_coverage_rationale_526"
},
{
- "label": ".test_tickerIndex_case_insensitive()",
- "file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L38",
- "community": 42,
- "norm_label": ".test_tickerindex_case_insensitive()",
- "id": "tests_test_stocks_cache_testtickerindex_test_tickerindex_case_insensitive"
+ "label": "All four SPECIAL_COLS should parse correctly when mixed with None.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L548",
+ "community": 3,
+ "norm_label": "all four special_cols should parse correctly when mixed with none.",
+ "id": "tests_test_stocks_api_coverage_rationale_548"
},
{
- "label": ".test_ticker_lookup_returns_valid_index()",
- "file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L47",
- "community": 42,
- "norm_label": ".test_ticker_lookup_returns_valid_index()",
- "id": "tests_test_stocks_cache_testtickerindex_test_ticker_lookup_returns_valid_index"
+ "label": "Tests covering query.py lines 50-67.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L573",
+ "community": 3,
+ "norm_label": "tests covering query.py lines 50-67.",
+ "id": "tests_test_stocks_api_coverage_rationale_573"
},
{
- "label": ".test_tickerIndex_rebuilt_on_cache_refresh()",
- "file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L58",
- "community": 42,
- "norm_label": ".test_tickerindex_rebuilt_on_cache_refresh()",
- "id": "tests_test_stocks_cache_testtickerindex_test_tickerindex_rebuilt_on_cache_refresh"
+ "label": "Tests covering query.py lines 77-132.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L628",
+ "community": 21,
+ "norm_label": "tests covering query.py lines 77-132.",
+ "id": "tests_test_stocks_api_coverage_rationale_628"
},
{
- "label": "TestQueryCaching",
- "file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L70",
- "community": 74,
- "norm_label": "testquerycaching",
- "id": "tests_test_stocks_cache_testquerycaching"
+ "label": "Pass field name WITHOUT year (how categorizeColumns returns them).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L666",
+ "community": 222,
+ "norm_label": "pass field name without year (how categorizecolumns returns them).",
+ "id": "tests_test_stocks_api_coverage_rationale_666"
},
{
- "label": ".test_cache_manager_has_caches_method()",
- "file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L73",
- "community": 74,
- "norm_label": ".test_cache_manager_has_caches_method()",
- "id": "tests_test_stocks_cache_testquerycaching_test_cache_manager_has_caches_method"
+ "label": "No historical data columns -> inner 400 caught by outer except -> 500.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L692",
+ "community": 28,
+ "norm_label": "no historical data columns -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_692"
},
{
- "label": ".test_queryCache_ttl_configuration()",
- "file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L81",
- "community": 74,
- "norm_label": ".test_querycache_ttl_configuration()",
- "id": "tests_test_stocks_cache_testquerycaching_test_querycache_ttl_configuration"
+ "label": "If an unexpected exception occurs in queryHistorical.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L717",
+ "community": 28,
+ "norm_label": "if an unexpected exception occurs in queryhistorical.",
+ "id": "tests_test_stocks_api_coverage_rationale_717"
},
{
- "label": ".test_get_cached_stocks_respects_columns_parameter()",
- "file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L89",
- "community": 74,
- "norm_label": ".test_get_cached_stocks_respects_columns_parameter()",
- "id": "tests_test_stocks_cache_testquerycaching_test_get_cached_stocks_respects_columns_parameter"
+ "label": "Invalid date format raises exception (line 132).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L735",
+ "community": 136,
+ "norm_label": "invalid date format raises exception (line 132).",
+ "id": "tests_test_stocks_api_coverage_rationale_735"
},
{
- "label": ".test_different_queries_not_cached()",
- "file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L99",
- "community": 74,
- "norm_label": ".test_different_queries_not_cached()",
- "id": "tests_test_stocks_cache_testquerycaching_test_different_queries_not_cached"
+ "label": "No historical columns at all -> inner 400 caught by outer except -> 500.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L751",
+ "community": 127,
+ "norm_label": "no historical columns at all -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_751"
},
{
- "label": ".test_cache_expiry_after_ttl()",
- "file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L103",
- "community": 74,
- "norm_label": ".test_cache_expiry_after_ttl()",
- "id": "tests_test_stocks_cache_testquerycaching_test_cache_expiry_after_ttl"
+ "label": "Historical query with a year range.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L761",
+ "community": 28,
+ "norm_label": "historical query with a year range.",
+ "id": "tests_test_stocks_api_coverage_rationale_761"
},
{
- "label": "TestConnectionPool",
- "file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L109",
- "community": 502,
- "norm_label": "testconnectionpool",
- "id": "tests_test_stocks_cache_testconnectionpool"
+ "label": "Multiple search terms, all found in tickerIndex.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L768",
+ "community": 28,
+ "norm_label": "multiple search terms, all found in tickerindex.",
+ "id": "tests_test_stocks_api_coverage_rationale_768"
},
{
- "label": ".test_stocks_engine_has_pool_configuration()",
- "file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L112",
- "community": 502,
- "norm_label": ".test_stocks_engine_has_pool_configuration()",
- "id": "tests_test_stocks_cache_testconnectionpool_test_stocks_engine_has_pool_configuration"
+ "label": "Invalid date -> inner 400 caught by outer except -> 500.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L831",
+ "community": 39,
+ "norm_label": "invalid date -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_831"
},
{
- "label": "TestLazyDeserialization",
+ "label": "search.strip() == '' should still dedup (line 181).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L884",
+ "community": 39,
+ "norm_label": "search.strip() == '' should still dedup (line 181).",
+ "id": "tests_test_stocks_api_coverage_rationale_884"
+ },
+ {
+ "label": "DataFrame without TIME column.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L893",
+ "community": 39,
+ "norm_label": "dataframe without time column.",
+ "id": "tests_test_stocks_api_coverage_rationale_893"
+ },
+ {
+ "label": "Two dates in the range, both valid.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L906",
+ "community": 39,
+ "norm_label": "two dates in the range, both valid.",
+ "id": "tests_test_stocks_api_coverage_rationale_906"
+ },
+ {
+ "label": "Single invalid date -> inner 400 caught by outer except -> 500.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L920",
+ "community": 46,
+ "norm_label": "single invalid date -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_920"
+ },
+ {
+ "label": "Fields that don't exist in the dataframe are filtered out.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L930",
+ "community": 46,
+ "norm_label": "fields that don't exist in the dataframe are filtered out.",
+ "id": "tests_test_stocks_api_coverage_rationale_930"
+ },
+ {
+ "label": "Multiple search terms with tickerIndex.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L945",
+ "community": 17,
+ "norm_label": "multiple search terms with tickerindex.",
+ "id": "tests_test_stocks_api_coverage_rationale_945"
+ },
+ {
+ "label": "Search with no index match falls back to string startswith.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L953",
+ "community": 17,
+ "norm_label": "search with no index match falls back to string startswith.",
+ "id": "tests_test_stocks_api_coverage_rationale_953"
+ },
+ {
+ "label": "len(dateRange) == 1 -> single date filter.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L961",
+ "community": 39,
+ "norm_label": "len(daterange) == 1 -> single date filter.",
+ "id": "tests_test_stocks_api_coverage_rationale_961"
+ },
+ {
+ "label": "parseYearInput()",
"file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L121",
- "community": 509,
- "norm_label": "testlazydeserialization",
- "id": "tests_test_stocks_cache_testlazydeserialization"
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L23",
+ "community": 106,
+ "norm_label": "parseyearinput()",
+ "id": "stocks_api_util_parseyearinput"
},
{
- "label": ".test_query_manager_has_deserialize_method()",
+ "label": "TestParseYearInput",
"file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L124",
- "community": 509,
- "norm_label": ".test_query_manager_has_deserialize_method()",
- "id": "tests_test_stocks_cache_testlazydeserialization_test_query_manager_has_deserialize_method"
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L43",
+ "community": 106,
+ "norm_label": "testparseyearinput",
+ "id": "tests_test_stocks_api_util_coverage_testparseyearinput"
},
{
- "label": "TestQueryOptimization",
+ "label": ".test_empty_string()",
"file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L135",
- "community": 234,
- "norm_label": "testqueryoptimization",
- "id": "tests_test_stocks_cache_testqueryoptimization"
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L44",
+ "community": 106,
+ "norm_label": ".test_empty_string()",
+ "id": "tests_test_stocks_api_util_coverage_testparseyearinput_test_empty_string"
},
{
- "label": ".test_all_optimizations_present()",
+ "label": ".test_none()",
"file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L138",
- "community": 234,
- "norm_label": ".test_all_optimizations_present()",
- "id": "tests_test_stocks_cache_testqueryoptimization_test_all_optimizations_present"
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L47",
+ "community": 106,
+ "norm_label": ".test_none()",
+ "id": "tests_test_stocks_api_util_coverage_testparseyearinput_test_none"
},
{
- "label": ".test_query_filter_uses_optimization()",
+ "label": ".test_single_year()",
"file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L153",
- "community": 234,
- "norm_label": ".test_query_filter_uses_optimization()",
- "id": "tests_test_stocks_cache_testqueryoptimization_test_query_filter_uses_optimization"
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L50",
+ "community": 106,
+ "norm_label": ".test_single_year()",
+ "id": "tests_test_stocks_api_util_coverage_testparseyearinput_test_single_year"
},
{
- "label": "TestPerformanceBenchmarks",
+ "label": ".test_year_range()",
"file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L171",
- "community": 57,
- "norm_label": "testperformancebenchmarks",
- "id": "tests_test_stocks_cache_testperformancebenchmarks"
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L53",
+ "community": 106,
+ "norm_label": ".test_year_range()",
+ "id": "tests_test_stocks_api_util_coverage_testparseyearinput_test_year_range"
},
{
- "label": ".test_tickerIndex_lookup_performance()",
+ "label": ".test_spaces()",
"file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L174",
- "community": 57,
- "norm_label": ".test_tickerindex_lookup_performance()",
- "id": "tests_test_stocks_cache_testperformancebenchmarks_test_tickerindex_lookup_performance"
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L56",
+ "community": 106,
+ "norm_label": ".test_spaces()",
+ "id": "tests_test_stocks_api_util_coverage_testparseyearinput_test_spaces"
},
{
- "label": ".test_prefix_scan_performance()",
+ "label": ".test_three_years_raises()",
"file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L194",
- "community": 57,
- "norm_label": ".test_prefix_scan_performance()",
- "id": "tests_test_stocks_cache_testperformancebenchmarks_test_prefix_scan_performance"
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L59",
+ "community": 106,
+ "norm_label": ".test_three_years_raises()",
+ "id": "tests_test_stocks_api_util_coverage_testparseyearinput_test_three_years_raises"
},
{
- "label": ".test_index_lookup_vs_scan_comparison()",
+ "label": "TestParseYearInput",
"file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L214",
- "community": 57,
- "norm_label": ".test_index_lookup_vs_scan_comparison()",
- "id": "tests_test_stocks_cache_testperformancebenchmarks_test_index_lookup_vs_scan_comparison"
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L53",
+ "community": 106,
+ "norm_label": "testparseyearinput",
+ "id": "tests_test_stocks_util_testparseyearinput"
},
{
- "label": ".test_queryCache_performance()",
+ "label": ".test_parse_year_single()",
"file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L244",
- "community": 57,
- "norm_label": ".test_querycache_performance()",
- "id": "tests_test_stocks_cache_testperformancebenchmarks_test_querycache_performance"
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L54",
+ "community": 106,
+ "norm_label": ".test_parse_year_single()",
+ "id": "tests_test_stocks_util_testparseyearinput_test_parse_year_single"
},
{
- "label": ".test_column_projection_performance()",
+ "label": ".test_parse_year_range()",
"file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L266",
- "community": 57,
- "norm_label": ".test_column_projection_performance()",
- "id": "tests_test_stocks_cache_testperformancebenchmarks_test_column_projection_performance"
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L59",
+ "community": 106,
+ "norm_label": ".test_parse_year_range()",
+ "id": "tests_test_stocks_util_testparseyearinput_test_parse_year_range"
},
{
- "label": ".test_cache_initialization_time()",
+ "label": ".test_parse_year_none()",
"file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L281",
- "community": 57,
- "norm_label": ".test_cache_initialization_time()",
- "id": "tests_test_stocks_cache_testperformancebenchmarks_test_cache_initialization_time"
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L64",
+ "community": 106,
+ "norm_label": ".test_parse_year_none()",
+ "id": "tests_test_stocks_util_testparseyearinput_test_parse_year_none"
},
{
- "label": "TestFilterBySearchTerms",
+ "label": ".test_parse_year_empty_string()",
"file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L299",
- "community": 502,
- "norm_label": "testfilterbysearchterms",
- "id": "tests_test_stocks_cache_testfilterbysearchterms"
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L69",
+ "community": 106,
+ "norm_label": ".test_parse_year_empty_string()",
+ "id": "tests_test_stocks_util_testparseyearinput_test_parse_year_empty_string"
},
{
- "label": ".test_filter_with_tickerIndex()",
+ "label": ".test_parse_year_with_spaces()",
"file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L302",
- "community": 502,
- "norm_label": ".test_filter_with_tickerindex()",
- "id": "tests_test_stocks_cache_testfilterbysearchterms_test_filter_with_tickerindex"
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L74",
+ "community": 106,
+ "norm_label": ".test_parse_year_with_spaces()",
+ "id": "tests_test_stocks_util_testparseyearinput_test_parse_year_with_spaces"
},
{
- "label": "TestQueryPerformance",
+ "label": ".test_parse_year_invalid_format()",
"file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L308",
- "community": 502,
- "norm_label": "testqueryperformance",
- "id": "tests_test_stocks_cache_testqueryperformance"
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L79",
+ "community": 106,
+ "norm_label": ".test_parse_year_invalid_format()",
+ "id": "tests_test_stocks_util_testparseyearinput_test_parse_year_invalid_format"
},
{
- "label": ".test_query_response_time_under_1_second()",
+ "label": ".test_parse_year_invalid_non_digit()",
"file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L311",
- "community": 502,
- "norm_label": ".test_query_response_time_under_1_second()",
- "id": "tests_test_stocks_cache_testqueryperformance_test_query_response_time_under_1_second"
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L84",
+ "community": 106,
+ "norm_label": ".test_parse_year_invalid_non_digit()",
+ "id": "tests_test_stocks_util_testparseyearinput_test_parse_year_invalid_non_digit"
},
{
- "label": "Tests for dynamic ticker index feature",
+ "label": "Invalid date format raises exception (line 132).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L18",
- "community": 42,
- "norm_label": "tests for dynamic ticker index feature",
- "id": "tests_test_stocks_cache_rationale_18"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L731",
+ "community": 136,
+ "norm_label": "invalid date format raises exception (line 132).",
+ "id": "tests_test_stocks_api_coverage_rationale_731"
},
{
- "label": "Ticker index should be built when cache is loaded",
+ "label": "No historical columns at all -> inner 400 caught by outer except -> 500.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L21",
- "community": 42,
- "norm_label": "ticker index should be built when cache is loaded",
- "id": "tests_test_stocks_cache_rationale_21"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L747",
+ "community": 127,
+ "norm_label": "no historical columns at all -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_747"
},
{
- "label": "Ticker index should contain all tickers from cache",
+ "label": "Historical query with a year range.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L29",
- "community": 42,
- "norm_label": "ticker index should contain all tickers from cache",
- "id": "tests_test_stocks_cache_rationale_29"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L757",
+ "community": 28,
+ "norm_label": "historical query with a year range.",
+ "id": "tests_test_stocks_api_coverage_rationale_757"
},
{
- "label": "Ticker index should be case-insensitive",
+ "label": "Multiple search terms, all found in tickerIndex.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L39",
- "community": 42,
- "norm_label": "ticker index should be case-insensitive",
- "id": "tests_test_stocks_cache_rationale_39"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L764",
+ "community": 28,
+ "norm_label": "multiple search terms, all found in tickerindex.",
+ "id": "tests_test_stocks_api_coverage_rationale_764"
},
{
- "label": "Looking up ticker should return valid row index",
+ "label": "Tests covering query.py lines 142-202.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L48",
- "community": 42,
- "norm_label": "looking up ticker should return valid row index",
- "id": "tests_test_stocks_cache_rationale_48"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L773",
+ "community": 21,
+ "norm_label": "tests covering query.py lines 142-202.",
+ "id": "tests_test_stocks_api_coverage_rationale_773"
},
{
- "label": "Ticker index should be rebuilt when cache refreshes",
+ "label": "Invalid date -> inner 400 caught by outer except -> 500.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L59",
- "community": 42,
- "norm_label": "ticker index should be rebuilt when cache refreshes",
- "id": "tests_test_stocks_cache_rationale_59"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L827",
+ "community": 39,
+ "norm_label": "invalid date -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_827"
},
{
- "label": "Tests for query result caching",
+ "label": "search.strip() == '' should still dedup (line 181).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L71",
- "community": 74,
- "norm_label": "tests for query result caching",
- "id": "tests_test_stocks_cache_rationale_71"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L876",
+ "community": 39,
+ "norm_label": "search.strip() == '' should still dedup (line 181).",
+ "id": "tests_test_stocks_api_coverage_rationale_876"
},
{
- "label": "CacheManager should track cached queries",
+ "label": "Two dates in the range, both valid.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L74",
- "community": 74,
- "norm_label": "cachemanager should track cached queries",
- "id": "tests_test_stocks_cache_rationale_74"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L898",
+ "community": 39,
+ "norm_label": "two dates in the range, both valid.",
+ "id": "tests_test_stocks_api_coverage_rationale_898"
},
{
- "label": "Query cache should have configurable TTL",
+ "label": "Single invalid date -> inner 400 caught by outer except -> 500.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L82",
- "community": 74,
- "norm_label": "query cache should have configurable ttl",
- "id": "tests_test_stocks_cache_rationale_82"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L912",
+ "community": 46,
+ "norm_label": "single invalid date -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_912"
},
{
- "label": "getCachedStocks should support column filtering",
+ "label": "Fields that don't exist in the dataframe are filtered out.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L90",
- "community": 74,
- "norm_label": "getcachedstocks should support column filtering",
- "id": "tests_test_stocks_cache_rationale_90"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L922",
+ "community": 46,
+ "norm_label": "fields that don't exist in the dataframe are filtered out.",
+ "id": "tests_test_stocks_api_coverage_rationale_922"
},
{
- "label": "Different query parameters should not share cache",
+ "label": "Multiple search terms with tickerIndex.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L100",
- "community": 74,
- "norm_label": "different query parameters should not share cache",
- "id": "tests_test_stocks_cache_rationale_100"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L937",
+ "community": 17,
+ "norm_label": "multiple search terms with tickerindex.",
+ "id": "tests_test_stocks_api_coverage_rationale_937"
},
{
- "label": "Cache should expire after TTL",
+ "label": "Invalid date format raises exception (line 132).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L104",
- "community": 74,
- "norm_label": "cache should expire after ttl",
- "id": "tests_test_stocks_cache_rationale_104"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L730",
+ "community": 136,
+ "norm_label": "invalid date format raises exception (line 132).",
+ "id": "tests_test_stocks_api_coverage_rationale_730"
},
{
- "label": "Tests for connection pool configuration",
+ "label": "No historical columns at all -> inner 400 caught by outer except -> 500.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L110",
- "community": 502,
- "norm_label": "tests for connection pool configuration",
- "id": "tests_test_stocks_cache_rationale_110"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L746",
+ "community": 127,
+ "norm_label": "no historical columns at all -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_746"
},
{
- "label": "Stocks engine should have optimized pool settings",
+ "label": "Historical query with a year range.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L113",
- "community": 502,
- "norm_label": "stocks engine should have optimized pool settings",
- "id": "tests_test_stocks_cache_rationale_113"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L756",
+ "community": 28,
+ "norm_label": "historical query with a year range.",
+ "id": "tests_test_stocks_api_coverage_rationale_756"
},
{
- "label": "Tests for lazy JSON deserialization",
+ "label": "Tests covering query.py lines 142-202.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L122",
- "community": 509,
- "norm_label": "tests for lazy json deserialization",
- "id": "tests_test_stocks_cache_rationale_122"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L772",
+ "community": 21,
+ "norm_label": "tests covering query.py lines 142-202.",
+ "id": "tests_test_stocks_api_coverage_rationale_772"
},
{
- "label": "Query manager should have deserialize method",
+ "label": "Invalid date -> inner 400 caught by outer except -> 500.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L125",
- "community": 509,
- "norm_label": "query manager should have deserialize method",
- "id": "tests_test_stocks_cache_rationale_125"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L826",
+ "community": 39,
+ "norm_label": "invalid date -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_826"
},
{
- "label": "Integration tests for all query optimizations",
+ "label": "search.strip() == '' should still dedup (line 181).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L136",
- "community": 234,
- "norm_label": "integration tests for all query optimizations",
- "id": "tests_test_stocks_cache_rationale_136"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L874",
+ "community": 46,
+ "norm_label": "search.strip() == '' should still dedup (line 181).",
+ "id": "tests_test_stocks_api_coverage_rationale_874"
},
{
- "label": "All optimizations should be implemented",
+ "label": "Single invalid date -> inner 400 caught by outer except -> 500.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L139",
- "community": 234,
- "norm_label": "all optimizations should be implemented",
- "id": "tests_test_stocks_cache_rationale_139"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L910",
+ "community": 46,
+ "norm_label": "single invalid date -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_910"
},
{
- "label": "Query filter should use ticker index",
+ "label": "Multiple search terms with tickerIndex.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L154",
- "community": 234,
- "norm_label": "query filter should use ticker index",
- "id": "tests_test_stocks_cache_rationale_154"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L935",
+ "community": 17,
+ "norm_label": "multiple search terms with tickerindex.",
+ "id": "tests_test_stocks_api_coverage_rationale_935"
},
{
- "label": "Performance benchmark tests for stocks API",
+ "label": "Search with no index match falls back to string startswith.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L172",
- "community": 57,
- "norm_label": "performance benchmark tests for stocks api",
- "id": "tests_test_stocks_cache_rationale_172"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L943",
+ "community": 17,
+ "norm_label": "search with no index match falls back to string startswith.",
+ "id": "tests_test_stocks_api_coverage_rationale_943"
},
{
- "label": "Ticker index lookup should be O(1) - very fast",
+ "label": "len(dateRange) == 1 -> single date filter.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L175",
- "community": 57,
- "norm_label": "ticker index lookup should be o(1) - very fast",
- "id": "tests_test_stocks_cache_rationale_175"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L951",
+ "community": 39,
+ "norm_label": "len(daterange) == 1 -> single date filter.",
+ "id": "tests_test_stocks_api_coverage_rationale_951"
},
{
- "label": "Prefix scan should be much slower than index lookup",
+ "label": "Thread-safe proxy that delegates to per-thread sessions.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L195",
- "community": 57,
- "norm_label": "prefix scan should be much slower than index lookup",
- "id": "tests_test_stocks_cache_rationale_195"
+ "source_file": "main/app/prometheus/generation.py",
+ "source_location": "L20",
+ "community": 487,
+ "norm_label": "thread-safe proxy that delegates to per-thread sessions.",
+ "id": "prometheus_generation_rationale_20"
},
{
- "label": "Index lookup should be significantly faster than scan",
+ "label": "Tests covering query.py lines 77-132.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L215",
- "community": 57,
- "norm_label": "index lookup should be significantly faster than scan",
- "id": "tests_test_stocks_cache_rationale_215"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L582",
+ "community": 21,
+ "norm_label": "tests covering query.py lines 77-132.",
+ "id": "tests_test_stocks_api_coverage_rationale_582"
},
{
- "label": "Query cache should avoid recomputation",
+ "label": "Pass field name WITHOUT year (how categorizeColumns returns them).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L245",
- "community": 57,
- "norm_label": "query cache should avoid recomputation",
- "id": "tests_test_stocks_cache_rationale_245"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L620",
+ "community": 222,
+ "norm_label": "pass field name without year (how categorizecolumns returns them).",
+ "id": "tests_test_stocks_api_coverage_rationale_620"
},
{
- "label": "Column projection should reduce memory and time",
+ "label": "No historical data columns -> inner 400 caught by outer except -> 500.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L267",
- "community": 57,
- "norm_label": "column projection should reduce memory and time",
- "id": "tests_test_stocks_cache_rationale_267"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L646",
+ "community": 28,
+ "norm_label": "no historical data columns -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_646"
},
{
- "label": "Cache initialization should complete in reasonable time",
+ "label": "If an unexpected exception occurs (line 132).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L282",
- "community": 57,
- "norm_label": "cache initialization should complete in reasonable time",
- "id": "tests_test_stocks_cache_rationale_282"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L671",
+ "community": 28,
+ "norm_label": "if an unexpected exception occurs (line 132).",
+ "id": "tests_test_stocks_api_coverage_rationale_671"
},
{
- "label": "Tests for optimized search filtering",
+ "label": "Invalid date format raises exception (line 132).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L300",
- "community": 502,
- "norm_label": "tests for optimized search filtering",
- "id": "tests_test_stocks_cache_rationale_300"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L684",
+ "community": 136,
+ "norm_label": "invalid date format raises exception (line 132).",
+ "id": "tests_test_stocks_api_coverage_rationale_684"
},
{
- "label": "Filter should use ticker index for O(1) lookup",
+ "label": "No historical columns at all -> inner 400 caught by outer except -> 500.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L303",
- "community": 502,
- "norm_label": "filter should use ticker index for o(1) lookup",
- "id": "tests_test_stocks_cache_rationale_303"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L700",
+ "community": 127,
+ "norm_label": "no historical columns at all -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_700"
},
{
- "label": "Performance tests for query operations",
+ "label": "Historical query with a year range.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L309",
- "community": 502,
- "norm_label": "performance tests for query operations",
- "id": "tests_test_stocks_cache_rationale_309"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L710",
+ "community": 28,
+ "norm_label": "historical query with a year range.",
+ "id": "tests_test_stocks_api_coverage_rationale_710"
},
{
- "label": "Query should respond within 1 second",
+ "label": "Tests covering query.py lines 142-202.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L312",
- "community": 502,
- "norm_label": "query should respond within 1 second",
- "id": "tests_test_stocks_cache_rationale_312"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L726",
+ "community": 21,
+ "norm_label": "tests covering query.py lines 142-202.",
+ "id": "tests_test_stocks_api_coverage_rationale_726"
},
{
- "label": "coverage_html_cb_188fc9a4.js",
- "file_type": "code",
- "source_file": "htmlcov/coverage_html_cb_188fc9a4.js",
- "source_location": "L1",
- "community": 171,
- "norm_label": "coverage_html_cb_188fc9a4.js",
- "id": "htmlcov_coverage_html_cb_188fc9a4_js"
+ "label": "Invalid date -> inner 400 caught by outer except -> 500.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L780",
+ "community": 39,
+ "norm_label": "invalid date -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_780"
},
{
- "label": "debounce()",
- "file_type": "code",
- "source_file": "htmlcov/coverage_html_cb_188fc9a4.js",
- "source_location": "L11",
- "community": 171,
- "norm_label": "debounce()",
- "id": "htmlcov_coverage_html_cb_188fc9a4_debounce"
+ "label": "search.strip() == '' should still dedup (line 181).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L828",
+ "community": 39,
+ "norm_label": "search.strip() == '' should still dedup (line 181).",
+ "id": "tests_test_stocks_api_coverage_rationale_828"
},
{
- "label": "checkVisible()",
- "file_type": "code",
- "source_file": "htmlcov/coverage_html_cb_188fc9a4.js",
- "source_location": "L21",
- "community": 171,
- "norm_label": "checkvisible()",
- "id": "htmlcov_coverage_html_cb_188fc9a4_checkvisible"
+ "label": "DataFrame without TIME column.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L837",
+ "community": 39,
+ "norm_label": "dataframe without time column.",
+ "id": "tests_test_stocks_api_coverage_rationale_837"
},
{
- "label": "on_click()",
- "file_type": "code",
- "source_file": "htmlcov/coverage_html_cb_188fc9a4.js",
- "source_location": "L28",
- "community": 171,
- "norm_label": "on_click()",
- "id": "htmlcov_coverage_html_cb_188fc9a4_on_click"
+ "label": "Two dates in the range, both valid.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L850",
+ "community": 39,
+ "norm_label": "two dates in the range, both valid.",
+ "id": "tests_test_stocks_api_coverage_rationale_850"
},
{
- "label": "getCellValue()",
- "file_type": "code",
- "source_file": "htmlcov/coverage_html_cb_188fc9a4.js",
- "source_location": "L36",
- "community": 171,
- "norm_label": "getcellvalue()",
- "id": "htmlcov_coverage_html_cb_188fc9a4_getcellvalue"
+ "label": "Single invalid date -> inner 400 caught by outer except -> 500.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L864",
+ "community": 46,
+ "norm_label": "single invalid date -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_864"
},
{
- "label": "rowComparator()",
- "file_type": "code",
- "source_file": "htmlcov/coverage_html_cb_188fc9a4.js",
- "source_location": "L50",
- "community": 171,
- "norm_label": "rowcomparator()",
- "id": "htmlcov_coverage_html_cb_188fc9a4_rowcomparator"
+ "label": "Multiple search terms with tickerIndex.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L889",
+ "community": 17,
+ "norm_label": "multiple search terms with tickerindex.",
+ "id": "tests_test_stocks_api_coverage_rationale_889"
},
{
- "label": "sortColumn()",
- "file_type": "code",
- "source_file": "htmlcov/coverage_html_cb_188fc9a4.js",
- "source_location": "L59",
- "community": 171,
- "norm_label": "sortcolumn()",
- "id": "htmlcov_coverage_html_cb_188fc9a4_sortcolumn"
+ "label": "Search with no index match falls back to string startswith.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L897",
+ "community": 17,
+ "norm_label": "search with no index match falls back to string startswith.",
+ "id": "tests_test_stocks_api_coverage_rationale_897"
},
{
- "label": "updateHeader()",
- "file_type": "code",
- "source_file": "htmlcov/coverage_html_cb_188fc9a4.js",
- "source_location": "L699",
- "community": 171,
- "norm_label": "updateheader()",
- "id": "htmlcov_coverage_html_cb_188fc9a4_updateheader"
+ "label": "checkMySqlConnection \u2014 success, errors, engine=None paths.",
+ "file_type": "rationale",
+ "source_file": "tests/test_connectivity_coverage.py",
+ "source_location": "L8",
+ "community": 566,
+ "norm_label": "checkmysqlconnection \u2014 success, errors, engine=none paths.",
+ "id": "tests_test_connectivity_coverage_rationale_8"
},
{
- "label": "Tests for query result caching",
+ "label": "checkServiceConnection \u2014 success, not found, errors.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L73",
- "community": 74,
- "norm_label": "tests for query result caching",
- "id": "tests_test_stocks_cache_rationale_73"
+ "source_file": "tests/test_connectivity_coverage.py",
+ "source_location": "L105",
+ "community": 562,
+ "norm_label": "checkserviceconnection \u2014 success, not found, errors.",
+ "id": "tests_test_connectivity_coverage_rationale_105"
},
{
- "label": "CacheManager should track cached queries",
+ "label": "Create a test client for the status endpoint without running lifespan.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L76",
- "community": 74,
- "norm_label": "cachemanager should track cached queries",
- "id": "tests_test_stocks_cache_rationale_76"
+ "source_file": "tests/test_status_endpoint.py",
+ "source_location": "L9",
+ "community": 132,
+ "norm_label": "create a test client for the status endpoint without running lifespan.",
+ "id": "tests_test_status_endpoint_rationale_9"
},
{
- "label": "Query cache should have configurable TTL",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L84",
- "community": 74,
- "norm_label": "query cache should have configurable ttl",
- "id": "tests_test_stocks_cache_rationale_84"
+ "label": "test_cache_scheduler_starts_daemon_thread()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L54",
+ "community": 90,
+ "norm_label": "test_cache_scheduler_starts_daemon_thread()",
+ "id": "tests_test_stocks_api_coverage_test_cache_scheduler_starts_daemon_thread"
},
{
- "label": "getCachedStocks should support column filtering",
+ "label": "Tests covering query.py lines 77-132.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L92",
- "community": 74,
- "norm_label": "getcachedstocks should support column filtering",
- "id": "tests_test_stocks_cache_rationale_92"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L583",
+ "community": 21,
+ "norm_label": "tests covering query.py lines 77-132.",
+ "id": "tests_test_stocks_api_coverage_rationale_583"
},
{
- "label": "Different query parameters should not share cache",
+ "label": "Pass field name WITHOUT year (how categorizeColumns returns them).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L102",
- "community": 74,
- "norm_label": "different query parameters should not share cache",
- "id": "tests_test_stocks_cache_rationale_102"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L621",
+ "community": 222,
+ "norm_label": "pass field name without year (how categorizecolumns returns them).",
+ "id": "tests_test_stocks_api_coverage_rationale_621"
},
{
- "label": "Cache should expire after TTL",
+ "label": "No historical data columns -> inner 400 caught by outer except -> 500.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L106",
- "community": 74,
- "norm_label": "cache should expire after ttl",
- "id": "tests_test_stocks_cache_rationale_106"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L647",
+ "community": 28,
+ "norm_label": "no historical data columns -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_647"
},
{
- "label": "Tests for connection pool configuration",
+ "label": "If an unexpected exception occurs (line 132).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L112",
- "community": 502,
- "norm_label": "tests for connection pool configuration",
- "id": "tests_test_stocks_cache_rationale_112"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L672",
+ "community": 28,
+ "norm_label": "if an unexpected exception occurs (line 132).",
+ "id": "tests_test_stocks_api_coverage_rationale_672"
},
{
- "label": "Stocks engine should have optimized pool settings",
+ "label": "Invalid date format raises exception (line 132).",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L115",
- "community": 502,
- "norm_label": "stocks engine should have optimized pool settings",
- "id": "tests_test_stocks_cache_rationale_115"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L685",
+ "community": 136,
+ "norm_label": "invalid date format raises exception (line 132).",
+ "id": "tests_test_stocks_api_coverage_rationale_685"
},
{
- "label": "Tests for lazy JSON deserialization",
+ "label": "No historical columns at all -> inner 400 caught by outer except -> 500.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L124",
- "community": 509,
- "norm_label": "tests for lazy json deserialization",
- "id": "tests_test_stocks_cache_rationale_124"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L701",
+ "community": 127,
+ "norm_label": "no historical columns at all -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_701"
},
{
- "label": "Query manager should have deserialize method",
+ "label": "Historical query with a year range.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L127",
- "community": 509,
- "norm_label": "query manager should have deserialize method",
- "id": "tests_test_stocks_cache_rationale_127"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L711",
+ "community": 28,
+ "norm_label": "historical query with a year range.",
+ "id": "tests_test_stocks_api_coverage_rationale_711"
},
{
- "label": "Integration tests for all query optimizations",
+ "label": "Tests covering query.py lines 142-202.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L138",
- "community": 234,
- "norm_label": "integration tests for all query optimizations",
- "id": "tests_test_stocks_cache_rationale_138"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L727",
+ "community": 21,
+ "norm_label": "tests covering query.py lines 142-202.",
+ "id": "tests_test_stocks_api_coverage_rationale_727"
},
{
- "label": "All optimizations should be implemented",
+ "label": "Invalid date -> inner 400 caught by outer except -> 500.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L141",
- "community": 234,
- "norm_label": "all optimizations should be implemented",
- "id": "tests_test_stocks_cache_rationale_141"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L781",
+ "community": 39,
+ "norm_label": "invalid date -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_781"
},
{
- "label": "Query filter should use ticker index",
+ "label": "DataFrame without TIME column.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L156",
- "community": 234,
- "norm_label": "query filter should use ticker index",
- "id": "tests_test_stocks_cache_rationale_156"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L838",
+ "community": 39,
+ "norm_label": "dataframe without time column.",
+ "id": "tests_test_stocks_api_coverage_rationale_838"
},
{
- "label": "Performance benchmark tests for stocks API",
+ "label": "Two dates in the range, both valid.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L174",
- "community": 57,
- "norm_label": "performance benchmark tests for stocks api",
- "id": "tests_test_stocks_cache_rationale_174"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L851",
+ "community": 39,
+ "norm_label": "two dates in the range, both valid.",
+ "id": "tests_test_stocks_api_coverage_rationale_851"
},
{
- "label": "Ticker index lookup should be O(1) - very fast",
+ "label": "Single invalid date -> inner 400 caught by outer except -> 500.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L177",
- "community": 57,
- "norm_label": "ticker index lookup should be o(1) - very fast",
- "id": "tests_test_stocks_cache_rationale_177"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L865",
+ "community": 46,
+ "norm_label": "single invalid date -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_865"
},
{
- "label": "Prefix scan should be much slower than index lookup",
+ "label": "Fields that don't exist in the dataframe are filtered out.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L197",
- "community": 57,
- "norm_label": "prefix scan should be much slower than index lookup",
- "id": "tests_test_stocks_cache_rationale_197"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L875",
+ "community": 46,
+ "norm_label": "fields that don't exist in the dataframe are filtered out.",
+ "id": "tests_test_stocks_api_coverage_rationale_875"
},
{
- "label": "Index lookup should be significantly faster than scan",
+ "label": "Multiple search terms with tickerIndex.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L217",
- "community": 57,
- "norm_label": "index lookup should be significantly faster than scan",
- "id": "tests_test_stocks_cache_rationale_217"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L890",
+ "community": 17,
+ "norm_label": "multiple search terms with tickerindex.",
+ "id": "tests_test_stocks_api_coverage_rationale_890"
},
{
- "label": "Query cache should avoid recomputation",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L247",
- "community": 57,
- "norm_label": "query cache should avoid recomputation",
- "id": "tests_test_stocks_cache_rationale_247"
+ "label": "_hash_key()",
+ "file_type": "code",
+ "source_file": "main/app/stocks_api/key.py",
+ "source_location": "L16",
+ "community": 26,
+ "norm_label": "_hash_key()",
+ "id": "stocks_api_key_hash_key"
},
{
- "label": "Column projection should reduce memory and time",
+ "label": "Return SHA-256 hex digest of the given key.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L269",
- "community": 57,
- "norm_label": "column projection should reduce memory and time",
- "id": "tests_test_stocks_cache_rationale_269"
- },
- {
- "label": "Cache initialization should complete in reasonable time",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L284",
- "community": 57,
- "norm_label": "cache initialization should complete in reasonable time",
- "id": "tests_test_stocks_cache_rationale_284"
- },
- {
- "label": "Tests for optimized search filtering",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L302",
- "community": 502,
- "norm_label": "tests for optimized search filtering",
- "id": "tests_test_stocks_cache_rationale_302"
- },
- {
- "label": "Filter should use ticker index for O(1) lookup",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L305",
- "community": 502,
- "norm_label": "filter should use ticker index for o(1) lookup",
- "id": "tests_test_stocks_cache_rationale_305"
- },
- {
- "label": "Performance tests for query operations",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L311",
- "community": 502,
- "norm_label": "performance tests for query operations",
- "id": "tests_test_stocks_cache_rationale_311"
+ "source_file": "main/app/stocks_api/key.py",
+ "source_location": "L17",
+ "community": 26,
+ "norm_label": "return sha-256 hex digest of the given key.",
+ "id": "stocks_api_key_rationale_17"
},
{
- "label": "Query should respond within 1 second",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L314",
- "community": 502,
- "norm_label": "query should respond within 1 second",
- "id": "tests_test_stocks_cache_rationale_314"
+ "label": "_build_error_response()",
+ "file_type": "code",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L27",
+ "community": 497,
+ "norm_label": "_build_error_response()",
+ "id": "utils_errors_build_error_response"
},
{
- "label": ".test_tickerIndex_built_after_cache_load()",
+ "label": "http_exception_handler()",
"file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L20",
- "community": 42,
- "norm_label": ".test_tickerindex_built_after_cache_load()",
- "id": "tests_test_stocks_cache_testtickerindex_test_tickerIndex_built_after_cache_load"
+ "source_file": "main/utils/errors.py",
+ "source_location": "L37",
+ "community": 497,
+ "norm_label": "http_exception_handler()",
+ "id": "utils_errors_http_exception_handler"
},
{
- "label": ".test_tickerIndex_contains_all_tickers()",
+ "label": "validation_exception_handler()",
"file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L28",
- "community": 42,
- "norm_label": ".test_tickerindex_contains_all_tickers()",
- "id": "tests_test_stocks_cache_testtickerindex_test_tickerIndex_contains_all_tickers"
+ "source_file": "main/utils/errors.py",
+ "source_location": "L44",
+ "community": 497,
+ "norm_label": "validation_exception_handler()",
+ "id": "utils_errors_validation_exception_handler"
},
{
- "label": ".test_tickerIndex_case_insensitive()",
+ "label": "generic_exception_handler()",
"file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L38",
- "community": 42,
- "norm_label": ".test_tickerindex_case_insensitive()",
- "id": "tests_test_stocks_cache_testtickerindex_test_tickerIndex_case_insensitive"
+ "source_file": "main/utils/errors.py",
+ "source_location": "L56",
+ "community": 497,
+ "norm_label": "generic_exception_handler()",
+ "id": "utils_errors_generic_exception_handler"
},
{
- "label": ".test_tickerIndex_rebuilt_on_cache_refresh()",
+ "label": "register_error_handlers()",
"file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L58",
- "community": 42,
- "norm_label": ".test_tickerindex_rebuilt_on_cache_refresh()",
- "id": "tests_test_stocks_cache_testtickerindex_test_tickerIndex_rebuilt_on_cache_refresh"
+ "source_file": "main/utils/errors.py",
+ "source_location": "L65",
+ "community": 120,
+ "norm_label": "register_error_handlers()",
+ "id": "utils_errors_register_error_handlers"
},
{
- "label": ".test_queryCache_ttl_configuration()",
+ "label": "get_session()",
"file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L83",
- "community": 74,
- "norm_label": ".test_querycache_ttl_configuration()",
- "id": "tests_test_stocks_cache_testquerycaching_test_queryCache_ttl_configuration"
+ "source_file": "main/utils/http_session.py",
+ "source_location": "L9",
+ "community": 522,
+ "norm_label": "get_session()",
+ "id": "utils_http_session_get_session"
},
{
- "label": ".test_tickerIndex_lookup_performance()",
- "file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L176",
- "community": 57,
- "norm_label": ".test_tickerindex_lookup_performance()",
- "id": "tests_test_stocks_cache_testperformancebenchmarks_test_tickerIndex_lookup_performance"
+ "label": "Return a requests.Session for the current thread. Sessions are created la",
+ "file_type": "rationale",
+ "source_file": "main/utils/http_session.py",
+ "source_location": "L10",
+ "community": 522,
+ "norm_label": "return a requests.session for the current thread. sessions are created la",
+ "id": "utils_http_session_rationale_10"
},
{
- "label": ".test_queryCache_performance()",
- "file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L246",
- "community": 57,
- "norm_label": ".test_querycache_performance()",
- "id": "tests_test_stocks_cache_testperformancebenchmarks_test_queryCache_performance"
+ "label": "Close the main thread's session at interpreter shutdown.",
+ "file_type": "rationale",
+ "source_file": "main/utils/http_session.py",
+ "source_location": "L23",
+ "community": 491,
+ "norm_label": "close the main thread's session at interpreter shutdown.",
+ "id": "utils_http_session_rationale_23"
},
{
- "label": ".test_filter_with_tickerIndex()",
+ "label": ".test_connectivity_uses_get_session()",
"file_type": "code",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L304",
- "community": 502,
- "norm_label": ".test_filter_with_tickerindex()",
- "id": "tests_test_stocks_cache_testfilterbysearchterms_test_filter_with_tickerIndex"
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L203",
+ "community": 172,
+ "norm_label": ".test_connectivity_uses_get_session()",
+ "id": "tests_test_thread_safety_testconcurrenthttpproxy_test_connectivity_uses_get_session"
},
{
- "label": "test_stocks_optimization.py",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
+ "label": "CODE_REVIEW_FINAL.md",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
"source_location": "L1",
- "community": 518,
- "norm_label": "test_stocks_optimization.py",
- "id": "tests_test_stocks_optimization_py"
+ "community": 11,
+ "norm_label": "code_review_final.md",
+ "id": "code_review_final_md"
},
{
- "label": "TestTickerIndex",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L17",
- "community": 131,
- "norm_label": "testtickerindex",
- "id": "tests_test_stocks_optimization_testtickerindex"
+ "label": "Code Review Report \u2014 Final",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L1",
+ "community": 11,
+ "norm_label": "code review report \u2014 final",
+ "id": "server_code_review_final_code_review_report_final"
},
{
- "label": ".test_tickerIndex_built_after_cache_load()",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L20",
- "community": 131,
- "norm_label": ".test_tickerindex_built_after_cache_load()",
- "id": "tests_test_stocks_optimization_testtickerindex_test_tickerIndex_built_after_cache_load"
+ "label": "Summary",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L10",
+ "community": 11,
+ "norm_label": "summary",
+ "id": "server_code_review_final_summary"
},
{
- "label": ".test_tickerIndex_contains_all_tickers()",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L28",
- "community": 131,
- "norm_label": ".test_tickerindex_contains_all_tickers()",
- "id": "tests_test_stocks_optimization_testtickerindex_test_tickerIndex_contains_all_tickers"
+ "label": "HIGH Priority Findings",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L24",
+ "community": 11,
+ "norm_label": "high priority findings",
+ "id": "server_code_review_final_high_priority_findings"
},
{
- "label": ".test_tickerIndex_case_insensitive()",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L38",
- "community": 131,
- "norm_label": ".test_tickerindex_case_insensitive()",
- "id": "tests_test_stocks_optimization_testtickerindex_test_tickerIndex_case_insensitive"
+ "label": "H1. Session Cookies Over HTTP",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L26",
+ "community": 11,
+ "norm_label": "h1. session cookies over http",
+ "id": "server_code_review_final_h1_session_cookies_over_http"
},
{
- "label": ".test_ticker_lookup_returns_valid_index()",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L47",
- "community": 131,
- "norm_label": ".test_ticker_lookup_returns_valid_index()",
- "id": "tests_test_stocks_optimization_testtickerindex_test_ticker_lookup_returns_valid_index"
+ "label": "H2. Service \u2192 Controller Layer Violations",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L32",
+ "community": 11,
+ "norm_label": "h2. service \u2192 controller layer violations",
+ "id": "server_code_review_final_h2_service_controller_layer_violations"
},
{
- "label": ".test_tickerIndex_rebuilt_on_cache_refresh()",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L58",
- "community": 131,
- "norm_label": ".test_tickerindex_rebuilt_on_cache_refresh()",
- "id": "tests_test_stocks_optimization_testtickerindex_test_tickerIndex_rebuilt_on_cache_refresh"
+ "label": "H3. Bare `except:` Blocks in Scraper",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L38",
+ "community": 11,
+ "norm_label": "h3. bare `except:` blocks in scraper",
+ "id": "server_code_review_final_h3_bare_except_blocks_in_scraper"
},
{
- "label": "TestQueryCaching",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L72",
- "community": 183,
- "norm_label": "testquerycaching",
- "id": "tests_test_stocks_optimization_testquerycaching"
+ "label": "H4. Full DataFrame Copy Per Request",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L44",
+ "community": 11,
+ "norm_label": "h4. full dataframe copy per request",
+ "id": "server_code_review_final_h4_full_dataframe_copy_per_request"
},
{
- "label": ".test_cache_manager_has_caches_method()",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L75",
- "community": 183,
- "norm_label": ".test_cache_manager_has_caches_method()",
- "id": "tests_test_stocks_optimization_testquerycaching_test_cache_manager_has_caches_method"
+ "label": "H5. Missing Database Indexes",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L50",
+ "community": 11,
+ "norm_label": "h5. missing database indexes",
+ "id": "server_code_review_final_h5_missing_database_indexes"
},
{
- "label": ".test_queryCache_ttl_configuration()",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L83",
- "community": 183,
- "norm_label": ".test_querycache_ttl_configuration()",
- "id": "tests_test_stocks_optimization_testquerycaching_test_queryCache_ttl_configuration"
+ "label": "H6. Scraper N+1 HTTP Pattern",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L56",
+ "community": 11,
+ "norm_label": "h6. scraper n+1 http pattern",
+ "id": "server_code_review_final_h6_scraper_n_1_http_pattern"
},
{
- "label": ".test_get_cached_stocks_respects_columns_parameter()",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L91",
- "community": 183,
- "norm_label": ".test_get_cached_stocks_respects_columns_parameter()",
- "id": "tests_test_stocks_optimization_testquerycaching_test_get_cached_stocks_respects_columns_parameter"
+ "label": "H7. Raw `SessionLocal()` Bypassing DI",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L62",
+ "community": 11,
+ "norm_label": "h7. raw `sessionlocal()` bypassing di",
+ "id": "server_code_review_final_h7_raw_sessionlocal_bypassing_di"
},
{
- "label": ".test_different_queries_not_cached()",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L101",
- "community": 183,
- "norm_label": ".test_different_queries_not_cached()",
- "id": "tests_test_stocks_optimization_testquerycaching_test_different_queries_not_cached"
+ "label": "MEDIUM Priority Findings",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L70",
+ "community": 11,
+ "norm_label": "medium priority findings",
+ "id": "server_code_review_final_medium_priority_findings"
},
{
- "label": ".test_cache_expiry_after_ttl()",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L105",
- "community": 183,
- "norm_label": ".test_cache_expiry_after_ttl()",
- "id": "tests_test_stocks_optimization_testquerycaching_test_cache_expiry_after_ttl"
+ "label": "M1. SQL Injection in Scraper",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L72",
+ "community": 11,
+ "norm_label": "m1. sql injection in scraper",
+ "id": "server_code_review_final_m1_sql_injection_in_scraper"
},
{
- "label": "TestConnectionPool",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L111",
- "community": 518,
- "norm_label": "testconnectionpool",
- "id": "tests_test_stocks_optimization_testconnectionpool"
+ "label": "M2. Error Messages Leak Internal Details",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L77",
+ "community": 11,
+ "norm_label": "m2. error messages leak internal details",
+ "id": "server_code_review_final_m2_error_messages_leak_internal_details"
},
{
- "label": ".test_stocks_engine_has_pool_configuration()",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L114",
- "community": 518,
- "norm_label": ".test_stocks_engine_has_pool_configuration()",
- "id": "tests_test_stocks_optimization_testconnectionpool_test_stocks_engine_has_pool_configuration"
+ "label": "M3. CORS Allow Headers Wildcard",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L82",
+ "community": 11,
+ "norm_label": "m3. cors allow headers wildcard",
+ "id": "server_code_review_final_m3_cors_allow_headers_wildcard"
},
{
- "label": "TestLazyDeserialization",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L123",
- "community": 518,
- "norm_label": "testlazydeserialization",
- "id": "tests_test_stocks_optimization_testlazydeserialization"
+ "label": "M4. API Key Stored in Plaintext",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L87",
+ "community": 11,
+ "norm_label": "m4. api key stored in plaintext",
+ "id": "server_code_review_final_m4_api_key_stored_in_plaintext"
},
{
- "label": ".test_query_manager_has_deserialize_method()",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L126",
- "community": 518,
- "norm_label": ".test_query_manager_has_deserialize_method()",
- "id": "tests_test_stocks_optimization_testlazydeserialization_test_query_manager_has_deserialize_method"
+ "label": "M5. Cookie `secure` Flag Conditional",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L92",
+ "community": 11,
+ "norm_label": "m5. cookie `secure` flag conditional",
+ "id": "server_code_review_final_m5_cookie_secure_flag_conditional"
},
{
- "label": "TestQueryOptimization",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L137",
- "community": 518,
- "norm_label": "testqueryoptimization",
- "id": "tests_test_stocks_optimization_testqueryoptimization"
+ "label": "M6. No `pool_recycle` on SQLAlchemy Engines",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L97",
+ "community": 11,
+ "norm_label": "m6. no `pool_recycle` on sqlalchemy engines",
+ "id": "server_code_review_final_m6_no_pool_recycle_on_sqlalchemy_engines"
},
{
- "label": ".test_all_optimizations_present()",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L140",
- "community": 518,
- "norm_label": ".test_all_optimizations_present()",
- "id": "tests_test_stocks_optimization_testqueryoptimization_test_all_optimizations_present"
+ "label": "Synchronous Blocking in Async Endpoint",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L102",
+ "community": 11,
+ "norm_label": "synchronous blocking in async endpoint",
+ "id": "server_code_review_final_synchronous_blocking_in_async_endpoint"
},
{
- "label": ".test_query_filter_uses_optimization()",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L155",
- "community": 518,
- "norm_label": ".test_query_filter_uses_optimization()",
- "id": "tests_test_stocks_optimization_testqueryoptimization_test_query_filter_uses_optimization"
+ "label": "M8. Scattered Manual commit/rollback",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L107",
+ "community": 11,
+ "norm_label": "m8. scattered manual commit/rollback",
+ "id": "server_code_review_final_m8_scattered_manual_commit_rollback"
},
{
- "label": "TestPerformanceBenchmarks",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L173",
- "community": 146,
- "norm_label": "testperformancebenchmarks",
- "id": "tests_test_stocks_optimization_testperformancebenchmarks"
+ "label": "M9. Circular Module Dependencies",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L112",
+ "community": 11,
+ "norm_label": "m9. circular module dependencies",
+ "id": "server_code_review_final_m9_circular_module_dependencies"
},
{
- "label": ".test_tickerIndex_lookup_performance()",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L176",
- "community": 146,
- "norm_label": ".test_tickerindex_lookup_performance()",
- "id": "tests_test_stocks_optimization_testperformancebenchmarks_test_tickerIndex_lookup_performance"
+ "label": "M10. Code Duplication in query.py",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L116",
+ "community": 11,
+ "norm_label": "m10. code duplication in query.py",
+ "id": "server_code_review_final_m10_code_duplication_in_query_py"
},
{
- "label": ".test_prefix_scan_performance()",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L196",
- "community": 146,
- "norm_label": ".test_prefix_scan_performance()",
- "id": "tests_test_stocks_optimization_testperformancebenchmarks_test_prefix_scan_performance"
+ "label": "M11. Ownership Check Duplication",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L121",
+ "community": 11,
+ "norm_label": "m11. ownership check duplication",
+ "id": "server_code_review_final_m11_ownership_check_duplication"
},
{
- "label": ".test_index_lookup_vs_scan_comparison()",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L216",
- "community": 146,
- "norm_label": ".test_index_lookup_vs_scan_comparison()",
- "id": "tests_test_stocks_optimization_testperformancebenchmarks_test_index_lookup_vs_scan_comparison"
+ "label": "M12. Recursive NaN Replace on Deserialization",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L126",
+ "community": 11,
+ "norm_label": "m12. recursive nan replace on deserialization",
+ "id": "server_code_review_final_m12_recursive_nan_replace_on_deserialization"
},
{
- "label": ".test_queryCache_performance()",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L246",
- "community": 146,
- "norm_label": ".test_querycache_performance()",
- "id": "tests_test_stocks_optimization_testperformancebenchmarks_test_queryCache_performance"
+ "label": "M13. In-Memory Cache No Event-Driven Invalidation",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L131",
+ "community": 11,
+ "norm_label": "m13. in-memory cache no event-driven invalidation",
+ "id": "server_code_review_final_m13_in_memory_cache_no_event_driven_invalidation"
},
{
- "label": ".test_column_projection_performance()",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L268",
- "community": 146,
- "norm_label": ".test_column_projection_performance()",
- "id": "tests_test_stocks_optimization_testperformancebenchmarks_test_column_projection_performance"
+ "label": "M14. Thread-Unsafe Scheduler",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L136",
+ "community": 11,
+ "norm_label": "m14. thread-unsafe scheduler",
+ "id": "server_code_review_final_m14_thread_unsafe_scheduler"
},
{
- "label": ".test_cache_initialization_time()",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L283",
- "community": 146,
- "norm_label": ".test_cache_initialization_time()",
- "id": "tests_test_stocks_optimization_testperformancebenchmarks_test_cache_initialization_time"
+ "label": "LOW Priority Findings",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L143",
+ "community": 11,
+ "norm_label": "low priority findings",
+ "id": "server_code_review_final_low_priority_findings"
},
{
- "label": "TestFilterBySearchTerms",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L301",
- "community": 549,
- "norm_label": "testfilterbysearchterms",
- "id": "tests_test_stocks_optimization_testfilterbysearchterms"
+ "label": "L1. JWT Token Expiry \u2014 30 Days",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L145",
+ "community": 11,
+ "norm_label": "l1. jwt token expiry \u2014 30 days",
+ "id": "server_code_review_final_l1_jwt_token_expiry_30_days"
},
{
- "label": ".test_filter_with_tickerIndex()",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L304",
- "community": 549,
- "norm_label": ".test_filter_with_tickerindex()",
- "id": "tests_test_stocks_optimization_testfilterbysearchterms_test_filter_with_tickerIndex"
+ "label": "L2. No JWT Key Rotation",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L149",
+ "community": 11,
+ "norm_label": "l2. no jwt key rotation",
+ "id": "server_code_review_final_l2_no_jwt_key_rotation"
},
{
- "label": "TestQueryPerformance",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L310",
- "community": 518,
- "norm_label": "testqueryperformance",
- "id": "tests_test_stocks_optimization_testqueryperformance"
+ "label": "L3. Rate Limiter \u2014 No Per-Endpoint Config",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L153",
+ "community": 11,
+ "norm_label": "l3. rate limiter \u2014 no per-endpoint config",
+ "id": "server_code_review_final_l3_rate_limiter_no_per_endpoint_config"
},
{
- "label": ".test_query_response_time_under_1_second()",
- "file_type": "code",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L313",
- "community": 518,
- "norm_label": ".test_query_response_time_under_1_second()",
- "id": "tests_test_stocks_optimization_testqueryperformance_test_query_response_time_under_1_second"
+ "label": "L4. Discord Webhook Data Leak",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L157",
+ "community": 11,
+ "norm_label": "l4. discord webhook data leak",
+ "id": "server_code_review_final_l4_discord_webhook_data_leak"
},
{
- "label": "Tests for dynamic ticker index feature",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L18",
- "community": 131,
- "norm_label": "tests for dynamic ticker index feature",
- "id": "tests_test_stocks_optimization_rationale_18"
+ "label": "L5. camelCase Naming (PEP 8 Violation)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L161",
+ "community": 11,
+ "norm_label": "l5. camelcase naming (pep 8 violation)",
+ "id": "server_code_review_final_l5_camelcase_naming_pep_8_violation"
},
{
- "label": "Ticker index should be built when cache is loaded",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L21",
- "community": 131,
- "norm_label": "ticker index should be built when cache is loaded",
- "id": "tests_test_stocks_optimization_rationale_21"
+ "label": "L6. Unused Imports",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L165",
+ "community": 11,
+ "norm_label": "l6. unused imports",
+ "id": "server_code_review_final_l6_unused_imports"
},
{
- "label": "Ticker index should contain all tickers from cache",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L29",
- "community": 131,
- "norm_label": "ticker index should contain all tickers from cache",
- "id": "tests_test_stocks_optimization_rationale_29"
+ "label": "L7. Empty `__init__` in Static Class",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L169",
+ "community": 11,
+ "norm_label": "l7. empty `__init__` in static class",
+ "id": "server_code_review_final_l7_empty_init_in_static_class"
},
{
- "label": "Ticker index should be case-insensitive",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L39",
- "community": 131,
- "norm_label": "ticker index should be case-insensitive",
- "id": "tests_test_stocks_optimization_rationale_39"
+ "label": "L8. Missing Return Type Hints",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L173",
+ "community": 11,
+ "norm_label": "l8. missing return type hints",
+ "id": "server_code_review_final_l8_missing_return_type_hints"
},
{
- "label": "Looking up ticker should return valid row index",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L48",
- "community": 131,
- "norm_label": "looking up ticker should return valid row index",
- "id": "tests_test_stocks_optimization_rationale_48"
+ "label": "L9. Hardcoded Host/Port Defaults",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L177",
+ "community": 11,
+ "norm_label": "l9. hardcoded host/port defaults",
+ "id": "server_code_review_final_l9_hardcoded_host_port_defaults"
},
{
- "label": "Ticker index should be rebuilt when cache refreshes",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L59",
- "community": 131,
- "norm_label": "ticker index should be rebuilt when cache refreshes",
- "id": "tests_test_stocks_optimization_rationale_59"
+ "label": "L10. Thread-Local Sessions Never Cleaned",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L181",
+ "community": 11,
+ "norm_label": "l10. thread-local sessions never cleaned",
+ "id": "server_code_review_final_l10_thread_local_sessions_never_cleaned"
},
{
- "label": "Tests for query result caching",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L73",
- "community": 183,
- "norm_label": "tests for query result caching",
- "id": "tests_test_stocks_optimization_rationale_73"
+ "label": "L11. Prometheus Loads All Sessions, Paginates in Python",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L185",
+ "community": 11,
+ "norm_label": "l11. prometheus loads all sessions, paginates in python",
+ "id": "server_code_review_final_l11_prometheus_loads_all_sessions_paginates_in_python"
},
{
- "label": "CacheManager should track cached queries",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L76",
- "community": 183,
- "norm_label": "cachemanager should track cached queries",
- "id": "tests_test_stocks_optimization_rationale_76"
+ "label": "Priority Action Plan",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L191",
+ "community": 11,
+ "norm_label": "priority action plan",
+ "id": "server_code_review_final_priority_action_plan"
},
{
- "label": "Query cache should have configurable TTL",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L84",
- "community": 183,
- "norm_label": "query cache should have configurable ttl",
- "id": "tests_test_stocks_optimization_rationale_84"
+ "label": "Week 1 (Critical)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L193",
+ "community": 11,
+ "norm_label": "week 1 (critical)",
+ "id": "server_code_review_final_week_1_critical"
},
{
- "label": "getCachedStocks should support column filtering",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L92",
- "community": 183,
- "norm_label": "getcachedstocks should support column filtering",
- "id": "tests_test_stocks_optimization_rationale_92"
+ "label": "Week 2-3 (High)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L198",
+ "community": 11,
+ "norm_label": "week 2-3 (high)",
+ "id": "server_code_review_final_week_2_3_high"
},
{
- "label": "Different query parameters should not share cache",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L102",
- "community": 183,
- "norm_label": "different query parameters should not share cache",
- "id": "tests_test_stocks_optimization_rationale_102"
+ "label": "Month 1 (Medium)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L204",
+ "community": 11,
+ "norm_label": "month 1 (medium)",
+ "id": "server_code_review_final_month_1_medium"
},
{
- "label": "Cache should expire after TTL",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L106",
- "community": 183,
- "norm_label": "cache should expire after ttl",
- "id": "tests_test_stocks_optimization_rationale_106"
+ "label": "Month 2+ (Low)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_FINAL.md",
+ "source_location": "L209",
+ "community": 11,
+ "norm_label": "month 2+ (low)",
+ "id": "server_code_review_final_month_2_low"
},
{
- "label": "Tests for connection pool configuration",
+ "label": "Return a requests.Session for the current thread. Sessions are created la",
"file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L112",
- "community": 518,
- "norm_label": "tests for connection pool configuration",
- "id": "tests_test_stocks_optimization_rationale_112"
+ "source_file": "main/utils/http_session.py",
+ "source_location": "L9",
+ "community": 522,
+ "norm_label": "return a requests.session for the current thread. sessions are created la",
+ "id": "utils_http_session_rationale_9"
},
{
- "label": "Stocks engine should have optimized pool settings",
+ "label": "Verify the user owns the session, raise 403 otherwise.",
"file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L115",
- "community": 518,
- "norm_label": "stocks engine should have optimized pool settings",
- "id": "tests_test_stocks_optimization_rationale_115"
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L22",
+ "community": 84,
+ "norm_label": "verify the user owns the session, raise 403 otherwise.",
+ "id": "controller_prometheus_controller_rationale_22"
},
{
- "label": "Tests for lazy JSON deserialization",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L124",
- "community": 518,
- "norm_label": "tests for lazy json deserialization",
- "id": "tests_test_stocks_optimization_rationale_124"
+ "label": ".__init__()",
+ "file_type": "code",
+ "source_file": "main/app/user/user.py",
+ "source_location": "L12",
+ "community": 498,
+ "norm_label": ".__init__()",
+ "id": "user_user_usermanager_init"
},
{
- "label": "Query manager should have deserialize method",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L127",
- "community": 518,
- "norm_label": "query manager should have deserialize method",
- "id": "tests_test_stocks_optimization_rationale_127"
+ "label": "inactiveSessionsScheduler()",
+ "file_type": "code",
+ "source_file": "main/service/user_service.py",
+ "source_location": "L35",
+ "community": 72,
+ "norm_label": "inactivesessionsscheduler()",
+ "id": "service_user_service_inactivesessionsscheduler"
},
{
- "label": "Integration tests for all query optimizations",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L138",
- "community": 518,
- "norm_label": "integration tests for all query optimizations",
- "id": "tests_test_stocks_optimization_rationale_138"
+ "label": "CODEREVIEW.md",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L1",
+ "community": 36,
+ "norm_label": "codereview.md",
+ "id": "codereview_md"
},
{
- "label": "All optimizations should be implemented",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L141",
- "community": 518,
- "norm_label": "all optimizations should be implemented",
- "id": "tests_test_stocks_optimization_rationale_141"
+ "label": "Comprehensive Codebase Review \u2014 Mansa Server",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L1",
+ "community": 36,
+ "norm_label": "comprehensive codebase review \u2014 mansa server",
+ "id": "server_codereview_comprehensive_codebase_review_mansa_server"
},
{
- "label": "Query filter should use ticker index",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L156",
- "community": 518,
- "norm_label": "query filter should use ticker index",
- "id": "tests_test_stocks_optimization_rationale_156"
+ "label": "Overall Score: 60/100",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L9",
+ "community": 36,
+ "norm_label": "overall score: 60/100",
+ "id": "server_codereview_overall_score_60_100"
},
{
- "label": "Performance benchmark tests for stocks API",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L174",
- "community": 146,
- "norm_label": "performance benchmark tests for stocks api",
- "id": "tests_test_stocks_optimization_rationale_174"
+ "label": "\ud83d\udd34 CRITICAL Issues (Must Fix Before Production)",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L21",
+ "community": 36,
+ "norm_label": "\ud83d\udd34 critical issues (must fix before production)",
+ "id": "server_codereview_critical_issues_must_fix_before_production"
},
{
- "label": "Ticker index lookup should be O(1) - very fast",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L177",
- "community": 146,
- "norm_label": "ticker index lookup should be o(1) - very fast",
- "id": "tests_test_stocks_optimization_rationale_177"
+ "label": "1. Open Redirect via OAuth State Parameter",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L23",
+ "community": 36,
+ "norm_label": "1. open redirect via oauth state parameter",
+ "id": "server_codereview_1_open_redirect_via_oauth_state_parameter"
},
{
- "label": "Prefix scan should be much slower than index lookup",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L197",
- "community": 146,
- "norm_label": "prefix scan should be much slower than index lookup",
- "id": "tests_test_stocks_optimization_rationale_197"
+ "label": "2. SQL Injection Risk in Scraper",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L33",
+ "community": 36,
+ "norm_label": "2. sql injection risk in scraper",
+ "id": "server_codereview_2_sql_injection_risk_in_scraper"
},
{
- "label": "Index lookup should be significantly faster than scan",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L217",
- "community": 146,
- "norm_label": "index lookup should be significantly faster than scan",
- "id": "tests_test_stocks_optimization_rationale_217"
+ "label": "3. JWT Token Leaked in URL",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L43",
+ "community": 36,
+ "norm_label": "3. jwt token leaked in url",
+ "id": "server_codereview_3_jwt_token_leaked_in_url"
},
{
- "label": "Query cache should avoid recomputation",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L247",
- "community": 146,
- "norm_label": "query cache should avoid recomputation",
- "id": "tests_test_stocks_optimization_rationale_247"
+ "label": "4. Race Condition in API Key Quota Enforcement",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L53",
+ "community": 36,
+ "norm_label": "4. race condition in api key quota enforcement",
+ "id": "server_codereview_4_race_condition_in_api_key_quota_enforcement"
},
{
- "label": "Column projection should reduce memory and time",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L269",
- "community": 146,
- "norm_label": "column projection should reduce memory and time",
- "id": "tests_test_stocks_optimization_rationale_269"
+ "label": "5. Thread Leak in Discord Error Handler",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L63",
+ "community": 36,
+ "norm_label": "5. thread leak in discord error handler",
+ "id": "server_codereview_5_thread_leak_in_discord_error_handler"
},
{
- "label": "Cache initialization should complete in reasonable time",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L284",
- "community": 146,
- "norm_label": "cache initialization should complete in reasonable time",
- "id": "tests_test_stocks_optimization_rationale_284"
+ "label": "6. Thread-Unsafe `requests.Session()` Shared Across Threads",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L72",
+ "community": 36,
+ "norm_label": "6. thread-unsafe `requests.session()` shared across threads",
+ "id": "server_codereview_6_thread_unsafe_requests_session_shared_across_threads"
},
{
- "label": "Tests for optimized search filtering",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L302",
- "community": 549,
- "norm_label": "tests for optimized search filtering",
- "id": "tests_test_stocks_optimization_rationale_302"
+ "label": "7. Full Table Load Into Memory",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L81",
+ "community": 36,
+ "norm_label": "7. full table load into memory",
+ "id": "server_codereview_7_full_table_load_into_memory"
},
{
- "label": "Filter should use ticker index for O(1) lookup",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L305",
- "community": 549,
- "norm_label": "filter should use ticker index for o(1) lookup",
- "id": "tests_test_stocks_optimization_rationale_305"
+ "label": "\ud83d\udfe0 HIGH Issues (Fix Soon)",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L90",
+ "community": 36,
+ "norm_label": "\ud83d\udfe0 high issues (fix soon)",
+ "id": "server_codereview_high_issues_fix_soon"
},
{
- "label": "Performance tests for query operations",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L311",
- "community": 518,
- "norm_label": "performance tests for query operations",
- "id": "tests_test_stocks_optimization_rationale_311"
+ "label": "8. Role Escalation via Self-Service Upgrade",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L92",
+ "community": 36,
+ "norm_label": "8. role escalation via self-service upgrade",
+ "id": "server_codereview_8_role_escalation_via_self_service_upgrade"
},
{
- "label": "Query should respond within 1 second",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L314",
- "community": 518,
- "norm_label": "query should respond within 1 second",
- "id": "tests_test_stocks_optimization_rationale_314"
+ "label": "9. Weak JWT Algorithm (HS256)",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L97",
+ "community": 36,
+ "norm_label": "9. weak jwt algorithm (hs256)",
+ "id": "server_codereview_9_weak_jwt_algorithm_hs256"
},
{
- "label": "Get cached stocks data with optional column filtering.",
- "file_type": "rationale",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L33",
- "community": 82,
- "norm_label": "get cached stocks data with optional column filtering.",
- "id": "stocks_api_cache_rationale_33"
+ "label": "10. Insecure SessionMiddleware Configuration",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L102",
+ "community": 36,
+ "norm_label": "10. insecure sessionmiddleware configuration",
+ "id": "server_codereview_10_insecure_sessionmiddleware_configuration"
},
{
- "label": "Tests for optimized search filtering",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L173",
- "community": 549,
- "norm_label": "tests for optimized search filtering",
- "id": "tests_test_stocks_optimization_rationale_173"
+ "label": "11. HTTPException in Business Logic",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L107",
+ "community": 36,
+ "norm_label": "11. httpexception in business logic",
+ "id": "server_codereview_11_httpexception_in_business_logic"
},
{
- "label": "Filter should use ticker index for O(1) lookup",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L176",
- "community": 549,
- "norm_label": "filter should use ticker index for o(1) lookup",
- "id": "tests_test_stocks_optimization_rationale_176"
+ "label": "12. Controllers Contain Business Logic",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L112",
+ "community": 36,
+ "norm_label": "12. controllers contain business logic",
+ "id": "server_codereview_12_controllers_contain_business_logic"
},
{
- "label": "Performance tests for query operations",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L182",
- "community": 518,
- "norm_label": "performance tests for query operations",
- "id": "tests_test_stocks_optimization_rationale_182"
+ "label": "13. `service/` Layer Misleading",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L117",
+ "community": 36,
+ "norm_label": "13. `service/` layer misleading",
+ "id": "server_codereview_13_service_layer_misleading"
},
{
- "label": "Query should respond within 1 second",
- "file_type": "rationale",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L185",
- "community": 518,
- "norm_label": "query should respond within 1 second",
- "id": "tests_test_stocks_optimization_rationale_185"
+ "label": "14. Session Not Revoked on Logout with Invalid Token",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L122",
+ "community": 36,
+ "norm_label": "14. session not revoked on logout with invalid token",
+ "id": "server_codereview_14_session_not_revoked_on_logout_with_invalid_token"
},
{
- "label": "Config",
- "file_type": "code",
- "source_file": "config.py",
- "source_location": 109,
- "community": 467,
- "norm_label": "config",
- "id": "config_Config"
+ "label": "15. Unbounded ThreadPoolExecutor Per Request",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L127",
+ "community": 36,
+ "norm_label": "15. unbounded threadpoolexecutor per request",
+ "id": "server_codereview_15_unbounded_threadpoolexecutor_per_request"
},
{
- "label": "MySQL Engine (user_db)",
- "file_type": "code",
- "source_file": "config.py",
- "source_location": 120,
- "community": 258,
- "norm_label": "mysql engine (user_db)",
- "id": "config_engine"
+ "label": "16. Full DataFrame Copy Per API Request",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L132",
+ "community": 36,
+ "norm_label": "16. full dataframe copy per api request",
+ "id": "server_codereview_16_full_dataframe_copy_per_api_request"
},
{
- "label": "MySQL Engine (stocks_db)",
- "file_type": "code",
- "source_file": "config.py",
- "source_location": 130,
- "community": 258,
- "norm_label": "mysql engine (stocks_db)",
- "id": "config_stocksEngine"
+ "label": "17. Unbounded Chat History Growth",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L137",
+ "community": 36,
+ "norm_label": "17. unbounded chat history growth",
+ "id": "server_codereview_17_unbounded_chat_history_growth"
},
{
- "label": "AuthenticationManager",
- "file_type": "code",
- "source_file": "main/app/authentication/authentication.py",
- "source_location": 13,
- "community": 97,
- "norm_label": "authenticationmanager",
- "id": "AuthenticationManager"
+ "label": "\ud83d\udfe1 MEDIUM Issues (Plan to Fix)",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L144",
+ "community": 36,
+ "norm_label": "\ud83d\udfe1 medium issues (plan to fix)",
+ "id": "server_codereview_medium_issues_plan_to_fix"
},
{
- "label": "SessionManager",
- "file_type": "code",
- "source_file": "main/app/authentication/session.py",
- "source_location": 11,
- "community": 97,
- "norm_label": "sessionmanager",
- "id": "SessionManager"
+ "label": "\ud83d\udfe2 LOW Issues (Nice to Have)",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L168",
+ "community": 36,
+ "norm_label": "\ud83d\udfe2 low issues (nice to have)",
+ "id": "server_codereview_low_issues_nice_to_have"
},
{
- "label": "Auth Utilities (JWT/Password)",
- "file_type": "code",
- "source_file": "main/app/authentication/util.py",
- "source_location": 1,
- "community": 97,
- "norm_label": "auth utilities (jwt/password)",
- "id": "auth_util"
+ "label": "Priority Action Plan",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L184",
+ "community": 36,
+ "norm_label": "priority action plan",
+ "id": "server_codereview_priority_action_plan"
},
{
- "label": "Auth Constants",
- "file_type": "code",
- "source_file": "main/app/authentication/constants.py",
- "source_location": 1,
- "community": 468,
- "norm_label": "auth constants",
- "id": "auth_constants"
+ "label": "Week 1 \u2014 Critical Security Fixes",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L186",
+ "community": 36,
+ "norm_label": "week 1 \u2014 critical security fixes",
+ "id": "server_codereview_week_1_critical_security_fixes"
},
{
- "label": "Google SSO Factory",
- "file_type": "code",
- "source_file": "main/app/authentication/sso.py",
- "source_location": 5,
- "community": 97,
- "norm_label": "google sso factory",
- "id": "getGoogleSSO"
+ "label": "Week 2-3 \u2014 Architecture & High Issues",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L193",
+ "community": 36,
+ "norm_label": "week 2-3 \u2014 architecture & high issues",
+ "id": "server_codereview_week_2_3_architecture_high_issues"
},
{
- "label": "UserManager",
- "file_type": "code",
- "source_file": "main/app/user/user.py",
- "source_location": 9,
- "community": 97,
- "norm_label": "usermanager",
- "id": "UserManager"
+ "label": "Month 1-2 \u2014 Medium Issues",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L200",
+ "community": 36,
+ "norm_label": "month 1-2 \u2014 medium issues",
+ "id": "server_codereview_month_1_2_medium_issues"
},
{
- "label": "PrometheusChatManager",
- "file_type": "code",
- "source_file": "main/app/prometheus/chat.py",
- "source_location": 10,
- "community": 97,
- "norm_label": "prometheuschatmanager",
- "id": "PrometheusChatManager"
+ "label": "Month 3+ \u2014 Performance & Polish",
+ "file_type": "document",
+ "source_file": "CODEREVIEW.md",
+ "source_location": "L209",
+ "community": 36,
+ "norm_label": "month 3+ \u2014 performance & polish",
+ "id": "server_codereview_month_3_performance_polish"
},
{
- "label": "PrometheusGenerator",
+ "label": "skills-lock.json",
"file_type": "code",
- "source_file": "main/app/prometheus/generation.py",
- "source_location": 20,
- "community": 97,
- "norm_label": "prometheusgenerator",
- "id": "PrometheusGenerator"
+ "source_file": "skills-lock.json",
+ "source_location": "L1",
+ "community": 177,
+ "norm_label": "skills-lock.json",
+ "id": "skills_lock_json"
},
{
- "label": "StocksCacheManager",
+ "label": "version",
"file_type": "code",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": 12,
- "community": 265,
- "norm_label": "stockscachemanager",
- "id": "stocksCache"
+ "source_file": "skills-lock.json",
+ "source_location": "L2",
+ "community": 177,
+ "norm_label": "version",
+ "id": "server_skills_lock_version"
},
{
- "label": "StocksQueryManager",
+ "label": "skills",
"file_type": "code",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": 14,
- "community": 97,
- "norm_label": "stocksquerymanager",
- "id": "stocksQuery"
+ "source_file": "skills-lock.json",
+ "source_location": "L3",
+ "community": 177,
+ "norm_label": "skills",
+ "id": "server_skills_lock_skills"
},
{
- "label": "API Key Verifier",
+ "label": "backend-code-review",
"file_type": "code",
- "source_file": "main/app/stocks_api/key.py",
- "source_location": 14,
- "community": 97,
- "norm_label": "api key verifier",
- "id": "verifyAPIKey"
+ "source_file": "skills-lock.json",
+ "source_location": "L4",
+ "community": 177,
+ "norm_label": "backend-code-review",
+ "id": "server_skills_lock_skills_backend_code_review"
},
{
- "label": "B3Scraper",
+ "label": "source",
"file_type": "code",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": 31,
- "community": 264,
- "norm_label": "b3scraper",
- "id": "B3Scraper"
+ "source_file": "skills-lock.json",
+ "source_location": "L5",
+ "community": 177,
+ "norm_label": "source",
+ "id": "server_skills_lock_backend_code_review_source"
},
{
- "label": "Authentication Controller",
+ "label": "sourceType",
"file_type": "code",
- "source_file": "main/controller/authentication_controller.py",
- "source_location": 1,
- "community": 97,
- "norm_label": "authentication controller",
- "id": "auth_controller"
+ "source_file": "skills-lock.json",
+ "source_location": "L6",
+ "community": 177,
+ "norm_label": "sourcetype",
+ "id": "server_skills_lock_backend_code_review_sourcetype"
},
{
- "label": "Prometheus Controller",
+ "label": "skillPath",
"file_type": "code",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": 1,
- "community": 97,
- "norm_label": "prometheus controller",
- "id": "prometheus_controller"
+ "source_file": "skills-lock.json",
+ "source_location": "L7",
+ "community": 177,
+ "norm_label": "skillpath",
+ "id": "server_skills_lock_backend_code_review_skillpath"
},
{
- "label": "Stocks API Controller",
+ "label": "computedHash",
"file_type": "code",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": 1,
- "community": 97,
- "norm_label": "stocks api controller",
- "id": "stocksapi_controller"
+ "source_file": "skills-lock.json",
+ "source_location": "L8",
+ "community": 177,
+ "norm_label": "computedhash",
+ "id": "server_skills_lock_backend_code_review_computedhash"
},
{
- "label": "User Controller",
- "file_type": "code",
- "source_file": "main/controller/user_controller.py",
- "source_location": 1,
- "community": 97,
- "norm_label": "user controller",
- "id": "user_controller"
+ "label": "Inject request_id from ContextVar into every log record.",
+ "file_type": "rationale",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L22",
+ "community": 33,
+ "norm_label": "inject request_id from contextvar into every log record.",
+ "id": "utils_errors_rationale_22"
},
{
- "label": "Base SQLAlchemy declarative base",
- "file_type": "code",
- "source_file": "main/models/base.py",
- "community": 218,
- "norm_label": "base sqlalchemy declarative base",
- "id": "Base"
+ "label": "Register exception handlers on the FastAPI app. Note: HTTPException and R",
+ "file_type": "rationale",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L68",
+ "community": 120,
+ "norm_label": "register exception handlers on the fastapi app. note: httpexception and r",
+ "id": "utils_errors_rationale_68"
},
{
- "label": "PrometheusSession model",
- "file_type": "code",
- "source_file": "main/models/prometheus.py",
- "community": 218,
- "norm_label": "prometheussession model",
- "id": "PrometheusSession"
+ "label": "When quota is exceeded (line 28).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L271",
+ "community": 461,
+ "norm_label": "when quota is exceeded (line 28).",
+ "id": "tests_test_stocks_api_coverage_rationale_271"
},
{
- "label": "StocksAPIKey model",
- "file_type": "code",
- "source_file": "main/models/stocksapi_key.py",
- "community": 218,
- "norm_label": "stocksapikey model",
- "id": "StocksAPIKey"
+ "label": "Happy path: key found, quota OK, increment and commit (lines 30-33).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L287",
+ "community": 462,
+ "norm_label": "happy path: key found, quota ok, increment and commit (lines 30-33).",
+ "id": "tests_test_stocks_api_coverage_rationale_287"
},
{
- "label": "User model",
- "file_type": "code",
- "source_file": "main/models/user.py",
- "community": 218,
- "norm_label": "user model",
- "id": "User"
+ "label": "HTTPException should cause rollback then re-raise (lines 35-37).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L303",
+ "community": 463,
+ "norm_label": "httpexception should cause rollback then re-raise (lines 35-37).",
+ "id": "tests_test_stocks_api_coverage_rationale_303"
},
{
- "label": "UserSession model",
- "file_type": "code",
- "source_file": "main/models/user_session.py",
- "community": 218,
- "norm_label": "usersession model",
- "id": "UserSession"
+ "label": "Generic DB exception should rollback and raise 500 (lines 38-40).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L320",
+ "community": 464,
+ "norm_label": "generic db exception should rollback and raise 500 (lines 38-40).",
+ "id": "tests_test_stocks_api_coverage_rationale_320"
},
{
- "label": "AuthenticationService",
- "file_type": "code",
- "source_file": "main/service/authentication_service.py",
- "community": 97,
- "norm_label": "authenticationservice",
- "id": "AuthenticationService"
+ "label": "Tests covering key.py line 44.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L335",
+ "community": 141,
+ "norm_label": "tests covering key.py line 44.",
+ "id": "tests_test_stocks_api_coverage_rationale_335"
},
{
- "label": "PrometheusService",
- "file_type": "code",
- "source_file": "main/service/prometheus_service.py",
- "community": 97,
- "norm_label": "prometheusservice",
- "id": "PrometheusService"
+ "label": "Tests covering key.py lines 48-66.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L358",
+ "community": 567,
+ "norm_label": "tests covering key.py lines 48-66.",
+ "id": "tests_test_stocks_api_coverage_rationale_358"
},
{
- "label": "ScraperService",
- "file_type": "code",
- "source_file": "main/service/scraper_service.py",
- "community": 264,
- "norm_label": "scraperservice",
- "id": "ScraperService"
+ "label": "Existing key is updated (lines 54-56).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L377",
+ "community": 465,
+ "norm_label": "existing key is updated (lines 54-56).",
+ "id": "tests_test_stocks_api_coverage_rationale_377"
},
{
- "label": "StocksAPIService",
- "file_type": "code",
- "source_file": "main/service/stocksapi_service.py",
- "community": 265,
- "norm_label": "stocksapiservice",
- "id": "StocksAPIService"
+ "label": "Exception during creation triggers rollback and 500 (lines 64-66).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L393",
+ "community": 466,
+ "norm_label": "exception during creation triggers rollback and 500 (lines 64-66).",
+ "id": "tests_test_stocks_api_coverage_rationale_393"
},
{
- "label": "UserService",
- "file_type": "code",
- "source_file": "main/service/user_service.py",
- "community": 97,
- "norm_label": "userservice",
- "id": "UserService"
+ "label": "Tests covering query.py lines 22-48.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L411",
+ "community": 3,
+ "norm_label": "tests covering query.py lines 22-48.",
+ "id": "tests_test_stocks_api_coverage_rationale_411"
},
{
- "label": "checkMySqlConnection",
- "file_type": "code",
- "source_file": "main/utils/connectivity.py",
- "community": 258,
- "norm_label": "checkmysqlconnection",
- "id": "checkMySqlConnection"
+ "label": "replaceNan handles direct float NaN values (line 34).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L489",
+ "community": 488,
+ "norm_label": "replacenan handles direct float nan values (line 34).",
+ "id": "tests_test_stocks_api_coverage_rationale_489"
},
{
- "label": "checkServiceConnection",
- "file_type": "code",
- "source_file": "main/utils/connectivity.py",
- "community": 469,
- "norm_label": "checkserviceconnection",
- "id": "checkServiceConnection"
+ "label": "Non-JSON-dict/list string is left as-is.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L503",
+ "community": 509,
+ "norm_label": "non-json-dict/list string is left as-is.",
+ "id": "tests_test_stocks_api_coverage_rationale_503"
},
{
- "label": "Mansa Server",
- "file_type": "document",
- "source_file": "README.md",
- "community": 71,
- "norm_label": "mansa server",
- "id": "mansa_server"
+ "label": "pd.NA is not a string, so lambda returns it unchanged.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L512",
+ "community": 520,
+ "norm_label": "pd.na is not a string, so lambda returns it unchanged.",
+ "id": "tests_test_stocks_api_coverage_rationale_512"
},
{
- "label": "FastAPI",
+ "label": "Tests covering query.py lines 50-67.",
"file_type": "rationale",
- "source_file": "README.md",
- "community": 132,
- "norm_label": "fastapi",
- "id": "fastapi"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L522",
+ "community": 3,
+ "norm_label": "tests covering query.py lines 50-67.",
+ "id": "tests_test_stocks_api_coverage_rationale_522"
},
{
- "label": "B3 Scraper",
- "file_type": "document",
- "source_file": "docs/scraper_b3.md",
- "community": 71,
- "norm_label": "b3 scraper",
- "id": "b3_scraper"
+ "label": "Tests covering query.py lines 77-132.",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L577",
+ "community": 21,
+ "norm_label": "tests covering query.py lines 77-132.",
+ "id": "tests_test_stocks_api_coverage_rationale_577"
},
{
- "label": "USER Service",
- "file_type": "document",
- "source_file": "AGENTS.md",
- "community": 71,
- "norm_label": "user service",
- "id": "user_service"
+ "label": "Pass field name WITHOUT year (how categorizeColumns returns them).",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L615",
+ "community": 222,
+ "norm_label": "pass field name without year (how categorizecolumns returns them).",
+ "id": "tests_test_stocks_api_coverage_rationale_615"
},
{
- "label": "STOCKS_API Service",
- "file_type": "document",
- "source_file": "AGENTS.md",
- "community": 71,
- "norm_label": "stocks_api service",
- "id": "stocks_api"
- },
- {
- "label": "Prometheus AI",
- "file_type": "document",
- "source_file": "docs/prometheus.md",
- "community": 71,
- "norm_label": "prometheus ai",
- "id": "prometheus"
- },
- {
- "label": "Authentication System",
- "file_type": "document",
- "source_file": "docs/authentication.md",
- "community": 495,
- "norm_label": "authentication system",
- "id": "authentication"
- },
- {
- "label": "JWT Authentication",
+ "label": "No historical data columns -> inner 400 caught by outer except -> 500.",
"file_type": "rationale",
- "source_file": "docs/authentication.md",
- "community": 495,
- "norm_label": "jwt authentication",
- "id": "jwt"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L641",
+ "community": 28,
+ "norm_label": "no historical data columns -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_641"
},
{
- "label": "Google OAuth",
+ "label": "Invalid date format raises exception (line 132).",
"file_type": "rationale",
- "source_file": "docs/authentication.md",
- "community": 495,
- "norm_label": "google oauth",
- "id": "google_oauth"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L679",
+ "community": 136,
+ "norm_label": "invalid date format raises exception (line 132).",
+ "id": "tests_test_stocks_api_coverage_rationale_679"
},
{
- "label": "Session Management",
+ "label": "No historical columns at all -> inner 400 caught by outer except -> 500.",
"file_type": "rationale",
- "source_file": "docs/authentication.md",
- "community": 470,
- "norm_label": "session management",
- "id": "session_management"
- },
- {
- "label": "MySQL Database",
- "file_type": "document",
- "source_file": "docker-compose.yml",
- "community": 71,
- "norm_label": "mysql database",
- "id": "mysql"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L695",
+ "community": 127,
+ "norm_label": "no historical columns at all -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_695"
},
{
- "label": "user_db",
+ "label": "Historical query with a year range.",
"file_type": "rationale",
- "source_file": "AGENTS.md",
- "community": 71,
- "norm_label": "user_db",
- "id": "user_db"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L705",
+ "community": 28,
+ "norm_label": "historical query with a year range.",
+ "id": "tests_test_stocks_api_coverage_rationale_705"
},
{
- "label": "stocks_db",
+ "label": "Multiple search terms, all found in tickerIndex.",
"file_type": "rationale",
- "source_file": "AGENTS.md",
- "community": 71,
- "norm_label": "stocks_db",
- "id": "stocks_db"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L712",
+ "community": 28,
+ "norm_label": "multiple search terms, all found in tickerindex.",
+ "id": "tests_test_stocks_api_coverage_rationale_712"
},
{
- "label": "User Roles System",
+ "label": "Tests covering query.py lines 142-202.",
"file_type": "rationale",
- "source_file": "docs/user.md",
- "community": 71,
- "norm_label": "user roles system",
- "id": "user_roles"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L721",
+ "community": 21,
+ "norm_label": "tests covering query.py lines 142-202.",
+ "id": "tests_test_stocks_api_coverage_rationale_721"
},
{
- "label": "API Key System",
+ "label": "Invalid date -> inner 400 caught by outer except -> 500.",
"file_type": "rationale",
- "source_file": "docs/stocks_api.md",
- "community": 71,
- "norm_label": "api key system",
- "id": "api_key_system"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L775",
+ "community": 39,
+ "norm_label": "invalid date -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_775"
},
{
- "label": "RAG Architecture",
+ "label": "search.strip() == '' should still dedup (line 181).",
"file_type": "rationale",
- "source_file": "docs/prometheus.md",
- "community": 71,
- "norm_label": "rag architecture",
- "id": "rag_architecture"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L823",
+ "community": 39,
+ "norm_label": "search.strip() == '' should still dedup (line 181).",
+ "id": "tests_test_stocks_api_coverage_rationale_823"
},
{
- "label": "Gemini Model",
+ "label": "Two dates in the range, both valid.",
"file_type": "rationale",
- "source_file": "docs/prometheus.md",
- "community": 71,
- "norm_label": "gemini model",
- "id": "gemini_model"
- },
- {
- "label": "Docker Deployment",
- "file_type": "document",
- "source_file": "docker-compose.yml",
- "community": 471,
- "norm_label": "docker deployment",
- "id": "docker"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L845",
+ "community": 39,
+ "norm_label": "two dates in the range, both valid.",
+ "id": "tests_test_stocks_api_coverage_rationale_845"
},
{
- "label": "Ruff Linter",
+ "label": "Single invalid date -> inner 400 caught by outer except -> 500.",
"file_type": "rationale",
- "source_file": "pyproject.toml",
- "community": 472,
- "norm_label": "ruff linter",
- "id": "ruff"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L859",
+ "community": 46,
+ "norm_label": "single invalid date -> inner 400 caught by outer except -> 500.",
+ "id": "tests_test_stocks_api_coverage_rationale_859"
},
{
- "label": "Pytest Testing",
+ "label": "Fields that don't exist in the dataframe are filtered out.",
"file_type": "rationale",
- "source_file": "pyproject.toml",
- "community": 80,
- "norm_label": "pytest testing",
- "id": "pytest"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L869",
+ "community": 46,
+ "norm_label": "fields that don't exist in the dataframe are filtered out.",
+ "id": "tests_test_stocks_api_coverage_rationale_869"
},
{
- "label": "Mypy Typecheck",
+ "label": "Search with no index match falls back to string startswith.",
"file_type": "rationale",
- "source_file": "AGENTS.md",
- "community": 473,
- "norm_label": "mypy typecheck",
- "id": "mypy"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L892",
+ "community": 17,
+ "norm_label": "search with no index match falls back to string startswith.",
+ "id": "tests_test_stocks_api_coverage_rationale_892"
},
{
- "label": "Permission System",
+ "label": "len(dateRange) == 1 -> single date filter.",
"file_type": "rationale",
- "source_file": "docs/user.md",
- "community": 71,
- "norm_label": "permission system",
- "id": "permission_system"
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L900",
+ "community": 39,
+ "norm_label": "len(daterange) == 1 -> single date filter.",
+ "id": "tests_test_stocks_api_coverage_rationale_900"
},
{
- "label": "Ma'at Stock Algorithm",
+ "label": "TestClient with all routers mounted \u2014 no lifespan (no DB/service init). O",
"file_type": "rationale",
- "source_file": "TODO.md",
- "community": 71,
- "norm_label": "ma'at stock algorithm",
- "id": "ma_at"
+ "source_file": "tests/conftest.py",
+ "source_location": "L62",
+ "community": 186,
+ "norm_label": "testclient with all routers mounted \u2014 no lifespan (no db/service init). o",
+ "id": "tests_conftest_rationale_62"
},
{
- "label": "Thoth Wallet Management",
+ "label": "TestClient with all routers mounted \u2014 no lifespan (no DB/service init). O",
"file_type": "rationale",
- "source_file": "TODO.md",
- "community": 71,
- "norm_label": "thoth wallet management",
- "id": "thoth"
+ "source_file": "tests/conftest.py",
+ "source_location": "L61",
+ "community": 186,
+ "norm_label": "testclient with all routers mounted \u2014 no lifespan (no db/service init). o",
+ "id": "tests_conftest_rationale_61"
},
{
- "label": "Ogum Algo Trading",
+ "label": "TestClient with all routers mounted \u2014 no lifespan (no DB/service init). O",
"file_type": "rationale",
- "source_file": "TODO.md",
- "community": 71,
- "norm_label": "ogum algo trading",
- "id": "ogum"
+ "source_file": "tests/conftest.py",
+ "source_location": "L57",
+ "community": 186,
+ "norm_label": "testclient with all routers mounted \u2014 no lifespan (no db/service init). o",
+ "id": "tests_conftest_rationale_57"
},
{
- "label": "Fundamental Data",
+ "label": "TestClient with all routers mounted \u2014 no lifespan (no DB/service init). O",
"file_type": "rationale",
- "source_file": "docs/stocks_api.md",
- "community": 71,
- "norm_label": "fundamental data",
- "id": "fundamental_data"
+ "source_file": "tests/conftest.py",
+ "source_location": "L49",
+ "community": 186,
+ "norm_label": "testclient with all routers mounted \u2014 no lifespan (no db/service init). o",
+ "id": "tests_conftest_rationale_49"
},
{
- "label": "Historical Data",
- "file_type": "rationale",
- "source_file": "docs/stocks_api.md",
- "community": 71,
- "norm_label": "historical data",
- "id": "historical_data"
+ "label": "Full Code Review Report",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L1",
+ "community": 161,
+ "norm_label": "full code review report",
+ "id": "server_code_review_report_full_code_review_report"
},
{
- "label": "Value Investing",
- "file_type": "rationale",
- "source_file": "docs/stocks_api.md",
- "community": 71,
- "norm_label": "value investing",
- "id": "value_investing"
- }
- ],
- "links": [
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "benchmark_latency.py",
- "source_location": "L20",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "benchmark_latency_py",
- "target": "server_benchmark_latency_bench"
+ "label": "Category 1: Database Session Management (HIGH)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L23",
+ "community": 204,
+ "norm_label": "category 1: database session management (high)",
+ "id": "server_code_review_report_category_1_database_session_management_high"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "benchmark_latency.py",
- "source_location": "L35",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "benchmark_latency_py",
- "target": "server_benchmark_latency_hammer"
+ "label": "Issue 1.1 \u2014 PrometheusController creates raw DB sessions",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L25",
+ "community": 204,
+ "norm_label": "issue 1.1 \u2014 prometheuscontroller creates raw db sessions",
+ "id": "server_code_review_report_issue_1_1_prometheuscontroller_creates_raw_db_sessions"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "benchmark_latency.py",
- "source_location": "L46",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "benchmark_latency_py",
- "target": "server_benchmark_latency_stats"
+ "label": "Issue 1.2 \u2014 PrometheusChatManager creates raw DB sessions on every call",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L45",
+ "community": 204,
+ "norm_label": "issue 1.2 \u2014 prometheuschatmanager creates raw db sessions on every call",
+ "id": "server_code_review_report_issue_1_2_prometheuschatmanager_creates_raw_db_sessions_on_every_call"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "benchmark_latency.py",
- "source_location": "L60",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "benchmark_latency_py",
- "target": "server_benchmark_latency_main"
+ "label": "Issue 1.3 \u2014 User controller has duplicate token extraction",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L51",
+ "community": 204,
+ "norm_label": "issue 1.3 \u2014 user controller has duplicate token extraction",
+ "id": "server_code_review_report_issue_1_3_user_controller_has_duplicate_token_extraction"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "benchmark_latency.py",
+ "label": "Category 2: Async/Sync Inconsistencies (MEDIUM)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
"source_location": "L75",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_benchmark_latency_main",
- "target": "server_benchmark_latency_bench"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "benchmark_latency.py",
- "source_location": "L92",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_benchmark_latency_main",
- "target": "server_benchmark_latency_stats"
+ "community": 161,
+ "norm_label": "category 2: async/sync inconsistencies (medium)",
+ "id": "server_code_review_report_category_2_async_sync_inconsistencies_medium"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "ci.ps1",
- "source_location": "L25",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ci_ps1",
- "target": "server_ci_write_step"
+ "label": "Issue 2.1 \u2014 All route handlers are synchronous",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L77",
+ "community": 161,
+ "norm_label": "issue 2.1 \u2014 all route handlers are synchronous",
+ "id": "server_code_review_report_issue_2_1_all_route_handlers_are_synchronous"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "ci.ps1",
- "source_location": "L33",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ci_ps1",
- "target": "server_ci_write_pass"
+ "label": "Issue 2.2 \u2014 ServiceManager runs uvicorn in daemon threads",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L85",
+ "community": 161,
+ "norm_label": "issue 2.2 \u2014 servicemanager runs uvicorn in daemon threads",
+ "id": "server_code_review_report_issue_2_2_servicemanager_runs_uvicorn_in_daemon_threads"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "ci.ps1",
- "source_location": "L39",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ci_ps1",
- "target": "server_ci_write_fail"
+ "label": "Category 3: Security (HIGH)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L95",
+ "community": 205,
+ "norm_label": "category 3: security (high)",
+ "id": "server_code_review_report_category_3_security_high"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "ci.ps1",
- "source_location": "L48",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ci_ps1",
- "target": "server_ci_write_fix"
+ "label": "Issue 3.1 \u2014 Hardcoded API key fallback",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L97",
+ "community": 205,
+ "norm_label": "issue 3.1 \u2014 hardcoded api key fallback",
+ "id": "server_code_review_report_issue_3_1_hardcoded_api_key_fallback"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "ci.ps1",
- "source_location": "L45",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "ci_ps1",
- "target": "server_ci_run_check"
+ "label": "Issue 3.2 \u2014 Missing rate limiting on auth endpoints",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L112",
+ "community": 205,
+ "norm_label": "issue 3.2 \u2014 missing rate limiting on auth endpoints",
+ "id": "server_code_review_report_issue_3_2_missing_rate_limiting_on_auth_endpoints"
},
{
- "relation": "calls",
- "confidence": "EXTRACTED",
- "source_file": "ci.ps1",
- "source_location": "L47",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_ci_write_step",
- "target": "server_ci_run_check"
+ "label": "Issue 3.3 \u2014 API key uses `string` import but doesn't use it",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L117",
+ "community": 205,
+ "norm_label": "issue 3.3 \u2014 api key uses `string` import but doesn't use it",
+ "id": "server_code_review_report_issue_3_3_api_key_uses_string_import_but_doesn_t_use_it"
},
{
- "relation": "calls",
- "confidence": "EXTRACTED",
- "source_file": "ci.ps1",
- "source_location": "L52",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_ci_write_pass",
- "target": "server_ci_run_check"
+ "label": "Issue 3.4 \u2014 Logout doesn't validate token before revoking",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L122",
+ "community": 205,
+ "norm_label": "issue 3.4 \u2014 logout doesn't validate token before revoking",
+ "id": "server_code_review_report_issue_3_4_logout_doesn_t_validate_token_before_revoking"
},
{
- "relation": "calls",
- "confidence": "EXTRACTED",
- "source_file": "ci.ps1",
- "source_location": "L54",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_ci_write_fail",
- "target": "server_ci_run_check"
+ "label": "Category 4: Caching & Memory (MEDIUM)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L129",
+ "community": 161,
+ "norm_label": "category 4: caching & memory (medium)",
+ "id": "server_code_review_report_category_4_caching_memory_medium"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L9",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_py",
- "target": "server_config_applyipv4force"
+ "label": "Issue 4.1 \u2014 PrometheusChatManager uses in-memory dict for sessions",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L131",
+ "community": 161,
+ "norm_label": "issue 4.1 \u2014 prometheuschatmanager uses in-memory dict for sessions",
+ "id": "server_code_review_report_issue_4_1_prometheuschatmanager_uses_in_memory_dict_for_sessions"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L29",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_py",
- "target": "server_config_mysqlsettings"
+ "label": "Issue 4.2 \u2014 Scraper cache has no TTL",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L140",
+ "community": 161,
+ "norm_label": "issue 4.2 \u2014 scraper cache has no ttl",
+ "id": "server_code_review_report_issue_4_2_scraper_cache_has_no_ttl"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L46",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_py",
- "target": "server_config_usersettings"
+ "label": "Category 5: Error Handling Gaps (MEDIUM)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L147",
+ "community": 250,
+ "norm_label": "category 5: error handling gaps (medium)",
+ "id": "server_code_review_report_category_5_error_handling_gaps_medium"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L65",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_py",
- "target": "server_config_stocksapisettings"
+ "label": "Issue 5.1 \u2014 Generic exception handler swallows traceback in production",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L149",
+ "community": 250,
+ "norm_label": "issue 5.1 \u2014 generic exception handler swallows traceback in production",
+ "id": "server_code_review_report_issue_5_1_generic_exception_handler_swallows_traceback_in_production"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L79",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_py",
- "target": "server_config_prometheussettings"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L90",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_py",
- "target": "server_config_scrapersettings"
+ "label": "Issue 5.2 \u2014 DiscordHandler sends only message, not traceback",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L154",
+ "community": 250,
+ "norm_label": "issue 5.2 \u2014 discordhandler sends only message, not traceback",
+ "id": "server_code_review_report_issue_5_2_discordhandler_sends_only_message_not_traceback"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L101",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_py",
- "target": "server_config_discordsettings"
+ "label": "Issue 5.3 \u2014 `_build_error_response` ignores `status_code` parameter",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L159",
+ "community": 250,
+ "norm_label": "issue 5.3 \u2014 `_build_error_response` ignores `status_code` parameter",
+ "id": "server_code_review_report_issue_5_3_build_error_response_ignores_status_code_parameter"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L109",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_py",
- "target": "server_config_config"
+ "label": "Category 6: Configuration & Environment (LOW)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L166",
+ "community": 161,
+ "norm_label": "category 6: configuration & environment (low)",
+ "id": "server_code_review_report_category_6_configuration_environment_low"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L144",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_py",
- "target": "server_config_getsession"
+ "label": "Issue 6.1 \u2014 Config class uses dict-style access with string keys",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L168",
+ "community": 161,
+ "norm_label": "issue 6.1 \u2014 config class uses dict-style access with string keys",
+ "id": "server_code_review_report_issue_6_1_config_class_uses_dict_style_access_with_string_keys"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L151",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_py",
- "target": "server_config_getstockssession"
+ "label": "Issue 6.2 \u2014 `config.py` imports are circular-risk",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L173",
+ "community": 161,
+ "norm_label": "issue 6.2 \u2014 `config.py` imports are circular-risk",
+ "id": "server_code_review_report_issue_6_2_config_py_imports_are_circular_risk"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L20",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "config_py",
- "target": "server_config_basemansasettings"
+ "label": "Issue 6.3 \u2014 `database.py` is empty/unused",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L178",
+ "community": 161,
+ "norm_label": "issue 6.3 \u2014 `database.py` is empty/unused",
+ "id": "server_code_review_report_issue_6_3_database_py_is_empty_unused"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L23",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_config_mysqlsettings",
- "target": "basesettings"
+ "label": "Category 7: Code Quality (LOW)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L185",
+ "community": 161,
+ "norm_label": "category 7: code quality (low)",
+ "id": "server_code_review_report_category_7_code_quality_low"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L29",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_config_basemansasettings",
- "target": "server_config_mysqlsettings"
+ "label": "Issue 7.1 \u2014 Unused imports",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L187",
+ "community": 161,
+ "norm_label": "issue 7.1 \u2014 unused imports",
+ "id": "server_code_review_report_issue_7_1_unused_imports"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L43",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_config_mysqlsettings",
- "target": "server_config_mysqlsettings_getitem"
+ "label": "Issue 7.2 \u2014 Missing type hints",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L194",
+ "community": 161,
+ "norm_label": "issue 7.2 \u2014 missing type hints",
+ "id": "server_code_review_report_issue_7_2_missing_type_hints"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L38",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_config_usersettings",
- "target": "basesettings"
+ "label": "Issue 7.3 \u2014 `UserManager.__init__` does nothing",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L205",
+ "community": 161,
+ "norm_label": "issue 7.3 \u2014 `usermanager.__init__` does nothing",
+ "id": "server_code_review_report_issue_7_3_usermanager_init_does_nothing"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L50",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_config_stocksapisettings",
- "target": "basesettings"
+ "label": "Issue 7.4 \u2014 Mixed async/sync in roles.py",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L210",
+ "community": 161,
+ "norm_label": "issue 7.4 \u2014 mixed async/sync in roles.py",
+ "id": "server_code_review_report_issue_7_4_mixed_async_sync_in_roles_py"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L61",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_config_prometheussettings",
- "target": "basesettings"
+ "label": "Category 8: Testing Gaps (MEDIUM)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L217",
+ "community": 231,
+ "norm_label": "category 8: testing gaps (medium)",
+ "id": "server_code_review_report_category_8_testing_gaps_medium"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L76",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_config_scrapersettings",
- "target": "basesettings"
+ "label": "Issue 8.1 \u2014 No integration tests for full request lifecycle",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L219",
+ "community": 231,
+ "norm_label": "issue 8.1 \u2014 no integration tests for full request lifecycle",
+ "id": "server_code_review_report_issue_8_1_no_integration_tests_for_full_request_lifecycle"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L85",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_config_discordsettings",
- "target": "basesettings"
+ "label": "Issue 8.2 \u2014 No tests for scraper, stocks query, or cache",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L223",
+ "community": 231,
+ "norm_label": "issue 8.2 \u2014 no tests for scraper, stocks query, or cache",
+ "id": "server_code_review_report_issue_8_2_no_tests_for_scraper_stocks_query_or_cache"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L20",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_config_basemansasettings",
- "target": "basesettings"
+ "label": "Issue 8.3 \u2014 No tests for Google OAuth callback",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L230",
+ "community": 231,
+ "norm_label": "issue 8.3 \u2014 no tests for google oauth callback",
+ "id": "server_code_review_report_issue_8_3_no_tests_for_google_oauth_callback"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L46",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_config_basemansasettings",
- "target": "server_config_usersettings"
+ "label": "Issue 8.4 \u2014 No tests for session cleanup",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L234",
+ "community": 231,
+ "norm_label": "issue 8.4 \u2014 no tests for session cleanup",
+ "id": "server_code_review_report_issue_8_4_no_tests_for_session_cleanup"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L57",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_config_usersettings",
- "target": "server_config_usersettings_getitem"
+ "label": "Priority Summary",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L240",
+ "community": 161,
+ "norm_label": "priority summary",
+ "id": "server_code_review_report_priority_summary"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L65",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_config_basemansasettings",
- "target": "server_config_stocksapisettings"
+ "label": "Recommended Delegation Buckets",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L261",
+ "community": 232,
+ "norm_label": "recommended delegation buckets",
+ "id": "server_code_review_report_recommended_delegation_buckets"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L75",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_config_stocksapisettings",
- "target": "server_config_stocksapisettings_getitem"
+ "label": "Bucket A: Security Fixes (quick wins, 30 min)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L263",
+ "community": 232,
+ "norm_label": "bucket a: security fixes (quick wins, 30 min)",
+ "id": "server_code_review_report_bucket_a_security_fixes_quick_wins_30_min"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_config.py",
- "source_location": "L2",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "server_config_stocksapisettings",
- "target": "tests_test_config_testconfig"
+ "label": "Bucket B: DB Session Cleanup (medium, 1-2 hrs)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L268",
+ "community": 232,
+ "norm_label": "bucket b: db session cleanup (medium, 1-2 hrs)",
+ "id": "server_code_review_report_bucket_b_db_session_cleanup_medium_1_2_hrs"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_config.py",
- "source_location": "L7",
- "weight": 1.0,
- "source": "server_config_stocksapisettings",
- "target": "tests_test_config_testconfig_test_stocks_api_getitem"
+ "label": "Bucket C: Testing (medium, 2-3 hrs)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L273",
+ "community": 232,
+ "norm_label": "bucket c: testing (medium, 2-3 hrs)",
+ "id": "server_code_review_report_bucket_c_testing_medium_2_3_hrs"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L79",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_config_basemansasettings",
- "target": "server_config_prometheussettings"
+ "label": "Bucket D: Infrastructure (large, 4+ hrs)",
+ "file_type": "document",
+ "source_file": "CODE_REVIEW_REPORT.md",
+ "source_location": "L279",
+ "community": 232,
+ "norm_label": "bucket d: infrastructure (large, 4+ hrs)",
+ "id": "server_code_review_report_bucket_d_infrastructure_large_4_hrs"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L86",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_config_prometheussettings",
- "target": "server_config_prometheussettings_getitem"
+ "label": "Register exception handlers on the FastAPI app. Note: HTTPException and R",
+ "file_type": "rationale",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L67",
+ "community": 120,
+ "norm_label": "register exception handlers on the fastapi app. note: httpexception and r",
+ "id": "utils_errors_rationale_67"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_config.py",
- "source_location": "L2",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "server_config_prometheussettings",
- "target": "tests_test_config_testconfig"
+ "label": "getSessionByIdSafe()",
+ "file_type": "code",
+ "source_file": "main/app/authentication/session.py",
+ "source_location": "L67",
+ "community": 149,
+ "norm_label": "getsessionbyidsafe()",
+ "id": "authentication_session_getsessionbyidsafe"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_config.py",
- "source_location": "L13",
- "weight": 1.0,
- "source": "server_config_prometheussettings",
- "target": "tests_test_config_testconfig_test_prometheus_getitem"
+ "label": "test_stocks_cache.py",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L1",
+ "community": 502,
+ "norm_label": "test_stocks_cache.py",
+ "id": "tests_test_stocks_cache_py"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_config_sandbox.py",
- "source_location": "L2",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "server_config_prometheussettings",
- "target": "tests_test_config_sandbox_testsandboxconfig"
+ "label": "TestTickerIndex",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L17",
+ "community": 42,
+ "norm_label": "testtickerindex",
+ "id": "tests_test_stocks_cache_testtickerindex"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_config_sandbox.py",
- "source_location": "L7",
- "weight": 1.0,
- "source": "server_config_prometheussettings",
- "target": "tests_test_config_sandbox_testsandboxconfig_test_sandbox_defaults"
+ "label": ".test_tickerIndex_built_after_cache_load()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L20",
+ "community": 42,
+ "norm_label": ".test_tickerindex_built_after_cache_load()",
+ "id": "tests_test_stocks_cache_testtickerindex_test_tickerindex_built_after_cache_load"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_config_sandbox.py",
- "source_location": "L14",
- "weight": 1.0,
- "source": "server_config_prometheussettings",
- "target": "tests_test_config_sandbox_testsandboxconfig_test_sandbox_fields_exist"
+ "label": ".test_tickerIndex_contains_all_tickers()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L28",
+ "community": 42,
+ "norm_label": ".test_tickerindex_contains_all_tickers()",
+ "id": "tests_test_stocks_cache_testtickerindex_test_tickerindex_contains_all_tickers"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_config_sandbox.py",
- "source_location": "L22",
- "weight": 1.0,
- "source": "server_config_prometheussettings",
- "target": "tests_test_config_sandbox_testsandboxconfig_test_sandbox_types"
+ "label": ".test_tickerIndex_case_insensitive()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L38",
+ "community": 42,
+ "norm_label": ".test_tickerindex_case_insensitive()",
+ "id": "tests_test_stocks_cache_testtickerindex_test_tickerindex_case_insensitive"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L90",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_config_basemansasettings",
- "target": "server_config_scrapersettings"
+ "label": ".test_ticker_lookup_returns_valid_index()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L47",
+ "community": 42,
+ "norm_label": ".test_ticker_lookup_returns_valid_index()",
+ "id": "tests_test_stocks_cache_testtickerindex_test_ticker_lookup_returns_valid_index"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L98",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_config_scrapersettings",
- "target": "server_config_scrapersettings_getitem"
+ "label": ".test_tickerIndex_rebuilt_on_cache_refresh()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L58",
+ "community": 42,
+ "norm_label": ".test_tickerindex_rebuilt_on_cache_refresh()",
+ "id": "tests_test_stocks_cache_testtickerindex_test_tickerindex_rebuilt_on_cache_refresh"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_config.py",
- "source_location": "L2",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "server_config_scrapersettings",
- "target": "tests_test_config_testconfig"
+ "label": "TestQueryCaching",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L70",
+ "community": 74,
+ "norm_label": "testquerycaching",
+ "id": "tests_test_stocks_cache_testquerycaching"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_config.py",
- "source_location": "L18",
- "weight": 1.0,
- "source": "server_config_scrapersettings",
- "target": "tests_test_config_testconfig_test_scraper_getitem"
+ "label": ".test_cache_manager_has_caches_method()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L73",
+ "community": 74,
+ "norm_label": ".test_cache_manager_has_caches_method()",
+ "id": "tests_test_stocks_cache_testquerycaching_test_cache_manager_has_caches_method"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L101",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_config_basemansasettings",
- "target": "server_config_discordsettings"
- },
- {
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "config.py",
- "source_location": "L106",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "server_config_discordsettings",
- "target": "server_config_discordsettings_getitem"
+ "label": ".test_queryCache_ttl_configuration()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L81",
+ "community": 74,
+ "norm_label": ".test_querycache_ttl_configuration()",
+ "id": "tests_test_stocks_cache_testquerycaching_test_querycache_ttl_configuration"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L2",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "server_config_config",
- "target": "prometheus_agent_prometheus"
+ "label": ".test_get_cached_stocks_respects_columns_parameter()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L89",
+ "community": 74,
+ "norm_label": ".test_get_cached_stocks_respects_columns_parameter()",
+ "id": "tests_test_stocks_cache_testquerycaching_test_get_cached_stocks_respects_columns_parameter"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L52",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_compact_prometheuscompactor",
- "target": "server_config_config"
+ "label": ".test_different_queries_not_cached()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L99",
+ "community": 74,
+ "norm_label": ".test_different_queries_not_cached()",
+ "id": "tests_test_stocks_cache_testquerycaching_test_different_queries_not_cached"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/mcp.py",
- "source_location": "L8",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_mcp_mcpclientpool",
- "target": "server_config_config"
+ "label": ".test_cache_expiry_after_ttl()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L103",
+ "community": 74,
+ "norm_label": ".test_cache_expiry_after_ttl()",
+ "id": "tests_test_stocks_cache_testquerycaching_test_cache_expiry_after_ttl"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L38",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_memory_prometheusmemory",
- "target": "server_config_config"
+ "label": "TestConnectionPool",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L109",
+ "community": 502,
+ "norm_label": "testconnectionpool",
+ "id": "tests_test_stocks_cache_testconnectionpool"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L14",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "server_config_config",
- "target": "prometheus_sandbox_sandboxmanager"
+ "label": ".test_stocks_engine_has_pool_configuration()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L112",
+ "community": 502,
+ "norm_label": ".test_stocks_engine_has_pool_configuration()",
+ "id": "tests_test_stocks_cache_testconnectionpool_test_stocks_engine_has_pool_configuration"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L2",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "server_config_config",
- "target": "scraper_b3_scraper_b3scraper"
+ "label": "TestLazyDeserialization",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L121",
+ "community": 502,
+ "norm_label": "testlazydeserialization",
+ "id": "tests_test_stocks_cache_testlazydeserialization"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/service/authentication_service.py",
- "source_location": "L2",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "server_config_config",
- "target": "service_authentication_service_authenticationservice"
+ "label": ".test_query_manager_has_deserialize_method()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L124",
+ "community": 502,
+ "norm_label": ".test_query_manager_has_deserialize_method()",
+ "id": "tests_test_stocks_cache_testlazydeserialization_test_query_manager_has_deserialize_method"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/service/scraper_service.py",
- "source_location": "L7",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "server_config_config",
- "target": "service_scraper_service_scraperservice"
+ "label": "TestQueryOptimization",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L135",
+ "community": 502,
+ "norm_label": "testqueryoptimization",
+ "id": "tests_test_stocks_cache_testqueryoptimization"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/utils/logging_config.py",
- "source_location": "L6",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "server_config_config",
- "target": "utils_logging_config_discordhandler"
+ "label": ".test_all_optimizations_present()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L138",
+ "community": 502,
+ "norm_label": ".test_all_optimizations_present()",
+ "id": "tests_test_stocks_cache_testqueryoptimization_test_all_optimizations_present"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L53",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_compact_fieldregistry",
- "target": "server_config_config"
+ "label": ".test_query_filter_uses_optimization()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L153",
+ "community": 502,
+ "norm_label": ".test_query_filter_uses_optimization()",
+ "id": "tests_test_stocks_cache_testqueryoptimization_test_query_filter_uses_optimization"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/utils/service_manager.py",
- "source_location": "L3",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "server_config_config",
- "target": "utils_service_manager_servicemanager"
+ "label": "TestPerformanceBenchmarks",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L171",
+ "community": 57,
+ "norm_label": "testperformancebenchmarks",
+ "id": "tests_test_stocks_cache_testperformancebenchmarks"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/_summarizer_legacy.py",
- "source_location": "L11",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_summarizer_legacy_prometheussummarizer",
- "target": "server_config_config"
+ "label": ".test_tickerIndex_lookup_performance()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L174",
+ "community": 57,
+ "norm_label": ".test_tickerindex_lookup_performance()",
+ "id": "tests_test_stocks_cache_testperformancebenchmarks_test_tickerindex_lookup_performance"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/summarizer.py",
- "source_location": "L12",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_summarizer_prometheussummarizer",
- "target": "server_config_config"
+ "label": ".test_prefix_scan_performance()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L194",
+ "community": 57,
+ "norm_label": ".test_prefix_scan_performance()",
+ "id": "tests_test_stocks_cache_testperformancebenchmarks_test_prefix_scan_performance"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_config.py",
- "source_location": "L2",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "server_config_config",
- "target": "tests_test_config_testconfig"
+ "label": ".test_index_lookup_vs_scan_comparison()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L214",
+ "community": 57,
+ "norm_label": ".test_index_lookup_vs_scan_comparison()",
+ "id": "tests_test_stocks_cache_testperformancebenchmarks_test_index_lookup_vs_scan_comparison"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/generation.py",
- "source_location": "L2",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "server_config_config",
- "target": "prometheus_generation_prometheusgenerator"
+ "label": ".test_queryCache_performance()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L244",
+ "community": 57,
+ "norm_label": ".test_querycache_performance()",
+ "id": "tests_test_stocks_cache_testperformancebenchmarks_test_querycache_performance"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/generation.py",
- "source_location": "L2",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "server_config_config",
- "target": "prometheus_generation_sessionproxy"
+ "label": ".test_column_projection_performance()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L266",
+ "community": 57,
+ "norm_label": ".test_column_projection_performance()",
+ "id": "tests_test_stocks_cache_testperformancebenchmarks_test_column_projection_performance"
},
{
- "relation": "imports_from",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "run.py",
- "source_location": "L2",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "run_py",
- "target": "fastapi"
+ "label": ".test_cache_initialization_time()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L281",
+ "community": 57,
+ "norm_label": ".test_cache_initialization_time()",
+ "id": "tests_test_stocks_cache_testperformancebenchmarks_test_cache_initialization_time"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "run.py",
- "source_location": "L21",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "run_py",
- "target": "server_run_lifespan"
+ "label": "TestFilterBySearchTerms",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L299",
+ "community": 234,
+ "norm_label": "testfilterbysearchterms",
+ "id": "tests_test_stocks_cache_testfilterbysearchterms"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "run.py",
- "source_location": "L64",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "run_py",
- "target": "server_run_health"
+ "label": ".test_filter_with_tickerIndex()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L302",
+ "community": 234,
+ "norm_label": ".test_filter_with_tickerindex()",
+ "id": "tests_test_stocks_cache_testfilterbysearchterms_test_filter_with_tickerindex"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "run.py",
- "source_location": "L81",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "run_py",
- "target": "server_run_status"
+ "label": "TestQueryPerformance",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L308",
+ "community": 490,
+ "norm_label": "testqueryperformance",
+ "id": "tests_test_stocks_cache_testqueryperformance"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "run.py",
- "source_location": "L76",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "run_py",
- "target": "server_run_triggerscraper"
+ "label": ".test_query_response_time_under_1_second()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L311",
+ "community": 490,
+ "norm_label": ".test_query_response_time_under_1_second()",
+ "id": "tests_test_stocks_cache_testqueryperformance_test_query_response_time_under_1_second"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "run.py",
- "source_location": "L29",
- "weight": 1.0,
- "source": "server_run_lifespan",
- "target": "utils_connectivity_checkdatabaseconnection"
+ "label": "Tests for dynamic ticker index feature",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L18",
+ "community": 42,
+ "norm_label": "tests for dynamic ticker index feature",
+ "id": "tests_test_stocks_cache_rationale_18"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "run.py",
- "source_location": "L30",
- "weight": 1.0,
- "source": "server_run_lifespan",
- "target": "utils_roles_all"
+ "label": "Ticker index should be built when cache is loaded",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L21",
+ "community": 42,
+ "norm_label": "ticker index should be built when cache is loaded",
+ "id": "tests_test_stocks_cache_rationale_21"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "run.py",
- "source_location": "L32",
- "weight": 1.0,
- "source": "server_run_lifespan",
- "target": "utils_migrator_runmigrations"
+ "label": "Ticker index should contain all tickers from cache",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L29",
+ "community": 42,
+ "norm_label": "ticker index should contain all tickers from cache",
+ "id": "tests_test_stocks_cache_rationale_29"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "run.py",
+ "label": "Ticker index should be case-insensitive",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
"source_location": "L39",
- "weight": 1.0,
- "source": "server_run_lifespan",
- "target": "utils_connectivity_checkserviceconnection"
+ "community": 42,
+ "norm_label": "ticker index should be case-insensitive",
+ "id": "tests_test_stocks_cache_rationale_39"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "run.py",
- "source_location": "L66",
- "weight": 1.0,
- "source": "server_run_lifespan",
- "target": "utils_service_manager_runall"
+ "label": "Looking up ticker should return valid row index",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L48",
+ "community": 42,
+ "norm_label": "looking up ticker should return valid row index",
+ "id": "tests_test_stocks_cache_rationale_48"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "run.py",
- "source_location": "L24",
- "weight": 1.0,
- "source": "server_run_lifespan",
- "target": "utils_connectivity_checkmysqlconnection"
+ "label": "Ticker index should be rebuilt when cache refreshes",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L59",
+ "community": 42,
+ "norm_label": "ticker index should be rebuilt when cache refreshes",
+ "id": "tests_test_stocks_cache_rationale_59"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "run.py",
- "source_location": "L88",
- "weight": 1.0,
- "source": "server_run_status",
- "target": "utils_connectivity_checkdatabaseconnection"
+ "label": "Tests for query result caching",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L71",
+ "community": 74,
+ "norm_label": "tests for query result caching",
+ "id": "tests_test_stocks_cache_rationale_71"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "run.py",
- "source_location": "L109",
- "weight": 1.0,
- "source": "server_run_status",
- "target": "utils_roles_all"
+ "label": "CacheManager should track cached queries",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L74",
+ "community": 74,
+ "norm_label": "cachemanager should track cached queries",
+ "id": "tests_test_stocks_cache_rationale_74"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "run.py",
- "source_location": "L88",
- "weight": 1.0,
- "source": "server_run_status",
- "target": "utils_connectivity_checkmysqlconnection"
+ "label": "Query cache should have configurable TTL",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L82",
+ "community": 74,
+ "norm_label": "query cache should have configurable ttl",
+ "id": "tests_test_stocks_cache_rationale_82"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "run.py",
+ "label": "getCachedStocks should support column filtering",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
"source_location": "L90",
- "weight": 1.0,
- "source": "server_run_status",
- "target": "utils_connectivity_checksingledb"
+ "community": 74,
+ "norm_label": "getcachedstocks should support column filtering",
+ "id": "tests_test_stocks_cache_rationale_90"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/components.json",
- "source_location": "L2",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_components_json",
- "target": "frontend_components_schema"
+ "label": "Different query parameters should not share cache",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L100",
+ "community": 74,
+ "norm_label": "different query parameters should not share cache",
+ "id": "tests_test_stocks_cache_rationale_100"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/components.json",
- "source_location": "L3",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_components_json",
- "target": "frontend_components_style"
+ "label": "Cache should expire after TTL",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L104",
+ "community": 74,
+ "norm_label": "cache should expire after ttl",
+ "id": "tests_test_stocks_cache_rationale_104"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/components.json",
- "source_location": "L4",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_components_json",
- "target": "frontend_components_rsc"
+ "label": "Tests for connection pool configuration",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L110",
+ "community": 502,
+ "norm_label": "tests for connection pool configuration",
+ "id": "tests_test_stocks_cache_rationale_110"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/components.json",
- "source_location": "L5",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_components_json",
- "target": "frontend_components_tsx"
+ "label": "Stocks engine should have optimized pool settings",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L113",
+ "community": 502,
+ "norm_label": "stocks engine should have optimized pool settings",
+ "id": "tests_test_stocks_cache_rationale_113"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/components.json",
- "source_location": "L6",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_components_json",
- "target": "frontend_components_tailwind"
+ "label": "Tests for lazy JSON deserialization",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L122",
+ "community": 502,
+ "norm_label": "tests for lazy json deserialization",
+ "id": "tests_test_stocks_cache_rationale_122"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/components.json",
- "source_location": "L13",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_components_json",
- "target": "frontend_components_iconlibrary"
+ "label": "Query manager should have deserialize method",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L125",
+ "community": 502,
+ "norm_label": "query manager should have deserialize method",
+ "id": "tests_test_stocks_cache_rationale_125"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/components.json",
- "source_location": "L14",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_components_json",
- "target": "frontend_components_rtl"
+ "label": "Integration tests for all query optimizations",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L136",
+ "community": 502,
+ "norm_label": "integration tests for all query optimizations",
+ "id": "tests_test_stocks_cache_rationale_136"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/components.json",
- "source_location": "L15",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_components_json",
- "target": "frontend_components_aliases"
+ "label": "All optimizations should be implemented",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L139",
+ "community": 502,
+ "norm_label": "all optimizations should be implemented",
+ "id": "tests_test_stocks_cache_rationale_139"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/components.json",
- "source_location": "L22",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_components_json",
- "target": "frontend_components_menucolor"
+ "label": "Query filter should use ticker index",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L154",
+ "community": 502,
+ "norm_label": "query filter should use ticker index",
+ "id": "tests_test_stocks_cache_rationale_154"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/components.json",
- "source_location": "L23",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_components_json",
- "target": "frontend_components_menuaccent"
+ "label": "Performance benchmark tests for stocks API",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L172",
+ "community": 57,
+ "norm_label": "performance benchmark tests for stocks api",
+ "id": "tests_test_stocks_cache_rationale_172"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/components.json",
- "source_location": "L24",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_components_json",
- "target": "frontend_components_registries"
+ "label": "Ticker index lookup should be O(1) - very fast",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L175",
+ "community": 57,
+ "norm_label": "ticker index lookup should be o(1) - very fast",
+ "id": "tests_test_stocks_cache_rationale_175"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/components.json",
- "source_location": "L7",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_components_tailwind",
- "target": "frontend_components_tailwind_config"
+ "label": "Prefix scan should be much slower than index lookup",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L195",
+ "community": 57,
+ "norm_label": "prefix scan should be much slower than index lookup",
+ "id": "tests_test_stocks_cache_rationale_195"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/components.json",
- "source_location": "L8",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_components_tailwind",
- "target": "frontend_components_tailwind_css"
+ "label": "Index lookup should be significantly faster than scan",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L215",
+ "community": 57,
+ "norm_label": "index lookup should be significantly faster than scan",
+ "id": "tests_test_stocks_cache_rationale_215"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/components.json",
- "source_location": "L9",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_components_tailwind",
- "target": "frontend_components_tailwind_basecolor"
+ "label": "Query cache should avoid recomputation",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L245",
+ "community": 57,
+ "norm_label": "query cache should avoid recomputation",
+ "id": "tests_test_stocks_cache_rationale_245"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/components.json",
- "source_location": "L10",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_components_tailwind",
- "target": "frontend_components_tailwind_cssvariables"
+ "label": "Column projection should reduce memory and time",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L267",
+ "community": 57,
+ "norm_label": "column projection should reduce memory and time",
+ "id": "tests_test_stocks_cache_rationale_267"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/components.json",
- "source_location": "L11",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_components_tailwind",
- "target": "frontend_components_tailwind_prefix"
+ "label": "Cache initialization should complete in reasonable time",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L282",
+ "community": 57,
+ "norm_label": "cache initialization should complete in reasonable time",
+ "id": "tests_test_stocks_cache_rationale_282"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/components.json",
- "source_location": "L16",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_components_aliases",
- "target": "frontend_components_aliases_components"
+ "label": "Tests for optimized search filtering",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L300",
+ "community": 234,
+ "norm_label": "tests for optimized search filtering",
+ "id": "tests_test_stocks_cache_rationale_300"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/components.json",
- "source_location": "L17",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_components_aliases",
- "target": "frontend_components_aliases_utils"
+ "label": "Filter should use ticker index for O(1) lookup",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L303",
+ "community": 234,
+ "norm_label": "filter should use ticker index for o(1) lookup",
+ "id": "tests_test_stocks_cache_rationale_303"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/components.json",
- "source_location": "L18",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_components_aliases",
- "target": "frontend_components_aliases_ui"
+ "label": "Performance tests for query operations",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L309",
+ "community": 490,
+ "norm_label": "performance tests for query operations",
+ "id": "tests_test_stocks_cache_rationale_309"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/components.json",
- "source_location": "L19",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_components_aliases",
- "target": "frontend_components_aliases_lib"
+ "label": "Query should respond within 1 second",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L312",
+ "community": 490,
+ "norm_label": "query should respond within 1 second",
+ "id": "tests_test_stocks_cache_rationale_312"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/components.json",
- "source_location": "L20",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_components_aliases",
- "target": "frontend_components_aliases_hooks"
+ "label": "coverage_html_cb_188fc9a4.js",
+ "file_type": "code",
+ "source_file": "htmlcov/coverage_html_cb_188fc9a4.js",
+ "source_location": "L1",
+ "community": 171,
+ "norm_label": "coverage_html_cb_188fc9a4.js",
+ "id": "htmlcov_coverage_html_cb_188fc9a4_js"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/jsconfig.json",
- "source_location": "L2",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_jsconfig_json",
- "target": "frontend_jsconfig_compileroptions"
+ "label": "debounce()",
+ "file_type": "code",
+ "source_file": "htmlcov/coverage_html_cb_188fc9a4.js",
+ "source_location": "L11",
+ "community": 171,
+ "norm_label": "debounce()",
+ "id": "htmlcov_coverage_html_cb_188fc9a4_debounce"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/jsconfig.json",
- "source_location": "L3",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_jsconfig_compileroptions",
- "target": "frontend_jsconfig_compileroptions_baseurl"
+ "label": "checkVisible()",
+ "file_type": "code",
+ "source_file": "htmlcov/coverage_html_cb_188fc9a4.js",
+ "source_location": "L21",
+ "community": 171,
+ "norm_label": "checkvisible()",
+ "id": "htmlcov_coverage_html_cb_188fc9a4_checkvisible"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/jsconfig.json",
- "source_location": "L4",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_jsconfig_compileroptions",
- "target": "frontend_jsconfig_compileroptions_paths"
+ "label": "on_click()",
+ "file_type": "code",
+ "source_file": "htmlcov/coverage_html_cb_188fc9a4.js",
+ "source_location": "L28",
+ "community": 171,
+ "norm_label": "on_click()",
+ "id": "htmlcov_coverage_html_cb_188fc9a4_on_click"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/jsconfig.json",
- "source_location": "L5",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_jsconfig_compileroptions_paths",
- "target": "frontend_jsconfig_paths"
+ "label": "getCellValue()",
+ "file_type": "code",
+ "source_file": "htmlcov/coverage_html_cb_188fc9a4.js",
+ "source_location": "L36",
+ "community": 171,
+ "norm_label": "getcellvalue()",
+ "id": "htmlcov_coverage_html_cb_188fc9a4_getcellvalue"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/test-setup.js",
- "source_location": "L4",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_test_setup_js",
- "target": "frontend_test_setup_localstoragemock"
+ "label": "rowComparator()",
+ "file_type": "code",
+ "source_file": "htmlcov/coverage_html_cb_188fc9a4.js",
+ "source_location": "L50",
+ "community": 171,
+ "norm_label": "rowcomparator()",
+ "id": "htmlcov_coverage_html_cb_188fc9a4_rowcomparator"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L3",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "src_api_authheaders"
+ "label": "sortColumn()",
+ "file_type": "code",
+ "source_file": "htmlcov/coverage_html_cb_188fc9a4.js",
+ "source_location": "L59",
+ "community": 171,
+ "norm_label": "sortcolumn()",
+ "id": "htmlcov_coverage_html_cb_188fc9a4_sortcolumn"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L15",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "src_api_apifetch"
+ "label": "updateHeader()",
+ "file_type": "code",
+ "source_file": "htmlcov/coverage_html_cb_188fc9a4.js",
+ "source_location": "L699",
+ "community": 171,
+ "norm_label": "updateheader()",
+ "id": "htmlcov_coverage_html_cb_188fc9a4_updateheader"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L24",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "src_api_login"
+ "label": "Tests for query result caching",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L73",
+ "community": 74,
+ "norm_label": "tests for query result caching",
+ "id": "tests_test_stocks_cache_rationale_73"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L36",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "src_api_register"
+ "label": "CacheManager should track cached queries",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L76",
+ "community": 74,
+ "norm_label": "cachemanager should track cached queries",
+ "id": "tests_test_stocks_cache_rationale_76"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L48",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "src_api_logout"
+ "label": "Query cache should have configurable TTL",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L84",
+ "community": 74,
+ "norm_label": "query cache should have configurable ttl",
+ "id": "tests_test_stocks_cache_rationale_84"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L53",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "src_api_fetchme"
+ "label": "getCachedStocks should support column filtering",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L92",
+ "community": 74,
+ "norm_label": "getcachedstocks should support column filtering",
+ "id": "tests_test_stocks_cache_rationale_92"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L75",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "src_api_extracthashtoken"
+ "label": "Different query parameters should not share cache",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L102",
+ "community": 74,
+ "norm_label": "different query parameters should not share cache",
+ "id": "tests_test_stocks_cache_rationale_102"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L91",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "src_api_googleauthurl"
+ "label": "Cache should expire after TTL",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L106",
+ "community": 74,
+ "norm_label": "cache should expire after ttl",
+ "id": "tests_test_stocks_cache_rationale_106"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L95",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "src_api_fetchsessions"
+ "label": "Tests for connection pool configuration",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L112",
+ "community": 502,
+ "norm_label": "tests for connection pool configuration",
+ "id": "tests_test_stocks_cache_rationale_112"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
+ "label": "Stocks engine should have optimized pool settings",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L115",
+ "community": 502,
+ "norm_label": "stocks engine should have optimized pool settings",
+ "id": "tests_test_stocks_cache_rationale_115"
+ },
+ {
+ "label": "Tests for lazy JSON deserialization",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L124",
+ "community": 502,
+ "norm_label": "tests for lazy json deserialization",
+ "id": "tests_test_stocks_cache_rationale_124"
+ },
+ {
+ "label": "Query manager should have deserialize method",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L127",
+ "community": 502,
+ "norm_label": "query manager should have deserialize method",
+ "id": "tests_test_stocks_cache_rationale_127"
+ },
+ {
+ "label": "Integration tests for all query optimizations",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L138",
+ "community": 502,
+ "norm_label": "integration tests for all query optimizations",
+ "id": "tests_test_stocks_cache_rationale_138"
+ },
+ {
+ "label": "All optimizations should be implemented",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L141",
+ "community": 502,
+ "norm_label": "all optimizations should be implemented",
+ "id": "tests_test_stocks_cache_rationale_141"
+ },
+ {
+ "label": "Query filter should use ticker index",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L156",
+ "community": 502,
+ "norm_label": "query filter should use ticker index",
+ "id": "tests_test_stocks_cache_rationale_156"
+ },
+ {
+ "label": "Performance benchmark tests for stocks API",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L174",
+ "community": 57,
+ "norm_label": "performance benchmark tests for stocks api",
+ "id": "tests_test_stocks_cache_rationale_174"
+ },
+ {
+ "label": "Ticker index lookup should be O(1) - very fast",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L177",
+ "community": 57,
+ "norm_label": "ticker index lookup should be o(1) - very fast",
+ "id": "tests_test_stocks_cache_rationale_177"
+ },
+ {
+ "label": "Prefix scan should be much slower than index lookup",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L197",
+ "community": 57,
+ "norm_label": "prefix scan should be much slower than index lookup",
+ "id": "tests_test_stocks_cache_rationale_197"
+ },
+ {
+ "label": "Index lookup should be significantly faster than scan",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L217",
+ "community": 57,
+ "norm_label": "index lookup should be significantly faster than scan",
+ "id": "tests_test_stocks_cache_rationale_217"
+ },
+ {
+ "label": "Query cache should avoid recomputation",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L247",
+ "community": 57,
+ "norm_label": "query cache should avoid recomputation",
+ "id": "tests_test_stocks_cache_rationale_247"
+ },
+ {
+ "label": "Column projection should reduce memory and time",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L269",
+ "community": 57,
+ "norm_label": "column projection should reduce memory and time",
+ "id": "tests_test_stocks_cache_rationale_269"
+ },
+ {
+ "label": "Cache initialization should complete in reasonable time",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L284",
+ "community": 57,
+ "norm_label": "cache initialization should complete in reasonable time",
+ "id": "tests_test_stocks_cache_rationale_284"
+ },
+ {
+ "label": "Tests for optimized search filtering",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L302",
+ "community": 234,
+ "norm_label": "tests for optimized search filtering",
+ "id": "tests_test_stocks_cache_rationale_302"
+ },
+ {
+ "label": "Filter should use ticker index for O(1) lookup",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L305",
+ "community": 234,
+ "norm_label": "filter should use ticker index for o(1) lookup",
+ "id": "tests_test_stocks_cache_rationale_305"
+ },
+ {
+ "label": "Performance tests for query operations",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L311",
+ "community": 490,
+ "norm_label": "performance tests for query operations",
+ "id": "tests_test_stocks_cache_rationale_311"
+ },
+ {
+ "label": "Query should respond within 1 second",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L314",
+ "community": 490,
+ "norm_label": "query should respond within 1 second",
+ "id": "tests_test_stocks_cache_rationale_314"
+ },
+ {
+ "label": ".test_tickerIndex_built_after_cache_load()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L20",
+ "community": 42,
+ "norm_label": ".test_tickerindex_built_after_cache_load()",
+ "id": "tests_test_stocks_cache_testtickerindex_test_tickerIndex_built_after_cache_load"
+ },
+ {
+ "label": ".test_tickerIndex_contains_all_tickers()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L28",
+ "community": 42,
+ "norm_label": ".test_tickerindex_contains_all_tickers()",
+ "id": "tests_test_stocks_cache_testtickerindex_test_tickerIndex_contains_all_tickers"
+ },
+ {
+ "label": ".test_tickerIndex_case_insensitive()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L38",
+ "community": 42,
+ "norm_label": ".test_tickerindex_case_insensitive()",
+ "id": "tests_test_stocks_cache_testtickerindex_test_tickerIndex_case_insensitive"
+ },
+ {
+ "label": ".test_tickerIndex_rebuilt_on_cache_refresh()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L58",
+ "community": 42,
+ "norm_label": ".test_tickerindex_rebuilt_on_cache_refresh()",
+ "id": "tests_test_stocks_cache_testtickerindex_test_tickerIndex_rebuilt_on_cache_refresh"
+ },
+ {
+ "label": ".test_queryCache_ttl_configuration()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L83",
+ "community": 74,
+ "norm_label": ".test_querycache_ttl_configuration()",
+ "id": "tests_test_stocks_cache_testquerycaching_test_queryCache_ttl_configuration"
+ },
+ {
+ "label": ".test_tickerIndex_lookup_performance()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L176",
+ "community": 57,
+ "norm_label": ".test_tickerindex_lookup_performance()",
+ "id": "tests_test_stocks_cache_testperformancebenchmarks_test_tickerIndex_lookup_performance"
+ },
+ {
+ "label": ".test_queryCache_performance()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L246",
+ "community": 57,
+ "norm_label": ".test_querycache_performance()",
+ "id": "tests_test_stocks_cache_testperformancebenchmarks_test_queryCache_performance"
+ },
+ {
+ "label": ".test_filter_with_tickerIndex()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L304",
+ "community": 234,
+ "norm_label": ".test_filter_with_tickerindex()",
+ "id": "tests_test_stocks_cache_testfilterbysearchterms_test_filter_with_tickerIndex"
+ },
+ {
+ "label": "test_stocks_optimization.py",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L1",
+ "community": 518,
+ "norm_label": "test_stocks_optimization.py",
+ "id": "tests_test_stocks_optimization_py"
+ },
+ {
+ "label": "TestTickerIndex",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L17",
+ "community": 518,
+ "norm_label": "testtickerindex",
+ "id": "tests_test_stocks_optimization_testtickerindex"
+ },
+ {
+ "label": ".test_tickerIndex_built_after_cache_load()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L20",
+ "community": 518,
+ "norm_label": ".test_tickerindex_built_after_cache_load()",
+ "id": "tests_test_stocks_optimization_testtickerindex_test_tickerIndex_built_after_cache_load"
+ },
+ {
+ "label": ".test_tickerIndex_contains_all_tickers()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L28",
+ "community": 518,
+ "norm_label": ".test_tickerindex_contains_all_tickers()",
+ "id": "tests_test_stocks_optimization_testtickerindex_test_tickerIndex_contains_all_tickers"
+ },
+ {
+ "label": ".test_tickerIndex_case_insensitive()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L38",
+ "community": 518,
+ "norm_label": ".test_tickerindex_case_insensitive()",
+ "id": "tests_test_stocks_optimization_testtickerindex_test_tickerIndex_case_insensitive"
+ },
+ {
+ "label": ".test_ticker_lookup_returns_valid_index()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L47",
+ "community": 518,
+ "norm_label": ".test_ticker_lookup_returns_valid_index()",
+ "id": "tests_test_stocks_optimization_testtickerindex_test_ticker_lookup_returns_valid_index"
+ },
+ {
+ "label": ".test_tickerIndex_rebuilt_on_cache_refresh()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L58",
+ "community": 518,
+ "norm_label": ".test_tickerindex_rebuilt_on_cache_refresh()",
+ "id": "tests_test_stocks_optimization_testtickerindex_test_tickerIndex_rebuilt_on_cache_refresh"
+ },
+ {
+ "label": "TestQueryCaching",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L72",
+ "community": 183,
+ "norm_label": "testquerycaching",
+ "id": "tests_test_stocks_optimization_testquerycaching"
+ },
+ {
+ "label": ".test_cache_manager_has_caches_method()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L75",
+ "community": 183,
+ "norm_label": ".test_cache_manager_has_caches_method()",
+ "id": "tests_test_stocks_optimization_testquerycaching_test_cache_manager_has_caches_method"
+ },
+ {
+ "label": ".test_queryCache_ttl_configuration()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L83",
+ "community": 183,
+ "norm_label": ".test_querycache_ttl_configuration()",
+ "id": "tests_test_stocks_optimization_testquerycaching_test_queryCache_ttl_configuration"
+ },
+ {
+ "label": ".test_get_cached_stocks_respects_columns_parameter()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L91",
+ "community": 183,
+ "norm_label": ".test_get_cached_stocks_respects_columns_parameter()",
+ "id": "tests_test_stocks_optimization_testquerycaching_test_get_cached_stocks_respects_columns_parameter"
+ },
+ {
+ "label": ".test_different_queries_not_cached()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L101",
+ "community": 183,
+ "norm_label": ".test_different_queries_not_cached()",
+ "id": "tests_test_stocks_optimization_testquerycaching_test_different_queries_not_cached"
+ },
+ {
+ "label": ".test_cache_expiry_after_ttl()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L105",
+ "community": 183,
+ "norm_label": ".test_cache_expiry_after_ttl()",
+ "id": "tests_test_stocks_optimization_testquerycaching_test_cache_expiry_after_ttl"
+ },
+ {
+ "label": "TestConnectionPool",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
"source_location": "L111",
+ "community": 518,
+ "norm_label": "testconnectionpool",
+ "id": "tests_test_stocks_optimization_testconnectionpool"
+ },
+ {
+ "label": ".test_stocks_engine_has_pool_configuration()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L114",
+ "community": 518,
+ "norm_label": ".test_stocks_engine_has_pool_configuration()",
+ "id": "tests_test_stocks_optimization_testconnectionpool_test_stocks_engine_has_pool_configuration"
+ },
+ {
+ "label": "TestLazyDeserialization",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L123",
+ "community": 518,
+ "norm_label": "testlazydeserialization",
+ "id": "tests_test_stocks_optimization_testlazydeserialization"
+ },
+ {
+ "label": ".test_query_manager_has_deserialize_method()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L126",
+ "community": 518,
+ "norm_label": ".test_query_manager_has_deserialize_method()",
+ "id": "tests_test_stocks_optimization_testlazydeserialization_test_query_manager_has_deserialize_method"
+ },
+ {
+ "label": "TestQueryOptimization",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L137",
+ "community": 518,
+ "norm_label": "testqueryoptimization",
+ "id": "tests_test_stocks_optimization_testqueryoptimization"
+ },
+ {
+ "label": ".test_all_optimizations_present()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L140",
+ "community": 518,
+ "norm_label": ".test_all_optimizations_present()",
+ "id": "tests_test_stocks_optimization_testqueryoptimization_test_all_optimizations_present"
+ },
+ {
+ "label": ".test_query_filter_uses_optimization()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L155",
+ "community": 518,
+ "norm_label": ".test_query_filter_uses_optimization()",
+ "id": "tests_test_stocks_optimization_testqueryoptimization_test_query_filter_uses_optimization"
+ },
+ {
+ "label": "TestPerformanceBenchmarks",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L173",
+ "community": 42,
+ "norm_label": "testperformancebenchmarks",
+ "id": "tests_test_stocks_optimization_testperformancebenchmarks"
+ },
+ {
+ "label": ".test_tickerIndex_lookup_performance()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L176",
+ "community": 42,
+ "norm_label": ".test_tickerindex_lookup_performance()",
+ "id": "tests_test_stocks_optimization_testperformancebenchmarks_test_tickerIndex_lookup_performance"
+ },
+ {
+ "label": ".test_prefix_scan_performance()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L196",
+ "community": 42,
+ "norm_label": ".test_prefix_scan_performance()",
+ "id": "tests_test_stocks_optimization_testperformancebenchmarks_test_prefix_scan_performance"
+ },
+ {
+ "label": ".test_index_lookup_vs_scan_comparison()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L216",
+ "community": 42,
+ "norm_label": ".test_index_lookup_vs_scan_comparison()",
+ "id": "tests_test_stocks_optimization_testperformancebenchmarks_test_index_lookup_vs_scan_comparison"
+ },
+ {
+ "label": ".test_queryCache_performance()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L246",
+ "community": 42,
+ "norm_label": ".test_querycache_performance()",
+ "id": "tests_test_stocks_optimization_testperformancebenchmarks_test_queryCache_performance"
+ },
+ {
+ "label": ".test_column_projection_performance()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L268",
+ "community": 42,
+ "norm_label": ".test_column_projection_performance()",
+ "id": "tests_test_stocks_optimization_testperformancebenchmarks_test_column_projection_performance"
+ },
+ {
+ "label": ".test_cache_initialization_time()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L283",
+ "community": 42,
+ "norm_label": ".test_cache_initialization_time()",
+ "id": "tests_test_stocks_optimization_testperformancebenchmarks_test_cache_initialization_time"
+ },
+ {
+ "label": "TestFilterBySearchTerms",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L301",
+ "community": 563,
+ "norm_label": "testfilterbysearchterms",
+ "id": "tests_test_stocks_optimization_testfilterbysearchterms"
+ },
+ {
+ "label": ".test_filter_with_tickerIndex()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L304",
+ "community": 563,
+ "norm_label": ".test_filter_with_tickerindex()",
+ "id": "tests_test_stocks_optimization_testfilterbysearchterms_test_filter_with_tickerIndex"
+ },
+ {
+ "label": "TestQueryPerformance",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L310",
+ "community": 524,
+ "norm_label": "testqueryperformance",
+ "id": "tests_test_stocks_optimization_testqueryperformance"
+ },
+ {
+ "label": ".test_query_response_time_under_1_second()",
+ "file_type": "code",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L313",
+ "community": 524,
+ "norm_label": ".test_query_response_time_under_1_second()",
+ "id": "tests_test_stocks_optimization_testqueryperformance_test_query_response_time_under_1_second"
+ },
+ {
+ "label": "Tests for dynamic ticker index feature",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L18",
+ "community": 518,
+ "norm_label": "tests for dynamic ticker index feature",
+ "id": "tests_test_stocks_optimization_rationale_18"
+ },
+ {
+ "label": "Ticker index should be built when cache is loaded",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L21",
+ "community": 518,
+ "norm_label": "ticker index should be built when cache is loaded",
+ "id": "tests_test_stocks_optimization_rationale_21"
+ },
+ {
+ "label": "Ticker index should contain all tickers from cache",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L29",
+ "community": 518,
+ "norm_label": "ticker index should contain all tickers from cache",
+ "id": "tests_test_stocks_optimization_rationale_29"
+ },
+ {
+ "label": "Ticker index should be case-insensitive",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L39",
+ "community": 518,
+ "norm_label": "ticker index should be case-insensitive",
+ "id": "tests_test_stocks_optimization_rationale_39"
+ },
+ {
+ "label": "Looking up ticker should return valid row index",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L48",
+ "community": 518,
+ "norm_label": "looking up ticker should return valid row index",
+ "id": "tests_test_stocks_optimization_rationale_48"
+ },
+ {
+ "label": "Ticker index should be rebuilt when cache refreshes",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L59",
+ "community": 518,
+ "norm_label": "ticker index should be rebuilt when cache refreshes",
+ "id": "tests_test_stocks_optimization_rationale_59"
+ },
+ {
+ "label": "Tests for query result caching",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L73",
+ "community": 183,
+ "norm_label": "tests for query result caching",
+ "id": "tests_test_stocks_optimization_rationale_73"
+ },
+ {
+ "label": "CacheManager should track cached queries",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L76",
+ "community": 183,
+ "norm_label": "cachemanager should track cached queries",
+ "id": "tests_test_stocks_optimization_rationale_76"
+ },
+ {
+ "label": "Query cache should have configurable TTL",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L84",
+ "community": 183,
+ "norm_label": "query cache should have configurable ttl",
+ "id": "tests_test_stocks_optimization_rationale_84"
+ },
+ {
+ "label": "getCachedStocks should support column filtering",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L92",
+ "community": 183,
+ "norm_label": "getcachedstocks should support column filtering",
+ "id": "tests_test_stocks_optimization_rationale_92"
+ },
+ {
+ "label": "Different query parameters should not share cache",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L102",
+ "community": 183,
+ "norm_label": "different query parameters should not share cache",
+ "id": "tests_test_stocks_optimization_rationale_102"
+ },
+ {
+ "label": "Cache should expire after TTL",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L106",
+ "community": 183,
+ "norm_label": "cache should expire after ttl",
+ "id": "tests_test_stocks_optimization_rationale_106"
+ },
+ {
+ "label": "Tests for connection pool configuration",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L112",
+ "community": 518,
+ "norm_label": "tests for connection pool configuration",
+ "id": "tests_test_stocks_optimization_rationale_112"
+ },
+ {
+ "label": "Stocks engine should have optimized pool settings",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L115",
+ "community": 518,
+ "norm_label": "stocks engine should have optimized pool settings",
+ "id": "tests_test_stocks_optimization_rationale_115"
+ },
+ {
+ "label": "Tests for lazy JSON deserialization",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L124",
+ "community": 518,
+ "norm_label": "tests for lazy json deserialization",
+ "id": "tests_test_stocks_optimization_rationale_124"
+ },
+ {
+ "label": "Query manager should have deserialize method",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L127",
+ "community": 518,
+ "norm_label": "query manager should have deserialize method",
+ "id": "tests_test_stocks_optimization_rationale_127"
+ },
+ {
+ "label": "Integration tests for all query optimizations",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L138",
+ "community": 518,
+ "norm_label": "integration tests for all query optimizations",
+ "id": "tests_test_stocks_optimization_rationale_138"
+ },
+ {
+ "label": "All optimizations should be implemented",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L141",
+ "community": 518,
+ "norm_label": "all optimizations should be implemented",
+ "id": "tests_test_stocks_optimization_rationale_141"
+ },
+ {
+ "label": "Query filter should use ticker index",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L156",
+ "community": 518,
+ "norm_label": "query filter should use ticker index",
+ "id": "tests_test_stocks_optimization_rationale_156"
+ },
+ {
+ "label": "Performance benchmark tests for stocks API",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L174",
+ "community": 42,
+ "norm_label": "performance benchmark tests for stocks api",
+ "id": "tests_test_stocks_optimization_rationale_174"
+ },
+ {
+ "label": "Ticker index lookup should be O(1) - very fast",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L177",
+ "community": 42,
+ "norm_label": "ticker index lookup should be o(1) - very fast",
+ "id": "tests_test_stocks_optimization_rationale_177"
+ },
+ {
+ "label": "Prefix scan should be much slower than index lookup",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L197",
+ "community": 42,
+ "norm_label": "prefix scan should be much slower than index lookup",
+ "id": "tests_test_stocks_optimization_rationale_197"
+ },
+ {
+ "label": "Index lookup should be significantly faster than scan",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L217",
+ "community": 42,
+ "norm_label": "index lookup should be significantly faster than scan",
+ "id": "tests_test_stocks_optimization_rationale_217"
+ },
+ {
+ "label": "Query cache should avoid recomputation",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L247",
+ "community": 42,
+ "norm_label": "query cache should avoid recomputation",
+ "id": "tests_test_stocks_optimization_rationale_247"
+ },
+ {
+ "label": "Column projection should reduce memory and time",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L269",
+ "community": 42,
+ "norm_label": "column projection should reduce memory and time",
+ "id": "tests_test_stocks_optimization_rationale_269"
+ },
+ {
+ "label": "Cache initialization should complete in reasonable time",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L284",
+ "community": 42,
+ "norm_label": "cache initialization should complete in reasonable time",
+ "id": "tests_test_stocks_optimization_rationale_284"
+ },
+ {
+ "label": "Tests for optimized search filtering",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L302",
+ "community": 563,
+ "norm_label": "tests for optimized search filtering",
+ "id": "tests_test_stocks_optimization_rationale_302"
+ },
+ {
+ "label": "Filter should use ticker index for O(1) lookup",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L305",
+ "community": 563,
+ "norm_label": "filter should use ticker index for o(1) lookup",
+ "id": "tests_test_stocks_optimization_rationale_305"
+ },
+ {
+ "label": "Performance tests for query operations",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L311",
+ "community": 524,
+ "norm_label": "performance tests for query operations",
+ "id": "tests_test_stocks_optimization_rationale_311"
+ },
+ {
+ "label": "Query should respond within 1 second",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L314",
+ "community": 524,
+ "norm_label": "query should respond within 1 second",
+ "id": "tests_test_stocks_optimization_rationale_314"
+ },
+ {
+ "label": "Get cached stocks data with optional column filtering.",
+ "file_type": "rationale",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L33",
+ "community": 82,
+ "norm_label": "get cached stocks data with optional column filtering.",
+ "id": "stocks_api_cache_rationale_33"
+ },
+ {
+ "label": "Tests for optimized search filtering",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L173",
+ "community": 563,
+ "norm_label": "tests for optimized search filtering",
+ "id": "tests_test_stocks_optimization_rationale_173"
+ },
+ {
+ "label": "Filter should use ticker index for O(1) lookup",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L176",
+ "community": 563,
+ "norm_label": "filter should use ticker index for o(1) lookup",
+ "id": "tests_test_stocks_optimization_rationale_176"
+ },
+ {
+ "label": "Performance tests for query operations",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L182",
+ "community": 524,
+ "norm_label": "performance tests for query operations",
+ "id": "tests_test_stocks_optimization_rationale_182"
+ },
+ {
+ "label": "Query should respond within 1 second",
+ "file_type": "rationale",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L185",
+ "community": 524,
+ "norm_label": "query should respond within 1 second",
+ "id": "tests_test_stocks_optimization_rationale_185"
+ },
+ {
+ "label": "Config",
+ "file_type": "code",
+ "source_file": "config.py",
+ "source_location": 109,
+ "community": 467,
+ "norm_label": "config",
+ "id": "config_Config"
+ },
+ {
+ "label": "MySQL Engine (user_db)",
+ "file_type": "code",
+ "source_file": "config.py",
+ "source_location": 120,
+ "community": 258,
+ "norm_label": "mysql engine (user_db)",
+ "id": "config_engine"
+ },
+ {
+ "label": "MySQL Engine (stocks_db)",
+ "file_type": "code",
+ "source_file": "config.py",
+ "source_location": 130,
+ "community": 258,
+ "norm_label": "mysql engine (stocks_db)",
+ "id": "config_stocksEngine"
+ },
+ {
+ "label": "AuthenticationManager",
+ "file_type": "code",
+ "source_file": "main/app/authentication/authentication.py",
+ "source_location": 13,
+ "community": 97,
+ "norm_label": "authenticationmanager",
+ "id": "AuthenticationManager"
+ },
+ {
+ "label": "SessionManager",
+ "file_type": "code",
+ "source_file": "main/app/authentication/session.py",
+ "source_location": 11,
+ "community": 97,
+ "norm_label": "sessionmanager",
+ "id": "SessionManager"
+ },
+ {
+ "label": "Auth Utilities (JWT/Password)",
+ "file_type": "code",
+ "source_file": "main/app/authentication/util.py",
+ "source_location": 1,
+ "community": 97,
+ "norm_label": "auth utilities (jwt/password)",
+ "id": "auth_util"
+ },
+ {
+ "label": "Auth Constants",
+ "file_type": "code",
+ "source_file": "main/app/authentication/constants.py",
+ "source_location": 1,
+ "community": 468,
+ "norm_label": "auth constants",
+ "id": "auth_constants"
+ },
+ {
+ "label": "Google SSO Factory",
+ "file_type": "code",
+ "source_file": "main/app/authentication/sso.py",
+ "source_location": 5,
+ "community": 97,
+ "norm_label": "google sso factory",
+ "id": "getGoogleSSO"
+ },
+ {
+ "label": "UserManager",
+ "file_type": "code",
+ "source_file": "main/app/user/user.py",
+ "source_location": 9,
+ "community": 97,
+ "norm_label": "usermanager",
+ "id": "UserManager"
+ },
+ {
+ "label": "PrometheusChatManager",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/chat.py",
+ "source_location": 10,
+ "community": 97,
+ "norm_label": "prometheuschatmanager",
+ "id": "PrometheusChatManager"
+ },
+ {
+ "label": "PrometheusGenerator",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/generation.py",
+ "source_location": 20,
+ "community": 97,
+ "norm_label": "prometheusgenerator",
+ "id": "PrometheusGenerator"
+ },
+ {
+ "label": "StocksCacheManager",
+ "file_type": "code",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": 12,
+ "community": 265,
+ "norm_label": "stockscachemanager",
+ "id": "stocksCache"
+ },
+ {
+ "label": "StocksQueryManager",
+ "file_type": "code",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": 14,
+ "community": 97,
+ "norm_label": "stocksquerymanager",
+ "id": "stocksQuery"
+ },
+ {
+ "label": "API Key Verifier",
+ "file_type": "code",
+ "source_file": "main/app/stocks_api/key.py",
+ "source_location": 14,
+ "community": 97,
+ "norm_label": "api key verifier",
+ "id": "verifyAPIKey"
+ },
+ {
+ "label": "B3Scraper",
+ "file_type": "code",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": 31,
+ "community": 264,
+ "norm_label": "b3scraper",
+ "id": "B3Scraper"
+ },
+ {
+ "label": "Authentication Controller",
+ "file_type": "code",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": 1,
+ "community": 97,
+ "norm_label": "authentication controller",
+ "id": "auth_controller"
+ },
+ {
+ "label": "Prometheus Controller",
+ "file_type": "code",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": 1,
+ "community": 97,
+ "norm_label": "prometheus controller",
+ "id": "prometheus_controller"
+ },
+ {
+ "label": "Stocks API Controller",
+ "file_type": "code",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": 1,
+ "community": 97,
+ "norm_label": "stocks api controller",
+ "id": "stocksapi_controller"
+ },
+ {
+ "label": "User Controller",
+ "file_type": "code",
+ "source_file": "main/controller/user_controller.py",
+ "source_location": 1,
+ "community": 97,
+ "norm_label": "user controller",
+ "id": "user_controller"
+ },
+ {
+ "label": "Base SQLAlchemy declarative base",
+ "file_type": "code",
+ "source_file": "main/models/base.py",
+ "community": 218,
+ "norm_label": "base sqlalchemy declarative base",
+ "id": "Base"
+ },
+ {
+ "label": "PrometheusSession model",
+ "file_type": "code",
+ "source_file": "main/models/prometheus.py",
+ "community": 218,
+ "norm_label": "prometheussession model",
+ "id": "PrometheusSession"
+ },
+ {
+ "label": "StocksAPIKey model",
+ "file_type": "code",
+ "source_file": "main/models/stocksapi_key.py",
+ "community": 218,
+ "norm_label": "stocksapikey model",
+ "id": "StocksAPIKey"
+ },
+ {
+ "label": "User model",
+ "file_type": "code",
+ "source_file": "main/models/user.py",
+ "community": 218,
+ "norm_label": "user model",
+ "id": "User"
+ },
+ {
+ "label": "UserSession model",
+ "file_type": "code",
+ "source_file": "main/models/user_session.py",
+ "community": 218,
+ "norm_label": "usersession model",
+ "id": "UserSession"
+ },
+ {
+ "label": "AuthenticationService",
+ "file_type": "code",
+ "source_file": "main/service/authentication_service.py",
+ "community": 97,
+ "norm_label": "authenticationservice",
+ "id": "AuthenticationService"
+ },
+ {
+ "label": "PrometheusService",
+ "file_type": "code",
+ "source_file": "main/service/prometheus_service.py",
+ "community": 97,
+ "norm_label": "prometheusservice",
+ "id": "PrometheusService"
+ },
+ {
+ "label": "ScraperService",
+ "file_type": "code",
+ "source_file": "main/service/scraper_service.py",
+ "community": 264,
+ "norm_label": "scraperservice",
+ "id": "ScraperService"
+ },
+ {
+ "label": "StocksAPIService",
+ "file_type": "code",
+ "source_file": "main/service/stocksapi_service.py",
+ "community": 265,
+ "norm_label": "stocksapiservice",
+ "id": "StocksAPIService"
+ },
+ {
+ "label": "UserService",
+ "file_type": "code",
+ "source_file": "main/service/user_service.py",
+ "community": 97,
+ "norm_label": "userservice",
+ "id": "UserService"
+ },
+ {
+ "label": "checkMySqlConnection",
+ "file_type": "code",
+ "source_file": "main/utils/connectivity.py",
+ "community": 258,
+ "norm_label": "checkmysqlconnection",
+ "id": "checkMySqlConnection"
+ },
+ {
+ "label": "checkServiceConnection",
+ "file_type": "code",
+ "source_file": "main/utils/connectivity.py",
+ "community": 469,
+ "norm_label": "checkserviceconnection",
+ "id": "checkServiceConnection"
+ },
+ {
+ "label": "Mansa Server",
+ "file_type": "document",
+ "source_file": "README.md",
+ "community": 71,
+ "norm_label": "mansa server",
+ "id": "mansa_server"
+ },
+ {
+ "label": "FastAPI",
+ "file_type": "rationale",
+ "source_file": "README.md",
+ "community": 500,
+ "norm_label": "fastapi",
+ "id": "fastapi"
+ },
+ {
+ "label": "B3 Scraper",
+ "file_type": "document",
+ "source_file": "docs/scraper_b3.md",
+ "community": 71,
+ "norm_label": "b3 scraper",
+ "id": "b3_scraper"
+ },
+ {
+ "label": "USER Service",
+ "file_type": "document",
+ "source_file": "AGENTS.md",
+ "community": 71,
+ "norm_label": "user service",
+ "id": "user_service"
+ },
+ {
+ "label": "STOCKS_API Service",
+ "file_type": "document",
+ "source_file": "AGENTS.md",
+ "community": 71,
+ "norm_label": "stocks_api service",
+ "id": "stocks_api"
+ },
+ {
+ "label": "Prometheus AI",
+ "file_type": "document",
+ "source_file": "docs/prometheus.md",
+ "community": 71,
+ "norm_label": "prometheus ai",
+ "id": "prometheus"
+ },
+ {
+ "label": "Authentication System",
+ "file_type": "document",
+ "source_file": "docs/authentication.md",
+ "community": 495,
+ "norm_label": "authentication system",
+ "id": "authentication"
+ },
+ {
+ "label": "JWT Authentication",
+ "file_type": "rationale",
+ "source_file": "docs/authentication.md",
+ "community": 495,
+ "norm_label": "jwt authentication",
+ "id": "jwt"
+ },
+ {
+ "label": "Google OAuth",
+ "file_type": "rationale",
+ "source_file": "docs/authentication.md",
+ "community": 495,
+ "norm_label": "google oauth",
+ "id": "google_oauth"
+ },
+ {
+ "label": "Session Management",
+ "file_type": "rationale",
+ "source_file": "docs/authentication.md",
+ "community": 470,
+ "norm_label": "session management",
+ "id": "session_management"
+ },
+ {
+ "label": "MySQL Database",
+ "file_type": "document",
+ "source_file": "docker-compose.yml",
+ "community": 71,
+ "norm_label": "mysql database",
+ "id": "mysql"
+ },
+ {
+ "label": "user_db",
+ "file_type": "rationale",
+ "source_file": "AGENTS.md",
+ "community": 71,
+ "norm_label": "user_db",
+ "id": "user_db"
+ },
+ {
+ "label": "stocks_db",
+ "file_type": "rationale",
+ "source_file": "AGENTS.md",
+ "community": 71,
+ "norm_label": "stocks_db",
+ "id": "stocks_db"
+ },
+ {
+ "label": "User Roles System",
+ "file_type": "rationale",
+ "source_file": "docs/user.md",
+ "community": 71,
+ "norm_label": "user roles system",
+ "id": "user_roles"
+ },
+ {
+ "label": "API Key System",
+ "file_type": "rationale",
+ "source_file": "docs/stocks_api.md",
+ "community": 71,
+ "norm_label": "api key system",
+ "id": "api_key_system"
+ },
+ {
+ "label": "RAG Architecture",
+ "file_type": "rationale",
+ "source_file": "docs/prometheus.md",
+ "community": 71,
+ "norm_label": "rag architecture",
+ "id": "rag_architecture"
+ },
+ {
+ "label": "Gemini Model",
+ "file_type": "rationale",
+ "source_file": "docs/prometheus.md",
+ "community": 71,
+ "norm_label": "gemini model",
+ "id": "gemini_model"
+ },
+ {
+ "label": "Docker Deployment",
+ "file_type": "document",
+ "source_file": "docker-compose.yml",
+ "community": 471,
+ "norm_label": "docker deployment",
+ "id": "docker"
+ },
+ {
+ "label": "Ruff Linter",
+ "file_type": "rationale",
+ "source_file": "pyproject.toml",
+ "community": 472,
+ "norm_label": "ruff linter",
+ "id": "ruff"
+ },
+ {
+ "label": "Pytest Testing",
+ "file_type": "rationale",
+ "source_file": "pyproject.toml",
+ "community": 132,
+ "norm_label": "pytest testing",
+ "id": "pytest"
+ },
+ {
+ "label": "Mypy Typecheck",
+ "file_type": "rationale",
+ "source_file": "AGENTS.md",
+ "community": 473,
+ "norm_label": "mypy typecheck",
+ "id": "mypy"
+ },
+ {
+ "label": "Permission System",
+ "file_type": "rationale",
+ "source_file": "docs/user.md",
+ "community": 71,
+ "norm_label": "permission system",
+ "id": "permission_system"
+ },
+ {
+ "label": "Ma'at Stock Algorithm",
+ "file_type": "rationale",
+ "source_file": "TODO.md",
+ "community": 71,
+ "norm_label": "ma'at stock algorithm",
+ "id": "ma_at"
+ },
+ {
+ "label": "Thoth Wallet Management",
+ "file_type": "rationale",
+ "source_file": "TODO.md",
+ "community": 71,
+ "norm_label": "thoth wallet management",
+ "id": "thoth"
+ },
+ {
+ "label": "Ogum Algo Trading",
+ "file_type": "rationale",
+ "source_file": "TODO.md",
+ "community": 71,
+ "norm_label": "ogum algo trading",
+ "id": "ogum"
+ },
+ {
+ "label": "Fundamental Data",
+ "file_type": "rationale",
+ "source_file": "docs/stocks_api.md",
+ "community": 71,
+ "norm_label": "fundamental data",
+ "id": "fundamental_data"
+ },
+ {
+ "label": "Historical Data",
+ "file_type": "rationale",
+ "source_file": "docs/stocks_api.md",
+ "community": 71,
+ "norm_label": "historical data",
+ "id": "historical_data"
+ },
+ {
+ "label": "Value Investing",
+ "file_type": "rationale",
+ "source_file": "docs/stocks_api.md",
+ "community": 71,
+ "norm_label": "value investing",
+ "id": "value_investing"
+ }
+ ],
+ "links": [
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "benchmark_latency.py",
+ "source_location": "L20",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "benchmark_latency_py",
+ "target": "server_benchmark_latency_bench"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "benchmark_latency.py",
+ "source_location": "L35",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "benchmark_latency_py",
+ "target": "server_benchmark_latency_hammer"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "benchmark_latency.py",
+ "source_location": "L46",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "benchmark_latency_py",
+ "target": "server_benchmark_latency_stats"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "benchmark_latency.py",
+ "source_location": "L60",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "benchmark_latency_py",
+ "target": "server_benchmark_latency_main"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "benchmark_latency.py",
+ "source_location": "L75",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_benchmark_latency_main",
+ "target": "server_benchmark_latency_bench"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "benchmark_latency.py",
+ "source_location": "L92",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_benchmark_latency_main",
+ "target": "server_benchmark_latency_stats"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "ci.ps1",
+ "source_location": "L25",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ci_ps1",
+ "target": "server_ci_write_step"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "ci.ps1",
+ "source_location": "L33",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ci_ps1",
+ "target": "server_ci_write_pass"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "ci.ps1",
+ "source_location": "L39",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ci_ps1",
+ "target": "server_ci_write_fail"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "ci.ps1",
+ "source_location": "L48",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ci_ps1",
+ "target": "server_ci_write_fix"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "ci.ps1",
+ "source_location": "L45",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "ci_ps1",
+ "target": "server_ci_run_check"
+ },
+ {
+ "relation": "calls",
+ "confidence": "EXTRACTED",
+ "source_file": "ci.ps1",
+ "source_location": "L47",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_ci_write_step",
+ "target": "server_ci_run_check"
+ },
+ {
+ "relation": "calls",
+ "confidence": "EXTRACTED",
+ "source_file": "ci.ps1",
+ "source_location": "L52",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_ci_write_pass",
+ "target": "server_ci_run_check"
+ },
+ {
+ "relation": "calls",
+ "confidence": "EXTRACTED",
+ "source_file": "ci.ps1",
+ "source_location": "L54",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_ci_write_fail",
+ "target": "server_ci_run_check"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L9",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "config_py",
+ "target": "server_config_applyipv4force"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L29",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "config_py",
+ "target": "server_config_mysqlsettings"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L46",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "config_py",
+ "target": "server_config_usersettings"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L65",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "config_py",
+ "target": "server_config_stocksapisettings"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L79",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "config_py",
+ "target": "server_config_prometheussettings"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L90",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "config_py",
+ "target": "server_config_scrapersettings"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L101",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "config_py",
+ "target": "server_config_discordsettings"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L109",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "config_py",
+ "target": "server_config_config"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L144",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "config_py",
+ "target": "server_config_getsession"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L151",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "config_py",
+ "target": "server_config_getstockssession"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L20",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "config_py",
+ "target": "server_config_basemansasettings"
+ },
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L23",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_config_mysqlsettings",
+ "target": "basesettings"
+ },
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L29",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_config_basemansasettings",
+ "target": "server_config_mysqlsettings"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L43",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_config_mysqlsettings",
+ "target": "server_config_mysqlsettings_getitem"
+ },
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L38",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_config_usersettings",
+ "target": "basesettings"
+ },
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L50",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_config_stocksapisettings",
+ "target": "basesettings"
+ },
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L61",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_config_prometheussettings",
+ "target": "basesettings"
+ },
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L76",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_config_scrapersettings",
+ "target": "basesettings"
+ },
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L85",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_config_discordsettings",
+ "target": "basesettings"
+ },
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L20",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_config_basemansasettings",
+ "target": "basesettings"
+ },
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L46",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_config_basemansasettings",
+ "target": "server_config_usersettings"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L57",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_config_usersettings",
+ "target": "server_config_usersettings_getitem"
+ },
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L65",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_config_basemansasettings",
+ "target": "server_config_stocksapisettings"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L75",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_config_stocksapisettings",
+ "target": "server_config_stocksapisettings_getitem"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_config.py",
+ "source_location": "L2",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "server_config_stocksapisettings",
+ "target": "tests_test_config_testconfig"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_config.py",
+ "source_location": "L7",
+ "weight": 1.0,
+ "source": "server_config_stocksapisettings",
+ "target": "tests_test_config_testconfig_test_stocks_api_getitem"
+ },
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L79",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_config_basemansasettings",
+ "target": "server_config_prometheussettings"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L86",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_config_prometheussettings",
+ "target": "server_config_prometheussettings_getitem"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_config.py",
+ "source_location": "L2",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "server_config_prometheussettings",
+ "target": "tests_test_config_testconfig"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_config.py",
+ "source_location": "L13",
+ "weight": 1.0,
+ "source": "server_config_prometheussettings",
+ "target": "tests_test_config_testconfig_test_prometheus_getitem"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_config_sandbox.py",
+ "source_location": "L2",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "server_config_prometheussettings",
+ "target": "tests_test_config_sandbox_testsandboxconfig"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_config_sandbox.py",
+ "source_location": "L7",
+ "weight": 1.0,
+ "source": "server_config_prometheussettings",
+ "target": "tests_test_config_sandbox_testsandboxconfig_test_sandbox_defaults"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_config_sandbox.py",
+ "source_location": "L14",
+ "weight": 1.0,
+ "source": "server_config_prometheussettings",
+ "target": "tests_test_config_sandbox_testsandboxconfig_test_sandbox_fields_exist"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_config_sandbox.py",
+ "source_location": "L22",
+ "weight": 1.0,
+ "source": "server_config_prometheussettings",
+ "target": "tests_test_config_sandbox_testsandboxconfig_test_sandbox_types"
+ },
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L90",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_config_basemansasettings",
+ "target": "server_config_scrapersettings"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L98",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_config_scrapersettings",
+ "target": "server_config_scrapersettings_getitem"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_config.py",
+ "source_location": "L2",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "server_config_scrapersettings",
+ "target": "tests_test_config_testconfig"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_config.py",
+ "source_location": "L18",
+ "weight": 1.0,
+ "source": "server_config_scrapersettings",
+ "target": "tests_test_config_testconfig_test_scraper_getitem"
+ },
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L101",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_config_basemansasettings",
+ "target": "server_config_discordsettings"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "config.py",
+ "source_location": "L106",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_config_discordsettings",
+ "target": "server_config_discordsettings_getitem"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L2",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "server_config_config",
+ "target": "prometheus_agent_prometheus"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L52",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_compact_prometheuscompactor",
+ "target": "server_config_config"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/mcp.py",
+ "source_location": "L8",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_mcp_mcpclientpool",
+ "target": "server_config_config"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L38",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "server_config_config"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L14",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "server_config_config",
+ "target": "prometheus_sandbox_sandboxmanager"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L2",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "server_config_config",
+ "target": "scraper_b3_scraper_b3scraper"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/service/authentication_service.py",
+ "source_location": "L2",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "server_config_config",
+ "target": "service_authentication_service_authenticationservice"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/service/scraper_service.py",
+ "source_location": "L7",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "server_config_config",
+ "target": "service_scraper_service_scraperservice"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/utils/logging_config.py",
+ "source_location": "L6",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "server_config_config",
+ "target": "utils_logging_config_discordhandler"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L53",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_compact_fieldregistry",
+ "target": "server_config_config"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/utils/service_manager.py",
+ "source_location": "L3",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "server_config_config",
+ "target": "utils_service_manager_servicemanager"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/_summarizer_legacy.py",
+ "source_location": "L11",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_summarizer_legacy_prometheussummarizer",
+ "target": "server_config_config"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/summarizer.py",
+ "source_location": "L12",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_summarizer_prometheussummarizer",
+ "target": "server_config_config"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_config.py",
+ "source_location": "L2",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "server_config_config",
+ "target": "tests_test_config_testconfig"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/generation.py",
+ "source_location": "L2",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "server_config_config",
+ "target": "prometheus_generation_prometheusgenerator"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/generation.py",
+ "source_location": "L2",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "server_config_config",
+ "target": "prometheus_generation_sessionproxy"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "run.py",
+ "source_location": "L2",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "run_py",
+ "target": "fastapi"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "run.py",
+ "source_location": "L21",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "run_py",
+ "target": "server_run_lifespan"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "run.py",
+ "source_location": "L64",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "run_py",
+ "target": "server_run_health"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "run.py",
+ "source_location": "L81",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "run_py",
+ "target": "server_run_status"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "run.py",
+ "source_location": "L76",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "run_py",
+ "target": "server_run_triggerscraper"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "run.py",
+ "source_location": "L29",
+ "weight": 1.0,
+ "source": "server_run_lifespan",
+ "target": "utils_connectivity_checkdatabaseconnection"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "run.py",
+ "source_location": "L30",
+ "weight": 1.0,
+ "source": "server_run_lifespan",
+ "target": "utils_roles_all"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "run.py",
+ "source_location": "L32",
+ "weight": 1.0,
+ "source": "server_run_lifespan",
+ "target": "utils_migrator_runmigrations"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "run.py",
+ "source_location": "L39",
+ "weight": 1.0,
+ "source": "server_run_lifespan",
+ "target": "utils_connectivity_checkserviceconnection"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "run.py",
+ "source_location": "L66",
+ "weight": 1.0,
+ "source": "server_run_lifespan",
+ "target": "utils_service_manager_runall"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "run.py",
+ "source_location": "L24",
+ "weight": 1.0,
+ "source": "server_run_lifespan",
+ "target": "utils_connectivity_checkmysqlconnection"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "run.py",
+ "source_location": "L88",
+ "weight": 1.0,
+ "source": "server_run_status",
+ "target": "utils_connectivity_checkdatabaseconnection"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "run.py",
+ "source_location": "L109",
+ "weight": 1.0,
+ "source": "server_run_status",
+ "target": "utils_roles_all"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "run.py",
+ "source_location": "L88",
+ "weight": 1.0,
+ "source": "server_run_status",
+ "target": "utils_connectivity_checkmysqlconnection"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "run.py",
+ "source_location": "L90",
+ "weight": 1.0,
+ "source": "server_run_status",
+ "target": "utils_connectivity_checksingledb"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/components.json",
+ "source_location": "L2",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_components_json",
+ "target": "frontend_components_schema"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/components.json",
+ "source_location": "L3",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_components_json",
+ "target": "frontend_components_style"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/components.json",
+ "source_location": "L4",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_components_json",
+ "target": "frontend_components_rsc"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/components.json",
+ "source_location": "L5",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_components_json",
+ "target": "frontend_components_tsx"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/components.json",
+ "source_location": "L6",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_components_json",
+ "target": "frontend_components_tailwind"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/components.json",
+ "source_location": "L13",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_components_json",
+ "target": "frontend_components_iconlibrary"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/components.json",
+ "source_location": "L14",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_components_json",
+ "target": "frontend_components_rtl"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/components.json",
+ "source_location": "L15",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_components_json",
+ "target": "frontend_components_aliases"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/components.json",
+ "source_location": "L22",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_components_json",
+ "target": "frontend_components_menucolor"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/components.json",
+ "source_location": "L23",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_components_json",
+ "target": "frontend_components_menuaccent"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/components.json",
+ "source_location": "L24",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_components_json",
+ "target": "frontend_components_registries"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/components.json",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_components_tailwind",
+ "target": "frontend_components_tailwind_config"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/components.json",
+ "source_location": "L8",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_components_tailwind",
+ "target": "frontend_components_tailwind_css"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/components.json",
+ "source_location": "L9",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_components_tailwind",
+ "target": "frontend_components_tailwind_basecolor"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/components.json",
+ "source_location": "L10",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_components_tailwind",
+ "target": "frontend_components_tailwind_cssvariables"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/components.json",
+ "source_location": "L11",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_components_tailwind",
+ "target": "frontend_components_tailwind_prefix"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/components.json",
+ "source_location": "L16",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_components_aliases",
+ "target": "frontend_components_aliases_components"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/components.json",
+ "source_location": "L17",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_components_aliases",
+ "target": "frontend_components_aliases_utils"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/components.json",
+ "source_location": "L18",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_components_aliases",
+ "target": "frontend_components_aliases_ui"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/components.json",
+ "source_location": "L19",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_components_aliases",
+ "target": "frontend_components_aliases_lib"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/components.json",
+ "source_location": "L20",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_components_aliases",
+ "target": "frontend_components_aliases_hooks"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/jsconfig.json",
+ "source_location": "L2",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_jsconfig_json",
+ "target": "frontend_jsconfig_compileroptions"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/jsconfig.json",
+ "source_location": "L3",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_jsconfig_compileroptions",
+ "target": "frontend_jsconfig_compileroptions_baseurl"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/jsconfig.json",
+ "source_location": "L4",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_jsconfig_compileroptions",
+ "target": "frontend_jsconfig_compileroptions_paths"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/jsconfig.json",
+ "source_location": "L5",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_jsconfig_compileroptions_paths",
+ "target": "frontend_jsconfig_paths"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/test-setup.js",
+ "source_location": "L4",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_test_setup_js",
+ "target": "frontend_test_setup_localstoragemock"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L3",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_authheaders"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L15",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_apifetch"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L24",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_login"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L36",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_register"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L48",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_logout"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L53",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_fetchme"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L75",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_extracthashtoken"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L91",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_googleauthurl"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L95",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_fetchsessions"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L111",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_deletesession"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L95",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_listworkspacefiles"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L105",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_deleteworkspacefile"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L95",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_updatesessiontitle"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L115",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_fetchhistory"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L133",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_fetchwallet"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L142",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_fetchwallethistory"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L151",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_createholding"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L163",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_createlot"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L175",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_createdividend"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L203",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_updatelot"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L215",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_deletelot"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L226",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_updatedividend"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L238",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_deletedividend"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L249",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_updateholdingweight"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L264",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_normalizestockrow"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L276",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_searchstocks"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L288",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_clearstockscache"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L110",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_readeventstream"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L122",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_streamchat"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L170",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_resumechat"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L6",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "frontend_src_app_jsx"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.resume.test.jsx",
+ "source_location": "L15",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_resume_test_jsx",
+ "target": "frontend_src_api_js"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/AuthForm.jsx",
+ "source_location": "L2",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "frontend_src_components_authform_jsx"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/SessionSidebar.jsx",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "frontend_src_components_sessionsidebar_jsx"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/SettingsDialog.jsx",
+ "source_location": "L12",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_settingsdialog_jsx",
+ "target": "frontend_src_api_js"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddDividendDialog.jsx",
+ "source_location": "L5",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_adddividenddialog_jsx",
+ "target": "frontend_src_api_js"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddHoldingDialog.jsx",
+ "source_location": "L5",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_addholdingdialog_jsx",
+ "target": "frontend_src_api_js"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddLotDialog.jsx",
+ "source_location": "L5",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_addlotdialog_jsx",
+ "target": "frontend_src_api_js"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_historylist_jsx",
+ "target": "frontend_src_api_js"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HoldingSearchBox.jsx",
+ "source_location": "L3",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_holdingsearchbox_jsx",
+ "target": "frontend_src_api_js"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HoldingsTable.jsx",
+ "source_location": "L5",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_holdingstable_jsx",
+ "target": "frontend_src_api_js"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/PortfolioView.jsx",
+ "source_location": "L3",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_portfolioview_jsx",
+ "target": "frontend_src_api_js"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L117",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_uploadworkspacefile"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.test.js",
+ "source_location": "L2",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_test_js",
+ "target": "frontend_src_api_js"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L102",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_createsession"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/tests/api.test.js",
+ "source_location": "L2",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "frontend_tests_api_test_js"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L10",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_js",
+ "target": "src_api_getcookie"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L18",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_authheaders",
+ "target": "src_api_apifetch"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L25",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_apifetch",
+ "target": "src_api_login"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L37",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_apifetch",
+ "target": "src_api_register"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L49",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_apifetch",
+ "target": "src_api_logout"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L96",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_apifetch",
+ "target": "src_api_fetchsessions"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L112",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_apifetch",
+ "target": "src_api_deletesession"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L96",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_listworkspacefiles",
+ "target": "src_api_apifetch"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L106",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_deleteworkspacefile",
+ "target": "src_api_apifetch"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L96",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_updatesessiontitle",
+ "target": "src_api_apifetch"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L116",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_apifetch",
+ "target": "src_api_fetchhistory"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L134",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_fetchwallet",
+ "target": "src_api_apifetch"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L143",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_fetchwallethistory",
+ "target": "src_api_apifetch"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L152",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_createholding",
+ "target": "src_api_apifetch"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L164",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_createlot",
+ "target": "src_api_apifetch"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L184",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_createdividend",
+ "target": "src_api_apifetch"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L204",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_updatelot",
+ "target": "src_api_apifetch"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L216",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_deletelot",
+ "target": "src_api_apifetch"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L227",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_updatedividend",
+ "target": "src_api_apifetch"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L239",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_deletedividend",
+ "target": "src_api_apifetch"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L250",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_updateholdingweight",
+ "target": "src_api_apifetch"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L278",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_searchstocks",
+ "target": "src_api_apifetch"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L123",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_apifetch",
+ "target": "src_api_streamchat"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L171",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_resumechat",
+ "target": "src_api_apifetch"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L121",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_uploadworkspacefile",
+ "target": "src_api_apifetch"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L103",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_apifetch",
+ "target": "src_api_createsession"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/AuthForm.jsx",
+ "source_location": "L2",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_login",
+ "target": "frontend_src_components_authform_jsx"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/AuthForm.jsx",
+ "source_location": "L2",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_register",
+ "target": "frontend_src_components_authform_jsx"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L6",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_logout",
+ "target": "frontend_src_app_jsx"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L6",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_fetchme",
+ "target": "frontend_src_app_jsx"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.resume.test.jsx",
+ "source_location": "L15",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_resume_test_jsx",
+ "target": "src_api_fetchme"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L6",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_extracthashtoken",
+ "target": "frontend_src_app_jsx"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.resume.test.jsx",
+ "source_location": "L15",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_resume_test_jsx",
+ "target": "src_api_extracthashtoken"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L83",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_extracthashtoken",
+ "target": "src_api_getcookie"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/AuthForm.jsx",
+ "source_location": "L2",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_googleauthurl",
+ "target": "frontend_src_components_authform_jsx"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "frontend/src/components/AuthForm.jsx",
+ "source_location": "L65",
+ "weight": 1.0,
+ "source": "src_api_googleauthurl",
+ "target": "components_authform_authform"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L6",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_fetchsessions",
+ "target": "frontend_src_app_jsx"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.resume.test.jsx",
+ "source_location": "L15",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_resume_test_jsx",
+ "target": "src_api_fetchsessions"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/SessionSidebar.jsx",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_deletesession",
+ "target": "frontend_src_components_sessionsidebar_jsx"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/SettingsDialog.jsx",
+ "source_location": "L12",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_settingsdialog_jsx",
+ "target": "src_api_listworkspacefiles"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.test.js",
+ "source_location": "L2",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_test_js",
+ "target": "src_api_listworkspacefiles"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/SettingsDialog.jsx",
+ "source_location": "L12",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_settingsdialog_jsx",
+ "target": "src_api_deleteworkspacefile"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.test.js",
+ "source_location": "L2",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_test_js",
+ "target": "src_api_deleteworkspacefile"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/SessionSidebar.jsx",
+ "source_location": "L32",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_sessionsidebar_jsx",
+ "target": "src_api_updatesessiontitle"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L6",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_fetchhistory",
+ "target": "frontend_src_app_jsx"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.resume.test.jsx",
+ "source_location": "L15",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_resume_test_jsx",
+ "target": "src_api_fetchhistory"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/PortfolioView.jsx",
+ "source_location": "L3",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_portfolioview_jsx",
+ "target": "src_api_fetchwallet"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/PortfolioView.jsx",
+ "source_location": "L3",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_portfolioview_jsx",
+ "target": "src_api_fetchwallethistory"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddHoldingDialog.jsx",
+ "source_location": "L5",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_addholdingdialog_jsx",
+ "target": "src_api_createholding"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddLotDialog.jsx",
+ "source_location": "L5",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_addlotdialog_jsx",
+ "target": "src_api_createholding"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddLotDialog.jsx",
+ "source_location": "L5",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_addlotdialog_jsx",
+ "target": "src_api_createlot"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddDividendDialog.jsx",
+ "source_location": "L5",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_adddividenddialog_jsx",
+ "target": "src_api_createdividend"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_historylist_jsx",
+ "target": "src_api_updatelot"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_historylist_jsx",
+ "target": "src_api_deletelot"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_historylist_jsx",
+ "target": "src_api_updatedividend"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_historylist_jsx",
+ "target": "src_api_deletedividend"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HoldingsTable.jsx",
+ "source_location": "L5",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_holdingstable_jsx",
+ "target": "src_api_updateholdingweight"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HoldingSearchBox.jsx",
+ "source_location": "L3",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_holdingsearchbox_jsx",
+ "target": "src_api_searchstocks"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L167",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_streamchat",
+ "target": "src_api_readeventstream"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.js",
+ "source_location": "L172",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_resumechat",
+ "target": "src_api_readeventstream"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/api.js",
+ "source_location": "L130",
+ "weight": 1.0,
+ "source": "src_api_readeventstream",
+ "target": "src_api_test_ondone"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/api.js",
+ "source_location": "L140",
+ "weight": 1.0,
+ "source": "src_api_readeventstream",
+ "target": "src_api_test_onsession"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/api.js",
+ "source_location": "L142",
+ "weight": 1.0,
+ "source": "src_api_readeventstream",
+ "target": "src_api_test_onchunk"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/api.js",
+ "source_location": "L156",
+ "weight": 1.0,
+ "source": "src_api_readeventstream",
+ "target": "src_api_test_oncursor"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L6",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_streamchat",
+ "target": "frontend_src_app_jsx"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.resume.test.jsx",
+ "source_location": "L15",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_resume_test_jsx",
+ "target": "src_api_streamchat"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/tests/api.test.js",
+ "source_location": "L2",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_streamchat",
+ "target": "frontend_tests_api_test_js"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/api.js",
+ "source_location": "L128",
+ "weight": 1.0,
+ "source": "src_api_streamchat",
+ "target": "tests_api_test_onerror"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L6",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_jsx",
+ "target": "src_api_resumechat"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.resume.test.jsx",
+ "source_location": "L15",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_resume_test_jsx",
+ "target": "src_api_resumechat"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/api.test.js",
+ "source_location": "L2",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_api_test_js",
+ "target": "src_api_resumechat"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L2",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_jsx",
+ "target": "frontend_src_components_authform_jsx"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L3",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_jsx",
+ "target": "frontend_src_components_sessionsidebar_jsx"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L4",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_jsx",
+ "target": "frontend_src_components_messagelist_jsx"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L5",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_jsx",
+ "target": "frontend_src_components_inputbar_jsx"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L6",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_jsx",
+ "target": "frontend_src_components_portfolio_portfolioview_jsx"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L15",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_jsx",
+ "target": "src_app_settleloopevents"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L42",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_jsx",
+ "target": "src_app_readresume"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L50",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_jsx",
+ "target": "src_app_saveresume"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L54",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_jsx",
+ "target": "src_app_clearresume"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L59",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_jsx",
+ "target": "src_app_clearlastsession"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L63",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_jsx",
+ "target": "src_app_readlastsession"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L71",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_jsx",
+ "target": "src_app_savelastsession"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L16",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_jsx",
+ "target": "src_app_app"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.resume.test.jsx",
+ "source_location": "L3",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_resume_test_jsx",
+ "target": "frontend_src_app_jsx"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/main.jsx",
+ "source_location": "L3",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_jsx",
+ "target": "frontend_src_main_jsx"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L6",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "src_api_createsession",
+ "target": "frontend_src_app_jsx"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.jsx",
+ "source_location": "L6",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_jsx",
+ "target": "frontend_src_components_agentloop_jsx"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/tests/App.test.jsx",
+ "source_location": "L3",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_jsx",
+ "target": "frontend_tests_app_test_jsx"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.resume.test.jsx",
+ "source_location": "L72",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_resume_test_jsx",
+ "target": "src_app_resume_test_sendbtn"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/App.resume.test.jsx",
+ "source_location": "L82",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_app_resume_test_jsx",
+ "target": "src_app_resume_test_textarea"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/AgentLoop.jsx",
+ "source_location": "L27",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_agentloop_jsx",
+ "target": "components_agentloop_agentloop"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/MessageList.jsx",
+ "source_location": "L3",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_agentloop_jsx",
+ "target": "frontend_src_components_messagelist_jsx"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/AgentLoop.jsx",
+ "source_location": "L3",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_agentloop_jsx",
+ "target": "components_agentloop_toolchip"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/AgentLoop.jsx",
+ "source_location": "L3",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_agentloop_jsx",
+ "target": "components_agentloop_toolcard"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/AuthForm.jsx",
+ "source_location": "L4",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_authform_jsx",
+ "target": "components_authform_authform"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/InputBar.jsx",
+ "source_location": "L3",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_inputbar_jsx",
+ "target": "components_inputbar_inputbar"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/MessageList.jsx",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_messagelist_jsx",
+ "target": "components_messagelist_suggestions"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/MessageList.jsx",
+ "source_location": "L4",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_messagelist_jsx",
+ "target": "components_messagelist_messagelist"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/MessageList.jsx",
+ "source_location": "L2",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_mdocmessage_jsx",
+ "target": "frontend_src_components_messagelist_jsx"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/SessionSidebar.jsx",
+ "source_location": "L33",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_sessionsidebar_jsx",
+ "target": "frontend_src_components_settingsdialog_jsx"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/SessionSidebar.jsx",
+ "source_location": "L3",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_sessionsidebar_jsx",
+ "target": "components_sessionsidebar_sessionsidebar"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/SettingsDialog.jsx",
+ "source_location": "L14",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_settingsdialog_jsx",
+ "target": "components_settingsdialog_settingsdialog"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddDividendDialog.jsx",
+ "source_location": "L6",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_adddividenddialog_jsx",
+ "target": "frontend_src_components_portfolio_validation_js"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddDividendDialog.jsx",
+ "source_location": "L6",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_adddividenddialog_jsx",
+ "target": "portfolio_validation_assertdividendtotal"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddDividendDialog.jsx",
+ "source_location": "L6",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_adddividenddialog_jsx",
+ "target": "portfolio_validation_assertnotfuture"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddDividendDialog.jsx",
+ "source_location": "L6",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_adddividenddialog_jsx",
+ "target": "portfolio_validation_cleanstring"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddDividendDialog.jsx",
+ "source_location": "L6",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_adddividenddialog_jsx",
+ "target": "portfolio_validation_parsepositivenumber"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddDividendDialog.jsx",
+ "source_location": "L6",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_adddividenddialog_jsx",
+ "target": "portfolio_validation_todayiso"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddDividendDialog.jsx",
+ "source_location": "L14",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_adddividenddialog_jsx",
+ "target": "portfolio_adddividenddialog_fmtbrl"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddDividendDialog.jsx",
+ "source_location": "L19",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_adddividenddialog_jsx",
+ "target": "portfolio_adddividenddialog_adddividenddialog"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/PortfolioView.jsx",
+ "source_location": "L11",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_portfolioview_jsx",
+ "target": "frontend_src_components_portfolio_adddividenddialog_jsx"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddDividendDialog.jsx",
+ "source_location": "L104",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "portfolio_adddividenddialog_adddividenddialog",
+ "target": "portfolio_adddividenddialog_fmtbrl"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "frontend/src/components/portfolio/AddDividendDialog.jsx",
+ "source_location": "L23",
+ "weight": 1.0,
+ "source": "portfolio_adddividenddialog_adddividenddialog",
+ "target": "portfolio_validation_todayiso"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddHoldingDialog.jsx",
+ "source_location": "L8",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_addholdingdialog_jsx",
+ "target": "portfolio_addholdingdialog_addholdingdialog"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddLotDialog.jsx",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_addlotdialog_jsx",
+ "target": "frontend_src_components_portfolio_validation_js"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddLotDialog.jsx",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_addlotdialog_jsx",
+ "target": "portfolio_validation_assertnotfuture"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddLotDialog.jsx",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_addlotdialog_jsx",
+ "target": "portfolio_validation_assertticker"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddLotDialog.jsx",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_addlotdialog_jsx",
+ "target": "portfolio_validation_cleanstring"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddLotDialog.jsx",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_addlotdialog_jsx",
+ "target": "portfolio_validation_parsepositivenumber"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddLotDialog.jsx",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_addlotdialog_jsx",
+ "target": "portfolio_validation_parseratefraction"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddLotDialog.jsx",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_addlotdialog_jsx",
+ "target": "portfolio_validation_todayiso"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddLotDialog.jsx",
+ "source_location": "L15",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_addlotdialog_jsx",
+ "target": "frontend_src_components_portfolio_holdingsearchbox_jsx"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/AddLotDialog.jsx",
+ "source_location": "L25",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_addlotdialog_jsx",
+ "target": "portfolio_addlotdialog_addlotdialog"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/PortfolioView.jsx",
+ "source_location": "L10",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_portfolioview_jsx",
+ "target": "frontend_src_components_portfolio_addlotdialog_jsx"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "frontend/src/components/portfolio/AddLotDialog.jsx",
+ "source_location": "L30",
+ "weight": 1.0,
+ "source": "portfolio_addlotdialog_addlotdialog",
+ "target": "portfolio_validation_todayiso"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/charts.jsx",
+ "source_location": "L17",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_charts_jsx",
+ "target": "portfolio_charts_chart_colors"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/charts.jsx",
+ "source_location": "L25",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_charts_jsx",
+ "target": "portfolio_charts_tooltipstyle"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/charts.jsx",
+ "source_location": "L33",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_charts_jsx",
+ "target": "portfolio_charts_portfoliopiecard"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/charts.jsx",
+ "source_location": "L58",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_charts_jsx",
+ "target": "portfolio_charts_portfoliobarscard"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/DistributionChart.jsx",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_distributionchart_jsx",
+ "target": "frontend_src_components_portfolio_charts_jsx"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/MonthlyBars.jsx",
+ "source_location": "L2",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_monthlybars_jsx",
+ "target": "frontend_src_components_portfolio_charts_jsx"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/DistributionChart.jsx",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_distributionchart_jsx",
+ "target": "portfolio_charts_portfoliopiecard"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/MonthlyBars.jsx",
+ "source_location": "L2",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_monthlybars_jsx",
+ "target": "portfolio_charts_portfoliobarscard"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/DistributionChart.jsx",
+ "source_location": "L3",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_distributionchart_jsx",
+ "target": "portfolio_distributionchart_distributionchart"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/PortfolioView.jsx",
+ "source_location": "L6",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_portfolioview_jsx",
+ "target": "frontend_src_components_portfolio_distributionchart_jsx"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L8",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_historylist_jsx",
+ "target": "frontend_src_components_portfolio_validation_js"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L8",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_historylist_jsx",
+ "target": "portfolio_validation_assertdividendtotal"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L8",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_historylist_jsx",
+ "target": "portfolio_validation_assertnotfuture"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L8",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "src_api_deletesession"
+ "source": "frontend_src_components_portfolio_historylist_jsx",
+ "target": "portfolio_validation_cleanstring"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L8",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_historylist_jsx",
+ "target": "portfolio_validation_parsepositivenumber"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L8",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_historylist_jsx",
+ "target": "portfolio_validation_todayiso"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L16",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_historylist_jsx",
+ "target": "portfolio_historylist_kind_styles"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L23",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_historylist_jsx",
+ "target": "portfolio_historylist_fmtmoney"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L28",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_historylist_jsx",
+ "target": "portfolio_historylist_lottitle"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L36",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_historylist_jsx",
+ "target": "portfolio_historylist_entrydate"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L40",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_historylist_jsx",
+ "target": "portfolio_historylist_entrykind"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L46",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_historylist_jsx",
+ "target": "portfolio_historylist_dateonly"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L50",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_historylist_jsx",
+ "target": "portfolio_historylist_fmtbrl"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L58",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_historylist_jsx",
+ "target": "portfolio_historylist_editlotdialog"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L122",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_historylist_jsx",
+ "target": "portfolio_historylist_editdividenddialog"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L216",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_historylist_jsx",
+ "target": "portfolio_historylist_historylist"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/PortfolioView.jsx",
+ "source_location": "L9",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_portfolioview_jsx",
+ "target": "frontend_src_components_portfolio_historylist_jsx"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L31",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "portfolio_historylist_lottitle",
+ "target": "portfolio_historylist_fmtmoney"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L61",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "portfolio_historylist_editlotdialog",
+ "target": "portfolio_historylist_dateonly"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L125",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "portfolio_historylist_editdividenddialog",
+ "target": "portfolio_historylist_dateonly"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L184",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "portfolio_historylist_editdividenddialog",
+ "target": "portfolio_historylist_fmtbrl"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L61",
+ "weight": 1.0,
+ "source": "portfolio_historylist_editlotdialog",
+ "target": "portfolio_validation_todayiso"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "frontend/src/components/portfolio/HistoryList.jsx",
+ "source_location": "L125",
+ "weight": 1.0,
+ "source": "portfolio_historylist_editdividenddialog",
+ "target": "portfolio_validation_todayiso"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HoldingSearchBox.jsx",
+ "source_location": "L4",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_holdingsearchbox_jsx",
+ "target": "frontend_src_components_portfolio_validation_js"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HoldingSearchBox.jsx",
+ "source_location": "L4",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_holdingsearchbox_jsx",
+ "target": "portfolio_validation_cleanstring"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HoldingSearchBox.jsx",
+ "source_location": "L9",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_holdingsearchbox_jsx",
+ "target": "portfolio_holdingsearchbox_matchholdings"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HoldingSearchBox.jsx",
+ "source_location": "L19",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_holdingsearchbox_jsx",
+ "target": "portfolio_holdingsearchbox_rowscore"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HoldingSearchBox.jsx",
+ "source_location": "L29",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_holdingsearchbox_jsx",
+ "target": "portfolio_holdingsearchbox_holdingsearchbox"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "frontend/src/components/portfolio/HoldingSearchBox.jsx",
+ "source_location": "L10",
+ "weight": 1.0,
+ "source": "portfolio_holdingsearchbox_matchholdings",
+ "target": "portfolio_validation_cleanstring"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "frontend/src/components/portfolio/HoldingSearchBox.jsx",
+ "source_location": "L102",
+ "weight": 1.0,
+ "source": "portfolio_holdingsearchbox_holdingsearchbox",
+ "target": "portfolio_validation_cleanstring"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HoldingsTable.jsx",
+ "source_location": "L6",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_holdingstable_jsx",
+ "target": "frontend_src_components_portfolio_validation_js"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HoldingsTable.jsx",
+ "source_location": "L6",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_holdingstable_jsx",
+ "target": "portfolio_validation_parseweight"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HoldingsTable.jsx",
+ "source_location": "L9",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_holdingstable_jsx",
+ "target": "portfolio_holdingstable_fmtmoney"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HoldingsTable.jsx",
+ "source_location": "L14",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_holdingstable_jsx",
+ "target": "portfolio_holdingstable_fmtpct"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HoldingsTable.jsx",
+ "source_location": "L19",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_holdingstable_jsx",
+ "target": "portfolio_holdingstable_columns"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/HoldingsTable.jsx",
+ "source_location": "L24",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_holdingstable_jsx",
+ "target": "portfolio_holdingstable_holdingstable"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/PortfolioView.jsx",
+ "source_location": "L8",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_portfolioview_jsx",
+ "target": "frontend_src_components_portfolio_holdingstable_jsx"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/monthly.js",
+ "source_location": "L5",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_monthly_js",
+ "target": "portfolio_monthly_monthkey"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/monthly.js",
+ "source_location": "L20",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_monthly_js",
+ "target": "portfolio_monthly_grouphistorybymonth"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/MonthlyBars.jsx",
+ "source_location": "L3",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_monthlybars_jsx",
+ "target": "frontend_src_components_portfolio_monthly_js"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/monthly.js",
+ "source_location": "L24",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "portfolio_monthly_grouphistorybymonth",
+ "target": "portfolio_monthly_monthkey"
+ },
+ {
+ "relation": "imports",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/MonthlyBars.jsx",
+ "source_location": "L3",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_monthlybars_jsx",
+ "target": "portfolio_monthly_grouphistorybymonth"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/MonthlyBars.jsx",
+ "source_location": "L5",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_monthlybars_jsx",
+ "target": "portfolio_monthlybars_monthlybars"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/PortfolioView.jsx",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_portfolioview_jsx",
+ "target": "frontend_src_components_portfolio_monthlybars_jsx"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/OverviewCards.jsx",
+ "source_location": "L3",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_overviewcards_jsx",
+ "target": "portfolio_overviewcards_fmtbrl"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/OverviewCards.jsx",
+ "source_location": "L8",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_overviewcards_jsx",
+ "target": "portfolio_overviewcards_fmtpct"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/OverviewCards.jsx",
+ "source_location": "L14",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_overviewcards_jsx",
+ "target": "portfolio_overviewcards_statcard"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/OverviewCards.jsx",
+ "source_location": "L34",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_overviewcards_jsx",
+ "target": "portfolio_overviewcards_overviewcards"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/PortfolioView.jsx",
+ "source_location": "L5",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_portfolioview_jsx",
+ "target": "frontend_src_components_portfolio_overviewcards_jsx"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/OverviewCards.jsx",
+ "source_location": "L45",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "portfolio_overviewcards_overviewcards",
+ "target": "portfolio_overviewcards_fmtbrl"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/OverviewCards.jsx",
+ "source_location": "L50",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "portfolio_overviewcards_overviewcards",
+ "target": "portfolio_overviewcards_fmtpct"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/PortfolioView.jsx",
+ "source_location": "L15",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_portfolioview_jsx",
+ "target": "portfolio_portfolioview_portfolioview"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/validation.js",
+ "source_location": "L13",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_validation_js",
+ "target": "portfolio_validation_cleanstring"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/validation.js",
+ "source_location": "L17",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_validation_js",
+ "target": "portfolio_validation_normalizeticker"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/validation.js",
+ "source_location": "L21",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_validation_js",
+ "target": "portfolio_validation_assertticker"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/validation.js",
+ "source_location": "L29",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_validation_js",
+ "target": "portfolio_validation_parsepositivenumber"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/validation.js",
+ "source_location": "L38",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_validation_js",
+ "target": "portfolio_validation_parseweight"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/validation.js",
+ "source_location": "L48",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_validation_js",
+ "target": "portfolio_validation_parseratefraction"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/validation.js",
+ "source_location": "L57",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_validation_js",
+ "target": "portfolio_validation_todayiso"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/validation.js",
+ "source_location": "L61",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_validation_js",
+ "target": "portfolio_validation_assertnotfuture"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/validation.js",
+ "source_location": "L68",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_portfolio_validation_js",
+ "target": "portfolio_validation_assertdividendtotal"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/validation.js",
+ "source_location": "L18",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "portfolio_validation_normalizeticker",
+ "target": "portfolio_validation_cleanstring"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/validation.js",
+ "source_location": "L24",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "portfolio_validation_assertticker",
+ "target": "portfolio_validation_cleanstring"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/validation.js",
+ "source_location": "L30",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "portfolio_validation_parsepositivenumber",
+ "target": "portfolio_validation_cleanstring"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/validation.js",
+ "source_location": "L39",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "portfolio_validation_parseweight",
+ "target": "portfolio_validation_cleanstring"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/validation.js",
+ "source_location": "L49",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "portfolio_validation_parseratefraction",
+ "target": "portfolio_validation_cleanstring"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/validation.js",
+ "source_location": "L22",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "portfolio_validation_assertticker",
+ "target": "portfolio_validation_normalizeticker"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/portfolio/validation.js",
+ "source_location": "L62",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "portfolio_validation_assertnotfuture",
+ "target": "portfolio_validation_todayiso"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/ui/alert-dialog.jsx",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_ui_alert_dialog_jsx",
+ "target": "ui_alert_dialog_alertdialog"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/ui/alert-dialog.jsx",
+ "source_location": "L13",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_ui_alert_dialog_jsx",
+ "target": "ui_alert_dialog_alertdialogtrigger"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/ui/alert-dialog.jsx",
+ "source_location": "L19",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_ui_alert_dialog_jsx",
+ "target": "ui_alert_dialog_alertdialogportal"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L95",
+ "source_file": "frontend/src/components/ui/alert-dialog.jsx",
+ "source_location": "L25",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "src_api_listworkspacefiles"
+ "source": "frontend_src_components_ui_alert_dialog_jsx",
+ "target": "ui_alert_dialog_alertdialogoverlay"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L105",
+ "source_file": "frontend/src/components/ui/alert-dialog.jsx",
+ "source_location": "L40",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "src_api_deleteworkspacefile"
+ "source": "frontend_src_components_ui_alert_dialog_jsx",
+ "target": "ui_alert_dialog_alertdialogcontent"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L95",
+ "source_file": "frontend/src/components/ui/alert-dialog.jsx",
+ "source_location": "L60",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "src_api_updatesessiontitle"
+ "source": "frontend_src_components_ui_alert_dialog_jsx",
+ "target": "ui_alert_dialog_alertdialogheader"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L115",
+ "source_file": "frontend/src/components/ui/alert-dialog.jsx",
+ "source_location": "L75",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "src_api_fetchhistory"
+ "source": "frontend_src_components_ui_alert_dialog_jsx",
+ "target": "ui_alert_dialog_alertdialogfooter"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L110",
+ "source_file": "frontend/src/components/ui/alert-dialog.jsx",
+ "source_location": "L90",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "src_api_readeventstream"
+ "source": "frontend_src_components_ui_alert_dialog_jsx",
+ "target": "ui_alert_dialog_alertdialogmedia"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L122",
+ "source_file": "frontend/src/components/ui/alert-dialog.jsx",
+ "source_location": "L105",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "src_api_streamchat"
+ "source": "frontend_src_components_ui_alert_dialog_jsx",
+ "target": "ui_alert_dialog_alertdialogtitle"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L170",
+ "source_file": "frontend/src/components/ui/alert-dialog.jsx",
+ "source_location": "L120",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "src_api_resumechat"
+ "source": "frontend_src_components_ui_alert_dialog_jsx",
+ "target": "ui_alert_dialog_alertdialogdescription"
},
{
- "relation": "imports_from",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/App.jsx",
- "source_location": "L6",
+ "source_file": "frontend/src/components/ui/alert-dialog.jsx",
+ "source_location": "L135",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "frontend_src_app_jsx"
+ "source": "frontend_src_components_ui_alert_dialog_jsx",
+ "target": "ui_alert_dialog_alertdialogaction"
},
{
- "relation": "imports_from",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/App.resume.test.jsx",
- "source_location": "L15",
+ "source_file": "frontend/src/components/ui/alert-dialog.jsx",
+ "source_location": "L148",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_app_resume_test_jsx",
- "target": "frontend_src_api_js"
+ "source": "frontend_src_components_ui_alert_dialog_jsx",
+ "target": "ui_alert_dialog_alertdialogcancel"
},
{
- "relation": "imports_from",
- "context": "import",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/alert-dialog.jsx",
+ "source_location": "L32",
+ "weight": 1.0,
+ "source": "ui_alert_dialog_alertdialogoverlay",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/alert-dialog.jsx",
+ "source_location": "L51",
+ "weight": 1.0,
+ "source": "ui_alert_dialog_alertdialogcontent",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/alert-dialog.jsx",
+ "source_location": "L67",
+ "weight": 1.0,
+ "source": "ui_alert_dialog_alertdialogheader",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/alert-dialog.jsx",
+ "source_location": "L82",
+ "weight": 1.0,
+ "source": "ui_alert_dialog_alertdialogfooter",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/alert-dialog.jsx",
+ "source_location": "L97",
+ "weight": 1.0,
+ "source": "ui_alert_dialog_alertdialogmedia",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/alert-dialog.jsx",
+ "source_location": "L112",
+ "weight": 1.0,
+ "source": "ui_alert_dialog_alertdialogtitle",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/alert-dialog.jsx",
+ "source_location": "L127",
+ "weight": 1.0,
+ "source": "ui_alert_dialog_alertdialogdescription",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/alert-dialog.jsx",
+ "source_location": "L143",
+ "weight": 1.0,
+ "source": "ui_alert_dialog_alertdialogaction",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/alert-dialog.jsx",
+ "source_location": "L156",
+ "weight": 1.0,
+ "source": "ui_alert_dialog_alertdialogcancel",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/AuthForm.jsx",
- "source_location": "L2",
+ "source_file": "frontend/src/components/ui/avatar.jsx",
+ "source_location": "L6",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "frontend_src_components_authform_jsx"
+ "source": "frontend_src_components_ui_avatar_jsx",
+ "target": "ui_avatar_avatar"
},
{
- "relation": "imports_from",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/SessionSidebar.jsx",
- "source_location": "L1",
+ "source_file": "frontend/src/components/ui/avatar.jsx",
+ "source_location": "L23",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "frontend_src_components_sessionsidebar_jsx"
+ "source": "frontend_src_components_ui_avatar_jsx",
+ "target": "ui_avatar_avatarimage"
},
{
- "relation": "imports_from",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/SettingsDialog.jsx",
- "source_location": "L12",
+ "source_file": "frontend/src/components/ui/avatar.jsx",
+ "source_location": "L35",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_settingsdialog_jsx",
- "target": "frontend_src_api_js"
+ "source": "frontend_src_components_ui_avatar_jsx",
+ "target": "ui_avatar_avatarfallback"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L117",
+ "source_file": "frontend/src/components/ui/avatar.jsx",
+ "source_location": "L50",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "src_api_uploadworkspacefile"
+ "source": "frontend_src_components_ui_avatar_jsx",
+ "target": "ui_avatar_avatarbadge"
},
{
- "relation": "imports_from",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.test.js",
- "source_location": "L2",
+ "source_file": "frontend/src/components/ui/avatar.jsx",
+ "source_location": "L68",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_api_test_js",
- "target": "frontend_src_api_js"
+ "source": "frontend_src_components_ui_avatar_jsx",
+ "target": "ui_avatar_avatargroup"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L102",
+ "source_file": "frontend/src/components/ui/avatar.jsx",
+ "source_location": "L83",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "src_api_createsession"
+ "source": "frontend_src_components_ui_avatar_jsx",
+ "target": "ui_avatar_avatargroupcount"
},
{
- "relation": "imports_from",
- "context": "import",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/avatar.jsx",
+ "source_location": "L15",
+ "weight": 1.0,
+ "source": "ui_avatar_avatar",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/avatar.jsx",
+ "source_location": "L30",
+ "weight": 1.0,
+ "source": "ui_avatar_avatarimage",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/avatar.jsx",
+ "source_location": "L42",
+ "weight": 1.0,
+ "source": "ui_avatar_avatarfallback",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/avatar.jsx",
+ "source_location": "L57",
+ "weight": 1.0,
+ "source": "ui_avatar_avatarbadge",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/avatar.jsx",
+ "source_location": "L75",
+ "weight": 1.0,
+ "source": "ui_avatar_avatargroup",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/avatar.jsx",
+ "source_location": "L90",
+ "weight": 1.0,
+ "source": "ui_avatar_avatargroupcount",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/tests/api.test.js",
- "source_location": "L2",
+ "source_file": "frontend/src/components/ui/button.jsx",
+ "source_location": "L7",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "frontend_tests_api_test_js"
+ "source": "frontend_src_components_ui_button_jsx",
+ "target": "ui_button_buttonvariants"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L10",
+ "source_file": "frontend/src/components/ui/button.jsx",
+ "source_location": "L42",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_api_js",
- "target": "src_api_getcookie"
+ "source": "frontend_src_components_ui_button_jsx",
+ "target": "ui_button_button"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L18",
+ "source_file": "frontend/src/components/ui/button.jsx",
+ "source_location": "L56",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_api_authheaders",
- "target": "src_api_apifetch"
+ "source": "ui_button_button",
+ "target": "ui_button_buttonvariants"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/button.jsx",
+ "source_location": "L56",
+ "weight": 1.0,
+ "source": "ui_button_button",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L25",
+ "source_file": "frontend/src/components/ui/card.jsx",
+ "source_location": "L5",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_api_apifetch",
- "target": "src_api_login"
+ "source": "frontend_src_components_ui_card_jsx",
+ "target": "ui_card_card"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L37",
+ "source_file": "frontend/src/components/ui/card.jsx",
+ "source_location": "L18",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_api_apifetch",
- "target": "src_api_register"
+ "source": "frontend_src_components_ui_card_jsx",
+ "target": "ui_card_cardheader"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L49",
+ "source_file": "frontend/src/components/ui/card.jsx",
+ "source_location": "L31",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_api_apifetch",
- "target": "src_api_logout"
+ "source": "frontend_src_components_ui_card_jsx",
+ "target": "ui_card_cardtitle"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L96",
+ "source_file": "frontend/src/components/ui/card.jsx",
+ "source_location": "L41",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_api_apifetch",
- "target": "src_api_fetchsessions"
+ "source": "frontend_src_components_ui_card_jsx",
+ "target": "ui_card_carddescription"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L112",
+ "source_file": "frontend/src/components/ui/card.jsx",
+ "source_location": "L51",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_api_apifetch",
- "target": "src_api_deletesession"
+ "source": "frontend_src_components_ui_card_jsx",
+ "target": "ui_card_cardcontent"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/ui/card.jsx",
+ "source_location": "L57",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_ui_card_jsx",
+ "target": "ui_card_cardfooter"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/card.jsx",
+ "source_location": "L9",
+ "weight": 1.0,
+ "source": "ui_card_card",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/card.jsx",
+ "source_location": "L22",
+ "weight": 1.0,
+ "source": "ui_card_cardheader",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/card.jsx",
+ "source_location": "L35",
+ "weight": 1.0,
+ "source": "ui_card_cardtitle",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/card.jsx",
+ "source_location": "L45",
+ "weight": 1.0,
+ "source": "ui_card_carddescription",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/card.jsx",
+ "source_location": "L53",
+ "weight": 1.0,
+ "source": "ui_card_cardcontent",
+ "target": "lib_utils_cn"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/card.jsx",
+ "source_location": "L61",
+ "weight": 1.0,
+ "source": "ui_card_cardfooter",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L96",
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_ui_context_menu_jsx",
+ "target": "ui_context_menu_contextmenu"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L13",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_ui_context_menu_jsx",
+ "target": "ui_context_menu_contextmenutrigger"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L25",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_ui_context_menu_jsx",
+ "target": "ui_context_menu_contextmenugroup"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L31",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_ui_context_menu_jsx",
+ "target": "ui_context_menu_contextmenuportal"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L37",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_api_listworkspacefiles",
- "target": "src_api_apifetch"
+ "source": "frontend_src_components_ui_context_menu_jsx",
+ "target": "ui_context_menu_contextmenusub"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L106",
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L43",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_api_deleteworkspacefile",
- "target": "src_api_apifetch"
+ "source": "frontend_src_components_ui_context_menu_jsx",
+ "target": "ui_context_menu_contextmenuradiogroup"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L96",
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L49",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_api_updatesessiontitle",
- "target": "src_api_apifetch"
+ "source": "frontend_src_components_ui_context_menu_jsx",
+ "target": "ui_context_menu_contextmenucontent"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L116",
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L66",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_api_apifetch",
- "target": "src_api_fetchhistory"
+ "source": "frontend_src_components_ui_context_menu_jsx",
+ "target": "ui_context_menu_contextmenuitem"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L123",
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L85",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_api_apifetch",
- "target": "src_api_streamchat"
+ "source": "frontend_src_components_ui_context_menu_jsx",
+ "target": "ui_context_menu_contextmenusubtrigger"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L171",
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L106",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_api_resumechat",
- "target": "src_api_apifetch"
+ "source": "frontend_src_components_ui_context_menu_jsx",
+ "target": "ui_context_menu_contextmenusubcontent"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
"source_location": "L121",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_api_uploadworkspacefile",
- "target": "src_api_apifetch"
+ "source": "frontend_src_components_ui_context_menu_jsx",
+ "target": "ui_context_menu_contextmenucheckboxitem"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L103",
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L148",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_api_apifetch",
- "target": "src_api_createsession"
+ "source": "frontend_src_components_ui_context_menu_jsx",
+ "target": "ui_context_menu_contextmenuradioitem"
},
{
- "relation": "imports",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/AuthForm.jsx",
- "source_location": "L2",
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L173",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_api_login",
- "target": "frontend_src_components_authform_jsx"
+ "source": "frontend_src_components_ui_context_menu_jsx",
+ "target": "ui_context_menu_contextmenulabel"
},
{
- "relation": "imports",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/AuthForm.jsx",
- "source_location": "L2",
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L187",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_api_register",
- "target": "frontend_src_components_authform_jsx"
+ "source": "frontend_src_components_ui_context_menu_jsx",
+ "target": "ui_context_menu_contextmenuseparator"
},
{
- "relation": "imports",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/App.jsx",
- "source_location": "L6",
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L199",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_api_logout",
- "target": "frontend_src_app_jsx"
+ "source": "frontend_src_components_ui_context_menu_jsx",
+ "target": "ui_context_menu_contextmenushortcut"
},
{
- "relation": "imports",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/App.jsx",
- "source_location": "L6",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L20",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "src_api_fetchme",
- "target": "frontend_src_app_jsx"
+ "source": "ui_context_menu_contextmenutrigger",
+ "target": "lib_utils_cn"
},
{
- "relation": "imports",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/App.resume.test.jsx",
- "source_location": "L15",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L57",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_app_resume_test_jsx",
- "target": "src_api_fetchme"
+ "source": "ui_context_menu_contextmenucontent",
+ "target": "lib_utils_cn"
},
{
- "relation": "imports",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/App.jsx",
- "source_location": "L6",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L77",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "src_api_extracthashtoken",
- "target": "frontend_src_app_jsx"
+ "source": "ui_context_menu_contextmenuitem",
+ "target": "lib_utils_cn"
},
{
- "relation": "imports",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/App.resume.test.jsx",
- "source_location": "L15",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L95",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_app_resume_test_jsx",
- "target": "src_api_extracthashtoken"
+ "source": "ui_context_menu_contextmenusubtrigger",
+ "target": "lib_utils_cn"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L83",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L113",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "src_api_extracthashtoken",
- "target": "src_api_getcookie"
+ "source": "ui_context_menu_contextmenusubcontent",
+ "target": "lib_utils_cn"
},
{
- "relation": "imports",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/AuthForm.jsx",
- "source_location": "L2",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L132",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "src_api_googleauthurl",
- "target": "frontend_src_components_authform_jsx"
+ "source": "ui_context_menu_contextmenucheckboxitem",
+ "target": "lib_utils_cn"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "confidence_score": 1.0,
- "source_file": "frontend/src/components/AuthForm.jsx",
- "source_location": "L65",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L158",
"weight": 1.0,
- "source": "src_api_googleauthurl",
- "target": "components_authform_authform"
+ "source": "ui_context_menu_contextmenuradioitem",
+ "target": "lib_utils_cn"
},
{
- "relation": "imports",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/App.jsx",
- "source_location": "L6",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L182",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "src_api_fetchsessions",
- "target": "frontend_src_app_jsx"
+ "source": "ui_context_menu_contextmenulabel",
+ "target": "lib_utils_cn"
},
{
- "relation": "imports",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/App.resume.test.jsx",
- "source_location": "L15",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L194",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_app_resume_test_jsx",
- "target": "src_api_fetchsessions"
+ "source": "ui_context_menu_contextmenuseparator",
+ "target": "lib_utils_cn"
},
{
- "relation": "imports",
- "context": "import",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/context-menu.jsx",
+ "source_location": "L206",
+ "weight": 1.0,
+ "source": "ui_context_menu_contextmenushortcut",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/SessionSidebar.jsx",
- "source_location": "L1",
+ "source_file": "frontend/src/components/ui/dialog.jsx",
+ "source_location": "L10",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_api_deletesession",
- "target": "frontend_src_components_sessionsidebar_jsx"
+ "source": "frontend_src_components_ui_dialog_jsx",
+ "target": "ui_dialog_dialog"
},
{
- "relation": "imports",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/SettingsDialog.jsx",
- "source_location": "L12",
+ "source_file": "frontend/src/components/ui/dialog.jsx",
+ "source_location": "L16",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_settingsdialog_jsx",
- "target": "src_api_listworkspacefiles"
+ "source": "frontend_src_components_ui_dialog_jsx",
+ "target": "ui_dialog_dialogtrigger"
},
{
- "relation": "imports",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.test.js",
- "source_location": "L2",
+ "source_file": "frontend/src/components/ui/dialog.jsx",
+ "source_location": "L22",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_api_test_js",
- "target": "src_api_listworkspacefiles"
+ "source": "frontend_src_components_ui_dialog_jsx",
+ "target": "ui_dialog_dialogportal"
},
{
- "relation": "imports",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/SettingsDialog.jsx",
- "source_location": "L12",
+ "source_file": "frontend/src/components/ui/dialog.jsx",
+ "source_location": "L28",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_settingsdialog_jsx",
- "target": "src_api_deleteworkspacefile"
+ "source": "frontend_src_components_ui_dialog_jsx",
+ "target": "ui_dialog_dialogclose"
},
{
- "relation": "imports",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.test.js",
- "source_location": "L2",
+ "source_file": "frontend/src/components/ui/dialog.jsx",
+ "source_location": "L34",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_api_test_js",
- "target": "src_api_deleteworkspacefile"
+ "source": "frontend_src_components_ui_dialog_jsx",
+ "target": "ui_dialog_dialogoverlay"
},
{
- "relation": "imports",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/SessionSidebar.jsx",
- "source_location": "L32",
+ "source_file": "frontend/src/components/ui/dialog.jsx",
+ "source_location": "L49",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_sessionsidebar_jsx",
- "target": "src_api_updatesessiontitle"
+ "source": "frontend_src_components_ui_dialog_jsx",
+ "target": "ui_dialog_dialogcontent"
},
{
- "relation": "imports",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/App.jsx",
- "source_location": "L6",
+ "source_file": "frontend/src/components/ui/dialog.jsx",
+ "source_location": "L82",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_api_fetchhistory",
- "target": "frontend_src_app_jsx"
+ "source": "frontend_src_components_ui_dialog_jsx",
+ "target": "ui_dialog_dialogheader"
},
{
- "relation": "imports",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/App.resume.test.jsx",
- "source_location": "L15",
+ "source_file": "frontend/src/components/ui/dialog.jsx",
+ "source_location": "L94",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_app_resume_test_jsx",
- "target": "src_api_fetchhistory"
+ "source": "frontend_src_components_ui_dialog_jsx",
+ "target": "ui_dialog_dialogfooter"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L167",
+ "source_file": "frontend/src/components/ui/dialog.jsx",
+ "source_location": "L115",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_api_streamchat",
- "target": "src_api_readeventstream"
+ "source": "frontend_src_components_ui_dialog_jsx",
+ "target": "ui_dialog_dialogtitle"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/api.js",
- "source_location": "L172",
+ "source_file": "frontend/src/components/ui/dialog.jsx",
+ "source_location": "L127",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_api_resumechat",
- "target": "src_api_readeventstream"
+ "source": "frontend_src_components_ui_dialog_jsx",
+ "target": "ui_dialog_dialogdescription"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/api.js",
- "source_location": "L130",
+ "source_file": "frontend/src/components/ui/dialog.jsx",
+ "source_location": "L41",
"weight": 1.0,
- "source": "src_api_readeventstream",
- "target": "src_api_test_ondone"
+ "source": "ui_dialog_dialogoverlay",
+ "target": "lib_utils_cn"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/api.js",
- "source_location": "L140",
+ "source_file": "frontend/src/components/ui/dialog.jsx",
+ "source_location": "L60",
"weight": 1.0,
- "source": "src_api_readeventstream",
- "target": "src_api_test_onsession"
+ "source": "ui_dialog_dialogcontent",
+ "target": "lib_utils_cn"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/api.js",
- "source_location": "L142",
+ "source_file": "frontend/src/components/ui/dialog.jsx",
+ "source_location": "L89",
"weight": 1.0,
- "source": "src_api_readeventstream",
- "target": "src_api_test_onchunk"
+ "source": "ui_dialog_dialogheader",
+ "target": "lib_utils_cn"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/api.js",
- "source_location": "L156",
+ "source_file": "frontend/src/components/ui/dialog.jsx",
+ "source_location": "L103",
"weight": 1.0,
- "source": "src_api_readeventstream",
- "target": "src_api_test_oncursor"
+ "source": "ui_dialog_dialogfooter",
+ "target": "lib_utils_cn"
},
{
- "relation": "imports",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/App.jsx",
- "source_location": "L6",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/dialog.jsx",
+ "source_location": "L122",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "src_api_streamchat",
- "target": "frontend_src_app_jsx"
+ "source": "ui_dialog_dialogtitle",
+ "target": "lib_utils_cn"
},
{
- "relation": "imports",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/App.resume.test.jsx",
- "source_location": "L15",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/dialog.jsx",
+ "source_location": "L134",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_app_resume_test_jsx",
- "target": "src_api_streamchat"
+ "source": "ui_dialog_dialogdescription",
+ "target": "lib_utils_cn"
},
{
- "relation": "imports",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/tests/api.test.js",
- "source_location": "L2",
+ "source_file": "frontend/src/components/ui/input.jsx",
+ "source_location": "L5",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "src_api_streamchat",
- "target": "frontend_tests_api_test_js"
+ "source": "frontend_src_components_ui_input_jsx",
+ "target": "ui_input_input"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/api.js",
- "source_location": "L128",
+ "source_file": "frontend/src/components/ui/input.jsx",
+ "source_location": "L14",
"weight": 1.0,
- "source": "src_api_streamchat",
- "target": "tests_api_test_onerror"
+ "source": "ui_input_input",
+ "target": "lib_utils_cn"
},
{
- "relation": "imports",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/App.jsx",
- "source_location": "L6",
+ "source_file": "frontend/src/components/ui/scroll-area.jsx",
+ "source_location": "L8",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_app_jsx",
- "target": "src_api_resumechat"
+ "source": "frontend_src_components_ui_scroll_area_jsx",
+ "target": "ui_scroll_area_scrollarea"
},
{
- "relation": "imports",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/App.resume.test.jsx",
- "source_location": "L15",
+ "source_file": "frontend/src/components/ui/scroll-area.jsx",
+ "source_location": "L26",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_app_resume_test_jsx",
- "target": "src_api_resumechat"
+ "source": "frontend_src_components_ui_scroll_area_jsx",
+ "target": "ui_scroll_area_scrollbar"
},
{
- "relation": "imports",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/api.test.js",
- "source_location": "L2",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/scroll-area.jsx",
+ "source_location": "L14",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_api_test_js",
- "target": "src_api_resumechat"
+ "source": "ui_scroll_area_scrollarea",
+ "target": "lib_utils_cn"
},
{
- "relation": "imports_from",
- "context": "import",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/scroll-area.jsx",
+ "source_location": "L36",
+ "weight": 1.0,
+ "source": "ui_scroll_area_scrollbar",
+ "target": "lib_utils_cn"
+ },
+ {
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/App.jsx",
- "source_location": "L2",
+ "source_file": "frontend/src/components/ui/separator.jsx",
+ "source_location": "L6",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_app_jsx",
- "target": "frontend_src_components_authform_jsx"
+ "source": "frontend_src_components_ui_separator_jsx",
+ "target": "ui_separator_separator"
},
{
- "relation": "imports_from",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/App.jsx",
- "source_location": "L3",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "frontend/src/components/ui/separator.jsx",
+ "source_location": "L17",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_app_jsx",
- "target": "frontend_src_components_sessionsidebar_jsx"
+ "source": "ui_separator_separator",
+ "target": "lib_utils_cn"
},
{
- "relation": "imports_from",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/App.jsx",
+ "source_file": "frontend/src/lib/utils.js",
"source_location": "L4",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_app_jsx",
- "target": "frontend_src_components_messagelist_jsx"
+ "source": "frontend_src_lib_utils_js",
+ "target": "lib_utils_cn"
},
{
"relation": "imports_from",
"context": "import",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/App.jsx",
+ "source_file": "main/app/authentication/authentication.py",
"source_location": "L5",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_app_jsx",
- "target": "frontend_src_components_inputbar_jsx"
+ "source": "main_app_authentication_authentication_py",
+ "target": "fastapi"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/App.jsx",
- "source_location": "L15",
+ "source_file": "main/app/authentication/authentication.py",
+ "source_location": "L13",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_app_jsx",
- "target": "src_app_settleloopevents"
+ "source": "main_app_authentication_authentication_py",
+ "target": "authentication_authentication_authenticationmanager"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/App.jsx",
- "source_location": "L42",
+ "source_file": "main/app/authentication/authentication.py",
+ "source_location": "L15",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_app_jsx",
- "target": "src_app_readresume"
+ "source": "main_app_authentication_authentication_py",
+ "target": "authentication_authentication_createuseraccount"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/App.jsx",
- "source_location": "L50",
+ "source_file": "main/app/authentication/authentication.py",
+ "source_location": "L48",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_app_jsx",
- "target": "src_app_saveresume"
+ "source": "main_app_authentication_authentication_py",
+ "target": "authentication_authentication_authenticategoogleuser"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/App.jsx",
- "source_location": "L54",
+ "source_file": "main/app/authentication/authentication.py",
+ "source_location": "L62",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_app_jsx",
- "target": "src_app_clearresume"
+ "source": "main_app_authentication_authentication_py",
+ "target": "authentication_authentication_authenticateuser"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/App.jsx",
- "source_location": "L59",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_app_jsx",
- "target": "src_app_clearlastsession"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/authentication/authentication.py",
+ "source_location": "L2",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_authentication_authenticationmanager",
+ "target": "utils_roles_roles"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/App.jsx",
- "source_location": "L63",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_app_jsx",
- "target": "src_app_readlastsession"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/authentication/authentication.py",
+ "source_location": "L8",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_authentication_authenticationmanager",
+ "target": "user_user_usermanager"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/App.jsx",
- "source_location": "L71",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_app_jsx",
- "target": "src_app_savelastsession"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/authentication/authentication.py",
+ "source_location": "L9",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_authentication_authenticationmanager",
+ "target": "models_user_user"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/App.jsx",
- "source_location": "L16",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_app_jsx",
- "target": "src_app_app"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L560",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_authentication_authenticationmanager",
+ "target": "tests_test_prometheus_auth_coverage_testprometheusinit"
},
{
- "relation": "imports_from",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/App.resume.test.jsx",
- "source_location": "L3",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_app_resume_test_jsx",
- "target": "frontend_src_app_jsx"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L560",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_authentication_authenticationmanager",
+ "target": "tests_test_prometheus_auth_coverage_testprometheussendmessage"
},
{
- "relation": "imports_from",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/main.jsx",
- "source_location": "L3",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_app_jsx",
- "target": "frontend_src_main_jsx"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L827",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_authentication_authenticationmanager",
+ "target": "tests_test_prometheus_auth_coverage_testprometheuschatmanager"
},
{
- "relation": "imports",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/App.jsx",
- "source_location": "L6",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "src_api_createsession",
- "target": "frontend_src_app_jsx"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L827",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_authentication_authenticationmanager",
+ "target": "tests_test_prometheus_auth_coverage_testauthenticationmanager"
},
{
- "relation": "imports_from",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/App.jsx",
- "source_location": "L6",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_app_jsx",
- "target": "frontend_src_components_agentloop_jsx"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L827",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_authentication_authenticationmanager",
+ "target": "tests_test_prometheus_auth_coverage_testsessionmanager"
},
{
- "relation": "imports_from",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "frontend/tests/App.test.jsx",
- "source_location": "L3",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_app_jsx",
- "target": "frontend_tests_app_test_jsx"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L827",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_authentication_authenticationmanager",
+ "target": "tests_test_prometheus_auth_coverage_testsso"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/App.resume.test.jsx",
- "source_location": "L72",
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L827",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_authentication_authenticationmanager",
+ "target": "tests_test_prometheus_auth_coverage_testprometheusgeneratorinit"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L827",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_authentication_authenticationmanager",
+ "target": "tests_test_prometheus_auth_coverage_testprometheusgeneratorexecuteworkflow"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/app/authentication/authentication.py",
+ "source_location": "L29",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_app_resume_test_jsx",
- "target": "src_app_resume_test_sendbtn"
+ "source": "authentication_authentication_createuseraccount",
+ "target": "authentication_util_hashpassword"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/App.resume.test.jsx",
- "source_location": "L82",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/app/authentication/authentication.py",
+ "source_location": "L31",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_app_resume_test_jsx",
- "target": "src_app_resume_test_textarea"
+ "source": "authentication_authentication_createuseraccount",
+ "target": "models_user_user"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/AgentLoop.jsx",
- "source_location": "L27",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/app/authentication/authentication.py",
+ "source_location": "L66",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_agentloop_jsx",
- "target": "components_agentloop_agentloop"
+ "source": "authentication_authentication_authenticateuser",
+ "target": "authentication_util_verifypassword"
},
{
- "relation": "imports_from",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/MessageList.jsx",
- "source_location": "L3",
+ "source_file": "main/app/authentication/session.py",
+ "source_location": "L11",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_agentloop_jsx",
- "target": "frontend_src_components_messagelist_jsx"
+ "source": "main_app_authentication_session_py",
+ "target": "authentication_session_sessionmanager"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/AgentLoop.jsx",
- "source_location": "L3",
+ "source_file": "main/app/authentication/session.py",
+ "source_location": "L17",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_agentloop_jsx",
- "target": "components_agentloop_toolchip"
+ "source": "main_app_authentication_session_py",
+ "target": "authentication_session_getdevicename"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/AgentLoop.jsx",
- "source_location": "L3",
+ "source_file": "main/app/authentication/session.py",
+ "source_location": "L13",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_agentloop_jsx",
- "target": "components_agentloop_toolcard"
+ "source": "main_app_authentication_session_py",
+ "target": "authentication_session_createsession"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/AuthForm.jsx",
- "source_location": "L4",
+ "source_file": "main/app/authentication/session.py",
+ "source_location": "L50",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_authform_jsx",
- "target": "components_authform_authform"
+ "source": "main_app_authentication_session_py",
+ "target": "authentication_session_getusersessions"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/InputBar.jsx",
- "source_location": "L3",
+ "source_file": "main/app/authentication/session.py",
+ "source_location": "L57",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_inputbar_jsx",
- "target": "components_inputbar_inputbar"
+ "source": "main_app_authentication_session_py",
+ "target": "authentication_session_getsessionbyid"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/MdocMessage.jsx",
- "source_location": "L5",
+ "source_file": "main/app/authentication/session.py",
+ "source_location": "L68",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_mdocmessage_jsx",
- "target": "components_mdocmessage_components"
+ "source": "main_app_authentication_session_py",
+ "target": "authentication_session_getcurrentsession"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/MdocMessage.jsx",
- "source_location": "L88",
+ "source_file": "main/app/authentication/session.py",
+ "source_location": "L80",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_mdocmessage_jsx",
- "target": "components_mdocmessage_allowed"
+ "source": "main_app_authentication_session_py",
+ "target": "authentication_session_revokesession"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/MdocMessage.jsx",
- "source_location": "L54",
+ "source_file": "main/app/authentication/session.py",
+ "source_location": "L92",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_mdocmessage_jsx",
- "target": "components_mdocmessage_mdocmessage"
+ "source": "main_app_authentication_session_py",
+ "target": "authentication_session_revokeallsessions"
},
{
- "relation": "imports_from",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/MessageList.jsx",
- "source_location": "L2",
+ "source_file": "main/app/authentication/session.py",
+ "source_location": "L108",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_mdocmessage_jsx",
- "target": "frontend_src_components_messagelist_jsx"
+ "source": "main_app_authentication_session_py",
+ "target": "authentication_session_updatelastactive"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/MdocMessage.jsx",
- "source_location": "L4",
+ "source_file": "main/app/authentication/session.py",
+ "source_location": "L132",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_mdocmessage_jsx",
- "target": "components_mdocmessage_registry"
+ "source": "main_app_authentication_session_py",
+ "target": "authentication_session_validatesession"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/MdocMessage.jsx",
- "source_location": "L14",
+ "source_file": "main/app/authentication/session.py",
+ "source_location": "L118",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_mdocmessage_jsx",
- "target": "components_mdocmessage_preprocessgeminitags"
+ "source": "main_app_authentication_session_py",
+ "target": "authentication_session_cleanupexpiredsessions"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/MdocMessage.jsx",
- "source_location": "L61",
+ "source_file": "main/app/authentication/session.py",
+ "source_location": "L64",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_mdocmessage_jsx",
- "target": "components_mdocmessage_workspacelink"
+ "source": "main_app_authentication_session_py",
+ "target": "authentication_session_getsessionbyidsafe"
},
{
- "relation": "imports_from",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "frontend/tests/MdocMessage.test.jsx",
- "source_location": "L3",
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/authentication/session.py",
+ "source_location": "L6",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_session_sessionmanager",
+ "target": "models_user_session_usersession"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/user/user.py",
+ "source_location": "L30",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_session_sessionmanager",
+ "target": "user_user_usermanager"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L825",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_session_sessionmanager",
+ "target": "tests_test_prometheus_auth_coverage_testprometheusinit"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L825",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_session_sessionmanager",
+ "target": "tests_test_prometheus_auth_coverage_testprometheussendmessage"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L1092",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_session_sessionmanager",
+ "target": "tests_test_prometheus_auth_coverage_testprometheuschatmanager"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L1092",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_session_sessionmanager",
+ "target": "tests_test_prometheus_auth_coverage_testauthenticationmanager"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L1092",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_session_sessionmanager",
+ "target": "tests_test_prometheus_auth_coverage_testsessionmanager"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L1092",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_session_sessionmanager",
+ "target": "tests_test_prometheus_auth_coverage_testsso"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L9",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_session_sessionmanager",
+ "target": "tests_test_sessions_testusersessionmodel"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L9",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_session_sessionmanager",
+ "target": "tests_test_sessions_testsessionexpiration"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L1092",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_session_sessionmanager",
+ "target": "tests_test_prometheus_auth_coverage_testprometheusgeneratorinit"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L1092",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "authentication_session_sessionmanager",
+ "target": "tests_test_prometheus_auth_coverage_testprometheusgeneratorexecuteworkflow"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/app/authentication/session.py",
+ "source_location": "L29",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_mdocmessage_jsx",
- "target": "frontend_tests_mdocmessage_test_jsx"
+ "source": "authentication_session_createsession",
+ "target": "models_user_session_usersession"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/MessageList.jsx",
- "source_location": "L7",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/app/authentication/session.py",
+ "source_location": "L23",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_messagelist_jsx",
- "target": "components_messagelist_suggestions"
+ "source": "authentication_device_parseuseragent",
+ "target": "authentication_session_createsession"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/MessageList.jsx",
- "source_location": "L4",
+ "source_file": "main/app/authentication/session.py",
+ "source_location": "L81",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_messagelist_jsx",
- "target": "components_messagelist_messagelist"
+ "source": "authentication_session_getsessionbyid",
+ "target": "authentication_session_revokesession"
},
{
- "relation": "imports_from",
- "context": "import",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/SessionSidebar.jsx",
- "source_location": "L33",
+ "source_file": "main/app/authentication/session.py",
+ "source_location": "L133",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_sessionsidebar_jsx",
- "target": "frontend_src_components_settingsdialog_jsx"
+ "source": "authentication_session_getsessionbyid",
+ "target": "authentication_session_validatesession"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/SessionSidebar.jsx",
- "source_location": "L3",
+ "source_file": "main/app/authentication/sso.py",
+ "source_location": "L5",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_sessionsidebar_jsx",
- "target": "components_sessionsidebar_sessionsidebar"
+ "source": "main_app_authentication_sso_py",
+ "target": "authentication_sso_getgooglesso"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/SettingsDialog.jsx",
- "source_location": "L14",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L140",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_settingsdialog_jsx",
- "target": "components_settingsdialog_settingsdialog"
+ "source": "authentication_sso_getgooglesso",
+ "target": "controller_authentication_controller_googlelogin"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/alert-dialog.jsx",
- "source_location": "L7",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L150",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_alert_dialog_jsx",
- "target": "ui_alert_dialog_alertdialog"
+ "source": "authentication_sso_getgooglesso",
+ "target": "controller_authentication_controller_googlecallback"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/alert-dialog.jsx",
- "source_location": "L13",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L1123",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_alert_dialog_jsx",
- "target": "ui_alert_dialog_alertdialogtrigger"
+ "source": "authentication_sso_getgooglesso",
+ "target": "tests_test_prometheus_auth_coverage_test_get_google_sso_with_redirect"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/alert-dialog.jsx",
- "source_location": "L19",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L1142",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_alert_dialog_jsx",
- "target": "ui_alert_dialog_alertdialogportal"
+ "source": "authentication_sso_getgooglesso",
+ "target": "tests_test_prometheus_auth_coverage_test_get_google_sso_default_redirect"
},
{
- "relation": "contains",
+ "relation": "imports_from",
+ "context": "import",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/alert-dialog.jsx",
- "source_location": "L25",
+ "source_file": "main/app/authentication/util.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_alert_dialog_jsx",
- "target": "ui_alert_dialog_alertdialogoverlay"
+ "source": "main_app_authentication_util_py",
+ "target": "fastapi"
},
{
- "relation": "contains",
+ "relation": "imports",
+ "context": "import",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/alert-dialog.jsx",
- "source_location": "L40",
+ "source_file": "main/app/authentication/util.py",
+ "source_location": "L3",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_alert_dialog_jsx",
- "target": "ui_alert_dialog_alertdialogcontent"
+ "source": "main_app_authentication_util_py",
+ "target": "jwt"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/alert-dialog.jsx",
- "source_location": "L60",
+ "source_file": "main/app/authentication/util.py",
+ "source_location": "L8",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_alert_dialog_jsx",
- "target": "ui_alert_dialog_alertdialogheader"
+ "source": "main_app_authentication_util_py",
+ "target": "authentication_util_hashpassword"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/alert-dialog.jsx",
- "source_location": "L75",
+ "source_file": "main/app/authentication/util.py",
+ "source_location": "L13",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_alert_dialog_jsx",
- "target": "ui_alert_dialog_alertdialogfooter"
+ "source": "main_app_authentication_util_py",
+ "target": "authentication_util_verifypassword"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/alert-dialog.jsx",
- "source_location": "L90",
+ "source_file": "main/app/authentication/util.py",
+ "source_location": "L19",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_alert_dialog_jsx",
- "target": "ui_alert_dialog_alertdialogmedia"
+ "source": "main_app_authentication_util_py",
+ "target": "authentication_util_createaccesstoken"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/alert-dialog.jsx",
- "source_location": "L105",
+ "source_file": "main/app/authentication/util.py",
+ "source_location": "L29",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_alert_dialog_jsx",
- "target": "ui_alert_dialog_alertdialogtitle"
+ "source": "main_app_authentication_util_py",
+ "target": "authentication_util_verifyaccesstoken"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/alert-dialog.jsx",
- "source_location": "L120",
+ "source_file": "main/app/authentication/util.py",
+ "source_location": "L54",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_alert_dialog_jsx",
- "target": "ui_alert_dialog_alertdialogdescription"
+ "source": "main_app_authentication_util_py",
+ "target": "authentication_util_extracttokenpayload"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/alert-dialog.jsx",
- "source_location": "L135",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_auth_util.py",
+ "source_location": "L15",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_alert_dialog_jsx",
- "target": "ui_alert_dialog_alertdialogaction"
+ "source": "authentication_util_hashpassword",
+ "target": "tests_test_auth_util_testauthutil_test_hash_password_returns_string"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/alert-dialog.jsx",
- "source_location": "L148",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_auth_util.py",
+ "source_location": "L21",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_alert_dialog_jsx",
- "target": "ui_alert_dialog_alertdialogcancel"
+ "source": "authentication_util_hashpassword",
+ "target": "tests_test_auth_util_testauthutil_test_hash_password_unique_hashes"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/alert-dialog.jsx",
- "source_location": "L32",
+ "source_file": "tests/test_auth_util.py",
+ "source_location": "L27",
"weight": 1.0,
- "source": "ui_alert_dialog_alertdialogoverlay",
- "target": "lib_utils_cn"
+ "source": "authentication_util_hashpassword",
+ "target": "tests_test_auth_util_testauthutil_test_verify_password_correct"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/alert-dialog.jsx",
- "source_location": "L51",
+ "source_file": "tests/test_auth_util.py",
+ "source_location": "L32",
"weight": 1.0,
- "source": "ui_alert_dialog_alertdialogcontent",
- "target": "lib_utils_cn"
+ "source": "authentication_util_hashpassword",
+ "target": "tests_test_auth_util_testauthutil_test_verify_password_incorrect"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/alert-dialog.jsx",
- "source_location": "L67",
+ "source_file": "tests/test_auth_util.py",
+ "source_location": "L39",
"weight": 1.0,
- "source": "ui_alert_dialog_alertdialogheader",
- "target": "lib_utils_cn"
+ "source": "authentication_util_hashpassword",
+ "target": "tests_test_auth_util_testauthutil_test_verify_password_empty_password"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/alert-dialog.jsx",
- "source_location": "L82",
+ "source_file": "tests/test_auth_util.py",
+ "source_location": "L95",
"weight": 1.0,
- "source": "ui_alert_dialog_alertdialogfooter",
- "target": "lib_utils_cn"
+ "source": "authentication_util_hashpassword",
+ "target": "tests_test_auth_util_testauthutiledgecases_test_verify_password_none_password"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/alert-dialog.jsx",
- "source_location": "L97",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1436",
"weight": 1.0,
- "source": "ui_alert_dialog_alertdialogmedia",
- "target": "lib_utils_cn"
+ "source": "authentication_util_hashpassword",
+ "target": "tests_test_controllers_coverage_testhashpasswordempty_test_empty_password_raises"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/alert-dialog.jsx",
- "source_location": "L112",
+ "source_file": "tests/test_auth_util.py",
+ "source_location": "L28",
"weight": 1.0,
- "source": "ui_alert_dialog_alertdialogtitle",
- "target": "lib_utils_cn"
+ "source": "authentication_util_verifypassword",
+ "target": "tests_test_auth_util_testauthutil_test_verify_password_correct"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/alert-dialog.jsx",
- "source_location": "L127",
+ "source_file": "tests/test_auth_util.py",
+ "source_location": "L33",
"weight": 1.0,
- "source": "ui_alert_dialog_alertdialogdescription",
- "target": "lib_utils_cn"
+ "source": "authentication_util_verifypassword",
+ "target": "tests_test_auth_util_testauthutil_test_verify_password_incorrect"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/alert-dialog.jsx",
- "source_location": "L143",
+ "source_file": "tests/test_auth_util.py",
+ "source_location": "L36",
"weight": 1.0,
- "source": "ui_alert_dialog_alertdialogaction",
- "target": "lib_utils_cn"
+ "source": "authentication_util_verifypassword",
+ "target": "tests_test_auth_util_testauthutil_test_verify_password_invalid_hash"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/alert-dialog.jsx",
- "source_location": "L156",
+ "source_file": "tests/test_auth_util.py",
+ "source_location": "L40",
"weight": 1.0,
- "source": "ui_alert_dialog_alertdialogcancel",
- "target": "lib_utils_cn"
+ "source": "authentication_util_verifypassword",
+ "target": "tests_test_auth_util_testauthutil_test_verify_password_empty_password"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/avatar.jsx",
- "source_location": "L6",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_auth_util.py",
+ "source_location": "L91",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_avatar_jsx",
- "target": "ui_avatar_avatar"
+ "source": "authentication_util_verifypassword",
+ "target": "tests_test_auth_util_testauthutiledgecases_test_verify_password_none_hash"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/avatar.jsx",
- "source_location": "L23",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_auth_util.py",
+ "source_location": "L96",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_avatar_jsx",
- "target": "ui_avatar_avatarimage"
+ "source": "authentication_util_verifypassword",
+ "target": "tests_test_auth_util_testauthutiledgecases_test_verify_password_none_password"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/avatar.jsx",
- "source_location": "L35",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_auth_util.py",
+ "source_location": "L100",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_avatar_jsx",
- "target": "ui_avatar_avatarfallback"
+ "source": "authentication_util_verifypassword",
+ "target": "tests_test_auth_util_testauthutiledgecases_test_verify_password_both_none"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/avatar.jsx",
- "source_location": "L50",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L36",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_avatar_jsx",
- "target": "ui_avatar_avatarbadge"
+ "source": "authentication_util_createaccesstoken",
+ "target": "controller_authentication_controller_issuesessioncookie"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/avatar.jsx",
- "source_location": "L68",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_auth_util.py",
+ "source_location": "L43",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_avatar_jsx",
- "target": "ui_avatar_avatargroup"
+ "source": "authentication_util_createaccesstoken",
+ "target": "tests_test_auth_util_testauthutil_test_create_access_token_default_expiry"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/avatar.jsx",
- "source_location": "L83",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_auth_util.py",
+ "source_location": "L51",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_avatar_jsx",
- "target": "ui_avatar_avatargroupcount"
+ "source": "authentication_util_createaccesstoken",
+ "target": "tests_test_auth_util_testauthutil_test_create_access_token_custom_expiry"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/avatar.jsx",
- "source_location": "L15",
+ "source_file": "tests/test_auth_util.py",
+ "source_location": "L62",
"weight": 1.0,
- "source": "ui_avatar_avatar",
- "target": "lib_utils_cn"
+ "source": "authentication_util_createaccesstoken",
+ "target": "tests_test_auth_util_testauthutil_test_create_access_token_contains_data"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/avatar.jsx",
- "source_location": "L30",
+ "source_file": "tests/test_auth_util.py",
+ "source_location": "L79",
"weight": 1.0,
- "source": "ui_avatar_avatarimage",
- "target": "lib_utils_cn"
+ "source": "authentication_util_createaccesstoken",
+ "target": "tests_test_auth_util_testsessionexpiryconfig_test_default_token_expiry_equals_30_days"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/avatar.jsx",
- "source_location": "L42",
+ "source_file": "tests/test_auth_util.py",
+ "source_location": "L104",
"weight": 1.0,
- "source": "ui_avatar_avatarfallback",
- "target": "lib_utils_cn"
+ "source": "authentication_util_createaccesstoken",
+ "target": "tests_test_auth_util_testauthutiledgecases_test_create_access_token_with_empty_data"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/avatar.jsx",
- "source_location": "L57",
+ "source_file": "tests/test_auth_util.py",
+ "source_location": "L110",
"weight": 1.0,
- "source": "ui_avatar_avatarbadge",
- "target": "lib_utils_cn"
+ "source": "authentication_util_createaccesstoken",
+ "target": "tests_test_auth_util_testauthutiledgecases_test_create_access_token_with_none_data"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/avatar.jsx",
- "source_location": "L75",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L48",
"weight": 1.0,
- "source": "ui_avatar_avatargroup",
- "target": "lib_utils_cn"
+ "source": "authentication_util_createaccesstoken",
+ "target": "controller_authentication_controller_register"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/avatar.jsx",
- "source_location": "L90",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L86",
"weight": 1.0,
- "source": "ui_avatar_avatargroupcount",
- "target": "lib_utils_cn"
+ "source": "authentication_util_createaccesstoken",
+ "target": "controller_authentication_controller_login"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/button.jsx",
- "source_location": "L7",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L175",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_button_jsx",
- "target": "ui_button_buttonvariants"
+ "source": "authentication_util_createaccesstoken",
+ "target": "controller_authentication_controller_googlecallback"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/button.jsx",
- "source_location": "L42",
+ "source_file": "main/app/authentication/util.py",
+ "source_location": "L65",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_button_jsx",
- "target": "ui_button_button"
+ "source": "authentication_util_verifyaccesstoken",
+ "target": "authentication_util_extracttokenpayload"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/button.jsx",
- "source_location": "L56",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L111",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "ui_button_button",
- "target": "ui_button_buttonvariants"
+ "source": "authentication_util_verifyaccesstoken",
+ "target": "controller_authentication_controller_logout"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/button.jsx",
- "source_location": "L56",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1454",
"weight": 1.0,
- "source": "ui_button_button",
- "target": "lib_utils_cn"
+ "source": "authentication_util_verifyaccesstoken",
+ "target": "tests_test_controllers_coverage_testverifyaccesstoken_test_expired_token"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/card.jsx",
- "source_location": "L5",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1465",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_card_jsx",
- "target": "ui_card_card"
+ "source": "authentication_util_verifyaccesstoken",
+ "target": "tests_test_controllers_coverage_testverifyaccesstoken_test_invalid_token"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/card.jsx",
- "source_location": "L18",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/app/user/user.py",
+ "source_location": "L42",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_card_jsx",
- "target": "ui_card_cardheader"
+ "source": "authentication_util_verifyaccesstoken",
+ "target": "user_user_getcurrentuser"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/card.jsx",
- "source_location": "L31",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/controller/user_controller.py",
+ "source_location": "L66",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_card_jsx",
- "target": "ui_card_cardtitle"
+ "source": "authentication_util_verifyaccesstoken",
+ "target": "controller_user_controller_getsessions"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/card.jsx",
- "source_location": "L41",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1484",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_card_jsx",
- "target": "ui_card_carddescription"
+ "source": "authentication_util_extracttokenpayload",
+ "target": "tests_test_controllers_coverage_testextracttokenpayloadreraise_test_http_exception_from_verify_propagates"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/card.jsx",
- "source_location": "L51",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_user_deps.py",
+ "source_location": "L24",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_card_jsx",
- "target": "ui_card_cardcontent"
+ "source": "authentication_util_extracttokenpayload",
+ "target": "tests_test_user_deps_testextracttokenpayload_test_missing_token_raises_401"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/card.jsx",
- "source_location": "L57",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_user_deps.py",
+ "source_location": "L35",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_card_jsx",
- "target": "ui_card_cardfooter"
+ "source": "authentication_util_extracttokenpayload",
+ "target": "tests_test_user_deps_testextracttokenpayload_test_x_access_token_header_used"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/card.jsx",
- "source_location": "L9",
+ "source_file": "tests/test_user_deps.py",
+ "source_location": "L45",
"weight": 1.0,
- "source": "ui_card_card",
- "target": "lib_utils_cn"
+ "source": "authentication_util_extracttokenpayload",
+ "target": "tests_test_user_deps_testextracttokenpayload_test_authorization_bearer_header_used"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/card.jsx",
- "source_location": "L22",
+ "source_file": "tests/test_user_deps.py",
+ "source_location": "L55",
"weight": 1.0,
- "source": "ui_card_cardheader",
- "target": "lib_utils_cn"
+ "source": "authentication_util_extracttokenpayload",
+ "target": "tests_test_user_deps_testextracttokenpayload_test_x_access_token_takes_priority_over_bearer"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/card.jsx",
- "source_location": "L35",
+ "source_file": "tests/test_user_deps.py",
+ "source_location": "L64",
"weight": 1.0,
- "source": "ui_card_cardtitle",
- "target": "lib_utils_cn"
+ "source": "authentication_util_extracttokenpayload",
+ "target": "tests_test_user_deps_testextracttokenpayload_test_invalid_token_raises_401"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/card.jsx",
- "source_location": "L45",
+ "source_file": "tests/test_user_deps.py",
+ "source_location": "L74",
"weight": 1.0,
- "source": "ui_card_carddescription",
- "target": "lib_utils_cn"
+ "source": "authentication_util_extracttokenpayload",
+ "target": "tests_test_user_deps_testextracttokenpayload_test_empty_user_id_raises_401"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/card.jsx",
- "source_location": "L53",
+ "source_file": "tests/test_user_deps.py",
+ "source_location": "L83",
"weight": 1.0,
- "source": "ui_card_cardcontent",
- "target": "lib_utils_cn"
+ "source": "authentication_util_extracttokenpayload",
+ "target": "tests_test_user_deps_testextracttokenpayload_test_empty_bearer_value_raises_401"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/card.jsx",
- "source_location": "L61",
+ "source_file": "tests/test_user_deps.py",
+ "source_location": "L92",
"weight": 1.0,
- "source": "ui_card_cardfooter",
- "target": "lib_utils_cn"
+ "source": "authentication_util_extracttokenpayload",
+ "target": "tests_test_user_deps_testextracttokenpayload_test_non_bearer_auth_header_raises_401"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L7",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L26",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_context_menu_jsx",
- "target": "ui_context_menu_contextmenu"
+ "source": "main_app_prometheus_agent_py",
+ "target": "prometheus_agent_safefilter"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L13",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L58",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_context_menu_jsx",
- "target": "ui_context_menu_contextmenutrigger"
+ "source": "main_app_prometheus_agent_py",
+ "target": "prometheus_agent_getclient"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L25",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L134",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_context_menu_jsx",
- "target": "ui_context_menu_contextmenugroup"
+ "source": "main_app_prometheus_agent_py",
+ "target": "prometheus_agent_prometheus"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L31",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L139",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_context_menu_jsx",
- "target": "ui_context_menu_contextmenuportal"
+ "source": "main_app_prometheus_agent_py",
+ "target": "prometheus_agent_buildsystemprompt"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L37",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L21",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_context_menu_jsx",
- "target": "ui_context_menu_contextmenusub"
+ "source": "main_app_prometheus_agent_py",
+ "target": "prometheus_agent_safe_filter"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L43",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L27",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_context_menu_jsx",
- "target": "ui_context_menu_contextmenuradiogroup"
+ "source": "main_app_prometheus_agent_py",
+ "target": "prometheus_agent_onextractiondone"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L49",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L35",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_context_menu_jsx",
- "target": "ui_context_menu_contextmenucontent"
+ "source": "main_app_prometheus_agent_py",
+ "target": "prometheus_agent_spawnextraction"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L66",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L58",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_context_menu_jsx",
- "target": "ui_context_menu_contextmenuitem"
+ "source": "main_app_prometheus_agent_py",
+ "target": "prometheus_agent_get_client"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L85",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L161",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_context_menu_jsx",
- "target": "ui_context_menu_contextmenusubtrigger"
+ "source": "main_app_prometheus_agent_py",
+ "target": "prometheus_agent_openmcpclients"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L106",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L90",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_context_menu_jsx",
- "target": "ui_context_menu_contextmenusubcontent"
+ "source": "main_app_prometheus_agent_py",
+ "target": "prometheus_agent_executememorytool"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L121",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L27",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_context_menu_jsx",
- "target": "ui_context_menu_contextmenucheckboxitem"
+ "source": "main_app_prometheus_agent_py",
+ "target": "prometheus_agent_build_system_prompt"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L148",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L57",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_context_menu_jsx",
- "target": "ui_context_menu_contextmenuradioitem"
+ "source": "main_app_prometheus_agent_py",
+ "target": "prometheus_agent_get_memory_tools"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L173",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L92",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_context_menu_jsx",
- "target": "ui_context_menu_contextmenulabel"
+ "source": "main_app_prometheus_agent_py",
+ "target": "prometheus_agent_execute_memory_tool"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L187",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L47",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_context_menu_jsx",
- "target": "ui_context_menu_contextmenuseparator"
+ "source": "main_app_prometheus_agent_py",
+ "target": "prometheus_agent_chatsession"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L199",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L223",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_context_menu_jsx",
- "target": "ui_context_menu_contextmenushortcut"
+ "source": "prometheus_agent_prometheus_init",
+ "target": "prometheus_agent_getclient"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L20",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L135",
"weight": 1.0,
- "source": "ui_context_menu_contextmenutrigger",
- "target": "lib_utils_cn"
+ "confidence_score": 1.0,
+ "source": "prometheus_agent_prometheus",
+ "target": "prometheus_agent_prometheus_init"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L57",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L169",
"weight": 1.0,
- "source": "ui_context_menu_contextmenucontent",
- "target": "lib_utils_cn"
+ "confidence_score": 1.0,
+ "source": "prometheus_agent_prometheus",
+ "target": "prometheus_agent_prometheus_makechat"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L77",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L178",
"weight": 1.0,
- "source": "ui_context_menu_contextmenuitem",
- "target": "lib_utils_cn"
+ "confidence_score": 1.0,
+ "source": "prometheus_agent_prometheus",
+ "target": "prometheus_agent_prometheus_streammessage"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L13",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "models_prometheus_prometheussession"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L11",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "models_memory_prometheusmemory"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L12",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "prometheus_chat_prometheuschatmanager"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L18",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "prometheus_compact_prometheuscompactor"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L14",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "prometheus_sandbox_sandboxmanager"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L16",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "prometheus_events_looplogger"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L15",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "prometheus_compact_fieldregistry"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L16",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "prometheus_mcp_mcpclientpool"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L14",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "prometheus_state_harnessstate"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L17",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "prometheus_summarizer_prometheussummarizer"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_agent_state_integration.py",
+ "source_location": "L3",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "tests_test_agent_state_integration_testbuildsystempromptstate"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_agent_state_integration.py",
+ "source_location": "L3",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "tests_test_agent_state_integration_testsendmessagestateintegration"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_agent_state_integration.py",
+ "source_location": "L3",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "tests_test_agent_state_integration_teststreammessagestateintegration"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_agent_state_integration.py",
+ "source_location": "L192",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "tests_test_agent_state_integration_testsystempromptstateinstructions"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L90",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "tests_test_memory_tools_wiring_testmemorytoolfunctions"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L90",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "tests_test_memory_tools_wiring_testtoolregistry"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L58",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "tests_test_memory_tools_wiring_testmakechatincludesmemorytools"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L58",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "tests_test_memory_tools_wiring_testdispatchroutesmemorytools"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L159",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "tests_test_prometheus_auth_coverage_testprometheusinit"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L159",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "tests_test_prometheus_auth_coverage_testprometheussendmessage"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L159",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "tests_test_prometheus_auth_coverage_testprometheuschatmanager"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L159",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "tests_test_prometheus_auth_coverage_testauthenticationmanager"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L159",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "tests_test_prometheus_auth_coverage_testsessionmanager"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L159",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "tests_test_prometheus_auth_coverage_testsso"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_streammessage_no_chatsession.py",
+ "source_location": "L14",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "tests_test_streammessage_no_chatsession_fakechunk"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_streammessage_no_chatsession.py",
+ "source_location": "L14",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "tests_test_streammessage_no_chatsession_teststreammessagenochatsession"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L95",
- "weight": 1.0,
- "source": "ui_context_menu_contextmenusubtrigger",
- "target": "lib_utils_cn"
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "tests_test_agent_sandbox_integration_testpersistentsandboxlifecycle"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L113",
- "weight": 1.0,
- "source": "ui_context_menu_contextmenusubcontent",
- "target": "lib_utils_cn"
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L31",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "models_memory_usermemory"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L132",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L34",
"weight": 1.0,
- "source": "ui_context_menu_contextmenucheckboxitem",
- "target": "lib_utils_cn"
+ "confidence_score": 1.0,
+ "source": "prometheus_agent_prometheus",
+ "target": "prometheus_agent_prometheus_sendmessage"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L158",
- "weight": 1.0,
- "source": "ui_context_menu_contextmenuradioitem",
- "target": "lib_utils_cn"
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L4",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "tests_test_agent_sandbox_integration_testagentsandboxintegration"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L182",
- "weight": 1.0,
- "source": "ui_context_menu_contextmenulabel",
- "target": "lib_utils_cn"
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L3",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "tests_test_agent_sandbox_integration_testpremiumcheck"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L194",
- "weight": 1.0,
- "source": "ui_context_menu_contextmenuseparator",
- "target": "lib_utils_cn"
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L15",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "prometheus_cache_resultcache"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/context-menu.jsx",
- "source_location": "L206",
- "weight": 1.0,
- "source": "ui_context_menu_contextmenushortcut",
- "target": "lib_utils_cn"
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L58",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "tests_test_memory_tools_wiring_testmemorytoolsdefinition"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/dialog.jsx",
- "source_location": "L10",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L102",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_dialog_jsx",
- "target": "ui_dialog_dialog"
+ "source": "prometheus_agent_prometheus",
+ "target": "prometheus_agent_prometheus_executetoolcall"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/dialog.jsx",
- "source_location": "L16",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_dialog_jsx",
- "target": "ui_dialog_dialogtrigger"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L94",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_agent_prometheus",
+ "target": "prometheus_memory_memorymanager"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/dialog.jsx",
- "source_location": "L22",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L21",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_dialog_jsx",
- "target": "ui_dialog_dialogportal"
+ "source": "prometheus_agent_prometheus",
+ "target": "prometheus_agent_prometheus_updatedates"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/dialog.jsx",
- "source_location": "L28",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L224",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_dialog_jsx",
- "target": "ui_dialog_dialogclose"
+ "source": "prometheus_agent_prometheus_init",
+ "target": "prometheus_agent_get_client"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/dialog.jsx",
- "source_location": "L34",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L19",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_dialog_jsx",
- "target": "ui_dialog_dialogoverlay"
+ "source": "prometheus_agent_prometheus_init",
+ "target": "prometheus_agent_prometheus_updatedates"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/dialog.jsx",
- "source_location": "L49",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L182",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_dialog_jsx",
- "target": "ui_dialog_dialogcontent"
+ "source": "prometheus_agent_prometheus_streammessage",
+ "target": "prometheus_agent_buildsystemprompt"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/dialog.jsx",
- "source_location": "L82",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L213",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_dialog_jsx",
- "target": "ui_dialog_dialogheader"
+ "source": "prometheus_agent_buildsystemprompt",
+ "target": "prometheus_compact_prometheuscompactor"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/dialog.jsx",
- "source_location": "L94",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L163",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_dialog_jsx",
- "target": "ui_dialog_dialogfooter"
+ "source": "prometheus_agent_buildsystemprompt",
+ "target": "prometheus_summarizer_prometheussummarizer"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/dialog.jsx",
- "source_location": "L115",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L261",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_dialog_jsx",
- "target": "ui_dialog_dialogtitle"
+ "source": "prometheus_agent_buildsystemprompt",
+ "target": "prometheus_agent_prometheus_sendmessage"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/dialog.jsx",
- "source_location": "L127",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L186",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_dialog_jsx",
- "target": "ui_dialog_dialogdescription"
+ "source": "prometheus_agent_prometheus_streammessage",
+ "target": "prometheus_agent_prometheus_makechat"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/dialog.jsx",
- "source_location": "L41",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L160",
"weight": 1.0,
- "source": "ui_dialog_dialogoverlay",
- "target": "lib_utils_cn"
+ "confidence_score": 1.0,
+ "source": "prometheus_agent_prometheus_makechat",
+ "target": "prometheus_agent_prometheus_sendmessage"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/dialog.jsx",
- "source_location": "L60",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L212",
"weight": 1.0,
- "source": "ui_dialog_dialogcontent",
- "target": "lib_utils_cn"
+ "confidence_score": 1.0,
+ "source": "prometheus_agent_prometheus_makechat",
+ "target": "prometheus_agent_get_memory_tools"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/dialog.jsx",
- "source_location": "L89",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L251",
"weight": 1.0,
- "source": "ui_dialog_dialogheader",
- "target": "lib_utils_cn"
+ "source": "prometheus_agent_prometheus_streammessage",
+ "target": "prometheus_compact_loadfielddata"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/dialog.jsx",
- "source_location": "L103",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L256",
"weight": 1.0,
- "source": "ui_dialog_dialogfooter",
- "target": "lib_utils_cn"
+ "source": "prometheus_agent_prometheus_streammessage",
+ "target": "prometheus_compact_prometheuscompactor"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/dialog.jsx",
- "source_location": "L122",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L252",
"weight": 1.0,
- "source": "ui_dialog_dialogtitle",
- "target": "lib_utils_cn"
+ "source": "prometheus_agent_prometheus_streammessage",
+ "target": "prometheus_memory_extract"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/dialog.jsx",
- "source_location": "L134",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L231",
"weight": 1.0,
- "source": "ui_dialog_dialogdescription",
- "target": "lib_utils_cn"
+ "source": "prometheus_agent_prometheus_streammessage",
+ "target": "prometheus_tools_dispatchtoolcall"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/input.jsx",
- "source_location": "L5",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L272",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_input_jsx",
- "target": "ui_input_input"
+ "source": "prometheus_agent_prometheus_streammessage",
+ "target": "prometheus_agent_spawnextraction"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/input.jsx",
- "source_location": "L14",
- "weight": 1.0,
- "source": "ui_input_input",
- "target": "lib_utils_cn"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/scroll-area.jsx",
- "source_location": "L8",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L202",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_scroll_area_jsx",
- "target": "ui_scroll_area_scrollarea"
+ "source": "prometheus_agent_prometheus_streammessage",
+ "target": "prometheus_events_looplogger"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/scroll-area.jsx",
- "source_location": "L26",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L239",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_components_ui_scroll_area_jsx",
- "target": "ui_scroll_area_scrollbar"
+ "source": "prometheus_agent_prometheus_streammessage",
+ "target": "prometheus_mcp_mcpclientpool"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/scroll-area.jsx",
- "source_location": "L14",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L242",
"weight": 1.0,
- "source": "ui_scroll_area_scrollarea",
- "target": "lib_utils_cn"
+ "source": "prometheus_agent_prometheus_streammessage",
+ "target": "prometheus_compact_fieldregistry"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/scroll-area.jsx",
- "source_location": "L36",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L182",
"weight": 1.0,
- "source": "ui_scroll_area_scrollbar",
- "target": "lib_utils_cn"
+ "source": "prometheus_agent_prometheus_streammessage",
+ "target": "prometheus_state_harnessstate"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/components/ui/separator.jsx",
- "source_location": "L6",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L185",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_components_ui_separator_jsx",
- "target": "ui_separator_separator"
+ "source": "prometheus_agent_prometheus_streammessage",
+ "target": "prometheus_agent_openmcpclients"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "frontend/src/components/ui/separator.jsx",
- "source_location": "L17",
- "weight": 1.0,
- "source": "ui_separator_separator",
- "target": "lib_utils_cn"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/lib/prometheus-components.jsx",
- "source_location": "L9",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L293",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_lib_prometheus_components_jsx",
- "target": "lib_prometheus_components_statcard"
+ "source": "prometheus_agent_prometheus_streammessage",
+ "target": "prometheus_summarizer_prometheussummarizer"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "frontend/src/lib/prometheus-components.jsx",
- "source_location": "L39",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L203",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_lib_prometheus_components_jsx",
- "target": "lib_prometheus_components_datatable"
+ "source": "prometheus_agent_prometheus_streammessage",
+ "target": "prometheus_cache_resultcache"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/lib/prometheus-components.jsx",
- "source_location": "L82",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L208",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_lib_prometheus_components_jsx",
- "target": "lib_prometheus_components_barchart"
+ "source": "prometheus_agent_prometheus_streammessage",
+ "target": "prometheus_agent_prometheus_executetoolcall"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/lib/prometheus-components.jsx",
- "source_location": "L123",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L281",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_lib_prometheus_components_jsx",
- "target": "lib_prometheus_components_contentcard"
+ "source": "prometheus_agent_prometheus_streammessage",
+ "target": "prometheus_agent_build_system_prompt"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/lib/prometheus-components.jsx",
- "source_location": "L148",
+ "source_file": "main/app/prometheus/agent.py",
+ "source_location": "L88",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_lib_prometheus_components_jsx",
- "target": "lib_prometheus_components_tabgroup"
+ "source": "prometheus_agent_prometheus_streammessage",
+ "target": "prometheus_agent_chatsession"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/lib/prometheus-components.jsx",
- "source_location": "L158",
+ "source_file": "main/app/prometheus/chat.py",
+ "source_location": "L15",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_lib_prometheus_components_jsx",
- "target": "lib_prometheus_components_tabpanel"
+ "source": "main_app_prometheus_chat_py",
+ "target": "prometheus_chat_prometheuschatmanager"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/lib/prometheus-components.jsx",
- "source_location": "L179",
+ "source_file": "main/app/prometheus/chat.py",
+ "source_location": "L17",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_lib_prometheus_components_jsx",
- "target": "lib_prometheus_components_accordionitem"
+ "source": "main_app_prometheus_chat_py",
+ "target": "prometheus_chat_getusersessions"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/lib/prometheus-components.jsx",
- "source_location": "L202",
+ "source_file": "main/app/prometheus/chat.py",
+ "source_location": "L35",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_lib_prometheus_components_jsx",
- "target": "lib_prometheus_components_progressfill"
+ "source": "main_app_prometheus_chat_py",
+ "target": "prometheus_chat_createsession"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/lib/prometheus-components.jsx",
- "source_location": "L226",
+ "source_file": "main/app/prometheus/chat.py",
+ "source_location": "L43",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "frontend_src_lib_prometheus_components_jsx",
- "target": "lib_prometheus_components_divider"
+ "source": "main_app_prometheus_chat_py",
+ "target": "prometheus_chat_updatesessiontitle"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "frontend/src/lib/utils.js",
- "source_location": "L4",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "frontend_src_lib_utils_js",
- "target": "lib_utils_cn"
- },
- {
- "relation": "imports_from",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "main/app/authentication/authentication.py",
- "source_location": "L5",
+ "source_file": "main/app/prometheus/chat.py",
+ "source_location": "L54",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_authentication_py",
- "target": "fastapi"
+ "source": "main_app_prometheus_chat_py",
+ "target": "prometheus_chat_savemessage"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/authentication.py",
- "source_location": "L13",
+ "source_file": "main/app/prometheus/chat.py",
+ "source_location": "L76",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_authentication_py",
- "target": "authentication_authentication_authenticationmanager"
+ "source": "main_app_prometheus_chat_py",
+ "target": "prometheus_chat_saveloopevent"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/authentication.py",
- "source_location": "L15",
+ "source_file": "main/app/prometheus/chat.py",
+ "source_location": "L82",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_authentication_py",
- "target": "authentication_authentication_createuseraccount"
+ "source": "main_app_prometheus_chat_py",
+ "target": "prometheus_chat_gethistory"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/authentication.py",
- "source_location": "L48",
+ "source_file": "main/app/prometheus/chat.py",
+ "source_location": "L105",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_authentication_py",
- "target": "authentication_authentication_authenticategoogleuser"
+ "source": "main_app_prometheus_chat_py",
+ "target": "prometheus_chat_deletesession"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/authentication.py",
- "source_location": "L62",
+ "source_file": "main/app/prometheus/chat.py",
+ "source_location": "L119",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_authentication_authentication_py",
- "target": "authentication_authentication_authenticateuser"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/authentication/authentication.py",
- "source_location": "L2",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "authentication_authentication_authenticationmanager",
- "target": "utils_roles_roles"
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_chat_py",
+ "target": "prometheus_chat_verifysessionownership"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/chat.py",
+ "source_location": "L98",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_chat_py",
+ "target": "prometheus_chat_updatesummary"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "main/app/authentication/authentication.py",
+ "source_file": "main/app/prometheus/chat.py",
"source_location": "L8",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "authentication_authentication_authenticationmanager",
- "target": "user_user_usermanager"
+ "source": "prometheus_chat_prometheuschatmanager",
+ "target": "models_prometheus_prometheussession"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "main/app/authentication/authentication.py",
- "source_location": "L9",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L319",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "authentication_authentication_authenticationmanager",
- "target": "models_user_user"
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "prometheus_chat_prometheuschatmanager"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L560",
+ "source_location": "L383",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "authentication_authentication_authenticationmanager",
+ "source": "prometheus_chat_prometheuschatmanager",
"target": "tests_test_prometheus_auth_coverage_testprometheusinit"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L560",
+ "source_location": "L383",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "authentication_authentication_authenticationmanager",
+ "source": "prometheus_chat_prometheuschatmanager",
"target": "tests_test_prometheus_auth_coverage_testprometheussendmessage"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L827",
+ "source_location": "L650",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "authentication_authentication_authenticationmanager",
+ "source": "prometheus_chat_prometheuschatmanager",
"target": "tests_test_prometheus_auth_coverage_testprometheuschatmanager"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L827",
+ "source_location": "L650",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "authentication_authentication_authenticationmanager",
+ "source": "prometheus_chat_prometheuschatmanager",
"target": "tests_test_prometheus_auth_coverage_testauthenticationmanager"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L827",
+ "source_location": "L650",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "authentication_authentication_authenticationmanager",
+ "source": "prometheus_chat_prometheuschatmanager",
"target": "tests_test_prometheus_auth_coverage_testsessionmanager"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L827",
+ "source_location": "L650",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "authentication_authentication_authenticationmanager",
+ "source": "prometheus_chat_prometheuschatmanager",
"target": "tests_test_prometheus_auth_coverage_testsso"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_prometheus_auth_coverage.py",
+ "source_location": "L446",
+ "weight": 1.0,
+ "source": "prometheus_chat_prometheuschatmanager",
+ "target": "tests_test_prometheus_auth_coverage_testprometheuschatmanager_test_init"
+ },
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L827",
+ "source_location": "L650",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "authentication_authentication_authenticationmanager",
+ "source": "prometheus_chat_prometheuschatmanager",
"target": "tests_test_prometheus_auth_coverage_testprometheusgeneratorinit"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L827",
+ "source_location": "L650",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "authentication_authentication_authenticationmanager",
+ "source": "prometheus_chat_prometheuschatmanager",
"target": "tests_test_prometheus_auth_coverage_testprometheusgeneratorexecuteworkflow"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/authentication/authentication.py",
- "source_location": "L29",
+ "source_file": "main/app/prometheus/generation.py",
+ "source_location": "L14",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_chat_prometheuschatmanager",
+ "target": "prometheus_generation_prometheusgenerator"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/chat.py",
+ "source_location": "L11",
"weight": 1.0,
- "source": "authentication_authentication_createuseraccount",
- "target": "authentication_util_hashpassword"
+ "confidence_score": 1.0,
+ "source": "prometheus_chat_prometheuschatmanager",
+ "target": "prometheus_chat_prometheuschatmanager_init"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/authentication/authentication.py",
- "source_location": "L31",
- "weight": 1.0,
- "source": "authentication_authentication_createuseraccount",
- "target": "models_user_user"
+ "source_file": "main/app/prometheus/generation.py",
+ "source_location": "L14",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_chat_prometheuschatmanager",
+ "target": "prometheus_generation_sessionproxy"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/authentication/authentication.py",
- "source_location": "L66",
+ "source_file": "main/app/prometheus/chat.py",
+ "source_location": "L41",
"weight": 1.0,
- "source": "authentication_authentication_authenticateuser",
- "target": "authentication_util_verifypassword"
+ "source": "prometheus_chat_createsession",
+ "target": "models_prometheus_prometheussession"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/session.py",
- "source_location": "L11",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L33",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_session_py",
- "target": "authentication_session_sessionmanager"
+ "source": "main_app_prometheus_compact_py",
+ "target": "prometheus_compact_gettokenizer"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/session.py",
- "source_location": "L17",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L45",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_session_py",
- "target": "authentication_session_getdevicename"
+ "source": "main_app_prometheus_compact_py",
+ "target": "prometheus_compact_counttokens"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/session.py",
- "source_location": "L13",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L92",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_session_py",
- "target": "authentication_session_createsession"
+ "source": "main_app_prometheus_compact_py",
+ "target": "prometheus_compact_getstocksfieldsurl"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/session.py",
- "source_location": "L50",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L93",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_session_py",
- "target": "authentication_session_getusersessions"
+ "source": "main_app_prometheus_compact_py",
+ "target": "prometheus_compact_loadfielddata"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/session.py",
- "source_location": "L57",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L119",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_session_py",
- "target": "authentication_session_getsessionbyid"
+ "source": "main_app_prometheus_compact_py",
+ "target": "prometheus_compact_gethistoricalfields"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/session.py",
- "source_location": "L68",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L123",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_session_py",
- "target": "authentication_session_getcurrentsession"
+ "source": "main_app_prometheus_compact_py",
+ "target": "prometheus_compact_getfundamentalcolumns"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/session.py",
- "source_location": "L80",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L127",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_session_py",
- "target": "authentication_session_revokesession"
+ "source": "main_app_prometheus_compact_py",
+ "target": "prometheus_compact_invalidatefielddata"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/session.py",
- "source_location": "L92",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L133",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_session_py",
- "target": "authentication_session_revokeallsessions"
+ "source": "main_app_prometheus_compact_py",
+ "target": "prometheus_compact_getmetricregex"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/session.py",
- "source_location": "L108",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L109",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_session_py",
- "target": "authentication_session_updatelastactive"
+ "source": "main_app_prometheus_compact_py",
+ "target": "prometheus_compact_extracttickers"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/session.py",
- "source_location": "L132",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L113",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_session_py",
- "target": "authentication_session_validatesession"
+ "source": "main_app_prometheus_compact_py",
+ "target": "prometheus_compact_extractmetrics"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/session.py",
- "source_location": "L118",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L123",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_session_py",
- "target": "authentication_session_cleanupexpiredsessions"
+ "source": "main_app_prometheus_compact_py",
+ "target": "prometheus_compact_extractdecisions"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/session.py",
- "source_location": "L64",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L137",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_session_py",
- "target": "authentication_session_getsessionbyidsafe"
+ "source": "main_app_prometheus_compact_py",
+ "target": "prometheus_compact_extractsnapshots"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/authentication/session.py",
- "source_location": "L6",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "authentication_session_sessionmanager",
- "target": "models_user_session_usersession"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L150",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_compact_py",
+ "target": "prometheus_compact_extracttoolcalls"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/user/user.py",
- "source_location": "L30",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "authentication_session_sessionmanager",
- "target": "user_user_usermanager"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L166",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_compact_py",
+ "target": "prometheus_compact_buildsummary"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L825",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "authentication_session_sessionmanager",
- "target": "tests_test_prometheus_auth_coverage_testprometheusinit"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L186",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_compact_py",
+ "target": "prometheus_compact_prometheuscompactor"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L825",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "authentication_session_sessionmanager",
- "target": "tests_test_prometheus_auth_coverage_testprometheussendmessage"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L41",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_compact_py",
+ "target": "prometheus_compact_fieldregistry"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L1092",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "authentication_session_sessionmanager",
- "target": "tests_test_prometheus_auth_coverage_testprometheuschatmanager"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L105",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_compact_py",
+ "target": "prometheus_compact_charcount"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L1092",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "authentication_session_sessionmanager",
- "target": "tests_test_prometheus_auth_coverage_testauthenticationmanager"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L48",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_compact_counttokens",
+ "target": "prometheus_compact_gettokenizer"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L1092",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "authentication_session_sessionmanager",
- "target": "tests_test_prometheus_auth_coverage_testsessionmanager"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L228",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_compact_prometheuscompactor_shouldcompact",
+ "target": "prometheus_compact_counttokens"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L1092",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "authentication_session_sessionmanager",
- "target": "tests_test_prometheus_auth_coverage_testsso"
+ "confidence_score": 0.8,
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L347",
+ "weight": 1.0,
+ "source": "prometheus_memory_counttokenscached",
+ "target": "prometheus_compact_counttokens"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_sessions.py",
- "source_location": "L9",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "authentication_session_sessionmanager",
- "target": "tests_test_sessions_testusersessionmodel"
+ "confidence_score": 0.8,
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L340",
+ "weight": 1.0,
+ "source": "prometheus_memory_extract",
+ "target": "prometheus_compact_counttokens"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_sessions.py",
- "source_location": "L9",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "authentication_session_sessionmanager",
- "target": "tests_test_sessions_testsessionexpiration"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L154",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_compact_charcount",
+ "target": "prometheus_compact_counttokens"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L1092",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "authentication_session_sessionmanager",
- "target": "tests_test_prometheus_auth_coverage_testprometheusgeneratorinit"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L108",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_compact_loadfielddata",
+ "target": "prometheus_compact_getstocksfieldsurl"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L1092",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "authentication_session_sessionmanager",
- "target": "tests_test_prometheus_auth_coverage_testprometheusgeneratorexecuteworkflow"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L120",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_compact_gethistoricalfields",
+ "target": "prometheus_compact_loadfielddata"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/authentication/session.py",
- "source_location": "L29",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L124",
"weight": 1.0,
- "source": "authentication_session_createsession",
- "target": "models_user_session_usersession"
+ "confidence_score": 1.0,
+ "source": "prometheus_compact_getfundamentalcolumns",
+ "target": "prometheus_compact_loadfielddata"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/authentication/session.py",
- "source_location": "L23",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L136",
"weight": 1.0,
- "source": "authentication_device_parseuseragent",
- "target": "authentication_session_createsession"
+ "confidence_score": 1.0,
+ "source": "prometheus_compact_getmetricregex",
+ "target": "prometheus_compact_loadfielddata"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L97",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_compact_rationale_97",
+ "target": "prometheus_compact_loadfielddata"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L95",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_compact_rationale_95",
+ "target": "prometheus_compact_loadfielddata"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/session.py",
- "source_location": "L81",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L151",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "authentication_session_getsessionbyid",
- "target": "authentication_session_revokesession"
+ "source": "prometheus_compact_extractmetrics",
+ "target": "prometheus_compact_getmetricregex"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/session.py",
- "source_location": "L133",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L212",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "authentication_session_getsessionbyid",
- "target": "authentication_session_validatesession"
+ "source": "prometheus_compact_prometheuscompactor_extractepisode",
+ "target": "prometheus_compact_extracttickers"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/sso.py",
- "source_location": "L5",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L213",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_sso_py",
- "target": "authentication_sso_getgooglesso"
+ "source": "prometheus_compact_prometheuscompactor_extractepisode",
+ "target": "prometheus_compact_extractmetrics"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L140",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L115",
"weight": 1.0,
- "source": "authentication_sso_getgooglesso",
- "target": "controller_authentication_controller_googlelogin"
+ "confidence_score": 1.0,
+ "source": "prometheus_compact_extractmetrics",
+ "target": "prometheus_compact_fieldregistry_getmetricregex"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L150",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L214",
"weight": 1.0,
- "source": "authentication_sso_getgooglesso",
- "target": "controller_authentication_controller_googlecallback"
+ "confidence_score": 1.0,
+ "source": "prometheus_compact_prometheuscompactor_extractepisode",
+ "target": "prometheus_compact_extractdecisions"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L215",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_compact_prometheuscompactor_extractepisode",
+ "target": "prometheus_compact_extractsnapshots"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L1123",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L216",
"weight": 1.0,
- "source": "authentication_sso_getgooglesso",
- "target": "tests_test_prometheus_auth_coverage_test_get_google_sso_with_redirect"
+ "confidence_score": 1.0,
+ "source": "prometheus_compact_prometheuscompactor_extractepisode",
+ "target": "prometheus_compact_extracttoolcalls"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L1142",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L218",
"weight": 1.0,
- "source": "authentication_sso_getgooglesso",
- "target": "tests_test_prometheus_auth_coverage_test_get_google_sso_default_redirect"
+ "confidence_score": 1.0,
+ "source": "prometheus_compact_prometheuscompactor_extractepisode",
+ "target": "prometheus_compact_buildsummary"
},
{
- "relation": "imports_from",
- "context": "import",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/util.py",
- "source_location": "L1",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L190",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_util_py",
- "target": "fastapi"
+ "source": "prometheus_compact_prometheuscompactor",
+ "target": "prometheus_compact_prometheuscompactor_shouldcompact"
},
{
- "relation": "imports",
- "context": "import",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/util.py",
- "source_location": "L3",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L196",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_util_py",
- "target": "jwt"
+ "source": "prometheus_compact_prometheuscompactor",
+ "target": "prometheus_compact_prometheuscompactor_getcompactablechunk"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/util.py",
- "source_location": "L8",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L205",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_util_py",
- "target": "authentication_util_hashpassword"
+ "source": "prometheus_compact_prometheuscompactor",
+ "target": "prometheus_compact_prometheuscompactor_extractepisode"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/util.py",
- "source_location": "L13",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L227",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_util_py",
- "target": "authentication_util_verifypassword"
+ "source": "prometheus_compact_prometheuscompactor",
+ "target": "prometheus_compact_prometheuscompactor_consolidate"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/util.py",
- "source_location": "L19",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L254",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_util_py",
- "target": "authentication_util_createaccesstoken"
+ "source": "prometheus_compact_prometheuscompactor",
+ "target": "prometheus_compact_prometheuscompactor_compact"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/util.py",
- "source_location": "L29",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L293",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_util_py",
- "target": "authentication_util_verifyaccesstoken"
+ "source": "prometheus_compact_prometheuscompactor",
+ "target": "prometheus_compact_prometheuscompactor_getepisodes"
},
{
- "relation": "contains",
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L14",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_compact_prometheuscompactor",
+ "target": "models_prometheus_prometheussession"
+ },
+ {
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/util.py",
- "source_location": "L54",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L187",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_authentication_util_py",
- "target": "authentication_util_extracttokenpayload"
+ "source": "prometheus_compact_prometheuscompactor",
+ "target": "prometheus_compact_prometheuscompactor_init"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_auth_util.py",
- "source_location": "L15",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L265",
"weight": 1.0,
- "source": "authentication_util_hashpassword",
- "target": "tests_test_auth_util_testauthutil_test_hash_password_returns_string"
+ "confidence_score": 1.0,
+ "source": "prometheus_compact_prometheuscompactor_compact",
+ "target": "prometheus_compact_prometheuscompactor_shouldcompact"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_auth_util.py",
- "source_location": "L21",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L193",
"weight": 1.0,
- "source": "authentication_util_hashpassword",
- "target": "tests_test_auth_util_testauthutil_test_hash_password_unique_hashes"
+ "confidence_score": 1.0,
+ "source": "prometheus_compact_prometheuscompactor_shouldcompact",
+ "target": "prometheus_compact_charcount"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_auth_util.py",
- "source_location": "L27",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L263",
"weight": 1.0,
- "source": "authentication_util_hashpassword",
- "target": "tests_test_auth_util_testauthutil_test_verify_password_correct"
+ "confidence_score": 1.0,
+ "source": "prometheus_compact_prometheuscompactor_compact",
+ "target": "prometheus_compact_prometheuscompactor_getcompactablechunk"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_auth_util.py",
- "source_location": "L32",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L268",
"weight": 1.0,
- "source": "authentication_util_hashpassword",
- "target": "tests_test_auth_util_testauthutil_test_verify_password_incorrect"
+ "confidence_score": 1.0,
+ "source": "prometheus_compact_prometheuscompactor_compact",
+ "target": "prometheus_compact_prometheuscompactor_extractepisode"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_auth_util.py",
- "source_location": "L39",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L281",
"weight": 1.0,
- "source": "authentication_util_hashpassword",
- "target": "tests_test_auth_util_testauthutil_test_verify_password_empty_password"
+ "confidence_score": 1.0,
+ "source": "prometheus_compact_prometheuscompactor_compact",
+ "target": "prometheus_compact_prometheuscompactor_consolidate"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_auth_util.py",
- "source_location": "L95",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/compact.py",
+ "source_location": "L262",
"weight": 1.0,
- "source": "authentication_util_hashpassword",
- "target": "tests_test_auth_util_testauthutiledgecases_test_verify_password_none_password"
+ "confidence_score": 1.0,
+ "source": "prometheus_compact_prometheuscompactor_compact",
+ "target": "prometheus_compact_prometheuscompactor_getepisodes"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1436",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/mcp.py",
+ "source_location": "L26",
"weight": 1.0,
- "source": "authentication_util_hashpassword",
- "target": "tests_test_controllers_coverage_testhashpasswordempty_test_empty_password_raises"
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_mcp_py",
+ "target": "prometheus_mcp_buildclient"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_auth_util.py",
- "source_location": "L28",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/mcp.py",
+ "source_location": "L15",
"weight": 1.0,
- "source": "authentication_util_verifypassword",
- "target": "tests_test_auth_util_testauthutil_test_verify_password_correct"
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_mcp_py",
+ "target": "prometheus_mcp_mcpclientpool"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_auth_util.py",
- "source_location": "L33",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/mcp.py",
+ "source_location": "L16",
"weight": 1.0,
- "source": "authentication_util_verifypassword",
- "target": "tests_test_auth_util_testauthutil_test_verify_password_incorrect"
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_mcp_py",
+ "target": "prometheus_mcp_parseservers"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_auth_util.py",
- "source_location": "L36",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/mcp.py",
+ "source_location": "L55",
"weight": 1.0,
- "source": "authentication_util_verifypassword",
- "target": "tests_test_auth_util_testauthutil_test_verify_password_invalid_hash"
+ "confidence_score": 1.0,
+ "source": "prometheus_mcp_mcpclientpool_initialize",
+ "target": "prometheus_mcp_buildclient"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_auth_util.py",
- "source_location": "L40",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/mcp.py",
+ "source_location": "L95",
"weight": 1.0,
- "source": "authentication_util_verifypassword",
- "target": "tests_test_auth_util_testauthutil_test_verify_password_empty_password"
+ "confidence_score": 1.0,
+ "source": "prometheus_mcp_mcpclientpool_reconnect",
+ "target": "prometheus_mcp_buildclient"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_auth_util.py",
- "source_location": "L91",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/mcp.py",
+ "source_location": "L33",
"weight": 1.0,
- "source": "authentication_util_verifypassword",
- "target": "tests_test_auth_util_testauthutiledgecases_test_verify_password_none_hash"
+ "confidence_score": 1.0,
+ "source": "prometheus_mcp_mcpclientpool",
+ "target": "prometheus_mcp_mcpclientpool_init"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_auth_util.py",
- "source_location": "L96",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/mcp.py",
+ "source_location": "L26",
"weight": 1.0,
- "source": "authentication_util_verifypassword",
- "target": "tests_test_auth_util_testauthutiledgecases_test_verify_password_none_password"
+ "confidence_score": 1.0,
+ "source": "prometheus_mcp_mcpclientpool",
+ "target": "prometheus_mcp_mcpclientpool_initialize"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_auth_util.py",
- "source_location": "L100",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/mcp.py",
+ "source_location": "L41",
"weight": 1.0,
- "source": "authentication_util_verifypassword",
- "target": "tests_test_auth_util_testauthutiledgecases_test_verify_password_both_none"
+ "confidence_score": 1.0,
+ "source": "prometheus_mcp_mcpclientpool",
+ "target": "prometheus_mcp_mcpclientpool_getclients"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L36",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/mcp.py",
+ "source_location": "L48",
"weight": 1.0,
- "source": "authentication_util_createaccesstoken",
- "target": "controller_authentication_controller_issuesessioncookie"
+ "confidence_score": 1.0,
+ "source": "prometheus_mcp_mcpclientpool",
+ "target": "prometheus_mcp_mcpclientpool_healthcheck"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_auth_util.py",
- "source_location": "L43",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/mcp.py",
+ "source_location": "L60",
"weight": 1.0,
- "source": "authentication_util_createaccesstoken",
- "target": "tests_test_auth_util_testauthutil_test_create_access_token_default_expiry"
+ "confidence_score": 1.0,
+ "source": "prometheus_mcp_mcpclientpool",
+ "target": "prometheus_mcp_mcpclientpool_reconnect"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_auth_util.py",
- "source_location": "L51",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/mcp.py",
+ "source_location": "L78",
"weight": 1.0,
- "source": "authentication_util_createaccesstoken",
- "target": "tests_test_auth_util_testauthutil_test_create_access_token_custom_expiry"
+ "confidence_score": 1.0,
+ "source": "prometheus_mcp_mcpclientpool",
+ "target": "prometheus_mcp_mcpclientpool_close"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_auth_util.py",
- "source_location": "L62",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/mcp.py",
+ "source_location": "L21",
"weight": 1.0,
- "source": "authentication_util_createaccesstoken",
- "target": "tests_test_auth_util_testauthutil_test_create_access_token_contains_data"
+ "confidence_score": 1.0,
+ "source": "prometheus_mcp_mcpclientpool",
+ "target": "prometheus_mcp_mcpclientpool_new"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_auth_util.py",
- "source_location": "L79",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/mcp.py",
+ "source_location": "L43",
"weight": 1.0,
- "source": "authentication_util_createaccesstoken",
- "target": "tests_test_auth_util_testsessionexpiryconfig_test_default_token_expiry_equals_30_days"
+ "confidence_score": 1.0,
+ "source": "prometheus_mcp_mcpclientpool_getclients",
+ "target": "prometheus_mcp_mcpclientpool_initialize"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_auth_util.py",
- "source_location": "L104",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/mcp.py",
+ "source_location": "L46",
"weight": 1.0,
- "source": "authentication_util_createaccesstoken",
- "target": "tests_test_auth_util_testauthutiledgecases_test_create_access_token_with_empty_data"
+ "confidence_score": 1.0,
+ "source": "prometheus_mcp_mcpclientpool_initialize",
+ "target": "prometheus_mcp_parseservers"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_auth_util.py",
- "source_location": "L110",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/mcp.py",
+ "source_location": "L45",
"weight": 1.0,
- "source": "authentication_util_createaccesstoken",
- "target": "tests_test_auth_util_testauthutiledgecases_test_create_access_token_with_none_data"
+ "confidence_score": 1.0,
+ "source": "prometheus_mcp_mcpclientpool_getclients",
+ "target": "prometheus_mcp_mcpclientpool_healthcheck"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L48",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/mcp.py",
+ "source_location": "L58",
"weight": 1.0,
- "source": "authentication_util_createaccesstoken",
- "target": "controller_authentication_controller_register"
+ "confidence_score": 1.0,
+ "source": "prometheus_mcp_mcpclientpool_healthcheck",
+ "target": "prometheus_mcp_mcpclientpool_reconnect"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L86",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/mcp.py",
+ "source_location": "L87",
"weight": 1.0,
- "source": "authentication_util_createaccesstoken",
- "target": "controller_authentication_controller_login"
+ "confidence_score": 1.0,
+ "source": "prometheus_mcp_mcpclientpool_reconnect",
+ "target": "prometheus_mcp_parseservers"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L175",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L41",
"weight": 1.0,
- "source": "authentication_util_createaccesstoken",
- "target": "controller_authentication_controller_googlecallback"
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_matrixkey"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/authentication/util.py",
- "source_location": "L65",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L48",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "authentication_util_verifyaccesstoken",
- "target": "authentication_util_extracttokenpayload"
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_matrixusertag"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L111",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L53",
"weight": 1.0,
- "source": "authentication_util_verifyaccesstoken",
- "target": "controller_authentication_controller_logout"
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_getmatrix"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1454",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L63",
"weight": 1.0,
- "source": "authentication_util_verifyaccesstoken",
- "target": "tests_test_controllers_coverage_testverifyaccesstoken_test_expired_token"
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_invalidateuser"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1465",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L67",
"weight": 1.0,
- "source": "authentication_util_verifyaccesstoken",
- "target": "tests_test_controllers_coverage_testverifyaccesstoken_test_invalid_token"
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_clearall"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/user/user.py",
- "source_location": "L42",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L35",
"weight": 1.0,
- "source": "authentication_util_verifyaccesstoken",
- "target": "user_user_getcurrentuser"
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_getclient"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/controller/user_controller.py",
- "source_location": "L66",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L48",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_minmax"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L17",
"weight": 1.0,
- "source": "authentication_util_verifyaccesstoken",
- "target": "controller_user_controller_getsessions"
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_normalizekey"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1484",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L23",
"weight": 1.0,
- "source": "authentication_util_extracttokenpayload",
- "target": "tests_test_controllers_coverage_testextracttokenpayloadreraise_test_http_exception_from_verify_propagates"
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_findsimilarkey"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_user_deps.py",
- "source_location": "L24",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L16",
"weight": 1.0,
- "source": "authentication_util_extracttokenpayload",
- "target": "tests_test_user_deps_testextracttokenpayload_test_missing_token_raises_401"
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_prometheusmemory"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_user_deps.py",
- "source_location": "L35",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L17",
"weight": 1.0,
- "source": "authentication_util_extracttokenpayload",
- "target": "tests_test_user_deps_testextracttokenpayload_test_x_access_token_header_used"
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_getmemorylimit"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_user_deps.py",
- "source_location": "L45",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L23",
"weight": 1.0,
- "source": "authentication_util_extracttokenpayload",
- "target": "tests_test_user_deps_testextracttokenpayload_test_authorization_bearer_header_used"
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_countmemories"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_user_deps.py",
- "source_location": "L55",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L32",
"weight": 1.0,
- "source": "authentication_util_extracttokenpayload",
- "target": "tests_test_user_deps_testextracttokenpayload_test_x_access_token_takes_priority_over_bearer"
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_upsertmemory"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_user_deps.py",
- "source_location": "L64",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L89",
"weight": 1.0,
- "source": "authentication_util_extracttokenpayload",
- "target": "tests_test_user_deps_testextracttokenpayload_test_invalid_token_raises_401"
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_search"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_user_deps.py",
- "source_location": "L74",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L134",
"weight": 1.0,
- "source": "authentication_util_extracttokenpayload",
- "target": "tests_test_user_deps_testextracttokenpayload_test_empty_user_id_raises_401"
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_fulltextsearch"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_user_deps.py",
- "source_location": "L83",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L163",
"weight": 1.0,
- "source": "authentication_util_extracttokenpayload",
- "target": "tests_test_user_deps_testextracttokenpayload_test_empty_bearer_value_raises_401"
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_getusermemories"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_user_deps.py",
- "source_location": "L92",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L189",
"weight": 1.0,
- "source": "authentication_util_extracttokenpayload",
- "target": "tests_test_user_deps_testextracttokenpayload_test_non_bearer_auth_header_raises_401"
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_deletememory"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L26",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L342",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_agent_py",
- "target": "prometheus_agent_safefilter"
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_counttokenscached"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L58",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L318",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_agent_py",
- "target": "prometheus_agent_getclient"
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_extract"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L134",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L50",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_agent_py",
- "target": "prometheus_agent_prometheus"
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_applyupdate"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L139",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L17",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_agent_py",
- "target": "prometheus_agent_buildsystemprompt"
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_normalize_key"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L21",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L216",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_agent_py",
- "target": "prometheus_agent_safe_filter"
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_archivedead"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L27",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L16",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_agent_py",
- "target": "prometheus_agent_onextractiondone"
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_now"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L35",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L203",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_agent_py",
- "target": "prometheus_agent_spawnextraction"
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_decayscores"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L58",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L13",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_agent_py",
- "target": "prometheus_agent_get_client"
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_memorymanager"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L161",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L17",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_agent_py",
- "target": "prometheus_agent_openmcpclients"
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_get_memory_limit"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L90",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L24",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_agent_py",
- "target": "prometheus_agent_executememorytool"
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_count_memories"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L27",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L34",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_agent_py",
- "target": "prometheus_agent_build_system_prompt"
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_upsert_memory"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L57",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L138",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_agent_py",
- "target": "prometheus_agent_get_memory_tools"
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_fulltext_search"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L92",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L168",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_agent_py",
- "target": "prometheus_agent_execute_memory_tool"
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_get_user_memories"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L47",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L195",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_agent_py",
- "target": "prometheus_agent_chatsession"
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_delete_memory"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L223",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L209",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_agent_prometheus_init",
- "target": "prometheus_agent_getclient"
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_decay_scores"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L135",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L223",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_agent_prometheus",
- "target": "prometheus_agent_prometheus_init"
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_archive_dead"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L169",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L3",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_agent_prometheus",
- "target": "prometheus_agent_prometheus_makechat"
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_save_memory"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L178",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L6",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_agent_prometheus",
- "target": "prometheus_agent_prometheus_streammessage"
+ "source": "main_app_prometheus_memory_py",
+ "target": "prometheus_memory_search_memory"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L13",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "models_prometheus_prometheussession"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L54",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_memory_getmatrix",
+ "target": "prometheus_memory_matrixkey"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L11",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "models_memory_prometheusmemory"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L59",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_memory_getmatrix",
+ "target": "prometheus_memory_matrixusertag"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L12",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "prometheus_chat_prometheuschatmanager"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L290",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_memory_search",
+ "target": "prometheus_memory_getmatrix"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L18",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "prometheus_compact_prometheuscompactor"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L186",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_memory_upsertmemory",
+ "target": "prometheus_memory_invalidateuser"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L14",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "prometheus_sandbox_sandboxmanager"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L422",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_memory_deletememory",
+ "target": "prometheus_memory_invalidateuser"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L16",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "prometheus_events_looplogger"
+ "confidence_score": 0.8,
+ "source_file": "main/service/prometheus_service.py",
+ "source_location": "L52",
+ "weight": 1.0,
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "prometheus_memory_invalidateuser"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L15",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "prometheus_compact_fieldregistry"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L354",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_memory_extract",
+ "target": "prometheus_memory_getclient"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L16",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "prometheus_mcp_mcpclientpool"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L241",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_memory_search",
+ "target": "prometheus_memory_minmax"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L14",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "prometheus_state_harnessstate"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L29",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_memory_normalizekey",
+ "target": "prometheus_memory_findsimilarkey"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L17",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "prometheus_summarizer_prometheussummarizer"
+ "confidence_score": 0.8,
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L30",
+ "weight": 1.0,
+ "source": "prometheus_memory_normalizekey",
+ "target": "stocks_api_response_cache_responsecache_set"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_agent_state_integration.py",
- "source_location": "L3",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "tests_test_agent_state_integration_testbuildsystempromptstate"
+ "confidence_score": 0.8,
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L21",
+ "weight": 1.0,
+ "source": "prometheus_memory_normalizekey",
+ "target": "prometheus_state_harnessstate_set"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_agent_state_integration.py",
- "source_location": "L3",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "tests_test_agent_state_integration_testsendmessagestateintegration"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L88",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_memory_findsimilarkey",
+ "target": "prometheus_memory_upsertmemory"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_agent_state_integration.py",
- "source_location": "L3",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "tests_test_agent_state_integration_teststreammessagestateintegration"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L29",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_memory_findsimilarkey",
+ "target": "prometheus_memory_normalize_key"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_agent_state_integration.py",
- "source_location": "L192",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L10",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "tests_test_agent_state_integration_testsystempromptstateinstructions"
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "models_memory_prometheusmemory"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L90",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L9",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "tests_test_memory_tools_wiring_testmemorytoolfunctions"
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "utils_roles_permission"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L90",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L9",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "tests_test_memory_tools_wiring_testtoolregistry"
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "utils_roles_roles"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L117",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "prometheus_memory_upsertmemory"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L58",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L8",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "tests_test_memory_tools_wiring_testmakechatincludesmemorytools"
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "models_memory_usermemory"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L58",
+ "source_file": "tests/test_memory_dedup.py",
+ "source_location": "L1",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "tests_test_memory_tools_wiring_testdispatchroutesmemorytools"
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "tests_test_memory_dedup_testexactsamekeyupdates"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L159",
+ "source_file": "tests/test_memory_dedup.py",
+ "source_location": "L1",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "tests_test_prometheus_auth_coverage_testprometheusinit"
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "tests_test_memory_dedup_testsimilarkeymerges"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L159",
+ "source_file": "tests/test_memory_dedup.py",
+ "source_location": "L1",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "tests_test_prometheus_auth_coverage_testprometheussendmessage"
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "tests_test_memory_dedup_testdifferentkeysnomerge"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L159",
+ "source_file": "tests/test_memory_dedup.py",
+ "source_location": "L1",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "tests_test_prometheus_auth_coverage_testprometheuschatmanager"
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "tests_test_memory_dedup_testmergeboostsscore"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L159",
+ "source_file": "tests/test_memory_dedup.py",
+ "source_location": "L1",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "tests_test_prometheus_auth_coverage_testauthenticationmanager"
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "tests_test_memory_dedup_testmergeincrementsaccess"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L159",
+ "source_file": "tests/test_memory_dedup.py",
+ "source_location": "L1",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "tests_test_prometheus_auth_coverage_testsessionmanager"
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "tests_test_memory_dedup_testthresholdboundary"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L159",
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L6",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "tests_test_prometheus_auth_coverage_testsso"
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "tests_test_memory_maintenance_testdecay"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_streammessage_no_chatsession.py",
- "source_location": "L14",
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L6",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "tests_test_streammessage_no_chatsession_fakechunk"
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "tests_test_memory_maintenance_testarchive"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_streammessage_no_chatsession.py",
- "source_location": "L14",
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L6",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "tests_test_streammessage_no_chatsession_teststreammessagenochatsession"
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "tests_test_memory_maintenance_testdecayandarchivetogether"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L61",
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L6",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "tests_test_agent_sandbox_integration_testpersistentsandboxlifecycle"
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "tests_test_memory_maintenance_testemptydatabase"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L31",
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L4",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "models_memory_usermemory"
- },
- {
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L34",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_agent_prometheus",
- "target": "prometheus_agent_prometheus_sendmessage"
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "tests_test_memory_manager_testgetmemorylimit"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_file": "tests/test_memory_manager.py",
"source_location": "L4",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "tests_test_agent_sandbox_integration_testagentsandboxintegration"
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "tests_test_memory_manager_testupsertmemory"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L3",
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L4",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "tests_test_agent_sandbox_integration_testpremiumcheck"
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "tests_test_memory_manager_testcountmemories"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L15",
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L4",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "prometheus_cache_resultcache"
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "tests_test_memory_manager_testgetusermemories"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L58",
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L4",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "tests_test_memory_tools_wiring_testmemorytoolsdefinition"
- },
- {
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L102",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_agent_prometheus",
- "target": "prometheus_agent_prometheus_executetoolcall"
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "tests_test_memory_manager_testdeletememory"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L94",
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L4",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "prometheus_agent_prometheus",
- "target": "prometheus_memory_memorymanager"
- },
- {
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L21",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_agent_prometheus",
- "target": "prometheus_agent_prometheus_updatedates"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L224",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_agent_prometheus_init",
- "target": "prometheus_agent_get_client"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L19",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_agent_prometheus_init",
- "target": "prometheus_agent_prometheus_updatedates"
+ "source": "prometheus_memory_prometheusmemory",
+ "target": "tests_test_memory_manager_testsearchfulltext"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L182",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L66",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_agent_prometheus_streammessage",
- "target": "prometheus_agent_buildsystemprompt"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L213",
- "weight": 1.0,
- "source": "prometheus_agent_buildsystemprompt",
- "target": "prometheus_compact_prometheuscompactor"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L163",
- "weight": 1.0,
- "source": "prometheus_agent_buildsystemprompt",
- "target": "prometheus_summarizer_prometheussummarizer"
+ "source": "prometheus_memory_getmemorylimit",
+ "target": "prometheus_memory_upsertmemory"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L261",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L347",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_agent_buildsystemprompt",
- "target": "prometheus_agent_prometheus_sendmessage"
+ "source": "prometheus_memory_extract",
+ "target": "prometheus_memory_getmemorylimit"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L186",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L67",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_agent_prometheus_streammessage",
- "target": "prometheus_agent_prometheus_makechat"
+ "source": "prometheus_memory_countmemories",
+ "target": "prometheus_memory_upsertmemory"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L160",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L347",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_agent_prometheus_makechat",
- "target": "prometheus_agent_prometheus_sendmessage"
+ "source": "prometheus_memory_extract",
+ "target": "prometheus_memory_countmemories"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L212",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L368",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_agent_prometheus_makechat",
- "target": "prometheus_agent_get_memory_tools"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L251",
- "weight": 1.0,
- "source": "prometheus_agent_prometheus_streammessage",
- "target": "prometheus_compact_loadfielddata"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L256",
- "weight": 1.0,
- "source": "prometheus_agent_prometheus_streammessage",
- "target": "prometheus_compact_prometheuscompactor"
+ "source": "prometheus_memory_extract",
+ "target": "prometheus_memory_upsertmemory"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L252",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L47",
"weight": 1.0,
- "source": "prometheus_agent_prometheus_streammessage",
- "target": "prometheus_memory_extract"
+ "source": "prometheus_memory_upsertmemory",
+ "target": "prometheus_vector_contenthash"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L231",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L138",
"weight": 1.0,
- "source": "prometheus_agent_prometheus_streammessage",
- "target": "prometheus_tools_dispatchtoolcall"
+ "source": "prometheus_memory_upsertmemory",
+ "target": "prometheus_matrix_cache_invalidateuser"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L272",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L100",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_agent_prometheus_streammessage",
- "target": "prometheus_agent_spawnextraction"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L202",
- "weight": 1.0,
- "source": "prometheus_agent_prometheus_streammessage",
- "target": "prometheus_events_looplogger"
+ "source": "prometheus_memory_upsertmemory",
+ "target": "prometheus_memory_applyupdate"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L239",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L71",
"weight": 1.0,
- "source": "prometheus_agent_prometheus_streammessage",
- "target": "prometheus_mcp_mcpclientpool"
+ "source": "prometheus_memory_upsertmemory",
+ "target": "models_memory_usermemory"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L242",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L50",
"weight": 1.0,
- "source": "prometheus_agent_prometheus_streammessage",
- "target": "prometheus_compact_fieldregistry"
+ "source": "prometheus_memory_upsertmemory",
+ "target": "utils_vector_contenthash"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L182",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L63",
"weight": 1.0,
- "source": "prometheus_agent_prometheus_streammessage",
- "target": "prometheus_state_harnessstate"
+ "confidence_score": 1.0,
+ "source": "prometheus_memory_upsertmemory",
+ "target": "prometheus_memory_now"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L185",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L131",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_agent_prometheus_streammessage",
- "target": "prometheus_agent_openmcpclients"
+ "source": "prometheus_memory_search",
+ "target": "prometheus_memory_fulltextsearch"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L293",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L120",
"weight": 1.0,
- "source": "prometheus_agent_prometheus_streammessage",
- "target": "prometheus_summarizer_prometheussummarizer"
+ "source": "prometheus_memory_search",
+ "target": "prometheus_vector_getrelevancescore"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L203",
- "weight": 1.0,
- "source": "prometheus_agent_prometheus_streammessage",
- "target": "prometheus_cache_resultcache"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L208",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_agent_prometheus_streammessage",
- "target": "prometheus_agent_prometheus_executetoolcall"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L281",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L104",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_agent_prometheus_streammessage",
- "target": "prometheus_agent_build_system_prompt"
+ "source": "prometheus_memory_search",
+ "target": "prometheus_vector_embed"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/agent.py",
- "source_location": "L88",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_agent_prometheus_streammessage",
- "target": "prometheus_agent_chatsession"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/chat.py",
- "source_location": "L15",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_prometheus_chat_py",
- "target": "prometheus_chat_prometheuschatmanager"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/chat.py",
- "source_location": "L17",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_prometheus_chat_py",
- "target": "prometheus_chat_getusersessions"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/chat.py",
- "source_location": "L35",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_prometheus_chat_py",
- "target": "prometheus_chat_createsession"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/chat.py",
- "source_location": "L43",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_prometheus_chat_py",
- "target": "prometheus_chat_updatesessiontitle"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/chat.py",
- "source_location": "L54",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_prometheus_chat_py",
- "target": "prometheus_chat_savemessage"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/chat.py",
- "source_location": "L76",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_prometheus_chat_py",
- "target": "prometheus_chat_saveloopevent"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/chat.py",
- "source_location": "L82",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_prometheus_chat_py",
- "target": "prometheus_chat_gethistory"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/chat.py",
- "source_location": "L105",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_prometheus_chat_py",
- "target": "prometheus_chat_deletesession"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/chat.py",
- "source_location": "L119",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_prometheus_chat_py",
- "target": "prometheus_chat_verifysessionownership"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/chat.py",
- "source_location": "L98",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L109",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_prometheus_chat_py",
- "target": "prometheus_chat_updatesummary"
+ "source": "prometheus_memory_search",
+ "target": "prometheus_vector_batchcosinesimilarity"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "main/app/prometheus/chat.py",
- "source_location": "L8",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_chat_prometheuschatmanager",
- "target": "models_prometheus_prometheussession"
+ "confidence_score": 0.8,
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L242",
+ "weight": 1.0,
+ "source": "prometheus_memory_search",
+ "target": "prometheus_matrix_cache_getmatrix"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
+ "confidence_score": 0.8,
"source_file": "main/app/prometheus/memory.py",
- "source_location": "L319",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_memory_prometheusmemory",
- "target": "prometheus_chat_prometheuschatmanager"
+ "source_location": "L162",
+ "weight": 1.0,
+ "source": "prometheus_memory_search",
+ "target": "prometheus_vector_decodeembeddings"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L383",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_chat_prometheuschatmanager",
- "target": "tests_test_prometheus_auth_coverage_testprometheusinit"
+ "confidence_score": 0.8,
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L113",
+ "weight": 1.0,
+ "source": "prometheus_memory_search",
+ "target": "utils_vector_batchcosinesimilarity"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L383",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_chat_prometheuschatmanager",
- "target": "tests_test_prometheus_auth_coverage_testprometheussendmessage"
+ "confidence_score": 0.8,
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L125",
+ "weight": 1.0,
+ "source": "prometheus_memory_search",
+ "target": "utils_vector_getrelevancescore"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L650",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_chat_prometheuschatmanager",
- "target": "tests_test_prometheus_auth_coverage_testprometheuschatmanager"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L106",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_memory_search",
+ "target": "prometheus_memory_now"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L650",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_chat_prometheuschatmanager",
- "target": "tests_test_prometheus_auth_coverage_testauthenticationmanager"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L135",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_memory_search",
+ "target": "prometheus_memory_fulltext_search"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L650",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_chat_prometheuschatmanager",
- "target": "tests_test_prometheus_auth_coverage_testsessionmanager"
+ "confidence_score": 0.8,
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L117",
+ "weight": 1.0,
+ "source": "prometheus_memory_search",
+ "target": "utils_vector_batch_cosine_similarity"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L650",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_chat_prometheuschatmanager",
- "target": "tests_test_prometheus_auth_coverage_testsso"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L154",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_memory_fulltextsearch",
+ "target": "prometheus_memory_now"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L446",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L180",
"weight": 1.0,
- "source": "prometheus_chat_prometheuschatmanager",
- "target": "tests_test_prometheus_auth_coverage_testprometheuschatmanager_test_init"
+ "source": "prometheus_memory_getusermemories",
+ "target": "prometheus_vector_getrelevancescore"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L650",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_chat_prometheuschatmanager",
- "target": "tests_test_prometheus_auth_coverage_testprometheusgeneratorinit"
+ "confidence_score": 0.8,
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L185",
+ "weight": 1.0,
+ "source": "prometheus_memory_getusermemories",
+ "target": "utils_vector_getrelevancescore"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_prometheus_auth_coverage.py",
- "source_location": "L650",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_chat_prometheuschatmanager",
- "target": "tests_test_prometheus_auth_coverage_testprometheusgeneratorexecuteworkflow"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L178",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_memory_getusermemories",
+ "target": "prometheus_memory_now"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "main/app/prometheus/generation.py",
- "source_location": "L14",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_chat_prometheuschatmanager",
- "target": "prometheus_generation_prometheusgenerator"
+ "confidence_score": 0.8,
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L369",
+ "weight": 1.0,
+ "source": "prometheus_memory_deletememory",
+ "target": "prometheus_matrix_cache_invalidateuser"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/chat.py",
- "source_location": "L11",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L191",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_chat_prometheuschatmanager",
- "target": "prometheus_chat_prometheuschatmanager_init"
+ "source": "prometheus_memory_deletememory",
+ "target": "prometheus_memory_now"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/generation.py",
- "source_location": "L14",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_chat_prometheuschatmanager",
- "target": "prometheus_generation_sessionproxy"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L386",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_memory_extract",
+ "target": "prometheus_memory_counttokenscached"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/prometheus/chat.py",
- "source_location": "L41",
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L367",
"weight": 1.0,
- "source": "prometheus_chat_createsession",
- "target": "models_prometheus_prometheussession"
+ "source": "prometheus_memory_extract",
+ "target": "prometheus_vector_embed"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L33",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L18",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_compact_py",
- "target": "prometheus_compact_gettokenizer"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_lockfor"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L45",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L24",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_compact_py",
- "target": "prometheus_compact_counttokens"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_getclient"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L92",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L28",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_compact_py",
- "target": "prometheus_compact_getstocksfieldsurl"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_hostpath"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L93",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L42",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_compact_py",
- "target": "prometheus_compact_loadfielddata"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_sandboxpath"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L119",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L47",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_compact_py",
- "target": "prometheus_compact_gethistoricalfields"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_sandboxmanager"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L123",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L49",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_compact_py",
- "target": "prometheus_compact_getfundamentalcolumns"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_create"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L127",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L65",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_compact_py",
- "target": "prometheus_compact_invalidatefielddata"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_destroy"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L133",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L77",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_compact_py",
- "target": "prometheus_compact_getmetricregex"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_getorcreate"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L109",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L123",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_compact_py",
- "target": "prometheus_compact_extracttickers"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_execute"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L113",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L189",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_compact_py",
- "target": "prometheus_compact_extractmetrics"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_read_file"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L123",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L196",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_compact_py",
- "target": "prometheus_compact_extractdecisions"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_write_file"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L137",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L207",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_compact_py",
- "target": "prometheus_compact_extractsnapshots"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_list_files"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L150",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L186",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_compact_py",
- "target": "prometheus_compact_extracttoolcalls"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_write_bytes"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L166",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L197",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_compact_py",
- "target": "prometheus_compact_buildsummary"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_delete_file"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L186",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L215",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_compact_py",
- "target": "prometheus_compact_prometheuscompactor"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_synctosandbox"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L41",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L234",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_compact_py",
- "target": "prometheus_compact_fieldregistry"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_syncfromsandbox"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L105",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L159",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_compact_py",
- "target": "prometheus_compact_charcount"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_executewithworkspace"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L48",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L134",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_counttokens",
- "target": "prometheus_compact_gettokenizer"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_syncworkspace"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L228",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L148",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_prometheuscompactor_shouldcompact",
- "target": "prometheus_compact_counttokens"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_restoreworkspace"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L347",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L159",
"weight": 1.0,
- "source": "prometheus_memory_counttokenscached",
- "target": "prometheus_compact_counttokens"
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_savebackup"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L340",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L168",
"weight": 1.0,
- "source": "prometheus_memory_extract",
- "target": "prometheus_compact_counttokens"
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_loadbackup"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L154",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L12",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_charcount",
- "target": "prometheus_compact_counttokens"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_baseurl"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L108",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L57",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_loadfielddata",
- "target": "prometheus_compact_getstocksfieldsurl"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_checkpoint"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L120",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L70",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_gethistoricalfields",
- "target": "prometheus_compact_loadfielddata"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_restore"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L124",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L79",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_getfundamentalcolumns",
- "target": "prometheus_compact_loadfielddata"
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_upload_file"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L19",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_base_url"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_sandbox_py",
+ "target": "prometheus_sandbox_rationale_1"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L136",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L78",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_getmetricregex",
- "target": "prometheus_compact_loadfielddata"
+ "source": "prometheus_sandbox_getorcreate",
+ "target": "prometheus_sandbox_lockfor"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L97",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L160",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_rationale_97",
- "target": "prometheus_compact_loadfielddata"
+ "source": "prometheus_sandbox_executewithworkspace",
+ "target": "prometheus_sandbox_lockfor"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L95",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L50",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_rationale_95",
- "target": "prometheus_compact_loadfielddata"
+ "source": "prometheus_sandbox_create",
+ "target": "prometheus_sandbox_getclient"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L151",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L66",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_extractmetrics",
- "target": "prometheus_compact_getmetricregex"
+ "source": "prometheus_sandbox_destroy",
+ "target": "prometheus_sandbox_getclient"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L212",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L83",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_prometheuscompactor_extractepisode",
- "target": "prometheus_compact_extracttickers"
+ "source": "prometheus_sandbox_getorcreate",
+ "target": "prometheus_sandbox_getclient"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L213",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L124",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_prometheuscompactor_extractepisode",
- "target": "prometheus_compact_extractmetrics"
+ "source": "prometheus_sandbox_execute",
+ "target": "prometheus_sandbox_getclient"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L115",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L220",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_extractmetrics",
- "target": "prometheus_compact_fieldregistry_getmetricregex"
+ "source": "prometheus_sandbox_synctosandbox",
+ "target": "prometheus_sandbox_getclient"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L214",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L235",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_prometheuscompactor_extractepisode",
- "target": "prometheus_compact_extractdecisions"
+ "source": "prometheus_sandbox_syncfromsandbox",
+ "target": "prometheus_sandbox_getclient"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L215",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L168",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_prometheuscompactor_extractepisode",
- "target": "prometheus_compact_extractsnapshots"
+ "source": "prometheus_sandbox_executewithworkspace",
+ "target": "prometheus_sandbox_getclient"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L216",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/app/prometheus/sandbox_cleanup.py",
+ "source_location": "L23",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_compact_prometheuscompactor_extractepisode",
- "target": "prometheus_compact_extracttoolcalls"
+ "source": "prometheus_sandbox_getclient",
+ "target": "prometheus_sandbox_cleanup_cleanup_expired_sandboxes"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L218",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L57",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_prometheuscompactor_extractepisode",
- "target": "prometheus_compact_buildsummary"
+ "source": "prometheus_sandbox_getclient",
+ "target": "prometheus_sandbox_read_file"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L190",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L66",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_prometheuscompactor",
- "target": "prometheus_compact_prometheuscompactor_shouldcompact"
+ "source": "prometheus_sandbox_getclient",
+ "target": "prometheus_sandbox_write_file"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L196",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L78",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_prometheuscompactor",
- "target": "prometheus_compact_prometheuscompactor_getcompactablechunk"
+ "source": "prometheus_sandbox_getclient",
+ "target": "prometheus_sandbox_list_files"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L205",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L136",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_prometheuscompactor",
- "target": "prometheus_compact_prometheuscompactor_extractepisode"
+ "source": "prometheus_sandbox_getclient",
+ "target": "prometheus_sandbox_syncworkspace"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L227",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L150",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_prometheuscompactor",
- "target": "prometheus_compact_prometheuscompactor_consolidate"
+ "source": "prometheus_sandbox_getclient",
+ "target": "prometheus_sandbox_restoreworkspace"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L254",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L190",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_prometheuscompactor",
- "target": "prometheus_compact_prometheuscompactor_compact"
+ "source": "prometheus_sandbox_read_file",
+ "target": "prometheus_sandbox_hostpath"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L293",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L198",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_prometheuscompactor",
- "target": "prometheus_compact_prometheuscompactor_getepisodes"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L14",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_compact_prometheuscompactor",
- "target": "models_prometheus_prometheussession"
+ "source": "prometheus_sandbox_write_file",
+ "target": "prometheus_sandbox_hostpath"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L187",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L208",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_prometheuscompactor",
- "target": "prometheus_compact_prometheuscompactor_init"
+ "source": "prometheus_sandbox_list_files",
+ "target": "prometheus_sandbox_hostpath"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L265",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L188",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_prometheuscompactor_compact",
- "target": "prometheus_compact_prometheuscompactor_shouldcompact"
+ "source": "prometheus_sandbox_write_bytes",
+ "target": "prometheus_sandbox_hostpath"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L193",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L199",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_prometheuscompactor_shouldcompact",
- "target": "prometheus_compact_charcount"
+ "source": "prometheus_sandbox_delete_file",
+ "target": "prometheus_sandbox_hostpath"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L263",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L243",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_prometheuscompactor_compact",
- "target": "prometheus_compact_prometheuscompactor_getcompactablechunk"
+ "source": "prometheus_sandbox_syncfromsandbox",
+ "target": "prometheus_sandbox_hostpath"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L268",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L156",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_compact_prometheuscompactor_compact",
- "target": "prometheus_compact_prometheuscompactor_extractepisode"
+ "source": "prometheus_tools_serve_file",
+ "target": "prometheus_sandbox_hostpath"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L281",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L189",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_compact_prometheuscompactor_compact",
- "target": "prometheus_compact_prometheuscompactor_consolidate"
+ "source": "controller_prometheus_controller_downloadworkspacefile",
+ "target": "prometheus_sandbox_hostpath"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/compact.py",
- "source_location": "L262",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L211",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_compact_prometheuscompactor_compact",
- "target": "prometheus_compact_prometheuscompactor_getepisodes"
+ "source": "prometheus_sandbox_list_files",
+ "target": "prometheus_sandbox_sandboxpath"
},
{
- "relation": "contains",
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L9",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_sandbox_sandboxmanager",
+ "target": "models_sandbox_prometheussandbox"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_agent_sandbox_integration.py",
+ "source_location": "L7",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_sandbox_sandboxmanager",
+ "target": "tests_test_agent_sandbox_integration_testpersistentsandboxlifecycle"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L3",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_sandbox_sandboxmanager",
+ "target": "tests_test_sandbox_testsandboxmanager"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L4",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_sandbox_sandboxmanager",
+ "target": "tests_test_sandbox_persistence_testprometheussandboxmodel"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L4",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_sandbox_sandboxmanager",
+ "target": "tests_test_sandbox_persistence_testsandboxpersistence"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L4",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_sandbox_sandboxmanager",
+ "target": "tests_test_sandbox_persistence_testsandboxcleanup"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L6",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_sandbox_sandboxmanager",
+ "target": "tests_test_sandbox_fakeclient"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L6",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_sandbox_sandboxmanager",
+ "target": "tests_test_sandbox_testsandboxcreate"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L6",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_sandbox_sandboxmanager",
+ "target": "tests_test_sandbox_testsandboxexecute"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L6",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_sandbox_sandboxmanager",
+ "target": "tests_test_sandbox_testsandboxcheckpoint"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L6",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_sandbox_sandboxmanager",
+ "target": "tests_test_sandbox_testsandboxrestore"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L6",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_sandbox_sandboxmanager",
+ "target": "tests_test_sandbox_testsandboxuploadfile"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L6",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_sandbox_sandboxmanager",
+ "target": "tests_test_sandbox_testsandboxreadfile"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_sandbox.py",
+ "source_location": "L6",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_sandbox_sandboxmanager",
+ "target": "tests_test_sandbox_testsandboxdestroy"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/prometheus/context.py",
+ "source_location": "L16",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "prometheus_sandbox_sandboxmanager",
+ "target": "prometheus_context_toolcontext"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/mcp.py",
- "source_location": "L26",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L24",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_mcp_py",
- "target": "prometheus_mcp_buildclient"
+ "source": "prometheus_sandbox_sandboxmanager",
+ "target": "prometheus_sandbox_rationale_24"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/mcp.py",
- "source_location": "L15",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L104",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_mcp_py",
- "target": "prometheus_mcp_mcpclientpool"
+ "source": "prometheus_sandbox_getorcreate",
+ "target": "prometheus_sandbox_create"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/mcp.py",
- "source_location": "L16",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L162",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_mcp_py",
- "target": "prometheus_mcp_parseservers"
+ "source": "prometheus_sandbox_executewithworkspace",
+ "target": "prometheus_sandbox_create"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/mcp.py",
- "source_location": "L55",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L20",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_mcp_mcpclientpool_initialize",
- "target": "prometheus_mcp_buildclient"
+ "source": "prometheus_sandbox_create",
+ "target": "prometheus_sandbox_baseurl"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/mcp.py",
- "source_location": "L95",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L33",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_mcp_mcpclientpool_reconnect",
- "target": "prometheus_mcp_buildclient"
+ "source": "prometheus_sandbox_create",
+ "target": "prometheus_sandbox_base_url"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/mcp.py",
- "source_location": "L33",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L186",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_mcp_mcpclientpool",
- "target": "prometheus_mcp_mcpclientpool_init"
+ "source": "prometheus_sandbox_executewithworkspace",
+ "target": "prometheus_sandbox_destroy"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/mcp.py",
- "source_location": "L26",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L80",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_mcp_mcpclientpool",
- "target": "prometheus_mcp_mcpclientpool_initialize"
+ "source": "prometheus_sandbox_destroy",
+ "target": "prometheus_sandbox_baseurl"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/mcp.py",
- "source_location": "L41",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L99",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_mcp_mcpclientpool",
- "target": "prometheus_mcp_mcpclientpool_getclients"
+ "source": "prometheus_sandbox_destroy",
+ "target": "prometheus_sandbox_base_url"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/mcp.py",
- "source_location": "L48",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L116",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_mcp_mcpclientpool",
- "target": "prometheus_mcp_mcpclientpool_healthcheck"
+ "source": "prometheus_sandbox_getorcreate",
+ "target": "prometheus_sandbox_synctosandbox"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/mcp.py",
- "source_location": "L60",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L153",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_mcp_mcpclientpool",
- "target": "prometheus_mcp_mcpclientpool_reconnect"
+ "source": "prometheus_sandbox_execute",
+ "target": "prometheus_sandbox_getorcreate"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L75",
+ "weight": 1.0,
+ "source": "prometheus_sandbox_getorcreate",
+ "target": "models_sandbox_prometheussandbox"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/mcp.py",
- "source_location": "L78",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L69",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_mcp_mcpclientpool",
- "target": "prometheus_mcp_mcpclientpool_close"
+ "source": "prometheus_sandbox_getorcreate",
+ "target": "prometheus_sandbox_loadbackup"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/mcp.py",
- "source_location": "L21",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L71",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_mcp_mcpclientpool",
- "target": "prometheus_mcp_mcpclientpool_new"
+ "source": "prometheus_sandbox_getorcreate",
+ "target": "prometheus_sandbox_restoreworkspace"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/mcp.py",
- "source_location": "L43",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L128",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_mcp_mcpclientpool_getclients",
- "target": "prometheus_mcp_mcpclientpool_initialize"
+ "source": "prometheus_sandbox_execute",
+ "target": "prometheus_sandbox_synctosandbox"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/mcp.py",
- "source_location": "L46",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L139",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_mcp_mcpclientpool_initialize",
- "target": "prometheus_mcp_parseservers"
+ "source": "prometheus_sandbox_execute",
+ "target": "prometheus_sandbox_syncfromsandbox"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/mcp.py",
- "source_location": "L45",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L37",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_mcp_mcpclientpool_getclients",
- "target": "prometheus_mcp_mcpclientpool_healthcheck"
+ "source": "prometheus_sandbox_execute",
+ "target": "prometheus_sandbox_baseurl"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/mcp.py",
- "source_location": "L58",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L51",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_mcp_mcpclientpool_healthcheck",
- "target": "prometheus_mcp_mcpclientpool_reconnect"
+ "source": "prometheus_sandbox_execute",
+ "target": "prometheus_sandbox_base_url"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/mcp.py",
- "source_location": "L87",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L242",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_mcp_mcpclientpool_reconnect",
- "target": "prometheus_mcp_parseservers"
+ "source": "prometheus_sandbox_syncfromsandbox",
+ "target": "prometheus_sandbox_read_file"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L35",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L142",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_getclient"
+ "source": "prometheus_sandbox_read_file",
+ "target": "prometheus_sandbox_syncworkspace"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L17",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L73",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_normalizekey"
+ "source": "prometheus_sandbox_read_file",
+ "target": "prometheus_sandbox_baseurl"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L23",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L91",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_findsimilarkey"
+ "source": "prometheus_sandbox_read_file",
+ "target": "prometheus_sandbox_base_url"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L16",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L227",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_prometheusmemory"
+ "source": "prometheus_sandbox_synctosandbox",
+ "target": "prometheus_sandbox_write_file"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L17",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L154",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_getmemorylimit"
+ "source": "prometheus_sandbox_write_file",
+ "target": "prometheus_sandbox_restoreworkspace"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L23",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L164",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_countmemories"
+ "source": "prometheus_sandbox_executewithworkspace",
+ "target": "prometheus_sandbox_synctosandbox"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L32",
+ "source_file": "main/app/prometheus/sandbox.py",
+ "source_location": "L180",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_upsertmemory"
+ "source": "prometheus_sandbox_executewithworkspace",
+ "target": "prometheus_sandbox_syncfromsandbox"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L89",
+ "source_file": "main/app/prometheus/stream_bus.py",
+ "source_location": "L10",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_search"
+ "source": "main_app_prometheus_stream_bus_py",
+ "target": "prometheus_stream_bus_streamchannel"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L134",
+ "source_file": "main/app/prometheus/stream_bus.py",
+ "source_location": "L28",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_fulltextsearch"
+ "source": "main_app_prometheus_stream_bus_py",
+ "target": "prometheus_stream_bus_streambus"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L163",
+ "source_file": "main/app/prometheus/stream_bus.py",
+ "source_location": "L11",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_getusermemories"
+ "source": "prometheus_stream_bus_streamchannel",
+ "target": "prometheus_stream_bus_streamchannel_init"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L189",
+ "source_file": "main/app/prometheus/stream_bus.py",
+ "source_location": "L17",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_deletememory"
+ "source": "prometheus_stream_bus_streamchannel",
+ "target": "prometheus_stream_bus_streamchannel_publish"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L342",
+ "source_file": "main/app/prometheus/stream_bus.py",
+ "source_location": "L35",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_counttokenscached"
+ "source": "prometheus_stream_bus_streambus_getorcreate",
+ "target": "prometheus_stream_bus_streamchannel"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L318",
+ "source_file": "main/app/prometheus/stream_bus.py",
+ "source_location": "L29",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_extract"
+ "source": "prometheus_stream_bus_streambus",
+ "target": "prometheus_stream_bus_streambus_init"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L50",
+ "source_file": "main/app/prometheus/stream_bus.py",
+ "source_location": "L32",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_applyupdate"
+ "source": "prometheus_stream_bus_streambus",
+ "target": "prometheus_stream_bus_streambus_getorcreate"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L17",
+ "source_file": "main/app/prometheus/stream_bus.py",
+ "source_location": "L39",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_normalize_key"
+ "source": "prometheus_stream_bus_streambus",
+ "target": "prometheus_stream_bus_streambus_publish"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L216",
+ "source_file": "main/app/prometheus/stream_bus.py",
+ "source_location": "L42",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_archivedead"
+ "source": "prometheus_stream_bus_streambus",
+ "target": "prometheus_stream_bus_streambus_subscribe"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L16",
+ "source_file": "main/app/prometheus/stream_bus.py",
+ "source_location": "L55",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_now"
+ "source": "prometheus_stream_bus_streambus",
+ "target": "prometheus_stream_bus_streambus_unsubscribe"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L203",
+ "source_file": "main/app/prometheus/stream_bus.py",
+ "source_location": "L60",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_decayscores"
+ "source": "prometheus_stream_bus_streambus",
+ "target": "prometheus_stream_bus_streambus_startrun"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L13",
+ "source_file": "main/app/prometheus/stream_bus.py",
+ "source_location": "L83",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_memorymanager"
+ "source": "prometheus_stream_bus_streambus",
+ "target": "prometheus_stream_bus_streambus_forward"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L17",
+ "source_file": "main/app/prometheus/stream_bus.py",
+ "source_location": "L40",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_get_memory_limit"
+ "source": "prometheus_stream_bus_streambus_publish",
+ "target": "prometheus_stream_bus_streambus_getorcreate"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L24",
+ "source_file": "main/app/prometheus/stream_bus.py",
+ "source_location": "L61",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_count_memories"
+ "source": "prometheus_stream_bus_streambus_startrun",
+ "target": "prometheus_stream_bus_streambus_getorcreate"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L34",
+ "source_file": "main/app/prometheus/stream_bus.py",
+ "source_location": "L84",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_upsert_memory"
+ "source": "prometheus_stream_bus_streambus_forward",
+ "target": "prometheus_stream_bus_streambus_subscribe"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L138",
+ "source_file": "main/app/prometheus/stream_bus.py",
+ "source_location": "L105",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_fulltext_search"
+ "source": "prometheus_stream_bus_streambus_forward",
+ "target": "prometheus_stream_bus_streambus_unsubscribe"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L168",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L17",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_get_user_memories"
+ "source": "main_app_prometheus_tools_py",
+ "target": "prometheus_tools_search_memory"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L195",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L43",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_delete_memory"
+ "source": "main_app_prometheus_tools_py",
+ "target": "prometheus_tools_save_memory"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L209",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L113",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_decay_scores"
+ "source": "main_app_prometheus_tools_py",
+ "target": "prometheus_tools_execute_code"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L223",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L134",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_archive_dead"
+ "source": "main_app_prometheus_tools_py",
+ "target": "prometheus_tools_read_file"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L3",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L145",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_save_memory"
+ "source": "main_app_prometheus_tools_py",
+ "target": "prometheus_tools_write_file"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L6",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_prometheus_memory_py",
- "target": "prometheus_memory_search_memory"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L354",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L158",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_memory_extract",
- "target": "prometheus_memory_getclient"
+ "source": "main_app_prometheus_tools_py",
+ "target": "prometheus_tools_list_files"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L29",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L144",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_memory_normalizekey",
- "target": "prometheus_memory_findsimilarkey"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L30",
- "weight": 1.0,
- "source": "prometheus_memory_normalizekey",
- "target": "stocks_api_response_cache_responsecache_set"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L21",
- "weight": 1.0,
- "source": "prometheus_memory_normalizekey",
- "target": "prometheus_state_harnessstate_set"
+ "source": "main_app_prometheus_tools_py",
+ "target": "prometheus_tools_serve_file"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L88",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L180",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_memory_findsimilarkey",
- "target": "prometheus_memory_upsertmemory"
+ "source": "main_app_prometheus_tools_py",
+ "target": "prometheus_tools_dispatchtoolcall"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L29",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L18",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_memory_findsimilarkey",
- "target": "prometheus_memory_normalize_key"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L10",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_memory_prometheusmemory",
- "target": "models_memory_prometheusmemory"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L9",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_memory_prometheusmemory",
- "target": "utils_roles_permission"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L9",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_memory_prometheusmemory",
- "target": "utils_roles_roles"
+ "source": "main_app_prometheus_tools_py",
+ "target": "prometheus_tools_getdb"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L117",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L80",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_memory_prometheusmemory",
- "target": "prometheus_memory_upsertmemory"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L8",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_memory_prometheusmemory",
- "target": "models_memory_usermemory"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_memory_dedup.py",
- "source_location": "L1",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_memory_prometheusmemory",
- "target": "tests_test_memory_dedup_testexactsamekeyupdates"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_memory_dedup.py",
- "source_location": "L1",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_memory_prometheusmemory",
- "target": "tests_test_memory_dedup_testsimilarkeymerges"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_memory_dedup.py",
- "source_location": "L1",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_memory_prometheusmemory",
- "target": "tests_test_memory_dedup_testdifferentkeysnomerge"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_memory_dedup.py",
- "source_location": "L1",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_memory_prometheusmemory",
- "target": "tests_test_memory_dedup_testmergeboostsscore"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_memory_dedup.py",
- "source_location": "L1",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_memory_prometheusmemory",
- "target": "tests_test_memory_dedup_testmergeincrementsaccess"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_memory_dedup.py",
- "source_location": "L1",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_memory_prometheusmemory",
- "target": "tests_test_memory_dedup_testthresholdboundary"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L6",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_memory_prometheusmemory",
- "target": "tests_test_memory_maintenance_testdecay"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L6",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_memory_prometheusmemory",
- "target": "tests_test_memory_maintenance_testarchive"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L6",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_memory_prometheusmemory",
- "target": "tests_test_memory_maintenance_testdecayandarchivetogether"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L6",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_memory_prometheusmemory",
- "target": "tests_test_memory_maintenance_testemptydatabase"
+ "source": "main_app_prometheus_tools_py",
+ "target": "prometheus_tools_get_state"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L4",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_memory_prometheusmemory",
- "target": "tests_test_memory_manager_testgetmemorylimit"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L95",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_tools_py",
+ "target": "prometheus_tools_set_state"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L4",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_memory_prometheusmemory",
- "target": "tests_test_memory_manager_testupsertmemory"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L141",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_tools_py",
+ "target": "prometheus_tools_read_sandbox_file"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L4",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_memory_prometheusmemory",
- "target": "tests_test_memory_manager_testcountmemories"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L151",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_tools_py",
+ "target": "prometheus_tools_upload_to_sandbox"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L4",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_memory_prometheusmemory",
- "target": "tests_test_memory_manager_testgetusermemories"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L153",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_tools_py",
+ "target": "prometheus_tools_check_cache"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L4",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_memory_prometheusmemory",
- "target": "tests_test_memory_manager_testdeletememory"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L104",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_tools_py",
+ "target": "prometheus_tools_executestatetool"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L4",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_memory_prometheusmemory",
- "target": "tests_test_memory_manager_testsearchfulltext"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L46",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_tools_py",
+ "target": "prometheus_tools_executememorytool"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L66",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L19",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_memory_getmemorylimit",
- "target": "prometheus_memory_upsertmemory"
+ "source": "prometheus_tools_rationale_19",
+ "target": "prometheus_tools_search_memory"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L347",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L39",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_memory_extract",
- "target": "prometheus_memory_getmemorylimit"
+ "source": "prometheus_tools_search_memory",
+ "target": "prometheus_tools_getdb"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L67",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L27",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_memory_countmemories",
- "target": "prometheus_memory_upsertmemory"
+ "source": "prometheus_tools_rationale_27",
+ "target": "prometheus_tools_search_memory"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L347",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L18",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_memory_extract",
- "target": "prometheus_memory_countmemories"
+ "source": "prometheus_tools_rationale_18",
+ "target": "prometheus_tools_search_memory"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L368",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L16",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_memory_extract",
- "target": "prometheus_memory_upsertmemory"
+ "source": "prometheus_tools_search_memory",
+ "target": "prometheus_tools_rationale_16"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L47",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L15",
"weight": 1.0,
- "source": "prometheus_memory_upsertmemory",
- "target": "prometheus_vector_contenthash"
+ "confidence_score": 1.0,
+ "source": "prometheus_tools_search_memory",
+ "target": "prometheus_tools_rationale_15"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L100",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L17",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_memory_upsertmemory",
- "target": "prometheus_memory_applyupdate"
+ "source": "prometheus_tools_search_memory",
+ "target": "prometheus_tools_rationale_17"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L71",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L13",
"weight": 1.0,
- "source": "prometheus_memory_upsertmemory",
- "target": "models_memory_usermemory"
+ "confidence_score": 1.0,
+ "source": "prometheus_tools_search_memory",
+ "target": "prometheus_tools_rationale_13"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L12",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_tools_search_memory",
+ "target": "prometheus_tools_rationale_12"
+ },
+ {
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L49",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "prometheus_tools_rationale_49",
+ "target": "prometheus_tools_save_memory"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L50",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L52",
"weight": 1.0,
- "source": "prometheus_memory_upsertmemory",
- "target": "utils_vector_contenthash"
+ "source": "prometheus_tools_save_memory",
+ "target": "prometheus_vector_embed"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L63",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L67",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_memory_upsertmemory",
- "target": "prometheus_memory_now"
+ "source": "prometheus_tools_save_memory",
+ "target": "prometheus_tools_getdb"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L131",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L54",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_memory_search",
- "target": "prometheus_memory_fulltextsearch"
+ "source": "prometheus_tools_rationale_54",
+ "target": "prometheus_tools_save_memory"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L120",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L44",
"weight": 1.0,
- "source": "prometheus_memory_search",
- "target": "prometheus_vector_getrelevancescore"
+ "confidence_score": 1.0,
+ "source": "prometheus_tools_rationale_44",
+ "target": "prometheus_tools_save_memory"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L104",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L42",
"weight": 1.0,
- "source": "prometheus_memory_search",
- "target": "prometheus_vector_embed"
+ "confidence_score": 1.0,
+ "source": "prometheus_tools_save_memory",
+ "target": "prometheus_tools_rationale_42"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L162",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L41",
"weight": 1.0,
- "source": "prometheus_memory_search",
- "target": "prometheus_vector_decodeembeddings"
+ "confidence_score": 1.0,
+ "source": "prometheus_tools_save_memory",
+ "target": "prometheus_tools_rationale_41"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L109",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L39",
"weight": 1.0,
- "source": "prometheus_memory_search",
- "target": "prometheus_vector_batchcosinesimilarity"
+ "confidence_score": 1.0,
+ "source": "prometheus_tools_save_memory",
+ "target": "prometheus_tools_rationale_39"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L113",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L38",
"weight": 1.0,
- "source": "prometheus_memory_search",
- "target": "utils_vector_batchcosinesimilarity"
+ "confidence_score": 1.0,
+ "source": "prometheus_tools_save_memory",
+ "target": "prometheus_tools_rationale_38"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L125",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L29",
"weight": 1.0,
- "source": "prometheus_memory_search",
- "target": "utils_vector_getrelevancescore"
+ "confidence_score": 1.0,
+ "source": "prometheus_tools_save_memory",
+ "target": "prometheus_tools_rationale_29"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L106",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L90",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_memory_search",
- "target": "prometheus_memory_now"
+ "source": "prometheus_tools_rationale_90",
+ "target": "prometheus_tools_execute_code"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L135",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L92",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_memory_search",
- "target": "prometheus_memory_fulltext_search"
+ "source": "prometheus_tools_rationale_92",
+ "target": "prometheus_tools_execute_code"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L117",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L123",
"weight": 1.0,
- "source": "prometheus_memory_search",
- "target": "utils_vector_batch_cosine_similarity"
+ "confidence_score": 1.0,
+ "source": "prometheus_tools_rationale_123",
+ "target": "prometheus_tools_execute_code"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L154",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L114",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_memory_fulltextsearch",
- "target": "prometheus_memory_now"
+ "source": "prometheus_tools_rationale_114",
+ "target": "prometheus_tools_execute_code"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L180",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L112",
"weight": 1.0,
- "source": "prometheus_memory_getusermemories",
- "target": "prometheus_vector_getrelevancescore"
+ "confidence_score": 1.0,
+ "source": "prometheus_tools_execute_code",
+ "target": "prometheus_tools_rationale_112"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L185",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L111",
"weight": 1.0,
- "source": "prometheus_memory_getusermemories",
- "target": "utils_vector_getrelevancescore"
+ "confidence_score": 1.0,
+ "source": "prometheus_tools_execute_code",
+ "target": "prometheus_tools_rationale_111"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L178",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L109",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_memory_getusermemories",
- "target": "prometheus_memory_now"
+ "source": "prometheus_tools_execute_code",
+ "target": "prometheus_tools_rationale_109"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L191",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L111",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_memory_deletememory",
- "target": "prometheus_memory_now"
+ "source": "prometheus_tools_rationale_111",
+ "target": "prometheus_tools_read_file"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L386",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L113",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_memory_extract",
- "target": "prometheus_memory_counttokenscached"
+ "source": "prometheus_tools_rationale_113",
+ "target": "prometheus_tools_read_file"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L367",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L144",
"weight": 1.0,
- "source": "prometheus_memory_extract",
- "target": "prometheus_vector_embed"
+ "confidence_score": 1.0,
+ "source": "prometheus_tools_rationale_144",
+ "target": "prometheus_tools_read_file"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L18",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L135",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_lockfor"
+ "source": "prometheus_tools_rationale_135",
+ "target": "prometheus_tools_read_file"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L24",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L147",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_getclient"
+ "source": "prometheus_tools_read_file",
+ "target": "prometheus_tools_rationale_147"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L28",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L131",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_hostpath"
+ "source": "prometheus_tools_read_file",
+ "target": "prometheus_tools_rationale_131"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L42",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L130",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_sandboxpath"
+ "source": "prometheus_tools_read_file",
+ "target": "prometheus_tools_rationale_130"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L47",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L125",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_sandboxmanager"
+ "source": "prometheus_tools_rationale_125",
+ "target": "prometheus_tools_write_file"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L49",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L127",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_create"
+ "source": "prometheus_tools_rationale_127",
+ "target": "prometheus_tools_write_file"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L65",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L122",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_destroy"
+ "source": "prometheus_tools_rationale_122",
+ "target": "prometheus_tools_write_file"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L77",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L155",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_getorcreate"
+ "source": "prometheus_tools_rationale_155",
+ "target": "prometheus_tools_write_file"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L123",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L146",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_execute"
+ "source": "prometheus_tools_rationale_146",
+ "target": "prometheus_tools_write_file"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L189",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L158",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_read_file"
+ "source": "prometheus_tools_write_file",
+ "target": "prometheus_tools_rationale_158"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L196",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L144",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_write_file"
+ "source": "prometheus_tools_write_file",
+ "target": "prometheus_tools_rationale_144"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L207",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L143",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_list_files"
+ "source": "prometheus_tools_write_file",
+ "target": "prometheus_tools_rationale_143"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L186",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L141",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_write_bytes"
+ "source": "prometheus_tools_rationale_141",
+ "target": "prometheus_tools_list_files"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L197",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L143",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_delete_file"
+ "source": "prometheus_tools_rationale_143",
+ "target": "prometheus_tools_list_files"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L215",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L135",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_synctosandbox"
+ "source": "prometheus_tools_rationale_135",
+ "target": "prometheus_tools_list_files"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L234",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L168",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_syncfromsandbox"
+ "source": "prometheus_tools_rationale_168",
+ "target": "prometheus_tools_list_files"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
+ "source_file": "main/app/prometheus/tools.py",
"source_location": "L159",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_executewithworkspace"
+ "source": "prometheus_tools_rationale_159",
+ "target": "prometheus_tools_list_files"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L134",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L171",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_syncworkspace"
+ "source": "prometheus_tools_list_files",
+ "target": "prometheus_tools_rationale_171"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L148",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L158",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_restoreworkspace"
+ "source": "prometheus_tools_list_files",
+ "target": "prometheus_tools_rationale_158"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L159",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L154",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_savebackup"
+ "source": "prometheus_tools_rationale_154",
+ "target": "prometheus_tools_serve_file"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L168",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L156",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_loadbackup"
+ "source": "prometheus_tools_rationale_156",
+ "target": "prometheus_tools_serve_file"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L12",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L145",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_baseurl"
+ "source": "prometheus_tools_rationale_145",
+ "target": "prometheus_tools_serve_file"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L57",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L125",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_checkpoint"
+ "source": "prometheus_tools_dispatchtoolcall",
+ "target": "tests_test_memory_tools_wiring_test_search_memory_routed_via_registry"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L70",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L140",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_restore"
+ "source": "prometheus_tools_dispatchtoolcall",
+ "target": "tests_test_memory_tools_wiring_test_save_memory_routed_via_registry"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L79",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L158",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_upload_file"
+ "source": "prometheus_tools_dispatchtoolcall",
+ "target": "tests_test_memory_tools_wiring_test_non_registry_tool_not_routed"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L19",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sandbox_tools.py",
+ "source_location": "L33",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_base_url"
+ "source": "prometheus_tools_dispatchtoolcall",
+ "target": "tests_test_sandbox_tools_test_dispatch_execute_code"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L1",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sandbox_tools.py",
+ "source_location": "L85",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_prometheus_sandbox_py",
- "target": "prometheus_sandbox_rationale_1"
+ "source": "prometheus_tools_dispatchtoolcall",
+ "target": "tests_test_sandbox_tools_test_dispatch_execute_code_no_sandbox"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L78",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sandbox_tools.py",
+ "source_location": "L52",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_sandbox_getorcreate",
- "target": "prometheus_sandbox_lockfor"
+ "source": "prometheus_tools_dispatchtoolcall",
+ "target": "tests_test_sandbox_tools_test_dispatch_read_file"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L160",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sandbox_tools.py",
+ "source_location": "L62",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_sandbox_executewithworkspace",
- "target": "prometheus_sandbox_lockfor"
+ "source": "prometheus_tools_dispatchtoolcall",
+ "target": "tests_test_sandbox_tools_test_dispatch_write_file"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L50",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sandbox_tools.py",
+ "source_location": "L72",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_sandbox_create",
- "target": "prometheus_sandbox_getclient"
+ "source": "prometheus_tools_dispatchtoolcall",
+ "target": "tests_test_sandbox_tools_test_dispatch_list_files"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L66",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sandbox_tools.py",
+ "source_location": "L80",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_sandbox_destroy",
- "target": "prometheus_sandbox_getclient"
+ "source": "prometheus_tools_dispatchtoolcall",
+ "target": "tests_test_sandbox_tools_test_dispatch_read_file_no_sandbox"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L83",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_state_tools.py",
+ "source_location": "L108",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_sandbox_getorcreate",
- "target": "prometheus_sandbox_getclient"
+ "source": "prometheus_tools_dispatchtoolcall",
+ "target": "tests_test_state_tools_test_dispatch_get_state"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L124",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_state_tools.py",
+ "source_location": "L117",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_sandbox_execute",
- "target": "prometheus_sandbox_getclient"
+ "source": "prometheus_tools_dispatchtoolcall",
+ "target": "tests_test_state_tools_test_dispatch_set_state"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L220",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sandbox_tools.py",
+ "source_location": "L68",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_sandbox_synctosandbox",
- "target": "prometheus_sandbox_getclient"
+ "source": "prometheus_tools_dispatchtoolcall",
+ "target": "tests_test_sandbox_tools_test_dispatch_execute_code_routes_to_registry"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L235",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L129",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_syncfromsandbox",
- "target": "prometheus_sandbox_getclient"
+ "source": "prometheus_tools_dispatchtoolcall",
+ "target": "prometheus_tools_executestatetool"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L168",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L85",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_executewithworkspace",
- "target": "prometheus_sandbox_getclient"
+ "source": "prometheus_tools_dispatchtoolcall",
+ "target": "prometheus_tools_executememorytool"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/prometheus/sandbox_cleanup.py",
- "source_location": "L23",
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L86",
"weight": 1.0,
- "source": "prometheus_sandbox_getclient",
- "target": "prometheus_sandbox_cleanup_cleanup_expired_sandboxes"
+ "source": "prometheus_tools_dispatchtoolcall",
+ "target": "tests_test_memory_tools_wiring_test_search_memory_routed_to_executememorytool"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L57",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L99",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_sandbox_getclient",
- "target": "prometheus_sandbox_read_file"
+ "source": "prometheus_tools_dispatchtoolcall",
+ "target": "tests_test_memory_tools_wiring_test_save_memory_routed_to_executememorytool"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L66",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L114",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_sandbox_getclient",
- "target": "prometheus_sandbox_write_file"
+ "source": "prometheus_tools_dispatchtoolcall",
+ "target": "tests_test_memory_tools_wiring_test_memory_tool_skipped_without_user"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_tools_wiring.py",
+ "source_location": "L127",
+ "weight": 1.0,
+ "source": "prometheus_tools_dispatchtoolcall",
+ "target": "tests_test_memory_tools_wiring_test_non_memory_tool_not_routed_to_executememorytool"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L78",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L19",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_getclient",
- "target": "prometheus_sandbox_list_files"
+ "source": "prometheus_tools_rationale_19",
+ "target": "prometheus_tools_getdb"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L136",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L90",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_getclient",
- "target": "prometheus_sandbox_syncworkspace"
+ "source": "prometheus_tools_rationale_90",
+ "target": "prometheus_tools_get_state"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L150",
+ "source_file": "main/app/prometheus/tools.py",
+ "source_location": "L154",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_getclient",
- "target": "prometheus_sandbox_restoreworkspace"
+ "source": "prometheus_tools_check_cache",
+ "target": "prometheus_tools_rationale_154"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L190",
+ "source_file": "main/app/prometheus/vector.py",
+ "source_location": "L10",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_read_file",
- "target": "prometheus_sandbox_hostpath"
+ "source": "main_app_prometheus_vector_py",
+ "target": "prometheus_vector_normalizerows"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L198",
+ "source_file": "main/app/prometheus/vector.py",
+ "source_location": "L10",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_write_file",
- "target": "prometheus_sandbox_hostpath"
+ "source": "main_app_prometheus_vector_py",
+ "target": "prometheus_vector_embed"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L208",
+ "source_file": "main/app/prometheus/vector.py",
+ "source_location": "L14",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_list_files",
- "target": "prometheus_sandbox_hostpath"
+ "source": "main_app_prometheus_vector_py",
+ "target": "prometheus_vector_decodeembeddings"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L188",
+ "source_file": "main/app/prometheus/vector.py",
+ "source_location": "L8",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_write_bytes",
- "target": "prometheus_sandbox_hostpath"
+ "source": "main_app_prometheus_vector_py",
+ "target": "prometheus_vector_batchcosinesimilarity"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L199",
+ "source_file": "main/app/prometheus/vector.py",
+ "source_location": "L20",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_delete_file",
- "target": "prometheus_sandbox_hostpath"
+ "source": "main_app_prometheus_vector_py",
+ "target": "prometheus_vector_contenthash"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/vector.py",
+ "source_location": "L55",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_vector_py",
+ "target": "prometheus_vector_tovectorstring"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/vector.py",
+ "source_location": "L59",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_vector_py",
+ "target": "prometheus_vector_fromvectorstring"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/vector.py",
+ "source_location": "L24",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_prometheus_vector_py",
+ "target": "prometheus_vector_getrelevancescore"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L243",
+ "source_file": "main/app/prometheus/vector.py",
+ "source_location": "L35",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_syncfromsandbox",
- "target": "prometheus_sandbox_hostpath"
+ "source": "prometheus_vector_batchcosinesimilarity",
+ "target": "prometheus_vector_normalizerows"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/app/prometheus/vector.py",
+ "source_location": "L11",
+ "weight": 1.0,
+ "source": "prometheus_vector_embed",
+ "target": "models_loader_getembeddingmodel"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "bench/bench_memory_vector.py",
+ "source_location": "L32",
+ "weight": 1.0,
+ "source": "bench_bench_memory_vector_benchonce",
+ "target": "prometheus_vector_embed"
},
{
"relation": "calls",
@@ -59003,2524 +64374,2785 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "main/app/prometheus/tools.py",
- "source_location": "L156",
+ "source_location": "L63",
"weight": 1.0,
- "source": "prometheus_tools_serve_file",
- "target": "prometheus_sandbox_hostpath"
+ "source": "prometheus_vector_embed",
+ "target": "prometheus_tools_executememorytool"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L189",
+ "source_file": "bench/bench_memory_vector.py",
+ "source_location": "L22",
"weight": 1.0,
- "source": "controller_prometheus_controller_downloadworkspacefile",
- "target": "prometheus_sandbox_hostpath"
+ "source": "bench_bench_memory_vector_benchonce",
+ "target": "prometheus_vector_decodeembeddings"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L211",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_sandbox_list_files",
- "target": "prometheus_sandbox_sandboxpath"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L9",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_sandbox_sandboxmanager",
- "target": "models_sandbox_prometheussandbox"
- },
- {
- "relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_agent_sandbox_integration.py",
- "source_location": "L7",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_sandbox_sandboxmanager",
- "target": "tests_test_agent_sandbox_integration_testpersistentsandboxlifecycle"
+ "confidence_score": 0.8,
+ "source_file": "bench/bench_memory_vector.py",
+ "source_location": "L25",
+ "weight": 1.0,
+ "source": "bench_bench_memory_vector_benchonce",
+ "target": "prometheus_vector_batchcosinesimilarity"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L3",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_sandbox_sandboxmanager",
- "target": "tests_test_sandbox_testsandboxmanager"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L8",
+ "weight": 1.0,
+ "source": "prometheus_vector_batchcosinesimilarity",
+ "target": "tests_test_vector_utils_testbatchcosinesimilarity_test_empty_matrix"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L4",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_sandbox_sandboxmanager",
- "target": "tests_test_sandbox_persistence_testprometheussandboxmodel"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L14",
+ "weight": 1.0,
+ "source": "prometheus_vector_batchcosinesimilarity",
+ "target": "tests_test_vector_utils_testbatchcosinesimilarity_test_single_row"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L4",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_sandbox_sandboxmanager",
- "target": "tests_test_sandbox_persistence_testsandboxpersistence"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L27",
+ "weight": 1.0,
+ "source": "prometheus_vector_batchcosinesimilarity",
+ "target": "tests_test_vector_utils_testbatchcosinesimilarity_test_multiple_rows"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L4",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_sandbox_sandboxmanager",
- "target": "tests_test_sandbox_persistence_testsandboxcleanup"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L34",
+ "weight": 1.0,
+ "source": "prometheus_vector_batchcosinesimilarity",
+ "target": "tests_test_vector_utils_testbatchcosinesimilarity_test_zero_query"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L6",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_sandbox_sandboxmanager",
- "target": "tests_test_sandbox_fakeclient"
+ "confidence_score": 0.8,
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L54",
+ "weight": 1.0,
+ "source": "prometheus_memory_applyupdate",
+ "target": "prometheus_vector_contenthash"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L6",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_sandbox_sandboxmanager",
- "target": "tests_test_sandbox_testsandboxcreate"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L40",
+ "weight": 1.0,
+ "source": "prometheus_vector_contenthash",
+ "target": "tests_test_vector_utils_testcontenthash_test_deterministic"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L6",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_sandbox_sandboxmanager",
- "target": "tests_test_sandbox_testsandboxexecute"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L43",
+ "weight": 1.0,
+ "source": "prometheus_vector_contenthash",
+ "target": "tests_test_vector_utils_testcontenthash_test_different_inputs"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L6",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_sandbox_sandboxmanager",
- "target": "tests_test_sandbox_testsandboxcheckpoint"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L46",
+ "weight": 1.0,
+ "source": "prometheus_vector_contenthash",
+ "target": "tests_test_vector_utils_testcontenthash_test_hex_format"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L6",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_sandbox_sandboxmanager",
- "target": "tests_test_sandbox_testsandboxrestore"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_relevance_score.py",
+ "source_location": "L21",
+ "weight": 1.0,
+ "source": "prometheus_vector_getrelevancescore",
+ "target": "tests_test_relevance_score_testtimedecay_test_just_accessed_has_full_score"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L6",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_sandbox_sandboxmanager",
- "target": "tests_test_sandbox_testsandboxuploadfile"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_relevance_score.py",
+ "source_location": "L26",
+ "weight": 1.0,
+ "source": "prometheus_vector_getrelevancescore",
+ "target": "tests_test_relevance_score_testtimedecay_test_one_day_old"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L6",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_sandbox_sandboxmanager",
- "target": "tests_test_sandbox_testsandboxreadfile"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_relevance_score.py",
+ "source_location": "L31",
+ "weight": 1.0,
+ "source": "prometheus_vector_getrelevancescore",
+ "target": "tests_test_relevance_score_testtimedecay_test_seven_days_old"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_sandbox.py",
- "source_location": "L6",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_sandbox_sandboxmanager",
- "target": "tests_test_sandbox_testsandboxdestroy"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_relevance_score.py",
+ "source_location": "L36",
+ "weight": 1.0,
+ "source": "prometheus_vector_getrelevancescore",
+ "target": "tests_test_relevance_score_testtimedecay_test_thirty_days_old"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "main/app/prometheus/context.py",
- "source_location": "L16",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "prometheus_sandbox_sandboxmanager",
- "target": "prometheus_context_toolcontext"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L24",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_relevance_score.py",
+ "source_location": "L41",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_sandbox_sandboxmanager",
- "target": "prometheus_sandbox_rationale_24"
+ "source": "prometheus_vector_getrelevancescore",
+ "target": "tests_test_relevance_score_testtimedecay_test_ninety_days_old"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L104",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_relevance_score.py",
+ "source_location": "L46",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_sandbox_getorcreate",
- "target": "prometheus_sandbox_create"
+ "source": "prometheus_vector_getrelevancescore",
+ "target": "tests_test_relevance_score_testtimedecay_test_one_year_old"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L162",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_relevance_score.py",
+ "source_location": "L52",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_sandbox_executewithworkspace",
- "target": "prometheus_sandbox_create"
+ "source": "prometheus_vector_getrelevancescore",
+ "target": "tests_test_relevance_score_testtimedecay_test_score_always_positive"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L20",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_relevance_score.py",
+ "source_location": "L61",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_sandbox_create",
- "target": "prometheus_sandbox_baseurl"
+ "source": "prometheus_vector_getrelevancescore",
+ "target": "tests_test_relevance_score_testbasescoreimpact_test_high_base_beats_low_base_same_age"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L33",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_relevance_score.py",
+ "source_location": "L69",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_sandbox_create",
- "target": "prometheus_sandbox_base_url"
+ "source": "prometheus_vector_getrelevancescore",
+ "target": "tests_test_relevance_score_testbasescoreimpact_test_frequently_used_survives_longer"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L186",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_relevance_score.py",
+ "source_location": "L75",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_sandbox_executewithworkspace",
- "target": "prometheus_sandbox_destroy"
+ "source": "prometheus_vector_getrelevancescore",
+ "target": "tests_test_relevance_score_testbasescoreimpact_test_rare_old_loses_to_popular_new"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L80",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_relevance_score.py",
+ "source_location": "L79",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_sandbox_destroy",
- "target": "prometheus_sandbox_baseurl"
+ "source": "prometheus_vector_getrelevancescore",
+ "target": "tests_test_relevance_score_testbasescoreimpact_test_score_capped_at_one"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L99",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_relevance_score.py",
+ "source_location": "L87",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_sandbox_destroy",
- "target": "prometheus_sandbox_base_url"
+ "source": "prometheus_vector_getrelevancescore",
+ "target": "tests_test_relevance_score_testbasescoreimpact_test_equal_age_higher_base_wins"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L116",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_relevance_score.py",
+ "source_location": "L95",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_sandbox_getorcreate",
- "target": "prometheus_sandbox_synctosandbox"
+ "source": "prometheus_vector_getrelevancescore",
+ "target": "tests_test_relevance_score_testdecaymonotonicity_test_older_always_lower_score"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L153",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_relevance_score.py",
+ "source_location": "L102",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_sandbox_execute",
- "target": "prometheus_sandbox_getorcreate"
+ "source": "prometheus_vector_getrelevancescore",
+ "target": "tests_test_relevance_score_testdecaymonotonicity_test_never_accessed_uses_full_base"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L75",
+ "source_file": "tests/test_relevance_score.py",
+ "source_location": "L110",
"weight": 1.0,
- "source": "prometheus_sandbox_getorcreate",
- "target": "models_sandbox_prometheussandbox"
+ "source": "prometheus_vector_getrelevancescore",
+ "target": "tests_test_relevance_score_testnocronneeded_test_same_memory_same_time_same_score"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L69",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_relevance_score.py",
+ "source_location": "L117",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_sandbox_getorcreate",
- "target": "prometheus_sandbox_loadbackup"
+ "source": "prometheus_vector_getrelevancescore",
+ "target": "tests_test_relevance_score_testnocronneeded_test_different_times_different_scores"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "imports_from",
+ "context": "import",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L71",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L20",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_getorcreate",
- "target": "prometheus_sandbox_restoreworkspace"
+ "source": "main_app_scraper_b3_scraper_py",
+ "target": "main_app_scraper_b3_xango_py"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L128",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L32",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_execute",
- "target": "prometheus_sandbox_synctosandbox"
+ "source": "main_app_scraper_b3_scraper_py",
+ "target": "scraper_b3_scraper_getcurrentselic"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L139",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L31",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_execute",
- "target": "prometheus_sandbox_syncfromsandbox"
+ "source": "main_app_scraper_b3_scraper_py",
+ "target": "scraper_b3_scraper_b3scraper"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L37",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L51",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_execute",
- "target": "prometheus_sandbox_baseurl"
+ "source": "main_app_scraper_b3_scraper_py",
+ "target": "scraper_b3_scraper_getinitialdata"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L51",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L106",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_execute",
- "target": "prometheus_sandbox_base_url"
+ "source": "main_app_scraper_b3_scraper_py",
+ "target": "scraper_b3_scraper_historicalrentability"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L242",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L129",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_syncfromsandbox",
- "target": "prometheus_sandbox_read_file"
+ "source": "main_app_scraper_b3_scraper_py",
+ "target": "scraper_b3_scraper_historicaldividends"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L142",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L160",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_read_file",
- "target": "prometheus_sandbox_syncworkspace"
+ "source": "main_app_scraper_b3_scraper_py",
+ "target": "scraper_b3_scraper_historicaldividendyields"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L73",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L188",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_read_file",
- "target": "prometheus_sandbox_baseurl"
+ "source": "main_app_scraper_b3_scraper_py",
+ "target": "scraper_b3_scraper_historicalrevenue"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L91",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L209",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_read_file",
- "target": "prometheus_sandbox_base_url"
+ "source": "main_app_scraper_b3_scraper_py",
+ "target": "scraper_b3_scraper_historicalcotationprofits"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L227",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L235",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_synctosandbox",
- "target": "prometheus_sandbox_write_file"
+ "source": "main_app_scraper_b3_scraper_py",
+ "target": "scraper_b3_scraper_historicalcotations"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L154",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L252",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_write_file",
- "target": "prometheus_sandbox_restoreworkspace"
+ "source": "main_app_scraper_b3_scraper_py",
+ "target": "scraper_b3_scraper_tagalong"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L164",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L276",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_executewithworkspace",
- "target": "prometheus_sandbox_synctosandbox"
+ "source": "main_app_scraper_b3_scraper_py",
+ "target": "scraper_b3_scraper_stocknews"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/sandbox.py",
- "source_location": "L180",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L51",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_sandbox_executewithworkspace",
- "target": "prometheus_sandbox_syncfromsandbox"
+ "source": "scraper_b3_scraper_getcurrentselic",
+ "target": "scraper_b3_scraper_b3scraper_init"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/stream_bus.py",
- "source_location": "L10",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L32",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_stream_bus_py",
- "target": "prometheus_stream_bus_streamchannel"
+ "source": "scraper_b3_scraper_b3scraper",
+ "target": "scraper_b3_scraper_b3scraper_init"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/stream_bus.py",
- "source_location": "L28",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L222",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_stream_bus_py",
- "target": "prometheus_stream_bus_streambus"
+ "source": "scraper_b3_scraper_b3scraper",
+ "target": "scraper_b3_scraper_b3scraper_historicalcotationprofits_oceans14"
},
{
"relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/stream_bus.py",
- "source_location": "L11",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L289",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_stream_bus_streamchannel",
- "target": "prometheus_stream_bus_streamchannel_init"
+ "source": "scraper_b3_scraper_b3scraper",
+ "target": "scraper_b3_scraper_b3scraper_fundamentalindicators"
},
{
"relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/stream_bus.py",
- "source_location": "L17",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L438",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_stream_bus_streamchannel",
- "target": "prometheus_stream_bus_streamchannel_publish"
+ "source": "scraper_b3_scraper_b3scraper",
+ "target": "scraper_b3_scraper_b3scraper_processticker"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/stream_bus.py",
- "source_location": "L35",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L469",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_stream_bus_streambus_getorcreate",
- "target": "prometheus_stream_bus_streamchannel"
+ "source": "scraper_b3_scraper_b3scraper",
+ "target": "scraper_b3_scraper_b3scraper_scrapestocks"
},
{
"relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/stream_bus.py",
- "source_location": "L29",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L519",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_stream_bus_streambus",
- "target": "prometheus_stream_bus_streambus_init"
+ "source": "scraper_b3_scraper_b3scraper",
+ "target": "scraper_b3_scraper_b3scraper_reordercolumns"
},
{
"relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/stream_bus.py",
- "source_location": "L32",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L529",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_stream_bus_streambus",
- "target": "prometheus_stream_bus_streambus_getorcreate"
+ "source": "scraper_b3_scraper_b3scraper",
+ "target": "scraper_b3_scraper_b3scraper_serializecomplextypes"
},
{
"relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/stream_bus.py",
- "source_location": "L39",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L550",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_stream_bus_streambus",
- "target": "prometheus_stream_bus_streambus_publish"
+ "source": "scraper_b3_scraper_b3scraper",
+ "target": "scraper_b3_scraper_b3scraper_exportjson"
},
{
"relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/stream_bus.py",
- "source_location": "L42",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L586",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_stream_bus_streambus",
- "target": "prometheus_stream_bus_streambus_subscribe"
+ "source": "scraper_b3_scraper_b3scraper",
+ "target": "scraper_b3_scraper_b3scraper_exportmysql"
},
{
- "relation": "method",
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/service/scraper_service.py",
+ "source_location": "L8",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "scraper_b3_scraper_b3scraper",
+ "target": "service_scraper_service_scraperservice"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/service/scraper_service.py",
+ "source_location": "L18",
+ "weight": 1.0,
+ "source": "scraper_b3_scraper_b3scraper",
+ "target": "service_scraper_service_runscraper"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/stream_bus.py",
- "source_location": "L55",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L470",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_stream_bus_streambus",
- "target": "prometheus_stream_bus_streambus_unsubscribe"
+ "source": "scraper_b3_scraper_getinitialdata",
+ "target": "scraper_b3_scraper_b3scraper_scrapestocks"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/stream_bus.py",
- "source_location": "L60",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L461",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_stream_bus_streambus",
- "target": "prometheus_stream_bus_streambus_startrun"
+ "source": "scraper_b3_scraper_b3scraper_fundamentalindicators",
+ "target": "scraper_b3_scraper_b3scraper_processticker"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L392",
+ "weight": 1.0,
+ "source": "scraper_b3_scraper_b3scraper_fundamentalindicators",
+ "target": "scraper_b3_xango_calculateinvestingscore"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/stream_bus.py",
- "source_location": "L83",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L477",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_stream_bus_streambus",
- "target": "prometheus_stream_bus_streambus_forward"
+ "source": "scraper_b3_scraper_b3scraper_processticker",
+ "target": "scraper_b3_scraper_b3scraper_scrapestocks"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/stream_bus.py",
- "source_location": "L40",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L513",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_stream_bus_streambus_publish",
- "target": "prometheus_stream_bus_streambus_getorcreate"
+ "source": "scraper_b3_scraper_b3scraper_scrapestocks",
+ "target": "scraper_b3_scraper_b3scraper_reordercolumns"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/stream_bus.py",
- "source_location": "L61",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L514",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_stream_bus_streambus_startrun",
- "target": "prometheus_stream_bus_streambus_getorcreate"
+ "source": "scraper_b3_scraper_b3scraper_scrapestocks",
+ "target": "scraper_b3_scraper_b3scraper_serializecomplextypes"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/stream_bus.py",
- "source_location": "L84",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L516",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_stream_bus_streambus_forward",
- "target": "prometheus_stream_bus_streambus_subscribe"
+ "source": "scraper_b3_scraper_b3scraper_scrapestocks",
+ "target": "scraper_b3_scraper_b3scraper_exportjson"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/stream_bus.py",
- "source_location": "L105",
+ "source_file": "main/app/scraper_b3/scraper.py",
+ "source_location": "L517",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_stream_bus_streambus_forward",
- "target": "prometheus_stream_bus_streambus_unsubscribe"
+ "source": "scraper_b3_scraper_b3scraper_scrapestocks",
+ "target": "scraper_b3_scraper_b3scraper_exportmysql"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L17",
+ "source_file": "main/app/scraper_b3/xango.py",
+ "source_location": "L14",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_tools_py",
- "target": "prometheus_tools_search_memory"
+ "source": "main_app_scraper_b3_xango_py",
+ "target": "scraper_b3_xango_calculateinvestingscore"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L43",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L22",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_tools_py",
- "target": "prometheus_tools_save_memory"
+ "source": "main_app_stocks_api_cache_py",
+ "target": "stocks_api_cache_optimizedtypes"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L113",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L58",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_tools_py",
- "target": "prometheus_tools_execute_code"
+ "source": "main_app_stocks_api_cache_py",
+ "target": "stocks_api_cache_arrowtypefor"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L134",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L50",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_tools_py",
- "target": "prometheus_tools_read_file"
+ "source": "main_app_stocks_api_cache_py",
+ "target": "stocks_api_cache_buildfeathercache"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L145",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L90",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_tools_py",
- "target": "prometheus_tools_write_file"
+ "source": "main_app_stocks_api_cache_py",
+ "target": "stocks_api_cache_trybuildlock"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L158",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L170",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_tools_py",
- "target": "prometheus_tools_list_files"
+ "source": "main_app_stocks_api_cache_py",
+ "target": "stocks_api_cache_sortcacheframe"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L144",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L190",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_tools_py",
- "target": "prometheus_tools_serve_file"
+ "source": "main_app_stocks_api_cache_py",
+ "target": "stocks_api_cache_buildtickerindex"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L180",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L12",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_tools_py",
- "target": "prometheus_tools_dispatchtoolcall"
+ "source": "main_app_stocks_api_cache_py",
+ "target": "stocks_api_cache_stockscachemanager"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L18",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L38",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_tools_py",
- "target": "prometheus_tools_getdb"
+ "source": "main_app_stocks_api_cache_py",
+ "target": "stocks_api_cache_buildcotationdateindex"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L80",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L71",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_tools_py",
- "target": "prometheus_tools_get_state"
+ "source": "stocks_api_cache_buildfeathercache",
+ "target": "stocks_api_cache_optimizedtypes"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L95",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L89",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_tools_py",
- "target": "prometheus_tools_set_state"
+ "source": "stocks_api_cache_optimizedtypes",
+ "target": "stocks_api_cache_stockscachemanager_getcachedstocks"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L141",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L124",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_tools_py",
- "target": "prometheus_tools_read_sandbox_file"
+ "source": "stocks_api_cache_buildfeathercache",
+ "target": "stocks_api_cache_arrowtypefor"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L151",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L59",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_tools_py",
- "target": "prometheus_tools_upload_to_sandbox"
+ "source": "stocks_api_cache_rationale_59",
+ "target": "stocks_api_cache_arrowtypefor"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L153",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L157",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_tools_py",
- "target": "prometheus_tools_check_cache"
+ "source": "stocks_api_cache_stockscachemanager_getcachedstocks",
+ "target": "stocks_api_cache_trybuildlock"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L104",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L91",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_tools_py",
- "target": "prometheus_tools_executestatetool"
+ "source": "stocks_api_cache_rationale_91",
+ "target": "stocks_api_cache_trybuildlock"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L46",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L239",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_tools_py",
- "target": "prometheus_tools_executememorytool"
+ "source": "stocks_api_cache_stockscachemanager_loadfromfeather",
+ "target": "stocks_api_cache_sortcacheframe"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L19",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L171",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_tools_rationale_19",
- "target": "prometheus_tools_search_memory"
+ "source": "stocks_api_cache_rationale_171",
+ "target": "stocks_api_cache_sortcacheframe"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L39",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L240",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_tools_search_memory",
- "target": "prometheus_tools_getdb"
+ "source": "stocks_api_cache_stockscachemanager_loadfromfeather",
+ "target": "stocks_api_cache_buildtickerindex"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L27",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L191",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_tools_rationale_27",
- "target": "prometheus_tools_search_memory"
+ "source": "stocks_api_cache_rationale_191",
+ "target": "stocks_api_cache_buildtickerindex"
},
{
- "relation": "rationale_for",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L13",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "stocks_api_cache_stockscachemanager_init"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/cache.py",
"source_location": "L18",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_tools_rationale_18",
- "target": "prometheus_tools_search_memory"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "stocks_api_cache_stockscachemanager_cachescheduler"
},
{
- "relation": "rationale_for",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L16",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L101",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_tools_search_memory",
- "target": "prometheus_tools_rationale_16"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "stocks_api_cache_stockscachemanager_loadfromfeather"
},
{
- "relation": "rationale_for",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L15",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L28",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_tools_search_memory",
- "target": "prometheus_tools_rationale_15"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "stocks_api_cache_stockscachemanager_getcachedstocks"
},
{
- "relation": "rationale_for",
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L724",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_api_coverage_teststockscachemanager"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L724",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_api_coverage_testverifyapikey"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L724",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_api_coverage_testgeneratesecurekey"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L724",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_api_coverage_testcreatekey"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L724",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_api_coverage_testdeserializejsoncolumns"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L724",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_api_coverage_testfilterbysearchterms"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L724",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_api_coverage_testqueryhistorical"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L724",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_api_coverage_testqueryfundamental"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L988",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_api_coverage_testquerycotations"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1260",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_api_coverage_testquerylivecotation"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L50",
+ "weight": 1.0,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_api_coverage_teststockscachemanager_make_manager"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L58",
+ "weight": 1.0,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_api_coverage_test_cache_scheduler_starts_apscheduler"
+ },
+ {
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L17",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L78",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_tools_search_memory",
- "target": "prometheus_tools_rationale_17"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "stocks_api_cache_stockscachemanager_putcache"
},
{
- "relation": "rationale_for",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L13",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L71",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_tools_search_memory",
- "target": "prometheus_tools_rationale_13"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "stocks_api_cache_stockscachemanager_clearquerycache"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/stocks_api/query.py",
"source_location": "L12",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_search_memory",
- "target": "prometheus_tools_rationale_12"
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "stocks_api_query_stocksquerymanager"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L49",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_49",
- "target": "prometheus_tools_save_memory"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_cache.py",
+ "source_location": "L11",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_cache_testcachelrueviction"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_cache.py",
+ "source_location": "L11",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_cache_testcolumnvalidator"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_cache.py",
+ "source_location": "L11",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_cache_testcachettllogic"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L52",
+ "source_file": "tests/test_cache.py",
+ "source_location": "L20",
"weight": 1.0,
- "source": "prometheus_tools_save_memory",
- "target": "prometheus_vector_embed"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_cache_testcachelrueviction_make_manager"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L67",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_cache.py",
+ "source_location": "L110",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_save_memory",
- "target": "prometheus_tools_getdb"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_cache_testcachettllogic_make_manager"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L54",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L58",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_54",
- "target": "prometheus_tools_save_memory"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_api_coverage_test_cache_scheduler_starts_daemon_thread"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L44",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_44",
- "target": "prometheus_tools_save_memory"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L10",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testtickerindex"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L42",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_save_memory",
- "target": "prometheus_tools_rationale_42"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L10",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testquerycaching"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L41",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_save_memory",
- "target": "prometheus_tools_rationale_41"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L10",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testconnectionpool"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L39",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_save_memory",
- "target": "prometheus_tools_rationale_39"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L10",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testlazydeserialization"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L38",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_save_memory",
- "target": "prometheus_tools_rationale_38"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L10",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testqueryoptimization"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L29",
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L10",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testperformancebenchmarks"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L10",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testfilterbysearchterms"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L10",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testqueryperformance"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L22",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_save_memory",
- "target": "prometheus_tools_rationale_29"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testtickerindex_test_tickerindex_built_after_cache_load"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L90",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L30",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_90",
- "target": "prometheus_tools_execute_code"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testtickerindex_test_tickerindex_contains_all_tickers"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L92",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L40",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_92",
- "target": "prometheus_tools_execute_code"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testtickerindex_test_tickerindex_case_insensitive"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L123",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L49",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_123",
- "target": "prometheus_tools_execute_code"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testtickerindex_test_ticker_lookup_returns_valid_index"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L114",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L60",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_114",
- "target": "prometheus_tools_execute_code"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testtickerindex_test_tickerindex_rebuilt_on_cache_refresh"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L112",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L77",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_execute_code",
- "target": "prometheus_tools_rationale_112"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testquerycaching_test_cache_manager_has_caches_method"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L111",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L85",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_execute_code",
- "target": "prometheus_tools_rationale_111"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testquerycaching_test_querycache_ttl_configuration"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L109",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L93",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_execute_code",
- "target": "prometheus_tools_rationale_109"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testquerycaching_test_get_cached_stocks_respects_columns_parameter"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L111",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L142",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_111",
- "target": "prometheus_tools_read_file"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testqueryoptimization_test_all_optimizations_present"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L113",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L180",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_113",
- "target": "prometheus_tools_read_file"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testperformancebenchmarks_test_tickerindex_lookup_performance"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L144",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L200",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_144",
- "target": "prometheus_tools_read_file"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testperformancebenchmarks_test_prefix_scan_performance"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L135",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L220",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_135",
- "target": "prometheus_tools_read_file"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testperformancebenchmarks_test_index_lookup_vs_scan_comparison"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L147",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L250",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_read_file",
- "target": "prometheus_tools_rationale_147"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testperformancebenchmarks_test_querycache_performance"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L131",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L273",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_read_file",
- "target": "prometheus_tools_rationale_131"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testperformancebenchmarks_test_column_projection_performance"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L130",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L289",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_read_file",
- "target": "prometheus_tools_rationale_130"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testperformancebenchmarks_test_cache_initialization_time"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L125",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L22",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_125",
- "target": "prometheus_tools_write_file"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testtickerindex_test_tickerIndex_built_after_cache_load"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L127",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L30",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_127",
- "target": "prometheus_tools_write_file"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testtickerindex_test_tickerIndex_contains_all_tickers"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L122",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L40",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_122",
- "target": "prometheus_tools_write_file"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testtickerindex_test_tickerIndex_case_insensitive"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L155",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L60",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_155",
- "target": "prometheus_tools_write_file"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testtickerindex_test_tickerIndex_rebuilt_on_cache_refresh"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L146",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L85",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_146",
- "target": "prometheus_tools_write_file"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testquerycaching_test_queryCache_ttl_configuration"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L158",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L180",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_write_file",
- "target": "prometheus_tools_rationale_158"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testperformancebenchmarks_test_tickerIndex_lookup_performance"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L144",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L250",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_write_file",
- "target": "prometheus_tools_rationale_144"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_cache_testperformancebenchmarks_test_queryCache_performance"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L143",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_write_file",
- "target": "prometheus_tools_rationale_143"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L10",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testtickerindex"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L141",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_141",
- "target": "prometheus_tools_list_files"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L10",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testquerycaching"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L143",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_143",
- "target": "prometheus_tools_list_files"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L10",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testconnectionpool"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L135",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_135",
- "target": "prometheus_tools_list_files"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L10",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testlazydeserialization"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L168",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_168",
- "target": "prometheus_tools_list_files"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L10",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testqueryoptimization"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L159",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_159",
- "target": "prometheus_tools_list_files"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L10",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testperformancebenchmarks"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L171",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_list_files",
- "target": "prometheus_tools_rationale_171"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L10",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testfilterbysearchterms"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L158",
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L10",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testqueryperformance"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L22",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_list_files",
- "target": "prometheus_tools_rationale_158"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testtickerindex_test_tickerIndex_built_after_cache_load"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L154",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L30",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_154",
- "target": "prometheus_tools_serve_file"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testtickerindex_test_tickerIndex_contains_all_tickers"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L156",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L40",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_156",
- "target": "prometheus_tools_serve_file"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testtickerindex_test_tickerIndex_case_insensitive"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L145",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L49",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "prometheus_tools_rationale_145",
- "target": "prometheus_tools_serve_file"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testtickerindex_test_ticker_lookup_returns_valid_index"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L125",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L60",
"weight": 1.0,
- "source": "prometheus_tools_dispatchtoolcall",
- "target": "tests_test_memory_tools_wiring_test_search_memory_routed_via_registry"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testtickerindex_test_tickerIndex_rebuilt_on_cache_refresh"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L140",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L77",
"weight": 1.0,
- "source": "prometheus_tools_dispatchtoolcall",
- "target": "tests_test_memory_tools_wiring_test_save_memory_routed_via_registry"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testquerycaching_test_cache_manager_has_caches_method"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L158",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L85",
"weight": 1.0,
- "source": "prometheus_tools_dispatchtoolcall",
- "target": "tests_test_memory_tools_wiring_test_non_registry_tool_not_routed"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testquerycaching_test_queryCache_ttl_configuration"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_sandbox_tools.py",
- "source_location": "L33",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L93",
"weight": 1.0,
- "source": "prometheus_tools_dispatchtoolcall",
- "target": "tests_test_sandbox_tools_test_dispatch_execute_code"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testquerycaching_test_get_cached_stocks_respects_columns_parameter"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_sandbox_tools.py",
- "source_location": "L85",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L142",
"weight": 1.0,
- "source": "prometheus_tools_dispatchtoolcall",
- "target": "tests_test_sandbox_tools_test_dispatch_execute_code_no_sandbox"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testqueryoptimization_test_all_optimizations_present"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_sandbox_tools.py",
- "source_location": "L52",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L180",
"weight": 1.0,
- "source": "prometheus_tools_dispatchtoolcall",
- "target": "tests_test_sandbox_tools_test_dispatch_read_file"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testperformancebenchmarks_test_tickerIndex_lookup_performance"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_sandbox_tools.py",
- "source_location": "L62",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L200",
"weight": 1.0,
- "source": "prometheus_tools_dispatchtoolcall",
- "target": "tests_test_sandbox_tools_test_dispatch_write_file"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testperformancebenchmarks_test_prefix_scan_performance"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_sandbox_tools.py",
- "source_location": "L72",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L220",
"weight": 1.0,
- "source": "prometheus_tools_dispatchtoolcall",
- "target": "tests_test_sandbox_tools_test_dispatch_list_files"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testperformancebenchmarks_test_index_lookup_vs_scan_comparison"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_sandbox_tools.py",
- "source_location": "L80",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L250",
"weight": 1.0,
- "source": "prometheus_tools_dispatchtoolcall",
- "target": "tests_test_sandbox_tools_test_dispatch_read_file_no_sandbox"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testperformancebenchmarks_test_queryCache_performance"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_state_tools.py",
- "source_location": "L108",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L273",
"weight": 1.0,
- "source": "prometheus_tools_dispatchtoolcall",
- "target": "tests_test_state_tools_test_dispatch_get_state"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testperformancebenchmarks_test_column_projection_performance"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_state_tools.py",
- "source_location": "L117",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L289",
"weight": 1.0,
- "source": "prometheus_tools_dispatchtoolcall",
- "target": "tests_test_state_tools_test_dispatch_set_state"
+ "source": "stocks_api_cache_stockscachemanager",
+ "target": "tests_test_stocks_optimization_testperformancebenchmarks_test_cache_initialization_time"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_sandbox_tools.py",
- "source_location": "L68",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L223",
"weight": 1.0,
- "source": "prometheus_tools_dispatchtoolcall",
- "target": "tests_test_sandbox_tools_test_dispatch_execute_code_routes_to_registry"
+ "source": "stocks_api_cache_stockscachemanager_cachescheduler",
+ "target": "utils_scheduler_registerjob"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L129",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L29",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_tools_dispatchtoolcall",
- "target": "prometheus_tools_executestatetool"
+ "source": "stocks_api_cache_stockscachemanager_cachescheduler",
+ "target": "stocks_api_cache_stockscachemanager_getcachedstocks"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L85",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L122",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_tools_dispatchtoolcall",
- "target": "prometheus_tools_executememorytool"
+ "source": "stocks_api_cache_stockscachemanager_getcachedstocks",
+ "target": "stocks_api_cache_stockscachemanager_loadfromfeather"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L86",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L115",
"weight": 1.0,
- "source": "prometheus_tools_dispatchtoolcall",
- "target": "tests_test_memory_tools_wiring_test_search_memory_routed_to_executememorytool"
+ "source": "stocks_api_cache_stockscachemanager_loadfromfeather",
+ "target": "stocks_api_compress_rebuildabbrevs"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L99",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L91",
"weight": 1.0,
- "source": "prometheus_tools_dispatchtoolcall",
- "target": "tests_test_memory_tools_wiring_test_save_memory_routed_to_executememorytool"
+ "source": "stocks_api_cache_stockscachemanager_getcachedstocks",
+ "target": "stocks_api_compress_rebuildabbrevs"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L114",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L95",
"weight": 1.0,
- "source": "prometheus_tools_dispatchtoolcall",
- "target": "tests_test_memory_tools_wiring_test_memory_tool_skipped_without_user"
+ "confidence_score": 1.0,
+ "source": "stocks_api_cache_stockscachemanager_getcachedstocks",
+ "target": "stocks_api_cache_buildcotationdateindex"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_memory_tools_wiring.py",
- "source_location": "L127",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L64",
"weight": 1.0,
- "source": "prometheus_tools_dispatchtoolcall",
- "target": "tests_test_memory_tools_wiring_test_non_memory_tool_not_routed_to_executememorytool"
+ "source": "stocks_api_cache_stockscachemanager_getcachedstocks",
+ "target": "stocks_api_compressor_rebuildabbrevs"
},
{
- "relation": "rationale_for",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L19",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L71",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_tools_rationale_19",
- "target": "prometheus_tools_getdb"
+ "source": "stocks_api_cache_stockscachemanager_getcachedstocks",
+ "target": "stocks_api_cache_stockscachemanager_putcache"
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L90",
+ "source_file": "main/app/stocks_api/cache.py",
+ "source_location": "L33",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_tools_rationale_90",
- "target": "prometheus_tools_get_state"
+ "source": "stocks_api_cache_stockscachemanager_getcachedstocks",
+ "target": "stocks_api_cache_rationale_33"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L154",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L25",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "prometheus_tools_check_cache",
- "target": "prometheus_tools_rationale_154"
+ "source": "main_app_stocks_api_compress_py",
+ "target": "stocks_api_compress_getabbr"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/vector.py",
- "source_location": "L10",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L36",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_vector_py",
- "target": "prometheus_vector_embed"
+ "source": "main_app_stocks_api_compress_py",
+ "target": "stocks_api_compress_getnest"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/vector.py",
- "source_location": "L14",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L46",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_vector_py",
- "target": "prometheus_vector_decodeembeddings"
+ "source": "main_app_stocks_api_compress_py",
+ "target": "stocks_api_compress_rebuildabbrevs"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/vector.py",
- "source_location": "L8",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L51",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_vector_py",
- "target": "prometheus_vector_batchcosinesimilarity"
+ "source": "main_app_stocks_api_compress_py",
+ "target": "stocks_api_compress_walk"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/vector.py",
- "source_location": "L20",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L59",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_vector_py",
- "target": "prometheus_vector_contenthash"
+ "source": "main_app_stocks_api_compress_py",
+ "target": "stocks_api_compress_compactvalue"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/prometheus/vector.py",
- "source_location": "L24",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L80",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_prometheus_vector_py",
- "target": "prometheus_vector_getrelevancescore"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/vector.py",
- "source_location": "L11",
- "weight": 1.0,
- "source": "prometheus_vector_embed",
- "target": "models_loader_getembeddingmodel"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/tools.py",
- "source_location": "L63",
- "weight": 1.0,
- "source": "prometheus_vector_embed",
- "target": "prometheus_tools_executememorytool"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L8",
- "weight": 1.0,
- "source": "prometheus_vector_batchcosinesimilarity",
- "target": "tests_test_vector_utils_testbatchcosinesimilarity_test_empty_matrix"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L14",
- "weight": 1.0,
- "source": "prometheus_vector_batchcosinesimilarity",
- "target": "tests_test_vector_utils_testbatchcosinesimilarity_test_single_row"
+ "source": "main_app_stocks_api_compress_py",
+ "target": "stocks_api_compress_tocolumnar"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L27",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L89",
"weight": 1.0,
- "source": "prometheus_vector_batchcosinesimilarity",
- "target": "tests_test_vector_utils_testbatchcosinesimilarity_test_multiple_rows"
+ "confidence_score": 1.0,
+ "source": "main_app_stocks_api_compress_py",
+ "target": "stocks_api_compress_fixheaders"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L34",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L98",
"weight": 1.0,
- "source": "prometheus_vector_batchcosinesimilarity",
- "target": "tests_test_vector_utils_testbatchcosinesimilarity_test_zero_query"
+ "confidence_score": 1.0,
+ "source": "main_app_stocks_api_compress_py",
+ "target": "stocks_api_compress_compactrow"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L54",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L126",
"weight": 1.0,
- "source": "prometheus_memory_applyupdate",
- "target": "prometheus_vector_contenthash"
+ "confidence_score": 1.0,
+ "source": "main_app_stocks_api_compress_py",
+ "target": "stocks_api_compress_compactcotations"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L40",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L160",
"weight": 1.0,
- "source": "prometheus_vector_contenthash",
- "target": "tests_test_vector_utils_testcontenthash_test_deterministic"
+ "confidence_score": 1.0,
+ "source": "main_app_stocks_api_compress_py",
+ "target": "stocks_api_compress_compressresponse"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L43",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L177",
"weight": 1.0,
- "source": "prometheus_vector_contenthash",
- "target": "tests_test_vector_utils_testcontenthash_test_different_inputs"
+ "confidence_score": 1.0,
+ "source": "stocks_api_compress_compressresponse",
+ "target": "stocks_api_compress_getabbr"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L46",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L29",
"weight": 1.0,
- "source": "prometheus_vector_contenthash",
- "target": "tests_test_vector_utils_testcontenthash_test_hex_format"
+ "source": "stocks_api_compress_getabbr",
+ "target": "stocks_api_util_categorizecolumns"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_relevance_score.py",
- "source_location": "L21",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L30",
"weight": 1.0,
- "source": "prometheus_vector_getrelevancescore",
- "target": "tests_test_relevance_score_testtimedecay_test_just_accessed_has_full_score"
+ "source": "stocks_api_compress_getabbr",
+ "target": "stocks_api_util_generateabbreviations"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_relevance_score.py",
- "source_location": "L26",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L177",
"weight": 1.0,
- "source": "prometheus_vector_getrelevancescore",
- "target": "tests_test_relevance_score_testtimedecay_test_one_day_old"
+ "confidence_score": 1.0,
+ "source": "stocks_api_compress_compressresponse",
+ "target": "stocks_api_compress_getnest"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_relevance_score.py",
- "source_location": "L31",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L40",
"weight": 1.0,
- "source": "prometheus_vector_getrelevancescore",
- "target": "tests_test_relevance_score_testtimedecay_test_seven_days_old"
+ "source": "stocks_api_compress_getnest",
+ "target": "stocks_api_util_detectnestedfields"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_relevance_score.py",
- "source_location": "L36",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L69",
"weight": 1.0,
- "source": "prometheus_vector_getrelevancescore",
- "target": "tests_test_relevance_score_testtimedecay_test_thirty_days_old"
+ "source": "controller_stocksapi_controller_listfields",
+ "target": "stocks_api_compress_getnest"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_relevance_score.py",
- "source_location": "L41",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L179",
"weight": 1.0,
- "source": "prometheus_vector_getrelevancescore",
- "target": "tests_test_relevance_score_testtimedecay_test_ninety_days_old"
+ "confidence_score": 1.0,
+ "source": "stocks_api_compress_compressresponse",
+ "target": "stocks_api_compress_walk"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_relevance_score.py",
- "source_location": "L46",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L147",
"weight": 1.0,
- "source": "prometheus_vector_getrelevancescore",
- "target": "tests_test_relevance_score_testtimedecay_test_one_year_old"
+ "confidence_score": 1.0,
+ "source": "stocks_api_compress_compactcotations",
+ "target": "stocks_api_compress_compactvalue"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_relevance_score.py",
- "source_location": "L52",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L181",
"weight": 1.0,
- "source": "prometheus_vector_getrelevancescore",
- "target": "tests_test_relevance_score_testtimedecay_test_score_always_positive"
+ "confidence_score": 1.0,
+ "source": "stocks_api_compress_compressresponse",
+ "target": "stocks_api_compress_tocolumnar"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_relevance_score.py",
- "source_location": "L61",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L84",
"weight": 1.0,
- "source": "prometheus_vector_getrelevancescore",
- "target": "tests_test_relevance_score_testbasescoreimpact_test_high_base_beats_low_base_same_age"
+ "source": "stocks_api_compress_tocolumnar",
+ "target": "utils_roles_all"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_relevance_score.py",
- "source_location": "L69",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L185",
"weight": 1.0,
- "source": "prometheus_vector_getrelevancescore",
- "target": "tests_test_relevance_score_testbasescoreimpact_test_frequently_used_survives_longer"
+ "confidence_score": 1.0,
+ "source": "stocks_api_compress_compressresponse",
+ "target": "stocks_api_compress_fixheaders"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_relevance_score.py",
- "source_location": "L75",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L178",
"weight": 1.0,
- "source": "prometheus_vector_getrelevancescore",
- "target": "tests_test_relevance_score_testbasescoreimpact_test_rare_old_loses_to_popular_new"
+ "confidence_score": 1.0,
+ "source": "stocks_api_compress_compressresponse",
+ "target": "stocks_api_compress_compactrow"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_relevance_score.py",
- "source_location": "L79",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L116",
"weight": 1.0,
- "source": "prometheus_vector_getrelevancescore",
- "target": "tests_test_relevance_score_testbasescoreimpact_test_score_capped_at_one"
+ "source": "stocks_api_compress_compactrow",
+ "target": "stocks_api_response_cache_responsecache_set"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_relevance_score.py",
- "source_location": "L87",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/compress.py",
+ "source_location": "L169",
"weight": 1.0,
- "source": "prometheus_vector_getrelevancescore",
- "target": "tests_test_relevance_score_testbasescoreimpact_test_equal_age_higher_base_wins"
+ "confidence_score": 1.0,
+ "source": "stocks_api_compress_compressresponse",
+ "target": "stocks_api_compress_compactcotations"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_relevance_score.py",
- "source_location": "L95",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L140",
"weight": 1.0,
- "source": "prometheus_vector_getrelevancescore",
- "target": "tests_test_relevance_score_testdecaymonotonicity_test_older_always_lower_score"
+ "source": "controller_stocksapi_controller_gethistorical",
+ "target": "stocks_api_compress_compressresponse"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_relevance_score.py",
- "source_location": "L102",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L215",
"weight": 1.0,
- "source": "prometheus_vector_getrelevancescore",
- "target": "tests_test_relevance_score_testdecaymonotonicity_test_never_accessed_uses_full_base"
+ "source": "controller_stocksapi_controller_getfundamental",
+ "target": "stocks_api_compress_compressresponse"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_relevance_score.py",
- "source_location": "L110",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L275",
"weight": 1.0,
- "source": "prometheus_vector_getrelevancescore",
- "target": "tests_test_relevance_score_testnocronneeded_test_same_memory_same_time_same_score"
+ "source": "controller_stocksapi_controller_getcotations",
+ "target": "stocks_api_compress_compressresponse"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_relevance_score.py",
- "source_location": "L117",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L318",
"weight": 1.0,
- "source": "prometheus_vector_getrelevancescore",
- "target": "tests_test_relevance_score_testnocronneeded_test_different_times_different_scores"
+ "source": "controller_stocksapi_controller_getlivecotation",
+ "target": "stocks_api_compress_compressresponse"
},
{
"relation": "imports_from",
"context": "import",
"confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L20",
+ "source_file": "main/app/stocks_api/key.py",
+ "source_location": "L3",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_scraper_b3_scraper_py",
- "target": "main_app_scraper_b3_xango_py"
+ "source": "main_app_stocks_api_key_py",
+ "target": "fastapi"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L32",
+ "source_file": "main/app/stocks_api/key.py",
+ "source_location": "L16",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_scraper_b3_scraper_py",
- "target": "scraper_b3_scraper_getcurrentselic"
+ "source": "main_app_stocks_api_key_py",
+ "target": "stocks_api_key_hashkey"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L31",
+ "source_file": "main/app/stocks_api/key.py",
+ "source_location": "L14",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_scraper_b3_scraper_py",
- "target": "scraper_b3_scraper_b3scraper"
+ "source": "main_app_stocks_api_key_py",
+ "target": "stocks_api_key_verifyapikey"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L51",
+ "source_file": "main/app/stocks_api/key.py",
+ "source_location": "L44",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_scraper_b3_scraper_py",
- "target": "scraper_b3_scraper_getinitialdata"
+ "source": "main_app_stocks_api_key_py",
+ "target": "stocks_api_key_generatesecurekey"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L106",
+ "source_file": "main/app/stocks_api/key.py",
+ "source_location": "L47",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_scraper_b3_scraper_py",
- "target": "scraper_b3_scraper_historicalrentability"
+ "source": "main_app_stocks_api_key_py",
+ "target": "stocks_api_key_createkey"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L129",
+ "source_file": "main/app/stocks_api/key.py",
+ "source_location": "L22",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_scraper_b3_scraper_py",
- "target": "scraper_b3_scraper_historicaldividends"
+ "source": "main_app_stocks_api_key_py",
+ "target": "stocks_api_key_isquotaexceeded"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L160",
+ "source_file": "main/app/stocks_api/key.py",
+ "source_location": "L26",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_scraper_b3_scraper_py",
- "target": "scraper_b3_scraper_historicaldividendyields"
+ "source": "main_app_stocks_api_key_py",
+ "target": "stocks_api_key_needsreset"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L188",
+ "source_file": "main/app/stocks_api/key.py",
+ "source_location": "L37",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_scraper_b3_scraper_py",
- "target": "scraper_b3_scraper_historicalrevenue"
+ "source": "main_app_stocks_api_key_py",
+ "target": "stocks_api_key_resetquota"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L209",
+ "source_file": "main/app/stocks_api/key.py",
+ "source_location": "L42",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_scraper_b3_scraper_py",
- "target": "scraper_b3_scraper_historicalcotationprofits"
+ "source": "main_app_stocks_api_key_py",
+ "target": "stocks_api_key_incrementusage"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L235",
+ "source_file": "main/app/stocks_api/key.py",
+ "source_location": "L46",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_scraper_b3_scraper_py",
- "target": "scraper_b3_scraper_historicalcotations"
+ "source": "main_app_stocks_api_key_py",
+ "target": "stocks_api_key_getremainingquota"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L252",
+ "source_file": "main/app/stocks_api/key.py",
+ "source_location": "L50",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_scraper_b3_scraper_py",
- "target": "scraper_b3_scraper_tagalong"
+ "source": "main_app_stocks_api_key_py",
+ "target": "stocks_api_key_keytodict"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L276",
+ "source_file": "main/app/stocks_api/key.py",
+ "source_location": "L16",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_scraper_b3_scraper_py",
- "target": "scraper_b3_scraper_stocknews"
+ "source": "main_app_stocks_api_key_py",
+ "target": "stocks_api_key_hash_key"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L51",
+ "source_file": "main/app/stocks_api/key.py",
+ "source_location": "L27",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "scraper_b3_scraper_getcurrentselic",
- "target": "scraper_b3_scraper_b3scraper_init"
+ "source": "stocks_api_key_hashkey",
+ "target": "stocks_api_key_verifyapikey"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L32",
+ "source_file": "main/app/stocks_api/key.py",
+ "source_location": "L61",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "scraper_b3_scraper_b3scraper",
- "target": "scraper_b3_scraper_b3scraper_init"
+ "source": "stocks_api_key_hashkey",
+ "target": "stocks_api_key_createkey"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L222",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L35",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "scraper_b3_scraper_b3scraper",
- "target": "scraper_b3_scraper_b3scraper_historicalcotationprofits_oceans14"
+ "source": "stocks_api_key_hashkey",
+ "target": "tests_test_api_key_quota_atomic_samplekeydata"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L289",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L56",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "scraper_b3_scraper_b3scraper",
- "target": "scraper_b3_scraper_b3scraper_fundamentalindicators"
+ "source": "stocks_api_key_hashkey",
+ "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_normal_quota_check_works"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L438",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L79",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "scraper_b3_scraper_b3scraper",
- "target": "scraper_b3_scraper_b3scraper_processticker"
+ "source": "stocks_api_key_hashkey",
+ "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_atomic_increment_prevents_overuse"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L469",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L121",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "scraper_b3_scraper_b3scraper",
- "target": "scraper_b3_scraper_b3scraper_scrapestocks"
+ "source": "stocks_api_key_hashkey",
+ "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_concurrent_requests_serialized_at_db_level"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L519",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L154",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "scraper_b3_scraper_b3scraper",
- "target": "scraper_b3_scraper_b3scraper_reordercolumns"
+ "source": "stocks_api_key_hashkey",
+ "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_request_at_exact_quota_limit"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L529",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L224",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "scraper_b3_scraper_b3scraper",
- "target": "scraper_b3_scraper_b3scraper_serializecomplextypes"
+ "source": "stocks_api_key_hashkey",
+ "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_increment_from_zero"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L550",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L392",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "scraper_b3_scraper_b3scraper",
- "target": "scraper_b3_scraper_b3scraper_exportjson"
+ "source": "stocks_api_key_hashkey",
+ "target": "tests_test_stocks_api_coverage_test_create_key_existing_user_updates"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L586",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L247",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "scraper_b3_scraper_b3scraper",
- "target": "scraper_b3_scraper_b3scraper_exportmysql"
+ "source": "stocks_api_key_verifyapikey",
+ "target": "tests_test_api_key_quota_atomic_testverifyapikeyintegration_test_verify_api_key_success"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "main/service/scraper_service.py",
- "source_location": "L8",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "scraper_b3_scraper_b3scraper",
- "target": "service_scraper_service_scraperservice"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L263",
+ "weight": 1.0,
+ "source": "stocks_api_key_verifyapikey",
+ "target": "tests_test_api_key_quota_atomic_testverifyapikeyintegration_test_verify_api_key_quota_exceeded"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/service/scraper_service.py",
- "source_location": "L18",
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L274",
"weight": 1.0,
- "source": "scraper_b3_scraper_b3scraper",
- "target": "service_scraper_service_runscraper"
+ "source": "stocks_api_key_verifyapikey",
+ "target": "tests_test_api_key_quota_atomic_testverifyapikeyintegration_test_verify_api_key_invalid"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L470",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L285",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "scraper_b3_scraper_getinitialdata",
- "target": "scraper_b3_scraper_b3scraper_scrapestocks"
+ "source": "stocks_api_key_verifyapikey",
+ "target": "tests_test_api_key_quota_atomic_testverifyapikeyintegration_test_verify_api_key_missing"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L461",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L295",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "scraper_b3_scraper_b3scraper_fundamentalindicators",
- "target": "scraper_b3_scraper_b3scraper_processticker"
+ "source": "stocks_api_key_verifyapikey",
+ "target": "tests_test_api_key_quota_atomic_testverifyapikeyintegration_test_verify_api_key_disabled"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L239",
+ "weight": 1.0,
+ "source": "stocks_api_key_verifyapikey",
+ "target": "tests_test_stocks_api_coverage_test_verify_api_key_disabled_returns_none"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L252",
+ "weight": 1.0,
+ "source": "stocks_api_key_verifyapikey",
+ "target": "tests_test_stocks_api_coverage_test_verify_api_key_missing_raises_401"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L266",
+ "weight": 1.0,
+ "source": "stocks_api_key_verifyapikey",
+ "target": "tests_test_stocks_api_coverage_test_verify_api_key_invalid_key_raises_401"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L392",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L282",
"weight": 1.0,
- "source": "scraper_b3_scraper_b3scraper_fundamentalindicators",
- "target": "scraper_b3_xango_calculateinvestingscore"
+ "source": "stocks_api_key_verifyapikey",
+ "target": "tests_test_stocks_api_coverage_test_verify_api_key_quota_exceeded"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L477",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L296",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "scraper_b3_scraper_b3scraper_processticker",
- "target": "scraper_b3_scraper_b3scraper_scrapestocks"
+ "source": "stocks_api_key_verifyapikey",
+ "target": "tests_test_stocks_api_coverage_test_verify_api_key_success"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L513",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L314",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "scraper_b3_scraper_b3scraper_scrapestocks",
- "target": "scraper_b3_scraper_b3scraper_reordercolumns"
+ "source": "stocks_api_key_verifyapikey",
+ "target": "tests_test_stocks_api_coverage_test_verify_api_key_http_exception_rollback"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L514",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L329",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "scraper_b3_scraper_b3scraper_scrapestocks",
- "target": "scraper_b3_scraper_b3scraper_serializecomplextypes"
+ "source": "stocks_api_key_verifyapikey",
+ "target": "tests_test_stocks_api_coverage_test_verify_api_key_generic_exception_rollback"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L516",
+ "source_file": "main/app/stocks_api/key.py",
+ "source_location": "L28",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "scraper_b3_scraper_b3scraper_scrapestocks",
- "target": "scraper_b3_scraper_b3scraper_exportjson"
+ "source": "stocks_api_key_verifyapikey",
+ "target": "stocks_api_key_hash_key"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "imports_from",
+ "context": "import",
"confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/scraper.py",
- "source_location": "L517",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L2",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "scraper_b3_scraper_b3scraper_scrapestocks",
- "target": "scraper_b3_scraper_b3scraper_exportmysql"
+ "source": "main_app_stocks_api_query_py",
+ "target": "fastapi"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/scraper_b3/xango.py",
- "source_location": "L14",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L16",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_scraper_b3_xango_py",
- "target": "scraper_b3_xango_calculateinvestingscore"
+ "source": "main_app_stocks_api_query_py",
+ "target": "stocks_api_query_sanitizenanvalues"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L22",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L49",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_cache_py",
- "target": "stocks_api_cache_optimizedtypes"
+ "source": "main_app_stocks_api_query_py",
+ "target": "stocks_api_query_filtercotationcolumn"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L58",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L14",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_cache_py",
- "target": "stocks_api_cache_arrowtypefor"
+ "source": "main_app_stocks_api_query_py",
+ "target": "stocks_api_query_stocksquerymanager"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L50",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L40",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_cache_py",
- "target": "stocks_api_cache_buildfeathercache"
+ "source": "main_app_stocks_api_query_py",
+ "target": "stocks_api_query_parsecotationdates"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L90",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L49",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_cache_py",
- "target": "stocks_api_cache_trybuildlock"
+ "source": "main_app_stocks_api_query_py",
+ "target": "stocks_api_query_filtercotationdata"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L170",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L45",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_cache_py",
- "target": "stocks_api_cache_sortcacheframe"
+ "source": "main_app_stocks_api_query_py",
+ "target": "stocks_api_query_parsecotationdate"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L190",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L55",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_cache_py",
- "target": "stocks_api_cache_buildtickerindex"
+ "source": "main_app_stocks_api_query_py",
+ "target": "stocks_api_query_filtercotationbydate"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L12",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L93",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_cache_py",
- "target": "stocks_api_cache_stockscachemanager"
+ "source": "stocks_api_query_stocksquerymanager_deserializejsoncolumns",
+ "target": "stocks_api_query_sanitizenanvalues"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L38",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L153",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_cache_py",
- "target": "stocks_api_cache_buildcotationdateindex"
+ "source": "stocks_api_query_sanitizenanvalues",
+ "target": "stocks_api_query_stocksquerymanager_queryhistorical"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L71",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L225",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_cache_buildfeathercache",
- "target": "stocks_api_cache_optimizedtypes"
+ "source": "stocks_api_query_sanitizenanvalues",
+ "target": "stocks_api_query_stocksquerymanager_queryfundamental"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L89",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L336",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_cache_optimizedtypes",
- "target": "stocks_api_cache_stockscachemanager_getcachedstocks"
+ "source": "stocks_api_query_sanitizenanvalues",
+ "target": "stocks_api_query_stocksquerymanager_querycotations"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L124",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L326",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_cache_buildfeathercache",
- "target": "stocks_api_cache_arrowtypefor"
+ "source": "stocks_api_query_filtercotationcolumn",
+ "target": "stocks_api_query_stocksquerymanager_querycotations"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L59",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1421",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "stocks_api_cache_rationale_59",
- "target": "stocks_api_cache_arrowtypefor"
+ "source": "stocks_api_query_filtercotationcolumn",
+ "target": "tests_test_stocks_api_coverage_testquerylivecotation_test_cotations_filter_cotation_column_filters_by_date"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L157",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1440",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "stocks_api_cache_stockscachemanager_getcachedstocks",
- "target": "stocks_api_cache_trybuildlock"
+ "source": "stocks_api_query_filtercotationcolumn",
+ "target": "tests_test_stocks_api_coverage_testquerylivecotation_test_cotations_filter_cotation_column_range"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L91",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1449",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "stocks_api_cache_rationale_91",
- "target": "stocks_api_cache_trybuildlock"
+ "source": "stocks_api_query_filtercotationcolumn",
+ "target": "tests_test_stocks_api_coverage_testquerylivecotation_test_cotations_filter_cotation_column_handles_non_list"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1240",
+ "weight": 1.0,
+ "source": "stocks_api_query_filtercotationcolumn",
+ "target": "tests_test_stocks_api_coverage_testquerycotations_test_cotations_filter_cotation_column_filters_by_date"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1253",
+ "weight": 1.0,
+ "source": "stocks_api_query_filtercotationcolumn",
+ "target": "tests_test_stocks_api_coverage_testquerycotations_test_cotations_filter_cotation_column_range"
},
{
"relation": "calls",
"context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1262",
+ "weight": 1.0,
+ "source": "stocks_api_query_filtercotationcolumn",
+ "target": "tests_test_stocks_api_coverage_testquerycotations_test_cotations_filter_cotation_column_handles_non_list"
+ },
+ {
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L239",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L15",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_cache_stockscachemanager_loadfromfeather",
- "target": "stocks_api_cache_sortcacheframe"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "stocks_api_query_stocksquerymanager_init"
},
{
- "relation": "rationale_for",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L171",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L23",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_cache_rationale_171",
- "target": "stocks_api_cache_sortcacheframe"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "stocks_api_query_stocksquerymanager_deserializejsoncolumns"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L240",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L52",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_cache_stockscachemanager_loadfromfeather",
- "target": "stocks_api_cache_buildtickerindex"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "stocks_api_query_stocksquerymanager_filterbysearchterms"
},
{
- "relation": "rationale_for",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L191",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L61",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_cache_rationale_191",
- "target": "stocks_api_cache_buildtickerindex"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "stocks_api_query_stocksquerymanager_queryhistorical"
},
{
"relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L13",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L126",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "stocks_api_cache_stockscachemanager_init"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "stocks_api_query_stocksquerymanager_queryfundamental"
},
{
"relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L18",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L278",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "stocks_api_cache_stockscachemanager_cachescheduler"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "stocks_api_query_stocksquerymanager_querycotations"
},
{
"relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L101",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L348",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "stocks_api_cache_stockscachemanager_loadfromfeather"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "stocks_api_query_stocksquerymanager_querylivecotation"
},
{
"relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L28",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L110",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "stocks_api_cache_stockscachemanager_getcachedstocks"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "stocks_api_query_stocksquerymanager_executequery"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L724",
+ "source_location": "L729",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
+ "source": "stocks_api_query_stocksquerymanager",
"target": "tests_test_stocks_api_coverage_teststockscachemanager"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L724",
+ "source_location": "L729",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
+ "source": "stocks_api_query_stocksquerymanager",
"target": "tests_test_stocks_api_coverage_testverifyapikey"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L724",
+ "source_location": "L729",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
+ "source": "stocks_api_query_stocksquerymanager",
"target": "tests_test_stocks_api_coverage_testgeneratesecurekey"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L724",
+ "source_location": "L729",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
+ "source": "stocks_api_query_stocksquerymanager",
"target": "tests_test_stocks_api_coverage_testcreatekey"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L724",
+ "source_location": "L729",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
+ "source": "stocks_api_query_stocksquerymanager",
"target": "tests_test_stocks_api_coverage_testdeserializejsoncolumns"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L724",
+ "source_location": "L729",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
+ "source": "stocks_api_query_stocksquerymanager",
"target": "tests_test_stocks_api_coverage_testfilterbysearchterms"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L724",
+ "source_location": "L729",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
+ "source": "stocks_api_query_stocksquerymanager",
"target": "tests_test_stocks_api_coverage_testqueryhistorical"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L724",
+ "source_location": "L729",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
+ "source": "stocks_api_query_stocksquerymanager",
"target": "tests_test_stocks_api_coverage_testqueryfundamental"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L988",
+ "source_location": "L989",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
+ "source": "stocks_api_query_stocksquerymanager",
"target": "tests_test_stocks_api_coverage_testquerycotations"
},
{
"relation": "uses",
"confidence": "INFERRED",
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1260",
+ "source_location": "L1261",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
+ "source": "stocks_api_query_stocksquerymanager",
"target": "tests_test_stocks_api_coverage_testquerylivecotation"
},
{
@@ -61529,10 +67161,10 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L50",
+ "source_location": "L419",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_api_coverage_teststockscachemanager_make_manager"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_api_coverage_testdeserializejsoncolumns_make_manager"
},
{
"relation": "calls",
@@ -61540,12954 +67172,12879 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L58",
+ "source_location": "L530",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_api_coverage_test_cache_scheduler_starts_apscheduler"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_api_coverage_testfilterbysearchterms_make_manager"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L78",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L587",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "stocks_api_cache_stockscachemanager_putcache"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_api_coverage_testqueryhistorical_make_manager"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L731",
+ "weight": 1.0,
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_api_coverage_testqueryfundamental_make_manager"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1017",
+ "weight": 1.0,
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_api_coverage_testqueryfundamental_test_fundamental_does_not_mutate_cache_time_dtype"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L994",
+ "weight": 1.0,
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_api_coverage_testquerycotations_make_manager"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1266",
+ "weight": 1.0,
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_api_coverage_testquerylivecotation_make_manager"
},
{
"relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L71",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L344",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "stocks_api_cache_stockscachemanager_clearquerycache"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "stocks_api_query_stocksquerymanager_queryrealtimecotation"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L12",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L157",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "stocks_api_query_stocksquerymanager"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_cache_testtickerindex"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_cache.py",
- "source_location": "L11",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L157",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_cache_testcachelrueviction"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_cache_testquerycaching"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_cache.py",
- "source_location": "L11",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L157",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_cache_testcolumnvalidator"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_cache_testconnectionpool"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_cache.py",
- "source_location": "L11",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L157",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_cache_testcachettllogic"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_cache_testlazydeserialization"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_cache.py",
- "source_location": "L20",
- "weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_cache_testcachelrueviction_make_manager"
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L157",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_cache_testqueryoptimization"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L157",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_cache_testperformancebenchmarks"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L157",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_cache_testfilterbysearchterms"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L157",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_cache_testqueryperformance"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_cache.py",
- "source_location": "L110",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L131",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_cache_testcachettllogic_make_manager"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_cache_testlazydeserialization_test_query_manager_has_deserialize_method"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L58",
+ "source_file": "tests/test_stocks_cache.py",
+ "source_location": "L160",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_api_coverage_test_cache_scheduler_starts_daemon_thread"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_cache_testqueryoptimization_test_query_filter_uses_optimization"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L10",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L157",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testtickerindex"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_optimization_testtickerindex"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L10",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L157",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testquerycaching"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_optimization_testquerycaching"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L10",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L157",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testconnectionpool"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_optimization_testconnectionpool"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L10",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L157",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testlazydeserialization"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_optimization_testlazydeserialization"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L10",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L157",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testqueryoptimization"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_optimization_testqueryoptimization"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L10",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L157",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testperformancebenchmarks"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_optimization_testperformancebenchmarks"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L10",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L157",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testfilterbysearchterms"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_optimization_testfilterbysearchterms"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L10",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L157",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testqueryperformance"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_optimization_testqueryperformance"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L22",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L131",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testtickerindex_test_tickerindex_built_after_cache_load"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_optimization_testlazydeserialization_test_query_manager_has_deserialize_method"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L30",
+ "source_file": "tests/test_stocks_optimization.py",
+ "source_location": "L160",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testtickerindex_test_tickerindex_contains_all_tickers"
+ "source": "stocks_api_query_stocksquerymanager",
+ "target": "tests_test_stocks_optimization_testqueryoptimization_test_query_filter_uses_optimization"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L40",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L113",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testtickerindex_test_tickerindex_case_insensitive"
+ "confidence_score": 1.0,
+ "source": "stocks_api_query_stocksquerymanager_deserializejsoncolumns",
+ "target": "stocks_api_query_stocksquerymanager_queryhistorical"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L49",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L183",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testtickerindex_test_ticker_lookup_returns_valid_index"
+ "confidence_score": 1.0,
+ "source": "stocks_api_query_stocksquerymanager_deserializejsoncolumns",
+ "target": "stocks_api_query_stocksquerymanager_queryfundamental"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L60",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L315",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testtickerindex_test_tickerindex_rebuilt_on_cache_refresh"
+ "confidence_score": 1.0,
+ "source": "stocks_api_query_stocksquerymanager_deserializejsoncolumns",
+ "target": "stocks_api_query_stocksquerymanager_querycotations"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L77",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L153",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testquerycaching_test_cache_manager_has_caches_method"
+ "confidence_score": 1.0,
+ "source": "stocks_api_query_stocksquerymanager_executequery",
+ "target": "stocks_api_query_stocksquerymanager_deserializejsoncolumns"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L85",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L99",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testquerycaching_test_querycache_ttl_configuration"
+ "confidence_score": 1.0,
+ "source": "stocks_api_query_stocksquerymanager_filterbysearchterms",
+ "target": "stocks_api_query_stocksquerymanager_queryhistorical"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L93",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L151",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testquerycaching_test_get_cached_stocks_respects_columns_parameter"
+ "confidence_score": 1.0,
+ "source": "stocks_api_query_stocksquerymanager_filterbysearchterms",
+ "target": "stocks_api_query_stocksquerymanager_queryfundamental"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L142",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L306",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testqueryoptimization_test_all_optimizations_present"
+ "confidence_score": 1.0,
+ "source": "stocks_api_query_stocksquerymanager_filterbysearchterms",
+ "target": "stocks_api_query_stocksquerymanager_querycotations"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L180",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L131",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testperformancebenchmarks_test_tickerindex_lookup_performance"
+ "confidence_score": 1.0,
+ "source": "stocks_api_query_stocksquerymanager_executequery",
+ "target": "stocks_api_query_stocksquerymanager_filterbysearchterms"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L200",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L76",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testperformancebenchmarks_test_prefix_scan_performance"
+ "source": "stocks_api_query_stocksquerymanager_queryhistorical",
+ "target": "stocks_api_util_categorizecolumns"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L220",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L124",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testperformancebenchmarks_test_index_lookup_vs_scan_comparison"
+ "source": "stocks_api_query_stocksquerymanager_queryhistorical",
+ "target": "stocks_api_util_parsedaterange"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L250",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L204",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testperformancebenchmarks_test_querycache_performance"
+ "confidence_score": 1.0,
+ "source": "stocks_api_query_stocksquerymanager_queryhistorical",
+ "target": "stocks_api_query_stocksquerymanager_executequery"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L273",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L137",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testperformancebenchmarks_test_column_projection_performance"
+ "source": "stocks_api_query_stocksquerymanager_queryhistorical",
+ "target": "stocks_api_response_cache_responsecache_set"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L289",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L133",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testperformancebenchmarks_test_cache_initialization_time"
+ "source": "prometheus_state_harnessstate_set",
+ "target": "stocks_api_query_stocksquerymanager_queryhistorical"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L22",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L89",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testtickerindex_test_tickerIndex_built_after_cache_load"
+ "source": "stocks_api_query_stocksquerymanager_queryhistorical",
+ "target": "stocks_api_util_parseyearinput"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L30",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L141",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testtickerindex_test_tickerIndex_contains_all_tickers"
+ "source": "stocks_api_query_stocksquerymanager_queryfundamental",
+ "target": "stocks_api_util_categorizecolumns"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L40",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L197",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testtickerindex_test_tickerIndex_case_insensitive"
+ "source": "stocks_api_query_stocksquerymanager_queryfundamental",
+ "target": "stocks_api_util_parsedaterange"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L60",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L277",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testtickerindex_test_tickerIndex_rebuilt_on_cache_refresh"
+ "confidence_score": 1.0,
+ "source": "stocks_api_query_stocksquerymanager_queryfundamental",
+ "target": "stocks_api_query_stocksquerymanager_executequery"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L85",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L217",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testquerycaching_test_queryCache_ttl_configuration"
+ "source": "stocks_api_query_stocksquerymanager_queryfundamental",
+ "target": "stocks_api_response_cache_responsecache_set"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L180",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L213",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testperformancebenchmarks_test_tickerIndex_lookup_performance"
+ "source": "prometheus_state_harnessstate_set",
+ "target": "stocks_api_query_stocksquerymanager_queryfundamental"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L250",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L318",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_cache_testperformancebenchmarks_test_queryCache_performance"
+ "source": "stocks_api_query_stocksquerymanager_querycotations",
+ "target": "stocks_api_util_parsedaterange"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L10",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testtickerindex"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L306",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "stocks_api_query_stocksquerymanager_querycotations",
+ "target": "stocks_api_query_filtercotationdata"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L10",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testquerycaching"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/query.py",
+ "source_location": "L321",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "stocks_api_query_stocksquerymanager_querycotations",
+ "target": "stocks_api_query_filtercotationbydate"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L10",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testconnectionpool"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/sync_cache.py",
+ "source_location": "L16",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_stocks_api_sync_cache_py",
+ "target": "stocks_api_sync_cache_sync_cache"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L10",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testlazydeserialization"
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L2",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_stocks_api_util_py",
+ "target": "fastapi"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L10",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testqueryoptimization"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L15",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_stocks_api_util_py",
+ "target": "stocks_api_util_dedupabbrev"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L10",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testperformancebenchmarks"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L24",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_stocks_api_util_py",
+ "target": "stocks_api_util_autoabbreviate"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L10",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testfilterbysearchterms"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L45",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_stocks_api_util_py",
+ "target": "stocks_api_util_generateabbreviations"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L10",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testqueryperformance"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L5",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_stocks_api_util_py",
+ "target": "stocks_api_util_categorizecolumns"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L22",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L71",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testtickerindex_test_tickerIndex_built_after_cache_load"
+ "confidence_score": 1.0,
+ "source": "main_app_stocks_api_util_py",
+ "target": "stocks_api_util_parsedate"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L30",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L55",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testtickerindex_test_tickerIndex_contains_all_tickers"
+ "confidence_score": 1.0,
+ "source": "main_app_stocks_api_util_py",
+ "target": "stocks_api_util_parsedaterange"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L94",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_stocks_api_util_py",
+ "target": "stocks_api_util_detectnestedfields"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L27",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_stocks_api_util_py",
+ "target": "stocks_api_util_parse_date"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L33",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_stocks_api_util_py",
+ "target": "stocks_api_util_parsedatestart"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L43",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_stocks_api_util_py",
+ "target": "stocks_api_util_parsedateend"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L29",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_stocks_api_util_py",
+ "target": "stocks_api_util_normalizecolumns"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L21",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_app_stocks_api_util_py",
+ "target": "stocks_api_util_parseyearinput"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L40",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L49",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testtickerindex_test_tickerIndex_case_insensitive"
+ "confidence_score": 1.0,
+ "source": "stocks_api_util_generateabbreviations",
+ "target": "stocks_api_util_dedupabbrev"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L49",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L129",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testtickerindex_test_ticker_lookup_returns_valid_index"
+ "confidence_score": 1.0,
+ "source": "stocks_api_util_detectnestedfields",
+ "target": "stocks_api_util_dedupabbrev"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L60",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L49",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testtickerindex_test_tickerIndex_rebuilt_on_cache_refresh"
+ "confidence_score": 1.0,
+ "source": "stocks_api_util_generateabbreviations",
+ "target": "stocks_api_util_autoabbreviate"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L77",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L129",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testquerycaching_test_cache_manager_has_caches_method"
+ "confidence_score": 1.0,
+ "source": "stocks_api_util_detectnestedfields",
+ "target": "stocks_api_util_autoabbreviate"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L85",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L65",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testquerycaching_test_queryCache_ttl_configuration"
+ "source": "controller_stocksapi_controller_listfields",
+ "target": "stocks_api_util_generateabbreviations"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L93",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L46",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testquerycaching_test_get_cached_stocks_respects_columns_parameter"
+ "source": "stocks_api_util_generateabbreviations",
+ "target": "stocks_api_response_cache_responsecache_set"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L142",
+ "source_file": "main/app/stocks_api/compressor.py",
+ "source_location": "L33",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testqueryoptimization_test_all_optimizations_present"
+ "source": "stocks_api_compressor_getabbr",
+ "target": "stocks_api_util_generateabbreviations"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L180",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L46",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testperformancebenchmarks_test_tickerIndex_lookup_performance"
+ "source": "stocks_api_util_generateabbreviations",
+ "target": "prometheus_state_harnessstate_set"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L200",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L52",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testperformancebenchmarks_test_prefix_scan_performance"
+ "source": "stocks_api_util_categorizecolumns",
+ "target": "controller_stocksapi_controller_listfields"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L220",
+ "source_file": "main/app/stocks_api/compressor.py",
+ "source_location": "L32",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testperformancebenchmarks_test_index_lookup_vs_scan_comparison"
+ "source": "stocks_api_compressor_getabbr",
+ "target": "stocks_api_util_categorizecolumns"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L250",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L11",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testperformancebenchmarks_test_queryCache_performance"
+ "source": "stocks_api_util_categorizecolumns",
+ "target": "tests_test_stocks_api_util_coverage_testcategorizecolumns_test_historical_and_fundamental"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L273",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L20",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testperformancebenchmarks_test_column_projection_performance"
+ "source": "stocks_api_util_categorizecolumns",
+ "target": "tests_test_stocks_api_util_coverage_testcategorizecolumns_test_only_fundamental"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L289",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L26",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager",
- "target": "tests_test_stocks_optimization_testperformancebenchmarks_test_cache_initialization_time"
+ "source": "stocks_api_util_categorizecolumns",
+ "target": "tests_test_stocks_api_util_coverage_testcategorizecolumns_test_reserved_words_excluded"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L223",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L32",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager_cachescheduler",
- "target": "utils_scheduler_registerjob"
+ "source": "stocks_api_util_categorizecolumns",
+ "target": "tests_test_stocks_api_util_coverage_testcategorizecolumns_test_single_year"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L29",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L37",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "stocks_api_cache_stockscachemanager_cachescheduler",
- "target": "stocks_api_cache_stockscachemanager_getcachedstocks"
+ "source": "stocks_api_util_categorizecolumns",
+ "target": "tests_test_stocks_api_util_coverage_testcategorizecolumns_test_no_year_suffix"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L122",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L14",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "stocks_api_cache_stockscachemanager_getcachedstocks",
- "target": "stocks_api_cache_stockscachemanager_loadfromfeather"
+ "source": "stocks_api_util_categorizecolumns",
+ "target": "tests_test_stocks_util_testcategorizecolumns_test_categorize_columns_historical_only"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L115",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L23",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager_loadfromfeather",
- "target": "stocks_api_compress_rebuildabbrevs"
+ "source": "stocks_api_util_categorizecolumns",
+ "target": "tests_test_stocks_util_testcategorizecolumns_test_categorize_columns_fundamental_only"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L91",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L32",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager_getcachedstocks",
- "target": "stocks_api_compress_rebuildabbrevs"
+ "source": "stocks_api_util_categorizecolumns",
+ "target": "tests_test_stocks_util_testcategorizecolumns_test_categorize_columns_mixed"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L95",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L40",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "stocks_api_cache_stockscachemanager_getcachedstocks",
- "target": "stocks_api_cache_buildcotationdateindex"
+ "source": "stocks_api_util_categorizecolumns",
+ "target": "tests_test_stocks_util_testcategorizecolumns_test_categorize_columns_excludes_special"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L64",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L47",
"weight": 1.0,
- "source": "stocks_api_cache_stockscachemanager_getcachedstocks",
- "target": "stocks_api_compressor_rebuildabbrevs"
+ "source": "stocks_api_util_categorizecolumns",
+ "target": "tests_test_stocks_util_testcategorizecolumns_test_categorize_columns_empty"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L71",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "stocks_api_cache_stockscachemanager_getcachedstocks",
- "target": "stocks_api_cache_stockscachemanager_putcache"
- },
- {
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/cache.py",
- "source_location": "L33",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "stocks_api_cache_stockscachemanager_getcachedstocks",
- "target": "stocks_api_cache_rationale_33"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L25",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_stocks_api_compress_py",
- "target": "stocks_api_compress_getabbr"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L36",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_stocks_api_compress_py",
- "target": "stocks_api_compress_getnest"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L46",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_stocks_api_compress_py",
- "target": "stocks_api_compress_rebuildabbrevs"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L51",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_stocks_api_compress_py",
- "target": "stocks_api_compress_walk"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L59",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_stocks_api_compress_py",
- "target": "stocks_api_compress_compactvalue"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L80",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_stocks_api_compress_py",
- "target": "stocks_api_compress_tocolumnar"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L89",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_stocks_api_compress_py",
- "target": "stocks_api_compress_fixheaders"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L98",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L88",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_compress_py",
- "target": "stocks_api_compress_compactrow"
+ "source": "stocks_api_util_parsedaterange",
+ "target": "stocks_api_util_parsedate"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L126",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L44",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_compress_py",
- "target": "stocks_api_compress_compactcotations"
+ "source": "stocks_api_util_parsedaterange",
+ "target": "stocks_api_util_parse_date"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L160",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L60",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_compress_py",
- "target": "stocks_api_compress_compressresponse"
+ "source": "stocks_api_util_parsedatestart",
+ "target": "stocks_api_util_parsedaterange"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L177",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L60",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_compress_compressresponse",
- "target": "stocks_api_compress_getabbr"
+ "source": "stocks_api_util_parsedateend",
+ "target": "stocks_api_util_parsedaterange"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L29",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L45",
"weight": 1.0,
- "source": "stocks_api_compress_getabbr",
- "target": "stocks_api_util_categorizecolumns"
+ "source": "stocks_api_util_parsedaterange",
+ "target": "tests_test_stocks_api_util_coverage_testparsedaterange_test_empty_string"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L30",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L48",
"weight": 1.0,
- "source": "stocks_api_compress_getabbr",
- "target": "stocks_api_util_generateabbreviations"
+ "source": "stocks_api_util_parsedaterange",
+ "target": "tests_test_stocks_api_util_coverage_testparsedaterange_test_none"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L177",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L51",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "stocks_api_compress_compressresponse",
- "target": "stocks_api_compress_getnest"
+ "source": "stocks_api_util_parsedaterange",
+ "target": "tests_test_stocks_api_util_coverage_testparsedaterange_test_single_year"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L40",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L60",
"weight": 1.0,
- "source": "stocks_api_compress_getnest",
- "target": "stocks_api_util_detectnestedfields"
+ "source": "stocks_api_util_parsedaterange",
+ "target": "tests_test_stocks_api_util_coverage_testparsedaterange_test_year_range"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L69",
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L65",
"weight": 1.0,
- "source": "controller_stocksapi_controller_listfields",
- "target": "stocks_api_compress_getnest"
+ "source": "stocks_api_util_parsedaterange",
+ "target": "tests_test_stocks_api_util_coverage_testparsedaterange_test_spaces"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L179",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L71",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "stocks_api_compress_compressresponse",
- "target": "stocks_api_compress_walk"
+ "source": "stocks_api_util_parsedaterange",
+ "target": "tests_test_stocks_api_util_coverage_testparsedaterange_test_three_values_raises"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L147",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L75",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "stocks_api_compress_compactcotations",
- "target": "stocks_api_compress_compactvalue"
+ "source": "stocks_api_util_parsedaterange",
+ "target": "tests_test_stocks_api_util_coverage_testparsedaterange_test_month_start"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L181",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_api_util_coverage.py",
+ "source_location": "L82",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "stocks_api_compress_compressresponse",
- "target": "stocks_api_compress_tocolumnar"
+ "source": "stocks_api_util_parsedaterange",
+ "target": "tests_test_stocks_api_util_coverage_testparsedaterange_test_full_date"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L84",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L55",
"weight": 1.0,
- "source": "stocks_api_compress_tocolumnar",
- "target": "utils_roles_all"
+ "source": "stocks_api_util_parsedaterange",
+ "target": "tests_test_stocks_util_testparsedaterange_test_parse_year_single"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L185",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L64",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "stocks_api_compress_compressresponse",
- "target": "stocks_api_compress_fixheaders"
+ "source": "stocks_api_util_parsedaterange",
+ "target": "tests_test_stocks_util_testparsedaterange_test_parse_year_range"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L178",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L69",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "stocks_api_compress_compressresponse",
- "target": "stocks_api_compress_compactrow"
+ "source": "stocks_api_util_parsedaterange",
+ "target": "tests_test_stocks_util_testparsedaterange_test_parse_year_none"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L116",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L74",
"weight": 1.0,
- "source": "stocks_api_compress_compactrow",
- "target": "stocks_api_response_cache_responsecache_set"
+ "source": "stocks_api_util_parsedaterange",
+ "target": "tests_test_stocks_util_testparsedaterange_test_parse_year_empty_string"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/compress.py",
- "source_location": "L169",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L79",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "stocks_api_compress_compressresponse",
- "target": "stocks_api_compress_compactcotations"
+ "source": "stocks_api_util_parsedaterange",
+ "target": "tests_test_stocks_util_testparsedaterange_test_parse_month"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L140",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L86",
"weight": 1.0,
- "source": "controller_stocksapi_controller_gethistorical",
- "target": "stocks_api_compress_compressresponse"
+ "source": "stocks_api_util_parsedaterange",
+ "target": "tests_test_stocks_util_testparsedaterange_test_parse_full_date"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L215",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L90",
"weight": 1.0,
- "source": "controller_stocksapi_controller_getfundamental",
- "target": "stocks_api_compress_compressresponse"
+ "source": "stocks_api_util_parsedaterange",
+ "target": "tests_test_stocks_util_testparsedaterange_test_parse_two_values"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L275",
+ "source_file": "tests/test_stocks_util.py",
+ "source_location": "L98",
"weight": 1.0,
- "source": "controller_stocksapi_controller_getcotations",
- "target": "stocks_api_compress_compressresponse"
+ "source": "stocks_api_util_parsedaterange",
+ "target": "tests_test_stocks_util_testparsedaterange_test_parse_three_values_raises"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L318",
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L114",
"weight": 1.0,
- "source": "controller_stocksapi_controller_getlivecotation",
- "target": "stocks_api_compress_compressresponse"
+ "source": "stocks_api_util_detectnestedfields",
+ "target": "stocks_api_response_cache_responsecache_set"
},
{
- "relation": "imports_from",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/key.py",
- "source_location": "L3",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/app/stocks_api/compressor.py",
+ "source_location": "L47",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_stocks_api_key_py",
- "target": "fastapi"
+ "source": "stocks_api_compressor_getnest",
+ "target": "stocks_api_util_detectnestedfields"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/key.py",
- "source_location": "L16",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/app/stocks_api/util.py",
+ "source_location": "L114",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_stocks_api_key_py",
- "target": "stocks_api_key_hashkey"
+ "source": "stocks_api_util_detectnestedfields",
+ "target": "prometheus_state_harnessstate_set"
},
{
- "relation": "contains",
+ "relation": "imports_from",
+ "context": "import",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/key.py",
- "source_location": "L14",
+ "source_file": "main/app/user/user.py",
+ "source_location": "L4",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_key_py",
- "target": "stocks_api_key_verifyapikey"
+ "source": "main_app_user_user_py",
+ "target": "fastapi"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/key.py",
- "source_location": "L44",
+ "source_file": "main/app/user/user.py",
+ "source_location": "L9",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_key_py",
- "target": "stocks_api_key_generatesecurekey"
+ "source": "main_app_user_user_py",
+ "target": "user_user_usermanager"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/key.py",
- "source_location": "L47",
+ "source_file": "main/app/user/user.py",
+ "source_location": "L13",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_key_py",
- "target": "stocks_api_key_createkey"
+ "source": "main_app_user_user_py",
+ "target": "user_user_getroleslist"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/key.py",
- "source_location": "L22",
+ "source_file": "main/app/user/user.py",
+ "source_location": "L28",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_key_py",
- "target": "stocks_api_key_isquotaexceeded"
+ "source": "main_app_user_user_py",
+ "target": "user_user_getcurrentuser"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/key.py",
- "source_location": "L26",
+ "source_file": "main/app/user/user.py",
+ "source_location": "L34",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_key_py",
- "target": "stocks_api_key_needsreset"
+ "source": "main_app_user_user_py",
+ "target": "user_user_todict"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/key.py",
- "source_location": "L37",
+ "source_file": "main/app/user/user.py",
+ "source_location": "L19",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_key_py",
- "target": "stocks_api_key_resetquota"
+ "source": "main_app_user_user_py",
+ "target": "user_user_addrole"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/key.py",
- "source_location": "L42",
+ "source_file": "main/app/user/user.py",
+ "source_location": "L28",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_key_py",
- "target": "stocks_api_key_incrementusage"
+ "source": "main_app_user_user_py",
+ "target": "user_user_hasrole"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/key.py",
- "source_location": "L46",
+ "source_file": "main/app/user/user.py",
+ "source_location": "L14",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_key_py",
- "target": "stocks_api_key_getremainingquota"
+ "source": "main_app_user_user_py",
+ "target": "user_user_addroletouser"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/key.py",
- "source_location": "L50",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_stocks_api_key_py",
- "target": "stocks_api_key_keytodict"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/app/user/user.py",
+ "source_location": "L7",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "models_user_user"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/key.py",
- "source_location": "L16",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_stocks_api_key_py",
- "target": "stocks_api_key_hash_key"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/utils/roles.py",
+ "source_location": "L65",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "utils_roles_permission"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/key.py",
- "source_location": "L27",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "stocks_api_key_hashkey",
- "target": "stocks_api_key_verifyapikey"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/utils/roles.py",
+ "source_location": "L65",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "utils_roles_roles"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/key.py",
- "source_location": "L61",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "stocks_api_key_hashkey",
- "target": "stocks_api_key_createkey"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testissecurescheme"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L35",
- "weight": 1.0,
- "source": "stocks_api_key_hashkey",
- "target": "tests_test_api_key_quota_atomic_samplekeydata"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testhealthendpoint"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L56",
- "weight": 1.0,
- "source": "stocks_api_key_hashkey",
- "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_normal_quota_check_works"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testregisterendpoint"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L79",
- "weight": 1.0,
- "source": "stocks_api_key_hashkey",
- "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_atomic_increment_prevents_overuse"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testloginendpoint"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L121",
- "weight": 1.0,
- "source": "stocks_api_key_hashkey",
- "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_concurrent_requests_serialized_at_db_level"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testlogoutendpoint"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L154",
- "weight": 1.0,
- "source": "stocks_api_key_hashkey",
- "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_request_at_exact_quota_limit"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testgooglelogin"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L224",
- "weight": 1.0,
- "source": "stocks_api_key_hashkey",
- "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_increment_from_zero"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testgooglecallback"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L392",
- "weight": 1.0,
- "source": "stocks_api_key_hashkey",
- "target": "tests_test_stocks_api_coverage_test_create_key_existing_user_updates"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testuserhealth"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L247",
- "weight": 1.0,
- "source": "stocks_api_key_verifyapikey",
- "target": "tests_test_api_key_quota_atomic_testverifyapikeyintegration_test_verify_api_key_success"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testgetme"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L263",
- "weight": 1.0,
- "source": "stocks_api_key_verifyapikey",
- "target": "tests_test_api_key_quota_atomic_testverifyapikeyintegration_test_verify_api_key_quota_exceeded"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testupgradeendpoints"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testadminaccess"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testgetsessions"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testgetcurrentsession"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testrevokesession"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testrevokeallsessions"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testprometheushealth"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testprometheusgetsessions"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testprometheuscreatesession"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testprometheusupdatesessiontitle"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testprometheusgethistory"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testprometheusdeletesession"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testprometheuschat"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_teststocksapihealth"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_teststocksapihistorical"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_teststocksapifundamental"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_teststocksapigeneratekey"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testaddroletouser"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testgetcurrentuser"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testhashpasswordempty"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testverifyaccesstoken"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testextracttokenpayloadreraise"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testmanagerinit"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_models.py",
+ "source_location": "L5",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_models_testusermodel"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_models.py",
+ "source_location": "L5",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_models_teststocksapikeymodel"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_models.py",
+ "source_location": "L5",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_models_testprometheussessionmodel"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L274",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1495",
"weight": 1.0,
- "source": "stocks_api_key_verifyapikey",
- "target": "tests_test_api_key_quota_atomic_testverifyapikeyintegration_test_verify_api_key_invalid"
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_testmanagerinit_test_manager_init"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L285",
- "weight": 1.0,
- "source": "stocks_api_key_verifyapikey",
- "target": "tests_test_api_key_quota_atomic_testverifyapikeyintegration_test_verify_api_key_missing"
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L52",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_memory_controller_testmemorycontrollerroutes"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L295",
- "weight": 1.0,
- "source": "stocks_api_key_verifyapikey",
- "target": "tests_test_api_key_quota_atomic_testverifyapikeyintegration_test_verify_api_key_disabled"
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L52",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_memory_controller_testmemoryendpointsintegration"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L239",
- "weight": 1.0,
- "source": "stocks_api_key_verifyapikey",
- "target": "tests_test_stocks_api_coverage_test_verify_api_key_disabled_returns_none"
+ "source_location": "L1160",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_stocks_api_coverage_teststockscachemanager"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L252",
- "weight": 1.0,
- "source": "stocks_api_key_verifyapikey",
- "target": "tests_test_stocks_api_coverage_test_verify_api_key_missing_raises_401"
+ "source_location": "L1160",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_stocks_api_coverage_testverifyapikey"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L266",
- "weight": 1.0,
- "source": "stocks_api_key_verifyapikey",
- "target": "tests_test_stocks_api_coverage_test_verify_api_key_invalid_key_raises_401"
+ "source_location": "L1160",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_stocks_api_coverage_testgeneratesecurekey"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L282",
- "weight": 1.0,
- "source": "stocks_api_key_verifyapikey",
- "target": "tests_test_stocks_api_coverage_test_verify_api_key_quota_exceeded"
+ "source_location": "L1160",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_stocks_api_coverage_testcreatekey"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L296",
- "weight": 1.0,
- "source": "stocks_api_key_verifyapikey",
- "target": "tests_test_stocks_api_coverage_test_verify_api_key_success"
+ "source_location": "L1160",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_stocks_api_coverage_testdeserializejsoncolumns"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L314",
- "weight": 1.0,
- "source": "stocks_api_key_verifyapikey",
- "target": "tests_test_stocks_api_coverage_test_verify_api_key_http_exception_rollback"
+ "source_location": "L1160",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_stocks_api_coverage_testfilterbysearchterms"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
"source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L329",
- "weight": 1.0,
- "source": "stocks_api_key_verifyapikey",
- "target": "tests_test_stocks_api_coverage_test_verify_api_key_generic_exception_rollback"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/key.py",
- "source_location": "L28",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "stocks_api_key_verifyapikey",
- "target": "stocks_api_key_hash_key"
- },
- {
- "relation": "imports_from",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L2",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_stocks_api_query_py",
- "target": "fastapi"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L16",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_stocks_api_query_py",
- "target": "stocks_api_query_sanitizenanvalues"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L49",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_stocks_api_query_py",
- "target": "stocks_api_query_filtercotationcolumn"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L14",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_stocks_api_query_py",
- "target": "stocks_api_query_stocksquerymanager"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L40",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_stocks_api_query_py",
- "target": "stocks_api_query_parsecotationdates"
+ "source_location": "L1160",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_stocks_api_coverage_testqueryhistorical"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L49",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_stocks_api_query_py",
- "target": "stocks_api_query_filtercotationdata"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1160",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_stocks_api_coverage_testqueryfundamental"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L45",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_stocks_api_query_py",
- "target": "stocks_api_query_parsecotationdate"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1160",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_stocks_api_coverage_testquerycotations"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L55",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_app_stocks_api_query_py",
- "target": "stocks_api_query_filtercotationbydate"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1461",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_stocks_api_coverage_testquerylivecotation"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L93",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "stocks_api_query_stocksquerymanager_deserializejsoncolumns",
- "target": "stocks_api_query_sanitizenanvalues"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1493",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "user_user_usermanager",
+ "target": "tests_test_controllers_coverage_teststocksapikeytest"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L153",
+ "source_file": "main/app/user/user.py",
+ "source_location": "L10",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_sanitizenanvalues",
- "target": "stocks_api_query_stocksquerymanager_queryhistorical"
+ "source": "user_user_usermanager",
+ "target": "user_user_usermanager_init"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L225",
+ "source_file": "main/app/user/user.py",
+ "source_location": "L83",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_sanitizenanvalues",
- "target": "stocks_api_query_stocksquerymanager_queryfundamental"
+ "source": "user_user_getroleslist",
+ "target": "user_user_getcurrentuser"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L336",
+ "source_file": "main/app/user/user.py",
+ "source_location": "L39",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_sanitizenanvalues",
- "target": "stocks_api_query_stocksquerymanager_querycotations"
+ "source": "user_user_getroleslist",
+ "target": "user_user_todict"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L326",
+ "source_file": "main/app/user/user.py",
+ "source_location": "L22",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_filtercotationcolumn",
- "target": "stocks_api_query_stocksquerymanager_querycotations"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1421",
- "weight": 1.0,
- "source": "stocks_api_query_filtercotationcolumn",
- "target": "tests_test_stocks_api_coverage_testquerylivecotation_test_cotations_filter_cotation_column_filters_by_date"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1440",
- "weight": 1.0,
- "source": "stocks_api_query_filtercotationcolumn",
- "target": "tests_test_stocks_api_coverage_testquerylivecotation_test_cotations_filter_cotation_column_range"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1449",
- "weight": 1.0,
- "source": "stocks_api_query_filtercotationcolumn",
- "target": "tests_test_stocks_api_coverage_testquerylivecotation_test_cotations_filter_cotation_column_handles_non_list"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1240",
- "weight": 1.0,
- "source": "stocks_api_query_filtercotationcolumn",
- "target": "tests_test_stocks_api_coverage_testquerycotations_test_cotations_filter_cotation_column_filters_by_date"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1253",
- "weight": 1.0,
- "source": "stocks_api_query_filtercotationcolumn",
- "target": "tests_test_stocks_api_coverage_testquerycotations_test_cotations_filter_cotation_column_range"
+ "source": "user_user_getroleslist",
+ "target": "user_user_addrole"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1262",
- "weight": 1.0,
- "source": "stocks_api_query_filtercotationcolumn",
- "target": "tests_test_stocks_api_coverage_testquerycotations_test_cotations_filter_cotation_column_handles_non_list"
- },
- {
- "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L15",
+ "source_file": "main/app/user/user.py",
+ "source_location": "L31",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "stocks_api_query_stocksquerymanager_init"
+ "source": "user_user_getroleslist",
+ "target": "user_user_hasrole"
},
{
- "relation": "method",
+ "relation": "imports_from",
+ "context": "import",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L23",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L6",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "stocks_api_query_stocksquerymanager_deserializejsoncolumns"
+ "source": "main_controller_authentication_controller_py",
+ "target": "fastapi"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L52",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L20",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "stocks_api_query_stocksquerymanager_filterbysearchterms"
+ "source": "main_controller_authentication_controller_py",
+ "target": "controller_authentication_controller_issecurescheme"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L61",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L44",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "stocks_api_query_stocksquerymanager_queryhistorical"
+ "source": "main_controller_authentication_controller_py",
+ "target": "controller_authentication_controller_resolvecookiedomain"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L126",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L32",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "stocks_api_query_stocksquerymanager_queryfundamental"
+ "source": "main_controller_authentication_controller_py",
+ "target": "controller_authentication_controller_issuesessioncookie"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L278",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L24",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "stocks_api_query_stocksquerymanager_querycotations"
+ "source": "main_controller_authentication_controller_py",
+ "target": "controller_authentication_controller_health"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L348",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L29",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "stocks_api_query_stocksquerymanager_querylivecotation"
+ "source": "main_controller_authentication_controller_py",
+ "target": "controller_authentication_controller_register"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L110",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L71",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "stocks_api_query_stocksquerymanager_executequery"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L729",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_api_coverage_teststockscachemanager"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L729",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_api_coverage_testverifyapikey"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L729",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_api_coverage_testgeneratesecurekey"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L729",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_api_coverage_testcreatekey"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L729",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_api_coverage_testdeserializejsoncolumns"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L729",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_api_coverage_testfilterbysearchterms"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L729",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_api_coverage_testqueryhistorical"
+ "source": "main_controller_authentication_controller_py",
+ "target": "controller_authentication_controller_login"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L729",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_api_coverage_testqueryfundamental"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L100",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_authentication_controller_py",
+ "target": "controller_authentication_controller_logout"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L989",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_api_coverage_testquerycotations"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L131",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_authentication_controller_py",
+ "target": "controller_authentication_controller_googlelogin"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1261",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_api_coverage_testquerylivecotation"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L146",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_authentication_controller_py",
+ "target": "controller_authentication_controller_googlecallback"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L419",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L39",
"weight": 1.0,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_api_coverage_testdeserializejsoncolumns_make_manager"
+ "confidence_score": 1.0,
+ "source": "controller_authentication_controller_issecurescheme",
+ "target": "controller_authentication_controller_issuesessioncookie"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L530",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L123",
"weight": 1.0,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_api_coverage_testfilterbysearchterms_make_manager"
+ "confidence_score": 1.0,
+ "source": "controller_authentication_controller_issecurescheme",
+ "target": "controller_authentication_controller_logout"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L587",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L114",
"weight": 1.0,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_api_coverage_testqueryhistorical_make_manager"
+ "source": "controller_authentication_controller_issecurescheme",
+ "target": "tests_test_controllers_coverage_testissecurescheme_test_is_secure_https"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L731",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L121",
"weight": 1.0,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_api_coverage_testqueryfundamental_make_manager"
+ "source": "controller_authentication_controller_issecurescheme",
+ "target": "tests_test_controllers_coverage_testissecurescheme_test_is_secure_http"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1017",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L128",
"weight": 1.0,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_api_coverage_testqueryfundamental_test_fundamental_does_not_mutate_cache_time_dtype"
+ "source": "controller_authentication_controller_issecurescheme",
+ "target": "tests_test_controllers_coverage_testissecurescheme_test_is_secure_no_scheme"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L994",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L49",
"weight": 1.0,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_api_coverage_testquerycotations_make_manager"
+ "confidence_score": 1.0,
+ "source": "controller_authentication_controller_issecurescheme",
+ "target": "controller_authentication_controller_register"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1266",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L87",
"weight": 1.0,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_api_coverage_testquerylivecotation_make_manager"
+ "confidence_score": 1.0,
+ "source": "controller_authentication_controller_issecurescheme",
+ "target": "controller_authentication_controller_login"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L344",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L176",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "stocks_api_query_stocksquerymanager_queryrealtimecotation"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L157",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_cache_testtickerindex"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L157",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_cache_testquerycaching"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L157",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_cache_testconnectionpool"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L157",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_cache_testlazydeserialization"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L157",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_cache_testqueryoptimization"
+ "source": "controller_authentication_controller_issecurescheme",
+ "target": "controller_authentication_controller_googlecallback"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L157",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_cache_testperformancebenchmarks"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L58",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_authentication_controller_issuesessioncookie",
+ "target": "controller_authentication_controller_resolvecookiedomain"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L157",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_cache_testfilterbysearchterms"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L160",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_authentication_controller_logout",
+ "target": "controller_authentication_controller_resolvecookiedomain"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L157",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_cache_testqueryperformance"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L81",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_authentication_controller_issuesessioncookie",
+ "target": "controller_authentication_controller_register"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L131",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L107",
"weight": 1.0,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_cache_testlazydeserialization_test_query_manager_has_deserialize_method"
+ "confidence_score": 1.0,
+ "source": "controller_authentication_controller_issuesessioncookie",
+ "target": "controller_authentication_controller_login"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_cache.py",
- "source_location": "L160",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/authentication_controller.py",
+ "source_location": "L186",
"weight": 1.0,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_cache_testqueryoptimization_test_query_filter_uses_optimization"
+ "confidence_score": 1.0,
+ "source": "controller_authentication_controller_issuesessioncookie",
+ "target": "controller_authentication_controller_googlecallback"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L157",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_optimization_testtickerindex"
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L8",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_prometheus_controller_py",
+ "target": "fastapi"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L157",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_optimization_testquerycaching"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L21",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_prometheus_controller_py",
+ "target": "controller_prometheus_controller_verifysessionownsership"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L157",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_optimization_testconnectionpool"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L19",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_prometheus_controller_py",
+ "target": "controller_prometheus_controller_health"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L157",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_optimization_testlazydeserialization"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L23",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_prometheus_controller_py",
+ "target": "controller_prometheus_controller_getsessions"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L157",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_optimization_testqueryoptimization"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L36",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_prometheus_controller_py",
+ "target": "controller_prometheus_controller_updatesessiontitle"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L157",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_optimization_testperformancebenchmarks"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L50",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_prometheus_controller_py",
+ "target": "controller_prometheus_controller_gethistory"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L157",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_optimization_testfilterbysearchterms"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L67",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_prometheus_controller_py",
+ "target": "controller_prometheus_controller_deletesession"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L157",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_optimization_testqueryperformance"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L130",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_prometheus_controller_py",
+ "target": "controller_prometheus_controller_chat_stream"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L131",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L132",
"weight": 1.0,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_optimization_testlazydeserialization_test_query_manager_has_deserialize_method"
+ "confidence_score": 1.0,
+ "source": "main_controller_prometheus_controller_py",
+ "target": "controller_prometheus_controller_resumechatstream"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_optimization.py",
- "source_location": "L160",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L170",
"weight": 1.0,
- "source": "stocks_api_query_stocksquerymanager",
- "target": "tests_test_stocks_optimization_testqueryoptimization_test_query_filter_uses_optimization"
+ "confidence_score": 1.0,
+ "source": "main_controller_prometheus_controller_py",
+ "target": "controller_prometheus_controller_deleteworkspacefile"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L113",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L183",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_stocksquerymanager_deserializejsoncolumns",
- "target": "stocks_api_query_stocksquerymanager_queryhistorical"
+ "source": "main_controller_prometheus_controller_py",
+ "target": "controller_prometheus_controller_downloadworkspacefile"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L183",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L199",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_stocksquerymanager_deserializejsoncolumns",
- "target": "stocks_api_query_stocksquerymanager_queryfundamental"
+ "source": "main_controller_prometheus_controller_py",
+ "target": "controller_prometheus_controller_listworkspacefiles"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L315",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L145",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_stocksquerymanager_deserializejsoncolumns",
- "target": "stocks_api_query_stocksquerymanager_querycotations"
+ "source": "main_controller_prometheus_controller_py",
+ "target": "controller_prometheus_controller_forward"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L153",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L147",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_stocksquerymanager_executequery",
- "target": "stocks_api_query_stocksquerymanager_deserializejsoncolumns"
+ "source": "main_controller_prometheus_controller_py",
+ "target": "controller_prometheus_controller_uploadworkspacefile"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L99",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L28",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_stocksquerymanager_filterbysearchterms",
- "target": "stocks_api_query_stocksquerymanager_queryhistorical"
+ "source": "main_controller_prometheus_controller_py",
+ "target": "controller_prometheus_controller_createsession"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L151",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L75",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_stocksquerymanager_filterbysearchterms",
- "target": "stocks_api_query_stocksquerymanager_queryfundamental"
+ "source": "main_controller_prometheus_controller_py",
+ "target": "controller_prometheus_controller_chat"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L306",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L163",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_stocksquerymanager_filterbysearchterms",
- "target": "stocks_api_query_stocksquerymanager_querycotations"
+ "source": "main_controller_prometheus_controller_py",
+ "target": "controller_prometheus_controller_getmemories"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L177",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_prometheus_controller_py",
+ "target": "controller_prometheus_controller_creatememory"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L201",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_prometheus_controller_py",
+ "target": "controller_prometheus_controller_deletememory"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L131",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L163",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_stocksquerymanager_executequery",
- "target": "stocks_api_query_stocksquerymanager_filterbysearchterms"
+ "source": "main_controller_prometheus_controller_py",
+ "target": "controller_prometheus_controller_get_memories"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L76",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L177",
"weight": 1.0,
- "source": "stocks_api_query_stocksquerymanager_queryhistorical",
- "target": "stocks_api_util_categorizecolumns"
+ "confidence_score": 1.0,
+ "source": "main_controller_prometheus_controller_py",
+ "target": "controller_prometheus_controller_create_memory"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L124",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L201",
"weight": 1.0,
- "source": "stocks_api_query_stocksquerymanager_queryhistorical",
- "target": "stocks_api_util_parsedaterange"
+ "confidence_score": 1.0,
+ "source": "main_controller_prometheus_controller_py",
+ "target": "controller_prometheus_controller_delete_memory"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L204",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L21",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_stocksquerymanager_queryhistorical",
- "target": "stocks_api_query_stocksquerymanager_executequery"
+ "source": "main_controller_prometheus_controller_py",
+ "target": "controller_prometheus_controller_verify_session_ownership"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L137",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L67",
"weight": 1.0,
- "source": "stocks_api_query_stocksquerymanager_queryhistorical",
- "target": "stocks_api_response_cache_responsecache_set"
+ "confidence_score": 1.0,
+ "source": "controller_prometheus_controller_verifysessionownsership",
+ "target": "controller_prometheus_controller_updatesessiontitle"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L133",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L81",
"weight": 1.0,
- "source": "prometheus_state_harnessstate_set",
- "target": "stocks_api_query_stocksquerymanager_queryhistorical"
+ "confidence_score": 1.0,
+ "source": "controller_prometheus_controller_verifysessionownsership",
+ "target": "controller_prometheus_controller_gethistory"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L89",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L140",
"weight": 1.0,
- "source": "stocks_api_query_stocksquerymanager_queryhistorical",
- "target": "stocks_api_util_parseyearinput"
+ "confidence_score": 1.0,
+ "source": "controller_prometheus_controller_verifysessionownsership",
+ "target": "controller_prometheus_controller_chat_stream"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/stocks_api/query.py",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/prometheus_controller.py",
"source_location": "L141",
"weight": 1.0,
- "source": "stocks_api_query_stocksquerymanager_queryfundamental",
- "target": "stocks_api_util_categorizecolumns"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L197",
- "weight": 1.0,
- "source": "stocks_api_query_stocksquerymanager_queryfundamental",
- "target": "stocks_api_util_parsedaterange"
+ "confidence_score": 1.0,
+ "source": "controller_prometheus_controller_resumechatstream",
+ "target": "controller_prometheus_controller_verifysessionownsership"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L277",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L118",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_stocksquerymanager_queryfundamental",
- "target": "stocks_api_query_stocksquerymanager_executequery"
+ "source": "controller_prometheus_controller_verifysessionownsership",
+ "target": "controller_prometheus_controller_chat"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L217",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L68",
"weight": 1.0,
- "source": "stocks_api_query_stocksquerymanager_queryfundamental",
- "target": "stocks_api_response_cache_responsecache_set"
+ "confidence_score": 1.0,
+ "source": "controller_prometheus_controller_updatesessiontitle",
+ "target": "controller_prometheus_controller_verify_session_ownership"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L213",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L88",
"weight": 1.0,
- "source": "prometheus_state_harnessstate_set",
- "target": "stocks_api_query_stocksquerymanager_queryfundamental"
+ "confidence_score": 1.0,
+ "source": "controller_prometheus_controller_gethistory",
+ "target": "controller_prometheus_controller_chat"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L318",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L82",
"weight": 1.0,
- "source": "stocks_api_query_stocksquerymanager_querycotations",
- "target": "stocks_api_util_parsedaterange"
+ "confidence_score": 1.0,
+ "source": "controller_prometheus_controller_gethistory",
+ "target": "controller_prometheus_controller_verify_session_ownership"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L306",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L128",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_stocksquerymanager_querycotations",
- "target": "stocks_api_query_filtercotationdata"
+ "source": "controller_prometheus_controller_chat_stream",
+ "target": "controller_prometheus_controller_forward"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/query.py",
- "source_location": "L321",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L138",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_query_stocksquerymanager_querycotations",
- "target": "stocks_api_query_filtercotationbydate"
+ "source": "controller_prometheus_controller_createsession",
+ "target": "controller_prometheus_controller_chat_stream"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/sync_cache.py",
- "source_location": "L16",
+ "source_file": "main/controller/prometheus_controller.py",
+ "source_location": "L142",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_sync_cache_py",
- "target": "stocks_api_sync_cache_sync_cache"
+ "source": "controller_prometheus_controller_resumechatstream",
+ "target": "controller_prometheus_controller_forward"
},
{
"relation": "imports_from",
"context": "import",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/util.py",
+ "source_file": "main/controller/stocksapi_controller.py",
"source_location": "L2",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_util_py",
+ "source": "main_controller_stocksapi_controller_py",
"target": "fastapi"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L15",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L23",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_util_py",
- "target": "stocks_api_util_dedupabbrev"
+ "source": "main_controller_stocksapi_controller_py",
+ "target": "controller_stocksapi_controller_jsonbytesresponse"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L24",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L16",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_util_py",
- "target": "stocks_api_util_autoabbreviate"
+ "source": "main_controller_stocksapi_controller_py",
+ "target": "controller_stocksapi_controller_health"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L45",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L25",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_util_py",
- "target": "stocks_api_util_generateabbreviations"
+ "source": "main_controller_stocksapi_controller_py",
+ "target": "controller_stocksapi_controller_listfields"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L5",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L24",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_util_py",
- "target": "stocks_api_util_categorizecolumns"
+ "source": "main_controller_stocksapi_controller_py",
+ "target": "controller_stocksapi_controller_gethistorical"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L71",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L35",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_util_py",
- "target": "stocks_api_util_parsedate"
+ "source": "main_controller_stocksapi_controller_py",
+ "target": "controller_stocksapi_controller_getfundamental"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L55",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L49",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_util_py",
- "target": "stocks_api_util_parsedaterange"
+ "source": "main_controller_stocksapi_controller_py",
+ "target": "controller_stocksapi_controller_getcotations"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L94",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L60",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_util_py",
- "target": "stocks_api_util_detectnestedfields"
+ "source": "main_controller_stocksapi_controller_py",
+ "target": "controller_stocksapi_controller_getlivecotation"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L27",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L46",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_util_py",
- "target": "stocks_api_util_parse_date"
+ "source": "main_controller_stocksapi_controller_py",
+ "target": "controller_stocksapi_controller_generatekey"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L33",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L63",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_util_py",
- "target": "stocks_api_util_parsedatestart"
+ "source": "main_controller_stocksapi_controller_py",
+ "target": "controller_stocksapi_controller_getrealtimecotation"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L43",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L20",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_util_py",
- "target": "stocks_api_util_parsedateend"
+ "source": "main_controller_stocksapi_controller_py",
+ "target": "controller_stocksapi_controller_apikeytest"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L29",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L23",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_util_py",
- "target": "stocks_api_util_normalizecolumns"
+ "source": "controller_stocksapi_controller_jsonbytesresponse",
+ "target": "fastapiresponse"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L21",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L28",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_stocks_api_util_py",
- "target": "stocks_api_util_parseyearinput"
+ "source": "controller_stocksapi_controller_jsonbytesresponse",
+ "target": "controller_stocksapi_controller_jsonbytesresponse_render"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L49",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L24",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_util_generateabbreviations",
- "target": "stocks_api_util_dedupabbrev"
+ "source": "controller_stocksapi_controller_rationale_24",
+ "target": "controller_stocksapi_controller_jsonbytesresponse"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L129",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L47",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_util_detectnestedfields",
- "target": "stocks_api_util_dedupabbrev"
+ "source": "controller_stocksapi_controller_rationale_47",
+ "target": "controller_stocksapi_controller_listfields"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L49",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L36",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_util_generateabbreviations",
- "target": "stocks_api_util_autoabbreviate"
+ "source": "controller_stocksapi_controller_rationale_36",
+ "target": "controller_stocksapi_controller_listfields"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L129",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L40",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_util_detectnestedfields",
- "target": "stocks_api_util_autoabbreviate"
+ "source": "controller_stocksapi_controller_rationale_40",
+ "target": "controller_stocksapi_controller_listfields"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
"source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L65",
- "weight": 1.0,
- "source": "controller_stocksapi_controller_listfields",
- "target": "stocks_api_util_generateabbreviations"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L46",
- "weight": 1.0,
- "source": "stocks_api_util_generateabbreviations",
- "target": "stocks_api_response_cache_responsecache_set"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/stocks_api/compressor.py",
- "source_location": "L33",
- "weight": 1.0,
- "source": "stocks_api_compressor_getabbr",
- "target": "stocks_api_util_generateabbreviations"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L46",
+ "source_location": "L48",
"weight": 1.0,
- "source": "stocks_api_util_generateabbreviations",
- "target": "prometheus_state_harnessstate_set"
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_48",
+ "target": "controller_stocksapi_controller_listfields"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
"source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L52",
+ "source_location": "L49",
"weight": 1.0,
- "source": "stocks_api_util_categorizecolumns",
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_49",
"target": "controller_stocksapi_controller_listfields"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/stocks_api/compressor.py",
- "source_location": "L32",
- "weight": 1.0,
- "source": "stocks_api_compressor_getabbr",
- "target": "stocks_api_util_categorizecolumns"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L11",
- "weight": 1.0,
- "source": "stocks_api_util_categorizecolumns",
- "target": "tests_test_stocks_api_util_coverage_testcategorizecolumns_test_historical_and_fundamental"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L20",
- "weight": 1.0,
- "source": "stocks_api_util_categorizecolumns",
- "target": "tests_test_stocks_api_util_coverage_testcategorizecolumns_test_only_fundamental"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L26",
- "weight": 1.0,
- "source": "stocks_api_util_categorizecolumns",
- "target": "tests_test_stocks_api_util_coverage_testcategorizecolumns_test_reserved_words_excluded"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L32",
- "weight": 1.0,
- "source": "stocks_api_util_categorizecolumns",
- "target": "tests_test_stocks_api_util_coverage_testcategorizecolumns_test_single_year"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L37",
- "weight": 1.0,
- "source": "stocks_api_util_categorizecolumns",
- "target": "tests_test_stocks_api_util_coverage_testcategorizecolumns_test_no_year_suffix"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_util.py",
- "source_location": "L14",
- "weight": 1.0,
- "source": "stocks_api_util_categorizecolumns",
- "target": "tests_test_stocks_util_testcategorizecolumns_test_categorize_columns_historical_only"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_util.py",
- "source_location": "L23",
- "weight": 1.0,
- "source": "stocks_api_util_categorizecolumns",
- "target": "tests_test_stocks_util_testcategorizecolumns_test_categorize_columns_fundamental_only"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_util.py",
- "source_location": "L32",
- "weight": 1.0,
- "source": "stocks_api_util_categorizecolumns",
- "target": "tests_test_stocks_util_testcategorizecolumns_test_categorize_columns_mixed"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_util.py",
- "source_location": "L40",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L30",
"weight": 1.0,
- "source": "stocks_api_util_categorizecolumns",
- "target": "tests_test_stocks_util_testcategorizecolumns_test_categorize_columns_excludes_special"
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_30",
+ "target": "controller_stocksapi_controller_listfields"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_util.py",
- "source_location": "L47",
- "weight": 1.0,
- "source": "stocks_api_util_categorizecolumns",
- "target": "tests_test_stocks_util_testcategorizecolumns_test_categorize_columns_empty"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L88",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L66",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "stocks_api_util_parsedaterange",
- "target": "stocks_api_util_parsedate"
+ "source": "controller_stocksapi_controller_listfields",
+ "target": "stocks_api_compressor_getnest"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L44",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L27",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_util_parsedaterange",
- "target": "stocks_api_util_parse_date"
+ "source": "controller_stocksapi_controller_rationale_27",
+ "target": "controller_stocksapi_controller_listfields"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L60",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L26",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_util_parsedatestart",
- "target": "stocks_api_util_parsedaterange"
+ "source": "controller_stocksapi_controller_listfields",
+ "target": "controller_stocksapi_controller_rationale_26"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L60",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L103",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "stocks_api_util_parsedateend",
- "target": "stocks_api_util_parsedaterange"
+ "source": "controller_stocksapi_controller_rationale_103",
+ "target": "controller_stocksapi_controller_gethistorical"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L45",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L92",
"weight": 1.0,
- "source": "stocks_api_util_parsedaterange",
- "target": "tests_test_stocks_api_util_coverage_testparsedaterange_test_empty_string"
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_92",
+ "target": "controller_stocksapi_controller_gethistorical"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L48",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L96",
"weight": 1.0,
- "source": "stocks_api_util_parsedaterange",
- "target": "tests_test_stocks_api_util_coverage_testparsedaterange_test_none"
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_96",
+ "target": "controller_stocksapi_controller_gethistorical"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L51",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L104",
"weight": 1.0,
- "source": "stocks_api_util_parsedaterange",
- "target": "tests_test_stocks_api_util_coverage_testparsedaterange_test_single_year"
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_104",
+ "target": "controller_stocksapi_controller_gethistorical"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L60",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L105",
"weight": 1.0,
- "source": "stocks_api_util_parsedaterange",
- "target": "tests_test_stocks_api_util_coverage_testparsedaterange_test_year_range"
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_105",
+ "target": "controller_stocksapi_controller_gethistorical"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L65",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L95",
"weight": 1.0,
- "source": "stocks_api_util_parsedaterange",
- "target": "tests_test_stocks_api_util_coverage_testparsedaterange_test_spaces"
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_95",
+ "target": "controller_stocksapi_controller_gethistorical"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L71",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L85",
"weight": 1.0,
- "source": "stocks_api_util_parsedaterange",
- "target": "tests_test_stocks_api_util_coverage_testparsedaterange_test_three_values_raises"
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_85",
+ "target": "controller_stocksapi_controller_gethistorical"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_util_coverage.py",
- "source_location": "L75",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L129",
"weight": 1.0,
- "source": "stocks_api_util_parsedaterange",
- "target": "tests_test_stocks_api_util_coverage_testparsedaterange_test_month_start"
+ "source": "controller_stocksapi_controller_gethistorical",
+ "target": "stocks_api_compressor_compressresponse"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_util_coverage.py",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
"source_location": "L82",
"weight": 1.0,
- "source": "stocks_api_util_parsedaterange",
- "target": "tests_test_stocks_api_util_coverage_testparsedaterange_test_full_date"
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_82",
+ "target": "controller_stocksapi_controller_gethistorical"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_util.py",
- "source_location": "L55",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L66",
"weight": 1.0,
- "source": "stocks_api_util_parsedaterange",
- "target": "tests_test_stocks_util_testparsedaterange_test_parse_year_single"
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_gethistorical",
+ "target": "controller_stocksapi_controller_rationale_66"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_util.py",
- "source_location": "L64",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L65",
"weight": 1.0,
- "source": "stocks_api_util_parsedaterange",
- "target": "tests_test_stocks_util_testparsedaterange_test_parse_year_range"
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_gethistorical",
+ "target": "controller_stocksapi_controller_rationale_65"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_util.py",
- "source_location": "L69",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L168",
"weight": 1.0,
- "source": "stocks_api_util_parsedaterange",
- "target": "tests_test_stocks_util_testparsedaterange_test_parse_year_none"
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_168",
+ "target": "controller_stocksapi_controller_getfundamental"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_util.py",
- "source_location": "L74",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L157",
"weight": 1.0,
- "source": "stocks_api_util_parsedaterange",
- "target": "tests_test_stocks_util_testparsedaterange_test_parse_year_empty_string"
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_157",
+ "target": "controller_stocksapi_controller_getfundamental"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_util.py",
- "source_location": "L79",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L161",
"weight": 1.0,
- "source": "stocks_api_util_parsedaterange",
- "target": "tests_test_stocks_util_testparsedaterange_test_parse_month"
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_161",
+ "target": "controller_stocksapi_controller_getfundamental"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_util.py",
- "source_location": "L86",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L169",
"weight": 1.0,
- "source": "stocks_api_util_parsedaterange",
- "target": "tests_test_stocks_util_testparsedaterange_test_parse_full_date"
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_169",
+ "target": "controller_stocksapi_controller_getfundamental"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_util.py",
- "source_location": "L90",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L167",
"weight": 1.0,
- "source": "stocks_api_util_parsedaterange",
- "target": "tests_test_stocks_util_testparsedaterange_test_parse_two_values"
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_167",
+ "target": "controller_stocksapi_controller_getfundamental"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_util.py",
- "source_location": "L98",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L165",
"weight": 1.0,
- "source": "stocks_api_util_parsedaterange",
- "target": "tests_test_stocks_util_testparsedaterange_test_parse_three_values_raises"
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_165",
+ "target": "controller_stocksapi_controller_getfundamental"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L114",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L155",
"weight": 1.0,
- "source": "stocks_api_util_detectnestedfields",
- "target": "stocks_api_response_cache_responsecache_set"
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_155",
+ "target": "controller_stocksapi_controller_getfundamental"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/app/stocks_api/compressor.py",
- "source_location": "L47",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L196",
"weight": 1.0,
- "source": "stocks_api_compressor_getnest",
- "target": "stocks_api_util_detectnestedfields"
+ "source": "controller_stocksapi_controller_getfundamental",
+ "target": "stocks_api_compressor_compressresponse"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/stocks_api/util.py",
- "source_location": "L114",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L144",
"weight": 1.0,
- "source": "stocks_api_util_detectnestedfields",
- "target": "prometheus_state_harnessstate_set"
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_144",
+ "target": "controller_stocksapi_controller_getfundamental"
},
{
- "relation": "imports_from",
- "context": "import",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/user/user.py",
- "source_location": "L4",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L124",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_user_user_py",
- "target": "fastapi"
+ "source": "controller_stocksapi_controller_getfundamental",
+ "target": "controller_stocksapi_controller_rationale_124"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/user/user.py",
- "source_location": "L9",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L123",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_user_user_py",
- "target": "user_user_usermanager"
+ "source": "controller_stocksapi_controller_getfundamental",
+ "target": "controller_stocksapi_controller_rationale_123"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/user/user.py",
- "source_location": "L13",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L236",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_user_user_py",
- "target": "user_user_getroleslist"
+ "source": "controller_stocksapi_controller_rationale_236",
+ "target": "controller_stocksapi_controller_getcotations"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/user/user.py",
- "source_location": "L28",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L225",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_user_user_py",
- "target": "user_user_getcurrentuser"
+ "source": "controller_stocksapi_controller_rationale_225",
+ "target": "controller_stocksapi_controller_getcotations"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/user/user.py",
- "source_location": "L34",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L229",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_user_user_py",
- "target": "user_user_todict"
+ "source": "controller_stocksapi_controller_rationale_229",
+ "target": "controller_stocksapi_controller_getcotations"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/user/user.py",
- "source_location": "L19",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L237",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_user_user_py",
- "target": "user_user_addrole"
+ "source": "controller_stocksapi_controller_rationale_237",
+ "target": "controller_stocksapi_controller_getcotations"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/user/user.py",
- "source_location": "L28",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L234",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_user_user_py",
- "target": "user_user_hasrole"
+ "source": "controller_stocksapi_controller_rationale_234",
+ "target": "controller_stocksapi_controller_getcotations"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/app/user/user.py",
- "source_location": "L14",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L238",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_app_user_user_py",
- "target": "user_user_addroletouser"
+ "source": "controller_stocksapi_controller_rationale_238",
+ "target": "controller_stocksapi_controller_getcotations"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/user/user.py",
- "source_location": "L7",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "models_user_user"
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L228",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_228",
+ "target": "controller_stocksapi_controller_getcotations"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "main/utils/roles.py",
- "source_location": "L65",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "utils_roles_permission"
+ "confidence_score": 0.8,
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L250",
+ "weight": 1.0,
+ "source": "controller_stocksapi_controller_getcotations",
+ "target": "stocks_api_compressor_compressresponse"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/utils/roles.py",
- "source_location": "L65",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "utils_roles_roles"
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L209",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_209",
+ "target": "controller_stocksapi_controller_getcotations"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testissecurescheme"
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L185",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_getcotations",
+ "target": "controller_stocksapi_controller_rationale_185"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testhealthendpoint"
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L184",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_getcotations",
+ "target": "controller_stocksapi_controller_rationale_184"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testregisterendpoint"
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L290",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_290",
+ "target": "controller_stocksapi_controller_getlivecotation"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testloginendpoint"
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L279",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_279",
+ "target": "controller_stocksapi_controller_getlivecotation"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testlogoutendpoint"
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L283",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_283",
+ "target": "controller_stocksapi_controller_getlivecotation"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testgooglelogin"
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L291",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_291",
+ "target": "controller_stocksapi_controller_getlivecotation"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testgooglecallback"
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L288",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_288",
+ "target": "controller_stocksapi_controller_getlivecotation"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testuserhealth"
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L296",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_296",
+ "target": "controller_stocksapi_controller_getlivecotation"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testgetme"
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L286",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_286",
+ "target": "controller_stocksapi_controller_getlivecotation"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testupgradeendpoints"
+ "confidence_score": 0.8,
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L293",
+ "weight": 1.0,
+ "source": "controller_stocksapi_controller_getlivecotation",
+ "target": "stocks_api_compressor_compressresponse"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testadminaccess"
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L261",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_rationale_261",
+ "target": "controller_stocksapi_controller_getlivecotation"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testgetsessions"
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L233",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_getlivecotation",
+ "target": "controller_stocksapi_controller_rationale_233"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testgetcurrentsession"
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/stocksapi_controller.py",
+ "source_location": "L232",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_stocksapi_controller_getlivecotation",
+ "target": "controller_stocksapi_controller_rationale_232"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testrevokesession"
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/user_controller.py",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_user_controller_py",
+ "target": "fastapi"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testrevokeallsessions"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/user_controller.py",
+ "source_location": "L16",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_user_controller_py",
+ "target": "controller_user_controller_sessiontodict"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testprometheushealth"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/user_controller.py",
+ "source_location": "L15",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_user_controller_py",
+ "target": "controller_user_controller_health"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testprometheusgetsessions"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/user_controller.py",
+ "source_location": "L19",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_user_controller_py",
+ "target": "controller_user_controller_getme"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testprometheuscreatesession"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/user_controller.py",
+ "source_location": "L45",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_user_controller_py",
+ "target": "controller_user_controller_testadminaccess"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testprometheusupdatesessiontitle"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/user_controller.py",
+ "source_location": "L52",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_user_controller_py",
+ "target": "controller_user_controller_getsessions"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testprometheusgethistory"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/user_controller.py",
+ "source_location": "L94",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_user_controller_py",
+ "target": "controller_user_controller_getcurrentsession"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testprometheusdeletesession"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/user_controller.py",
+ "source_location": "L115",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_user_controller_py",
+ "target": "controller_user_controller_revokesession"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testprometheuschat"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/user_controller.py",
+ "source_location": "L135",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_user_controller_py",
+ "target": "controller_user_controller_revokeallsessions"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_teststocksapihealth"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/user_controller.py",
+ "source_location": "L23",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_user_controller_py",
+ "target": "controller_user_controller_upgradetodeveloperstarter"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_teststocksapihistorical"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/user_controller.py",
+ "source_location": "L34",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_controller_user_controller_py",
+ "target": "controller_user_controller_upgradetodeveloperenterprise"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_teststocksapifundamental"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/user_controller.py",
+ "source_location": "L67",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_user_controller_getsessions",
+ "target": "controller_user_controller_sessiontodict"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_teststocksapigeneratekey"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/controller/user_controller.py",
+ "source_location": "L87",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "controller_user_controller_getcurrentsession",
+ "target": "controller_user_controller_sessiontodict"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testaddroletouser"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/models/memory.py",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_models_memory_py",
+ "target": "models_memory_prometheusmemory"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testgetcurrentuser"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/models/memory.py",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_models_memory_py",
+ "target": "models_memory_usermemory"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testhashpasswordempty"
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "main/models/memory.py",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "models_memory_prometheusmemory",
+ "target": "base"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
+ "source_file": "main/models/memory.py",
+ "source_location": "L4",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testverifyaccesstoken"
+ "source": "models_memory_prometheusmemory",
+ "target": "models_types_vectortype"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
+ "source_file": "main/models/memory.py",
+ "source_location": "L5",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testextracttokenpayloadreraise"
+ "source": "models_memory_prometheusmemory",
+ "target": "models_user_user"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
+ "source_file": "main/service/prometheus_service.py",
+ "source_location": "L13",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testmanagerinit"
+ "source": "models_memory_prometheusmemory",
+ "target": "service_prometheus_service_prometheusservice"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_models.py",
- "source_location": "L5",
+ "source_file": "tests/test_memory_dedup.py",
+ "source_location": "L2",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_models_testusermodel"
+ "source": "models_memory_prometheusmemory",
+ "target": "tests_test_memory_dedup_testexactsamekeyupdates"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_models.py",
- "source_location": "L5",
+ "source_file": "tests/test_memory_dedup.py",
+ "source_location": "L2",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_models_teststocksapikeymodel"
+ "source": "models_memory_prometheusmemory",
+ "target": "tests_test_memory_dedup_testsimilarkeymerges"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_models.py",
- "source_location": "L5",
+ "source_file": "tests/test_memory_dedup.py",
+ "source_location": "L2",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_models_testprometheussessionmodel"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1495",
- "weight": 1.0,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_testmanagerinit_test_manager_init"
+ "source": "models_memory_prometheusmemory",
+ "target": "tests_test_memory_dedup_testdifferentkeysnomerge"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L52",
+ "source_file": "tests/test_memory_dedup.py",
+ "source_location": "L2",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_memory_controller_testmemorycontrollerroutes"
+ "source": "models_memory_prometheusmemory",
+ "target": "tests_test_memory_dedup_testmergeboostsscore"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L52",
+ "source_file": "tests/test_memory_dedup.py",
+ "source_location": "L2",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_memory_controller_testmemoryendpointsintegration"
+ "source": "models_memory_prometheusmemory",
+ "target": "tests_test_memory_dedup_testmergeincrementsaccess"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1160",
+ "source_file": "tests/test_memory_dedup.py",
+ "source_location": "L2",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_stocks_api_coverage_teststockscachemanager"
+ "source": "models_memory_prometheusmemory",
+ "target": "tests_test_memory_dedup_testthresholdboundary"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1160",
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L14",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_stocks_api_coverage_testverifyapikey"
+ "source": "models_memory_prometheusmemory",
+ "target": "tests_test_memory_maintenance_testdecay"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1160",
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L14",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_stocks_api_coverage_testgeneratesecurekey"
+ "source": "models_memory_prometheusmemory",
+ "target": "tests_test_memory_maintenance_testarchive"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1160",
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L14",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_stocks_api_coverage_testcreatekey"
+ "source": "models_memory_prometheusmemory",
+ "target": "tests_test_memory_maintenance_testdecayandarchivetogether"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1160",
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L14",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_stocks_api_coverage_testdeserializejsoncolumns"
+ "source": "models_memory_prometheusmemory",
+ "target": "tests_test_memory_maintenance_testemptydatabase"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1160",
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L5",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_stocks_api_coverage_testfilterbysearchterms"
+ "source": "models_memory_prometheusmemory",
+ "target": "tests_test_memory_manager_testgetmemorylimit"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1160",
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L5",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_stocks_api_coverage_testqueryhistorical"
+ "source": "models_memory_prometheusmemory",
+ "target": "tests_test_memory_manager_testupsertmemory"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1160",
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L5",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_stocks_api_coverage_testqueryfundamental"
+ "source": "models_memory_prometheusmemory",
+ "target": "tests_test_memory_manager_testcountmemories"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1160",
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L5",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_stocks_api_coverage_testquerycotations"
+ "source": "models_memory_prometheusmemory",
+ "target": "tests_test_memory_manager_testgetusermemories"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1461",
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L5",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_stocks_api_coverage_testquerylivecotation"
+ "source": "models_memory_prometheusmemory",
+ "target": "tests_test_memory_manager_testdeletememory"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1493",
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L5",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "user_user_usermanager",
- "target": "tests_test_controllers_coverage_teststocksapikeytest"
- },
- {
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "main/app/user/user.py",
- "source_location": "L10",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "user_user_usermanager",
- "target": "user_user_usermanager_init"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/user/user.py",
- "source_location": "L83",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "user_user_getroleslist",
- "target": "user_user_getcurrentuser"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/user/user.py",
- "source_location": "L39",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "user_user_getroleslist",
- "target": "user_user_todict"
+ "source": "models_memory_prometheusmemory",
+ "target": "tests_test_memory_manager_testsearchfulltext"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/app/user/user.py",
- "source_location": "L22",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "user_user_getroleslist",
- "target": "user_user_addrole"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_type_aware_decay.py",
+ "source_location": "L6",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_memory_prometheusmemory",
+ "target": "tests_test_type_aware_decay_testtypeawaredecay"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "main/app/user/user.py",
- "source_location": "L31",
+ "source_file": "main/models/prometheus.py",
+ "source_location": "L5",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "user_user_getroleslist",
- "target": "user_user_hasrole"
+ "source": "base",
+ "target": "models_prometheus_prometheussession"
},
{
- "relation": "imports_from",
- "context": "import",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L6",
+ "source_file": "main/models/sandbox.py",
+ "source_location": "L5",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_controller_authentication_controller_py",
- "target": "fastapi"
+ "source": "base",
+ "target": "models_sandbox_prometheussandbox"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L20",
+ "source_file": "main/models/stocksapi_key.py",
+ "source_location": "L7",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_controller_authentication_controller_py",
- "target": "controller_authentication_controller_issecurescheme"
+ "source": "base",
+ "target": "models_stocksapi_key_stocksapikey"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L44",
+ "source_file": "main/models/user.py",
+ "source_location": "L5",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_controller_authentication_controller_py",
- "target": "controller_authentication_controller_resolvecookiedomain"
+ "source": "base",
+ "target": "models_user_user"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L32",
+ "source_file": "main/models/user_session.py",
+ "source_location": "L5",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_controller_authentication_controller_py",
- "target": "controller_authentication_controller_issuesessioncookie"
+ "source": "base",
+ "target": "models_user_session_usersession"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L24",
+ "source_file": "main/models/memory.py",
+ "source_location": "L7",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_controller_authentication_controller_py",
- "target": "controller_authentication_controller_health"
+ "source": "base",
+ "target": "models_memory_usermemory"
},
{
- "relation": "contains",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L29",
+ "source_file": "main/models/harness.py",
+ "source_location": "L7",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_controller_authentication_controller_py",
- "target": "controller_authentication_controller_register"
+ "source": "base",
+ "target": "models_harness_loopevent"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L71",
+ "source_file": "main/models/prometheus.py",
+ "source_location": "L5",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_controller_authentication_controller_py",
- "target": "controller_authentication_controller_login"
+ "source": "main_models_prometheus_py",
+ "target": "models_prometheus_prometheussession"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L100",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_authentication_controller_py",
- "target": "controller_authentication_controller_logout"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/models/prometheus.py",
+ "source_location": "L4",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_prometheus_prometheussession",
+ "target": "models_user_user"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L131",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_authentication_controller_py",
- "target": "controller_authentication_controller_googlelogin"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_models.py",
+ "source_location": "L4",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_prometheus_prometheussession",
+ "target": "tests_test_models_testusermodel"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L146",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_authentication_controller_py",
- "target": "controller_authentication_controller_googlecallback"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_models.py",
+ "source_location": "L4",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_prometheus_prometheussession",
+ "target": "tests_test_models_teststocksapikeymodel"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L39",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_authentication_controller_issecurescheme",
- "target": "controller_authentication_controller_issuesessioncookie"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_models.py",
+ "source_location": "L4",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_prometheus_prometheussession",
+ "target": "tests_test_models_testprometheussessionmodel"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L123",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_models.py",
+ "source_location": "L168",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_authentication_controller_issecurescheme",
- "target": "controller_authentication_controller_logout"
+ "source": "models_prometheus_prometheussession",
+ "target": "tests_test_models_testprometheussessionmodel_test_create_session"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L114",
+ "source_file": "tests/test_models.py",
+ "source_location": "L177",
"weight": 1.0,
- "source": "controller_authentication_controller_issecurescheme",
- "target": "tests_test_controllers_coverage_testissecurescheme_test_is_secure_https"
+ "source": "models_prometheus_prometheussession",
+ "target": "tests_test_models_testprometheussessionmodel_test_default_history"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L121",
- "weight": 1.0,
- "source": "controller_authentication_controller_issecurescheme",
- "target": "tests_test_controllers_coverage_testissecurescheme_test_is_secure_http"
+ "source_file": "main/app/prometheus/generation.py",
+ "source_location": "L13",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_prometheus_prometheussession",
+ "target": "prometheus_generation_prometheusgenerator"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L128",
- "weight": 1.0,
- "source": "controller_authentication_controller_issecurescheme",
- "target": "tests_test_controllers_coverage_testissecurescheme_test_is_secure_no_scheme"
+ "source_file": "main/app/prometheus/generation.py",
+ "source_location": "L13",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_prometheus_prometheussession",
+ "target": "prometheus_generation_sessionproxy"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L49",
+ "source_file": "main/models/sandbox.py",
+ "source_location": "L5",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_authentication_controller_issecurescheme",
- "target": "controller_authentication_controller_register"
+ "source": "main_models_sandbox_py",
+ "target": "models_sandbox_prometheussandbox"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L87",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_authentication_controller_issecurescheme",
- "target": "controller_authentication_controller_login"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L2",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_sandbox_prometheussandbox",
+ "target": "tests_test_sandbox_persistence_testprometheussandboxmodel"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L176",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_authentication_controller_issecurescheme",
- "target": "controller_authentication_controller_googlecallback"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L3",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_sandbox_prometheussandbox",
+ "target": "tests_test_sandbox_persistence_testsandboxpersistence"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L58",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L7",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_authentication_controller_issuesessioncookie",
- "target": "controller_authentication_controller_resolvecookiedomain"
+ "source": "models_sandbox_prometheussandbox",
+ "target": "tests_test_sandbox_persistence_testprometheussandboxmodel_test_create_sandbox_mapping"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L160",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L19",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_authentication_controller_logout",
- "target": "controller_authentication_controller_resolvecookiedomain"
+ "source": "models_sandbox_prometheussandbox",
+ "target": "tests_test_sandbox_persistence_testprometheussandboxmodel_test_sandbox_has_timestamps"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L81",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L31",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_authentication_controller_issuesessioncookie",
- "target": "controller_authentication_controller_register"
+ "source": "models_sandbox_prometheussandbox",
+ "target": "tests_test_sandbox_persistence_testprometheussandboxmodel_test_one_sandbox_per_user"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L107",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L77",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_authentication_controller_issuesessioncookie",
- "target": "controller_authentication_controller_login"
+ "source": "models_sandbox_prometheussandbox",
+ "target": "tests_test_sandbox_persistence_test_get_or_create_reuses_existing"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/authentication_controller.py",
- "source_location": "L186",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_authentication_controller_issuesessioncookie",
- "target": "controller_authentication_controller_googlecallback"
- },
- {
- "relation": "imports_from",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L8",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "fastapi"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L21",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "controller_prometheus_controller_verifysessionownsership"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L19",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "controller_prometheus_controller_health"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L23",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "controller_prometheus_controller_getsessions"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L36",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "controller_prometheus_controller_updatesessiontitle"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L50",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "controller_prometheus_controller_gethistory"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L67",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "controller_prometheus_controller_deletesession"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L130",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L92",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "controller_prometheus_controller_chat_stream"
+ "source": "models_sandbox_prometheussandbox",
+ "target": "tests_test_sandbox_persistence_test_get_or_create_respawns_when_dead"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L132",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "controller_prometheus_controller_resumechatstream"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L3",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_sandbox_prometheussandbox",
+ "target": "tests_test_sandbox_persistence_testsandboxcleanup"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L170",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L148",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "controller_prometheus_controller_deleteworkspacefile"
+ "source": "models_sandbox_prometheussandbox",
+ "target": "tests_test_sandbox_persistence_test_cleanup_removes_dead_mappings"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L183",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sandbox_persistence.py",
+ "source_location": "L168",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "controller_prometheus_controller_downloadworkspacefile"
+ "source": "models_sandbox_prometheussandbox",
+ "target": "tests_test_sandbox_persistence_test_cleanup_keeps_alive_sandboxes"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L199",
+ "source_file": "main/models/stocksapi_key.py",
+ "source_location": "L7",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "controller_prometheus_controller_listworkspacefiles"
+ "source": "main_models_stocksapi_key_py",
+ "target": "models_stocksapi_key_stocksapikey"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L145",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "controller_prometheus_controller_forward"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/models/stocksapi_key.py",
+ "source_location": "L4",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "models_user_user"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L147",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/app/stocks_api/key.py",
+ "source_location": "L58",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "controller_prometheus_controller_uploadworkspacefile"
+ "source": "stocks_api_key_createkey",
+ "target": "models_stocksapi_key_stocksapikey"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L28",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "controller_prometheus_controller_createsession"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L15",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L75",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "controller_prometheus_controller_chat"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L15",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_api_key_quota_atomic_testverifyapikeyintegration"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L163",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "controller_prometheus_controller_getmemories"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_models.py",
+ "source_location": "L3",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_models_testusermodel"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L177",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "controller_prometheus_controller_creatememory"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_models.py",
+ "source_location": "L3",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_models_teststocksapikeymodel"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L201",
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_models.py",
+ "source_location": "L3",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_models_testprometheussessionmodel"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L43",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "controller_prometheus_controller_deletememory"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_normal_quota_check_works"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L163",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L70",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "controller_prometheus_controller_get_memories"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_atomic_increment_prevents_overuse"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L177",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L111",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "controller_prometheus_controller_create_memory"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_concurrent_requests_serialized_at_db_level"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L201",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L145",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "controller_prometheus_controller_delete_memory"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_request_at_exact_quota_limit"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L21",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L181",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_prometheus_controller_py",
- "target": "controller_prometheus_controller_verify_session_ownership"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_multiple_keys_independent_quotas"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L67",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L216",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_prometheus_controller_verifysessionownsership",
- "target": "controller_prometheus_controller_updatesessiontitle"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_increment_from_zero"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L81",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L240",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_prometheus_controller_verifysessionownsership",
- "target": "controller_prometheus_controller_gethistory"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_api_key_quota_atomic_testverifyapikeyintegration_test_verify_api_key_success"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L140",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_api_key_quota_atomic.py",
+ "source_location": "L255",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_prometheus_controller_verifysessionownsership",
- "target": "controller_prometheus_controller_chat_stream"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_api_key_quota_atomic_testverifyapikeyintegration_test_verify_api_key_quota_exceeded"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L141",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_models.py",
+ "source_location": "L92",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_prometheus_controller_resumechatstream",
- "target": "controller_prometheus_controller_verifysessionownsership"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_models_teststocksapikeymodel_test_create_api_key"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L118",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_models.py",
+ "source_location": "L101",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_prometheus_controller_verifysessionownsership",
- "target": "controller_prometheus_controller_chat"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_models_teststocksapikeymodel_test_is_quota_exceeded_true"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L68",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_models.py",
+ "source_location": "L107",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_prometheus_controller_updatesessiontitle",
- "target": "controller_prometheus_controller_verify_session_ownership"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_models_teststocksapikeymodel_test_is_quota_exceeded_false"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L88",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_models.py",
+ "source_location": "L113",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_prometheus_controller_gethistory",
- "target": "controller_prometheus_controller_chat"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_models_teststocksapikeymodel_test_needs_reset_true_no_last_reset"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L82",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_models.py",
+ "source_location": "L118",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_prometheus_controller_gethistory",
- "target": "controller_prometheus_controller_verify_session_ownership"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_models_teststocksapikeymodel_test_needs_reset_true_expired"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L128",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_models.py",
+ "source_location": "L124",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_prometheus_controller_chat_stream",
- "target": "controller_prometheus_controller_forward"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_models_teststocksapikeymodel_test_needs_reset_false_recent"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L138",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_models.py",
+ "source_location": "L130",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_prometheus_controller_createsession",
- "target": "controller_prometheus_controller_chat_stream"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_models_teststocksapikeymodel_test_reset_quota"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/prometheus_controller.py",
- "source_location": "L142",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_models.py",
+ "source_location": "L138",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_prometheus_controller_resumechatstream",
- "target": "controller_prometheus_controller_forward"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_models_teststocksapikeymodel_test_increment_usage"
},
{
- "relation": "imports_from",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L2",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_models.py",
+ "source_location": "L144",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_stocksapi_controller_py",
- "target": "fastapi"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_models_teststocksapikeymodel_test_get_remaining_quota"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L23",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_models.py",
+ "source_location": "L150",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_stocksapi_controller_py",
- "target": "controller_stocksapi_controller_jsonbytesresponse"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_models_teststocksapikeymodel_test_get_remaining_quota_exceeded"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L16",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_models.py",
+ "source_location": "L156",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_stocksapi_controller_py",
- "target": "controller_stocksapi_controller_health"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "tests_test_models_teststocksapikeymodel_test_toDict"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L25",
+ "source_file": "main/models/stocksapi_key.py",
+ "source_location": "L21",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_controller_stocksapi_controller_py",
- "target": "controller_stocksapi_controller_listfields"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "models_stocksapi_key_stocksapikey_isquotaexceeded"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
+ "source_file": "main/models/stocksapi_key.py",
"source_location": "L24",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_controller_stocksapi_controller_py",
- "target": "controller_stocksapi_controller_gethistorical"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "models_stocksapi_key_stocksapikey_needsreset"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L35",
+ "source_file": "main/models/stocksapi_key.py",
+ "source_location": "L32",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_controller_stocksapi_controller_py",
- "target": "controller_stocksapi_controller_getfundamental"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "models_stocksapi_key_stocksapikey_resetquota"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L49",
+ "source_file": "main/models/stocksapi_key.py",
+ "source_location": "L36",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_controller_stocksapi_controller_py",
- "target": "controller_stocksapi_controller_getcotations"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "models_stocksapi_key_stocksapikey_incrementusage"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L60",
+ "source_file": "main/models/stocksapi_key.py",
+ "source_location": "L39",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_controller_stocksapi_controller_py",
- "target": "controller_stocksapi_controller_getlivecotation"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "models_stocksapi_key_stocksapikey_getremainingquota"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L46",
+ "source_file": "main/models/stocksapi_key.py",
+ "source_location": "L42",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_controller_stocksapi_controller_py",
- "target": "controller_stocksapi_controller_generatekey"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "models_stocksapi_key_stocksapikey_todict"
},
{
- "relation": "contains",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L63",
+ "source_file": "main/models/stocksapi_key.py",
+ "source_location": "L18",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_controller_stocksapi_controller_py",
- "target": "controller_stocksapi_controller_getrealtimecotation"
+ "source": "models_stocksapi_key_stocksapikey",
+ "target": "models_stocksapi_key_stocksapikey_repr"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L20",
+ "source_file": "main/models/types.py",
+ "source_location": "L5",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_controller_stocksapi_controller_py",
- "target": "controller_stocksapi_controller_apikeytest"
+ "source": "main_models_types_py",
+ "target": "models_types_vectortype"
},
{
"relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L23",
+ "source_file": "main/models/types.py",
+ "source_location": "L5",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_stocksapi_controller_jsonbytesresponse",
- "target": "fastapiresponse"
+ "source": "models_types_vectortype",
+ "target": "typedecorator"
},
{
"relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L28",
+ "source_file": "main/models/types.py",
+ "source_location": "L9",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_stocksapi_controller_jsonbytesresponse",
- "target": "controller_stocksapi_controller_jsonbytesresponse_render"
+ "source": "models_types_vectortype",
+ "target": "models_types_vectortype_init"
},
{
- "relation": "rationale_for",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L24",
+ "source_file": "main/models/types.py",
+ "source_location": "L13",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_24",
- "target": "controller_stocksapi_controller_jsonbytesresponse"
+ "source": "models_types_vectortype",
+ "target": "models_types_vectortype_process_bind_param"
},
{
- "relation": "rationale_for",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L47",
+ "source_file": "main/models/types.py",
+ "source_location": "L21",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_47",
- "target": "controller_stocksapi_controller_listfields"
+ "source": "models_types_vectortype",
+ "target": "models_types_vectortype_process_result_value"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L36",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_36",
- "target": "controller_stocksapi_controller_listfields"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_memory_types.py",
+ "source_location": "L3",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_types_vectortype",
+ "target": "tests_test_memory_types_testvectortype"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L40",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_types.py",
+ "source_location": "L9",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_40",
- "target": "controller_stocksapi_controller_listfields"
+ "source": "models_types_vectortype",
+ "target": "tests_test_memory_types_testvectortype_test_roundtrip"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L48",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_types.py",
+ "source_location": "L19",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_48",
- "target": "controller_stocksapi_controller_listfields"
+ "source": "models_types_vectortype",
+ "target": "tests_test_memory_types_testvectortype_test_none_roundtrip"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L49",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_types.py",
+ "source_location": "L25",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_49",
- "target": "controller_stocksapi_controller_listfields"
+ "source": "models_types_vectortype",
+ "target": "tests_test_memory_types_testvectortype_test_wrong_dims_raises"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L30",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_types.py",
+ "source_location": "L31",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_30",
- "target": "controller_stocksapi_controller_listfields"
+ "source": "models_types_vectortype",
+ "target": "tests_test_memory_types_testvectortype_test_preserves_negative_values"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L66",
+ "source_file": "tests/test_memory_types.py",
+ "source_location": "L39",
"weight": 1.0,
- "source": "controller_stocksapi_controller_listfields",
- "target": "stocks_api_compressor_getnest"
+ "source": "models_types_vectortype",
+ "target": "tests_test_memory_types_testvectortype_test_large_random_vector"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L27",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_27",
- "target": "controller_stocksapi_controller_listfields"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/models/memory.py",
+ "source_location": "L4",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_types_vectortype",
+ "target": "models_memory_usermemory"
},
{
- "relation": "rationale_for",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L26",
+ "source_file": "main/models/memory_types.py",
+ "source_location": "L5",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_stocksapi_controller_listfields",
- "target": "controller_stocksapi_controller_rationale_26"
+ "source": "typedecorator",
+ "target": "models_memory_types_vectortype"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L103",
+ "source_file": "main/models/user.py",
+ "source_location": "L5",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_103",
- "target": "controller_stocksapi_controller_gethistorical"
+ "source": "main_models_user_py",
+ "target": "models_user_user"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L92",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_92",
- "target": "controller_stocksapi_controller_gethistorical"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/models/user_session.py",
+ "source_location": "L4",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_user_session_usersession",
+ "target": "models_user_user"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L96",
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_models.py",
+ "source_location": "L2",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_user_user",
+ "target": "tests_test_models_testusermodel"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_models.py",
+ "source_location": "L2",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_user_user",
+ "target": "tests_test_models_teststocksapikeymodel"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_models.py",
+ "source_location": "L2",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_user_user",
+ "target": "tests_test_models_testprometheussessionmodel"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_models.py",
+ "source_location": "L9",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_96",
- "target": "controller_stocksapi_controller_gethistorical"
+ "source": "models_user_user",
+ "target": "tests_test_models_testusermodel_test_create_user"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L104",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_models.py",
+ "source_location": "L19",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_104",
- "target": "controller_stocksapi_controller_gethistorical"
+ "source": "models_user_user",
+ "target": "tests_test_models_testusermodel_test_get_roles_list_default"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L105",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_models.py",
+ "source_location": "L24",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_105",
- "target": "controller_stocksapi_controller_gethistorical"
+ "source": "models_user_user",
+ "target": "tests_test_models_testusermodel_test_get_roles_list_single_role"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L95",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_models.py",
+ "source_location": "L29",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_95",
- "target": "controller_stocksapi_controller_gethistorical"
+ "source": "models_user_user",
+ "target": "tests_test_models_testusermodel_test_get_roles_list_multiple_roles"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L85",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_models.py",
+ "source_location": "L37",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_85",
- "target": "controller_stocksapi_controller_gethistorical"
+ "source": "models_user_user",
+ "target": "tests_test_models_testusermodel_test_add_role_new"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L129",
+ "source_file": "tests/test_models.py",
+ "source_location": "L43",
"weight": 1.0,
- "source": "controller_stocksapi_controller_gethistorical",
- "target": "stocks_api_compressor_compressresponse"
+ "source": "models_user_user",
+ "target": "tests_test_models_testusermodel_test_add_role_existing"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L82",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_models.py",
+ "source_location": "L63",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_82",
- "target": "controller_stocksapi_controller_gethistorical"
+ "source": "models_user_user",
+ "target": "tests_test_models_testusermodel_test_has_role_true"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L66",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_models.py",
+ "source_location": "L68",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_gethistorical",
- "target": "controller_stocksapi_controller_rationale_66"
+ "source": "models_user_user",
+ "target": "tests_test_models_testusermodel_test_has_role_false"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L65",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_models.py",
+ "source_location": "L75",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_gethistorical",
- "target": "controller_stocksapi_controller_rationale_65"
+ "source": "models_user_user",
+ "target": "tests_test_models_testusermodel_test_has_role_with_enum"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L168",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_models.py",
+ "source_location": "L80",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_168",
- "target": "controller_stocksapi_controller_getfundamental"
+ "source": "models_user_user",
+ "target": "tests_test_models_testusermodel_test_toDict"
},
{
- "relation": "rationale_for",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L157",
+ "source_file": "main/models/user.py",
+ "source_location": "L22",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_157",
- "target": "controller_stocksapi_controller_getfundamental"
+ "source": "models_user_user",
+ "target": "models_user_user_getroleslist"
},
{
- "relation": "rationale_for",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L161",
+ "source_file": "main/models/user.py",
+ "source_location": "L27",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_161",
- "target": "controller_stocksapi_controller_getfundamental"
+ "source": "models_user_user",
+ "target": "models_user_user_addrole"
},
{
- "relation": "rationale_for",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L169",
+ "source_file": "main/models/user.py",
+ "source_location": "L43",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_169",
- "target": "controller_stocksapi_controller_getfundamental"
+ "source": "models_user_user",
+ "target": "models_user_user_hasrole"
},
{
- "relation": "rationale_for",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L167",
+ "source_file": "main/models/user.py",
+ "source_location": "L48",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_167",
- "target": "controller_stocksapi_controller_getfundamental"
+ "source": "models_user_user",
+ "target": "models_user_user_todict"
},
{
- "relation": "rationale_for",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L165",
+ "source_file": "main/models/user.py",
+ "source_location": "L19",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_165",
- "target": "controller_stocksapi_controller_getfundamental"
+ "source": "models_user_user",
+ "target": "models_user_user_repr"
},
{
- "relation": "rationale_for",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L155",
+ "source_file": "main/models/user.py",
+ "source_location": "L35",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_155",
- "target": "controller_stocksapi_controller_getfundamental"
+ "source": "models_user_user",
+ "target": "models_user_user_removerole"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L196",
+ "source_file": "tests/test_models.py",
+ "source_location": "L50",
"weight": 1.0,
- "source": "controller_stocksapi_controller_getfundamental",
- "target": "stocks_api_compressor_compressresponse"
+ "source": "models_user_user",
+ "target": "tests_test_models_testusermodel_test_remove_role_existing"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L144",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_models.py",
+ "source_location": "L57",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_144",
- "target": "controller_stocksapi_controller_getfundamental"
+ "source": "models_user_user",
+ "target": "tests_test_models_testusermodel_test_remove_role_last_role"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L124",
+ "source_file": "main/models/user_session.py",
+ "source_location": "L5",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_stocksapi_controller_getfundamental",
- "target": "controller_stocksapi_controller_rationale_124"
+ "source": "main_models_user_session_py",
+ "target": "models_user_session_usersession"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L123",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_getfundamental",
- "target": "controller_stocksapi_controller_rationale_123"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/service/user_service.py",
+ "source_location": "L8",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_user_session_usersession",
+ "target": "service_user_service_userservice"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L236",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_236",
- "target": "controller_stocksapi_controller_getcotations"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L7",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_user_session_usersession",
+ "target": "tests_test_sessions_testusersessionmodel"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L225",
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L8",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "models_user_session_usersession",
+ "target": "tests_test_sessions_testsessionexpiration"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L56",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_225",
- "target": "controller_stocksapi_controller_getcotations"
+ "source": "models_user_session_usersession",
+ "target": "tests_test_sessions_testusersessionmodel_test_getdevicename_with_browser_and_os"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L229",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L69",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_229",
- "target": "controller_stocksapi_controller_getcotations"
+ "source": "models_user_session_usersession",
+ "target": "tests_test_sessions_testusersessionmodel_test_getdevicename_with_fingerprint_only"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L237",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L81",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_237",
- "target": "controller_stocksapi_controller_getcotations"
+ "source": "models_user_session_usersession",
+ "target": "tests_test_sessions_testusersessionmodel_test_getdevicename_fallback"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L234",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L94",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_234",
- "target": "controller_stocksapi_controller_getcotations"
+ "source": "models_user_session_usersession",
+ "target": "tests_test_sessions_testusersessionmodel_test_getdevicename_empty_strings"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L238",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L108",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_238",
- "target": "controller_stocksapi_controller_getcotations"
+ "source": "models_user_session_usersession",
+ "target": "tests_test_sessions_testusersessionmodel_test_isactive_default"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L228",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L112",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_228",
- "target": "controller_stocksapi_controller_getcotations"
+ "source": "models_user_session_usersession",
+ "target": "tests_test_sessions_testusersessionmodel_test_isactive_can_be_false"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L156",
+ "weight": 1.0,
+ "source": "models_user_session_usersession",
+ "target": "tests_test_sessions_testsessionexpiration_test_session_can_expire"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L250",
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L175",
"weight": 1.0,
- "source": "controller_stocksapi_controller_getcotations",
- "target": "stocks_api_compressor_compressresponse"
+ "source": "models_user_session_usersession",
+ "target": "tests_test_sessions_testsessionexpiration_test_session_still_valid_within_expiry"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L209",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L193",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_209",
- "target": "controller_stocksapi_controller_getcotations"
+ "source": "models_user_session_usersession",
+ "target": "tests_test_sessions_testsessionexpiration_test_session_exactly_at_boundary"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L185",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L210",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_getcotations",
- "target": "controller_stocksapi_controller_rationale_185"
+ "source": "models_user_session_usersession",
+ "target": "tests_test_sessions_testsessionexpiration_test_created_at_future_date"
},
{
- "relation": "rationale_for",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L184",
+ "source_file": "main/models/user_session.py",
+ "source_location": "L38",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_stocksapi_controller_getcotations",
- "target": "controller_stocksapi_controller_rationale_184"
+ "source": "models_user_session_usersession",
+ "target": "models_user_session_usersession_getdevicename"
},
{
- "relation": "rationale_for",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L290",
+ "source_file": "main/models/user_session.py",
+ "source_location": "L22",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_290",
- "target": "controller_stocksapi_controller_getlivecotation"
+ "source": "models_user_session_usersession",
+ "target": "models_user_session_usersession_repr"
},
{
- "relation": "rationale_for",
+ "relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L279",
+ "source_file": "main/models/user_session.py",
+ "source_location": "L25",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_279",
- "target": "controller_stocksapi_controller_getlivecotation"
+ "source": "models_user_session_usersession",
+ "target": "models_user_session_usersession_todict"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L283",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L12",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_283",
- "target": "controller_stocksapi_controller_getlivecotation"
+ "source": "models_user_session_usersession",
+ "target": "tests_test_sessions_testusersessionmodel_test_repr"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L291",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L17",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_291",
- "target": "controller_stocksapi_controller_getlivecotation"
+ "source": "models_user_session_usersession",
+ "target": "tests_test_sessions_testusersessionmodel_test_toDict_basic"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L288",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L34",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_288",
- "target": "controller_stocksapi_controller_getlivecotation"
+ "source": "models_user_session_usersession",
+ "target": "tests_test_sessions_testusersessionmodel_test_toDict_with_sensitive"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L296",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L45",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_296",
- "target": "controller_stocksapi_controller_getlivecotation"
+ "source": "models_user_session_usersession",
+ "target": "tests_test_sessions_testusersessionmodel_test_toDict_hides_useragent"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L286",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L118",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_286",
- "target": "controller_stocksapi_controller_getlivecotation"
+ "source": "models_user_session_usersession",
+ "target": "tests_test_sessions_testusersessionmodel_test_todict_with_timestamps"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L293",
+ "source_file": "tests/test_sessions.py",
+ "source_location": "L132",
"weight": 1.0,
- "source": "controller_stocksapi_controller_getlivecotation",
- "target": "stocks_api_compressor_compressresponse"
+ "source": "models_user_session_usersession",
+ "target": "tests_test_sessions_testusersessionmodel_test_todict_without_timestamps"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L261",
+ "source_file": "main/service/authentication_service.py",
+ "source_location": "L9",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_stocksapi_controller_rationale_261",
- "target": "controller_stocksapi_controller_getlivecotation"
+ "source": "main_service_authentication_service_py",
+ "target": "service_authentication_service_authenticationservice"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L233",
+ "source_file": "main/service/authentication_service.py",
+ "source_location": "L11",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "controller_stocksapi_controller_getlivecotation",
- "target": "controller_stocksapi_controller_rationale_233"
+ "source": "main_service_authentication_service_py",
+ "target": "service_authentication_service_initialize"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/stocksapi_controller.py",
- "source_location": "L232",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_stocksapi_controller_getlivecotation",
- "target": "controller_stocksapi_controller_rationale_232"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "main/service/authentication_service.py",
+ "source_location": "L6",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "service_authentication_service_authenticationservice",
+ "target": "utils_service_manager_servicemanager"
},
{
- "relation": "imports_from",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/user_controller.py",
- "source_location": "L7",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/service/authentication_service.py",
+ "source_location": "L12",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_user_controller_py",
- "target": "fastapi"
+ "source": "service_authentication_service_initialize",
+ "target": "utils_service_manager_getapp"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/controller/user_controller.py",
- "source_location": "L16",
+ "source_file": "main/service/prometheus_service.py",
+ "source_location": "L23",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_controller_user_controller_py",
- "target": "controller_user_controller_sessiontodict"
+ "source": "main_service_prometheus_service_py",
+ "target": "service_prometheus_service_memorymaintenance"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/controller/user_controller.py",
- "source_location": "L15",
+ "source_file": "main/service/prometheus_service.py",
+ "source_location": "L4",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_controller_user_controller_py",
- "target": "controller_user_controller_health"
+ "source": "main_service_prometheus_service_py",
+ "target": "service_prometheus_service_prometheusservice"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/controller/user_controller.py",
- "source_location": "L19",
+ "source_file": "main/service/prometheus_service.py",
+ "source_location": "L6",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_controller_user_controller_py",
- "target": "controller_user_controller_getme"
+ "source": "main_service_prometheus_service_py",
+ "target": "service_prometheus_service_initialize"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/controller/user_controller.py",
- "source_location": "L45",
+ "source_file": "main/service/prometheus_service.py",
+ "source_location": "L60",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_controller_user_controller_py",
- "target": "controller_user_controller_testadminaccess"
+ "source": "main_service_prometheus_service_py",
+ "target": "service_prometheus_service_registermemorymaintenancejob"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/user_controller.py",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/service/prometheus_service.py",
"source_location": "L52",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_user_controller_py",
- "target": "controller_user_controller_getsessions"
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "prometheus_matrix_cache_invalidateuser"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/user_controller.py",
- "source_location": "L94",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L49",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_user_controller_py",
- "target": "controller_user_controller_getcurrentsession"
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_memory_maintenance_testdecay_test_active_memory_decays"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/user_controller.py",
- "source_location": "L115",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L56",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_user_controller_py",
- "target": "controller_user_controller_revokesession"
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_memory_maintenance_testdecay_test_zero_access_count_still_decays"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/user_controller.py",
- "source_location": "L135",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L62",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_user_controller_py",
- "target": "controller_user_controller_revokeallsessions"
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_memory_maintenance_testdecay_test_high_score_decays_proportionally"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/user_controller.py",
- "source_location": "L23",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L69",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_user_controller_py",
- "target": "controller_user_controller_upgradetodeveloperstarter"
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_memory_maintenance_testdecay_test_very_low_score_stays_above_zero"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/user_controller.py",
- "source_location": "L34",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L76",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_controller_user_controller_py",
- "target": "controller_user_controller_upgradetodeveloperenterprise"
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_memory_maintenance_testdecay_test_multiple_users_all_decayed"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/user_controller.py",
- "source_location": "L67",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L87",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_user_controller_getsessions",
- "target": "controller_user_controller_sessiontodict"
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_memory_maintenance_testarchive_test_dead_memory_archived"
},
{
"relation": "calls",
"context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/controller/user_controller.py",
- "source_location": "L87",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L94",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "controller_user_controller_getcurrentsession",
- "target": "controller_user_controller_sessiontodict"
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_memory_maintenance_testarchive_test_low_score_but_recent_not_archived"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/models/memory.py",
- "source_location": "L7",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L101",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_models_memory_py",
- "target": "models_memory_prometheusmemory"
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_memory_maintenance_testarchive_test_zero_access_but_high_score_not_archived"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/models/memory.py",
- "source_location": "L7",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L108",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_models_memory_py",
- "target": "models_memory_usermemory"
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_memory_maintenance_testarchive_test_accessed_memory_not_archived"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "main/models/memory.py",
- "source_location": "L7",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L117",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "models_memory_prometheusmemory",
- "target": "base"
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_memory_maintenance_testarchive_test_already_archived_not_double_archived"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "main/models/memory.py",
- "source_location": "L4",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_memory_prometheusmemory",
- "target": "models_types_vectortype"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L125",
+ "weight": 1.0,
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_memory_maintenance_testarchive_test_multiple_users_independent_archive"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "main/models/memory.py",
- "source_location": "L5",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_memory_prometheusmemory",
- "target": "models_user_user"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L137",
+ "weight": 1.0,
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_memory_maintenance_testdecayandarchivetogether_test_decay_then_archive_check"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "main/service/prometheus_service.py",
- "source_location": "L13",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_memory_prometheusmemory",
- "target": "service_prometheus_service_prometheusservice"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L145",
+ "weight": 1.0,
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_memory_maintenance_testdecayandarchivetogether_test_score_above_threshold_after_decay_not_archived"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_dedup.py",
- "source_location": "L2",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_memory_prometheusmemory",
- "target": "tests_test_memory_dedup_testexactsamekeyupdates"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L151",
+ "weight": 1.0,
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_memory_maintenance_testdecayandarchivetogether_test_score_just_below_threshold_archived"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_dedup.py",
- "source_location": "L2",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_memory_prometheusmemory",
- "target": "tests_test_memory_dedup_testsimilarkeymerges"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L158",
+ "weight": 1.0,
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_memory_maintenance_testdecayandarchivetogether_test_days_just_below_threshold_not_archived"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_dedup.py",
- "source_location": "L2",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_memory_prometheusmemory",
- "target": "tests_test_memory_dedup_testdifferentkeysnomerge"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L164",
+ "weight": 1.0,
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_memory_maintenance_testdecayandarchivetogether_test_days_just_above_threshold_archived"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_dedup.py",
- "source_location": "L2",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_memory_prometheusmemory",
- "target": "tests_test_memory_dedup_testmergeboostsscore"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_maintenance.py",
+ "source_location": "L171",
+ "weight": 1.0,
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_memory_maintenance_testemptydatabase_test_no_memories_does_not_crash"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_dedup.py",
- "source_location": "L2",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_memory_prometheusmemory",
- "target": "tests_test_memory_dedup_testmergeincrementsaccess"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_type_aware_decay.py",
+ "source_location": "L32",
+ "weight": 1.0,
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_type_aware_decay_testtypeawaredecay_test_preference_decays_slowly"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_dedup.py",
- "source_location": "L2",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_memory_prometheusmemory",
- "target": "tests_test_memory_dedup_testthresholdboundary"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_type_aware_decay.py",
+ "source_location": "L38",
+ "weight": 1.0,
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_type_aware_decay_testtypeawaredecay_test_context_decays_fast"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L14",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_memory_prometheusmemory",
- "target": "tests_test_memory_maintenance_testdecay"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_type_aware_decay.py",
+ "source_location": "L44",
+ "weight": 1.0,
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_type_aware_decay_testtypeawaredecay_test_analysis_decays_normally"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L14",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_memory_prometheusmemory",
- "target": "tests_test_memory_maintenance_testarchive"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_type_aware_decay.py",
+ "source_location": "L50",
+ "weight": 1.0,
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_type_aware_decay_testtypeawaredecay_test_feedback_decays_medium"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L14",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_memory_prometheusmemory",
- "target": "tests_test_memory_maintenance_testdecayandarchivetogether"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_type_aware_decay.py",
+ "source_location": "L56",
+ "weight": 1.0,
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_type_aware_decay_testtypeawaredecay_test_unknown_type_uses_default"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L14",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_memory_prometheusmemory",
- "target": "tests_test_memory_maintenance_testemptydatabase"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_type_aware_decay.py",
+ "source_location": "L66",
+ "weight": 1.0,
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_type_aware_decay_testtypeawaredecay_test_mixed_types_all_correct"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L5",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_memory_prometheusmemory",
- "target": "tests_test_memory_manager_testgetmemorylimit"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_type_aware_decay.py",
+ "source_location": "L82",
+ "weight": 1.0,
+ "source": "service_prometheus_service_memorymaintenance",
+ "target": "tests_test_type_aware_decay_testtypeawaredecay_test_preference_survives_longer"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L5",
+ "source_file": "main/service/prometheus_service.py",
+ "source_location": "L1",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "models_memory_prometheusmemory",
- "target": "tests_test_memory_manager_testupsertmemory"
+ "source": "service_prometheus_service_prometheusservice",
+ "target": "utils_service_manager_servicemanager"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L5",
+ "source_file": "main/service/prometheus_service.py",
+ "source_location": "L13",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "models_memory_prometheusmemory",
- "target": "tests_test_memory_manager_testcountmemories"
+ "source": "service_prometheus_service_prometheusservice",
+ "target": "models_memory_usermemory"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L5",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_memory_prometheusmemory",
- "target": "tests_test_memory_manager_testgetusermemories"
+ "confidence_score": 0.8,
+ "source_file": "main/service/prometheus_service.py",
+ "source_location": "L64",
+ "weight": 1.0,
+ "source": "service_prometheus_service_initialize",
+ "target": "utils_service_manager_getapp"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L5",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_memory_prometheusmemory",
- "target": "tests_test_memory_manager_testdeletememory"
+ "confidence_score": 0.8,
+ "source_file": "main/service/prometheus_service.py",
+ "source_location": "L12",
+ "weight": 1.0,
+ "source": "service_prometheus_service_initialize",
+ "target": "models_loader_getembeddingmodel"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L5",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_memory_prometheusmemory",
- "target": "tests_test_memory_manager_testsearchfulltext"
+ "confidence_score": 0.8,
+ "source_file": "main/service/prometheus_service.py",
+ "source_location": "L70",
+ "weight": 1.0,
+ "source": "service_prometheus_service_initialize",
+ "target": "utils_scheduler_registerjob"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_type_aware_decay.py",
- "source_location": "L6",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_memory_prometheusmemory",
- "target": "tests_test_type_aware_decay_testtypeawaredecay"
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/service/prometheus_service.py",
+ "source_location": "L87",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "service_prometheus_service_initialize",
+ "target": "service_prometheus_service_registermemorymaintenancejob"
},
{
- "relation": "inherits",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/models/prometheus.py",
- "source_location": "L5",
+ "source_file": "main/service/scraper_service.py",
+ "source_location": "L14",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "base",
- "target": "models_prometheus_prometheussession"
+ "source": "main_service_scraper_service_py",
+ "target": "service_scraper_service_runscraper"
},
{
- "relation": "inherits",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/models/sandbox.py",
- "source_location": "L5",
+ "source_file": "main/service/scraper_service.py",
+ "source_location": "L22",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "base",
- "target": "models_sandbox_prometheussandbox"
+ "source": "main_service_scraper_service_py",
+ "target": "service_scraper_service_registerscraperjobs"
},
{
- "relation": "inherits",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/models/stocksapi_key.py",
- "source_location": "L7",
+ "source_file": "main/service/scraper_service.py",
+ "source_location": "L25",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "base",
- "target": "models_stocksapi_key_stocksapikey"
+ "source": "main_service_scraper_service_py",
+ "target": "service_scraper_service_scraperservice"
},
{
- "relation": "inherits",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/models/user.py",
- "source_location": "L5",
+ "source_file": "main/service/scraper_service.py",
+ "source_location": "L27",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "base",
- "target": "models_user_user"
+ "source": "main_service_scraper_service_py",
+ "target": "service_scraper_service_initialize"
},
{
- "relation": "inherits",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/models/user_session.py",
- "source_location": "L5",
+ "source_file": "main/service/scraper_service.py",
+ "source_location": "L60",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "base",
- "target": "models_user_session_usersession"
+ "source": "service_scraper_service_initialize",
+ "target": "service_scraper_service_registerscraperjobs"
},
{
- "relation": "inherits",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "main/service/scraper_service.py",
+ "source_location": "L42",
+ "weight": 1.0,
+ "source": "service_scraper_service_registerscraperjobs",
+ "target": "utils_scheduler_registerjob"
+ },
+ {
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/models/memory.py",
- "source_location": "L7",
+ "source_file": "main/service/scraper_service.py",
+ "source_location": "L23",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "base",
- "target": "models_memory_usermemory"
+ "source": "service_scraper_service_rationale_23",
+ "target": "service_scraper_service_registerscraperjobs"
},
{
- "relation": "inherits",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/models/harness.py",
- "source_location": "L7",
+ "source_file": "main/service/stocksapi_service.py",
+ "source_location": "L10",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "base",
- "target": "models_harness_loopevent"
+ "source": "main_service_stocksapi_service_py",
+ "target": "service_stocksapi_service_mcpdetectmiddleware"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/models/prometheus.py",
- "source_location": "L5",
+ "source_file": "main/service/stocksapi_service.py",
+ "source_location": "L6",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_models_prometheus_py",
- "target": "models_prometheus_prometheussession"
+ "source": "main_service_stocksapi_service_py",
+ "target": "service_stocksapi_service_stocksapiservice"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/service/stocksapi_service.py",
+ "source_location": "L8",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_service_stocksapi_service_py",
+ "target": "service_stocksapi_service_initialize"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "main/service/stocksapi_service.py",
+ "source_location": "L11",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "service_stocksapi_service_mcpdetectmiddleware",
+ "target": "service_stocksapi_service_mcpdetectmiddleware_init"
+ },
+ {
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "main/service/stocksapi_service.py",
+ "source_location": "L14",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "service_stocksapi_service_mcpdetectmiddleware",
+ "target": "service_stocksapi_service_mcpdetectmiddleware_call"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "main/models/prometheus.py",
+ "source_file": "main/service/stocksapi_service.py",
"source_location": "L4",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "models_prometheus_prometheussession",
- "target": "models_user_user"
+ "source": "service_stocksapi_service_mcpdetectmiddleware",
+ "target": "utils_service_manager_servicemanager"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_models.py",
- "source_location": "L4",
+ "source_file": "main/service/stocksapi_service.py",
+ "source_location": "L1",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "models_prometheus_prometheussession",
- "target": "tests_test_models_testusermodel"
+ "source": "service_stocksapi_service_stocksapiservice",
+ "target": "utils_service_manager_servicemanager"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_models.py",
+ "confidence_score": 0.8,
+ "source_file": "main/service/stocksapi_service.py",
+ "source_location": "L29",
+ "weight": 1.0,
+ "source": "service_stocksapi_service_initialize",
+ "target": "utils_service_manager_getapp"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/service/user_service.py",
+ "source_location": "L16",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_service_user_service_py",
+ "target": "service_user_service_removeinactivesessions"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/service/user_service.py",
"source_location": "L4",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_prometheus_prometheussession",
- "target": "tests_test_models_teststocksapikeymodel"
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_service_user_service_py",
+ "target": "service_user_service_userservice"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/service/user_service.py",
+ "source_location": "L6",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_service_user_service_py",
+ "target": "service_user_service_initialize"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/service/user_service.py",
+ "source_location": "L46",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_service_user_service_py",
+ "target": "service_user_service_registersessioncleanupjobs"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/service/user_service.py",
+ "source_location": "L33",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_service_user_service_py",
+ "target": "service_user_service_inactivesessionsscheduler"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_models.py",
- "source_location": "L4",
+ "source_file": "main/service/user_service.py",
+ "source_location": "L1",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "models_prometheus_prometheussession",
- "target": "tests_test_models_testprometheussessionmodel"
+ "source": "service_user_service_userservice",
+ "target": "utils_service_manager_servicemanager"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L168",
+ "source_file": "main/service/user_service.py",
+ "source_location": "L42",
"weight": 1.0,
- "source": "models_prometheus_prometheussession",
- "target": "tests_test_models_testprometheussessionmodel_test_create_session"
+ "source": "service_user_service_initialize",
+ "target": "utils_service_manager_getapp"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L177",
+ "source_file": "main/service/user_service.py",
+ "source_location": "L48",
"weight": 1.0,
- "source": "models_prometheus_prometheussession",
- "target": "tests_test_models_testprometheussessionmodel_test_default_history"
+ "source": "service_user_service_initialize",
+ "target": "utils_scheduler_registerjob"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/generation.py",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/service/user_service.py",
+ "source_location": "L72",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "service_user_service_initialize",
+ "target": "service_user_service_registersessioncleanupjobs"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/connectivity.py",
"source_location": "L13",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_prometheus_prometheussession",
- "target": "prometheus_generation_prometheusgenerator"
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_utils_connectivity_py",
+ "target": "utils_connectivity_checkdatabaseconnection"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/generation.py",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/connectivity.py",
+ "source_location": "L51",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_utils_connectivity_py",
+ "target": "utils_connectivity_checkserviceconnection"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/connectivity.py",
"source_location": "L13",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_prometheus_prometheussession",
- "target": "prometheus_generation_sessionproxy"
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_utils_connectivity_py",
+ "target": "utils_connectivity_checkmysqlconnection"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/models/sandbox.py",
- "source_location": "L5",
+ "source_file": "main/utils/connectivity.py",
+ "source_location": "L13",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_models_sandbox_py",
- "target": "models_sandbox_prometheussandbox"
+ "source": "main_utils_connectivity_py",
+ "target": "utils_connectivity_checksingledb"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L2",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_sandbox_prometheussandbox",
- "target": "tests_test_sandbox_persistence_testprometheussandboxmodel"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_connectivity_coverage.py",
+ "source_location": "L112",
+ "weight": 1.0,
+ "source": "utils_connectivity_checkserviceconnection",
+ "target": "tests_test_connectivity_coverage_test_service_not_found"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L3",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_sandbox_prometheussandbox",
- "target": "tests_test_sandbox_persistence_testsandboxpersistence"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_connectivity_coverage.py",
+ "source_location": "L124",
+ "weight": 1.0,
+ "source": "utils_connectivity_checkserviceconnection",
+ "target": "tests_test_connectivity_coverage_test_stocks_api_health_ok"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_connectivity_coverage.py",
+ "source_location": "L139",
+ "weight": 1.0,
+ "source": "utils_connectivity_checkserviceconnection",
+ "target": "tests_test_connectivity_coverage_test_non_stocks_prefix"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_connectivity_coverage.py",
+ "source_location": "L154",
+ "weight": 1.0,
+ "source": "utils_connectivity_checkserviceconnection",
+ "target": "tests_test_connectivity_coverage_test_non_200_status"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_connectivity_coverage.py",
+ "source_location": "L164",
+ "weight": 1.0,
+ "source": "utils_connectivity_checkserviceconnection",
+ "target": "tests_test_connectivity_coverage_test_connection_error"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L7",
+ "source_file": "tests/test_connectivity_coverage.py",
+ "source_location": "L174",
"weight": 1.0,
- "source": "models_sandbox_prometheussandbox",
- "target": "tests_test_sandbox_persistence_testprometheussandboxmodel_test_create_sandbox_mapping"
+ "source": "utils_connectivity_checkserviceconnection",
+ "target": "tests_test_connectivity_coverage_test_timeout"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L19",
+ "source_file": "tests/test_connectivity_coverage.py",
+ "source_location": "L184",
"weight": 1.0,
- "source": "models_sandbox_prometheussandbox",
- "target": "tests_test_sandbox_persistence_testprometheussandboxmodel_test_sandbox_has_timestamps"
+ "source": "utils_connectivity_checkserviceconnection",
+ "target": "tests_test_connectivity_coverage_test_request_exception"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L31",
+ "source_file": "tests/test_connectivity_coverage.py",
+ "source_location": "L194",
"weight": 1.0,
- "source": "models_sandbox_prometheussandbox",
- "target": "tests_test_sandbox_persistence_testprometheussandboxmodel_test_one_sandbox_per_user"
+ "source": "utils_connectivity_checkserviceconnection",
+ "target": "tests_test_connectivity_coverage_test_generic_exception"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L77",
+ "source_file": "main/utils/connectivity.py",
+ "source_location": "L66",
"weight": 1.0,
- "source": "models_sandbox_prometheussandbox",
- "target": "tests_test_sandbox_persistence_test_get_or_create_reuses_existing"
+ "source": "utils_connectivity_checkserviceconnection",
+ "target": "utils_http_session_get_session"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L92",
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L5",
"weight": 1.0,
- "source": "models_sandbox_prometheussandbox",
- "target": "tests_test_sandbox_persistence_test_get_or_create_respawns_when_dead"
+ "confidence_score": 1.0,
+ "source": "main_utils_errors_py",
+ "target": "fastapi"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L3",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_sandbox_prometheussandbox",
- "target": "tests_test_sandbox_persistence_testsandboxcleanup"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L13",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_utils_errors_py",
+ "target": "utils_errors_errorresponse"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L148",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L21",
"weight": 1.0,
- "source": "models_sandbox_prometheussandbox",
- "target": "tests_test_sandbox_persistence_test_cleanup_removes_dead_mappings"
+ "confidence_score": 1.0,
+ "source": "main_utils_errors_py",
+ "target": "utils_errors_requestcontextfilter"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_sandbox_persistence.py",
- "source_location": "L168",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L27",
"weight": 1.0,
- "source": "models_sandbox_prometheussandbox",
- "target": "tests_test_sandbox_persistence_test_cleanup_keeps_alive_sandboxes"
+ "confidence_score": 1.0,
+ "source": "main_utils_errors_py",
+ "target": "utils_errors_builderrorresponse"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/models/stocksapi_key.py",
- "source_location": "L7",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L37",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_models_stocksapi_key_py",
- "target": "models_stocksapi_key_stocksapikey"
+ "source": "main_utils_errors_py",
+ "target": "utils_errors_httpexceptionhandler"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/models/stocksapi_key.py",
- "source_location": "L4",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "models_user_user"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L44",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_utils_errors_py",
+ "target": "utils_errors_validationexceptionhandler"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L56",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_utils_errors_py",
+ "target": "utils_errors_genericexceptionhandler"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L65",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_utils_errors_py",
+ "target": "utils_errors_registererrorhandlers"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L29",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_utils_errors_py",
+ "target": "utils_errors_build_error_response"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L38",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_utils_errors_py",
+ "target": "utils_errors_http_exception_handler"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L45",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_utils_errors_py",
+ "target": "utils_errors_validation_exception_handler"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L57",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_utils_errors_py",
+ "target": "utils_errors_generic_exception_handler"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L66",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_utils_errors_py",
+ "target": "utils_errors_register_error_handlers"
+ },
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L13",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "utils_errors_errorresponse",
+ "target": "basemodel"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/stocks_api/key.py",
- "source_location": "L58",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L28",
"weight": 1.0,
- "source": "stocks_api_key_createkey",
- "target": "models_stocksapi_key_stocksapikey"
+ "confidence_score": 1.0,
+ "source": "utils_errors_errorresponse",
+ "target": "utils_errors_builderrorresponse"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L15",
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L12",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement"
+ "source": "utils_errors_errorresponse",
+ "target": "tests_test_error_handlers_samplebody"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L15",
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L12",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_api_key_quota_atomic_testverifyapikeyintegration"
+ "source": "utils_errors_errorresponse",
+ "target": "tests_test_error_handlers_testerrorresponsemodel"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_models.py",
- "source_location": "L3",
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L12",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_models_testusermodel"
+ "source": "utils_errors_errorresponse",
+ "target": "tests_test_error_handlers_testrequestcontextfilter"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_models.py",
- "source_location": "L3",
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L12",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_models_teststocksapikeymodel"
+ "source": "utils_errors_errorresponse",
+ "target": "tests_test_error_handlers_testhttpexceptionhandler"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_models.py",
- "source_location": "L3",
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L12",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_models_testprometheussessionmodel"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L43",
- "weight": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_normal_quota_check_works"
+ "source": "utils_errors_errorresponse",
+ "target": "tests_test_error_handlers_testvalidationexceptionhandler"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L70",
- "weight": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_atomic_increment_prevents_overuse"
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L12",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_errors_errorresponse",
+ "target": "tests_test_error_handlers_testgenericexceptionhandler"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L111",
- "weight": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_concurrent_requests_serialized_at_db_level"
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L12",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_errors_errorresponse",
+ "target": "tests_test_error_handlers_testsuccesspassthrough"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L145",
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L56",
"weight": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_request_at_exact_quota_limit"
+ "source": "utils_errors_errorresponse",
+ "target": "tests_test_error_handlers_testerrorresponsemodel_test_error_response_structure"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L181",
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L65",
"weight": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_multiple_keys_independent_quotas"
+ "source": "utils_errors_errorresponse",
+ "target": "tests_test_error_handlers_testerrorresponsemodel_test_error_response_with_detail_and_request_id"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L216",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L30",
"weight": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_increment_from_zero"
+ "confidence_score": 1.0,
+ "source": "utils_errors_errorresponse",
+ "target": "utils_errors_build_error_response"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L240",
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L20",
"weight": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_api_key_quota_atomic_testverifyapikeyintegration_test_verify_api_key_success"
+ "confidence_score": 1.0,
+ "source": "basemodel",
+ "target": "tests_test_error_handlers_samplebody"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_api_key_quota_atomic.py",
- "source_location": "L255",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L24",
"weight": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_api_key_quota_atomic_testverifyapikeyintegration_test_verify_api_key_quota_exceeded"
+ "confidence_score": 1.0,
+ "source": "utils_errors_requestcontextfilter",
+ "target": "utils_errors_requestcontextfilter_filter"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L92",
- "weight": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_models_teststocksapikeymodel_test_create_api_key"
+ "source_file": "main/utils/logging_config.py",
+ "source_location": "L9",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_errors_requestcontextfilter",
+ "target": "utils_logging_config_discordhandler"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L101",
+ "source_file": "main/utils/logging_config.py",
+ "source_location": "L20",
"weight": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_models_teststocksapikeymodel_test_is_quota_exceeded_true"
+ "source": "utils_errors_requestcontextfilter",
+ "target": "utils_logging_config_setuplogging"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L107",
- "weight": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_models_teststocksapikeymodel_test_is_quota_exceeded_false"
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L12",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_errors_requestcontextfilter",
+ "target": "tests_test_error_handlers_samplebody"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L113",
- "weight": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_models_teststocksapikeymodel_test_needs_reset_true_no_last_reset"
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L12",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_errors_requestcontextfilter",
+ "target": "tests_test_error_handlers_testerrorresponsemodel"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L118",
- "weight": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_models_teststocksapikeymodel_test_needs_reset_true_expired"
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L12",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_errors_requestcontextfilter",
+ "target": "tests_test_error_handlers_testrequestcontextfilter"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L124",
- "weight": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_models_teststocksapikeymodel_test_needs_reset_false_recent"
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L12",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_errors_requestcontextfilter",
+ "target": "tests_test_error_handlers_testhttpexceptionhandler"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L130",
- "weight": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_models_teststocksapikeymodel_test_reset_quota"
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L12",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_errors_requestcontextfilter",
+ "target": "tests_test_error_handlers_testvalidationexceptionhandler"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L138",
- "weight": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_models_teststocksapikeymodel_test_increment_usage"
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L12",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_errors_requestcontextfilter",
+ "target": "tests_test_error_handlers_testgenericexceptionhandler"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L144",
- "weight": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_models_teststocksapikeymodel_test_get_remaining_quota"
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L12",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_errors_requestcontextfilter",
+ "target": "tests_test_error_handlers_testsuccesspassthrough"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L150",
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L78",
"weight": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_models_teststocksapikeymodel_test_get_remaining_quota_exceeded"
+ "source": "utils_errors_requestcontextfilter",
+ "target": "tests_test_error_handlers_testrequestcontextfilter_test_injects_request_id_from_contextvar"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L156",
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L87",
"weight": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "tests_test_models_teststocksapikeymodel_test_toDict"
+ "source": "utils_errors_requestcontextfilter",
+ "target": "tests_test_error_handlers_testrequestcontextfilter_test_empty_request_id_default"
},
{
- "relation": "method",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/models/stocksapi_key.py",
- "source_location": "L21",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L22",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "models_stocksapi_key_stocksapikey_isquotaexceeded"
+ "source": "utils_errors_requestcontextfilter",
+ "target": "utils_errors_rationale_22"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/models/stocksapi_key.py",
- "source_location": "L24",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L40",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "models_stocksapi_key_stocksapikey_needsreset"
+ "source": "utils_errors_builderrorresponse",
+ "target": "utils_errors_httpexceptionhandler"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/models/stocksapi_key.py",
- "source_location": "L32",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L52",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "models_stocksapi_key_stocksapikey_resetquota"
+ "source": "utils_errors_builderrorresponse",
+ "target": "utils_errors_validationexceptionhandler"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/models/stocksapi_key.py",
- "source_location": "L36",
+ "source_file": "main/utils/errors.py",
+ "source_location": "L61",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "models_stocksapi_key_stocksapikey_incrementusage"
+ "source": "utils_errors_builderrorresponse",
+ "target": "utils_errors_genericexceptionhandler"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "main/models/stocksapi_key.py",
- "source_location": "L39",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/conftest.py",
+ "source_location": "L84",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "models_stocksapi_key_stocksapikey_getremainingquota"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_conftest_stocks_http_client"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "main/models/stocksapi_key.py",
- "source_location": "L42",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/conftest.py",
+ "source_location": "L93",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "models_stocksapi_key_stocksapikey_todict"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_conftest_client"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "main/models/stocksapi_key.py",
- "source_location": "L18",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L31",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "models_stocksapi_key_stocksapikey",
- "target": "models_stocksapi_key_stocksapikey_repr"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_controllers_coverage_make_auth_client"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/models/types.py",
- "source_location": "L5",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L46",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_models_types_py",
- "target": "models_types_vectortype"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_controllers_coverage_make_user_client"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "main/models/types.py",
- "source_location": "L5",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L66",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "models_types_vectortype",
- "target": "typedecorator"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_controllers_coverage_make_prometheus_client"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "main/models/types.py",
- "source_location": "L9",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L87",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "models_types_vectortype",
- "target": "models_types_vectortype_init"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_controllers_coverage_make_stocksapi_client"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "main/models/types.py",
- "source_location": "L13",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L685",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "models_types_vectortype",
- "target": "models_types_vectortype_process_bind_param"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_controllers_coverage_testgetsessions_test_get_sessions"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "main/models/types.py",
- "source_location": "L21",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L731",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "models_types_vectortype",
- "target": "models_types_vectortype_process_result_value"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_controllers_coverage_testgetcurrentsession_test_get_current_session_found"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_memory_types.py",
- "source_location": "L3",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_types_vectortype",
- "target": "tests_test_memory_types_testvectortype"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L754",
+ "weight": 1.0,
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_controllers_coverage_testgetcurrentsession_test_get_current_session_not_found"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_memory_types.py",
- "source_location": "L9",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L784",
"weight": 1.0,
- "source": "models_types_vectortype",
- "target": "tests_test_memory_types_testvectortype_test_roundtrip"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_controllers_coverage_testrevokesession_test_revoke_session_success"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_memory_types.py",
- "source_location": "L19",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L807",
"weight": 1.0,
- "source": "models_types_vectortype",
- "target": "tests_test_memory_types_testvectortype_test_none_roundtrip"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_controllers_coverage_testrevokesession_test_revoke_session_not_found"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_memory_types.py",
- "source_location": "L25",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L832",
"weight": 1.0,
- "source": "models_types_vectortype",
- "target": "tests_test_memory_types_testvectortype_test_wrong_dims_raises"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_controllers_coverage_testrevokesession_test_revoke_session_failure"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_memory_types.py",
- "source_location": "L31",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L858",
"weight": 1.0,
- "source": "models_types_vectortype",
- "target": "tests_test_memory_types_testvectortype_test_preserves_negative_values"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_controllers_coverage_testrevokeallsessions_test_revoke_all_sessions"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_memory_types.py",
- "source_location": "L39",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L975",
"weight": 1.0,
- "source": "models_types_vectortype",
- "target": "tests_test_memory_types_testvectortype_test_large_random_vector"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_controllers_coverage_testprometheusgethistory_test_get_history_found"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "main/models/memory.py",
- "source_location": "L4",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_types_vectortype",
- "target": "models_memory_usermemory"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1011",
+ "weight": 1.0,
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_controllers_coverage_testprometheusgethistory_test_get_history_not_found"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "main/models/memory_types.py",
- "source_location": "L5",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1090",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "typedecorator",
- "target": "models_memory_types_vectortype"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_controllers_coverage_testprometheuschat_test_chat_existing_session_verified"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/models/user.py",
- "source_location": "L5",
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L1132",
"weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_models_user_py",
- "target": "models_user_user"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_controllers_coverage_testprometheuschat_test_chat_existing_session_not_owner"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "main/models/user_session.py",
- "source_location": "L4",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_user_session_usersession",
- "target": "models_user_user"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L28",
+ "weight": 1.0,
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_error_handlers_app"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_models.py",
- "source_location": "L2",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_user_user",
- "target": "tests_test_models_testusermodel"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_oauth_cookie_security.py",
+ "source_location": "L28",
+ "weight": 1.0,
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_oauth_cookie_security_make_callback_client"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_models.py",
- "source_location": "L2",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_user_user",
- "target": "tests_test_models_teststocksapikeymodel"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_sso_state_cookie.py",
+ "source_location": "L32",
+ "weight": 1.0,
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_sso_state_cookie_build_app"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_models.py",
- "source_location": "L2",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "models_user_user",
- "target": "tests_test_models_testprometheussessionmodel"
+ "confidence_score": 0.8,
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L38",
+ "weight": 1.0,
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_memory_controller_testmemorycontrollerroutes_test_get_memories_rejects_unauthenticated"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L9",
+ "source_file": "tests/test_memory_controller.py",
+ "source_location": "L57",
"weight": 1.0,
- "source": "models_user_user",
- "target": "tests_test_models_testusermodel_test_create_user"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_memory_controller_testmemorycontrollerroutes_test_get_memories_rejects_basic_user"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L19",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1165",
"weight": 1.0,
- "source": "models_user_user",
- "target": "tests_test_models_testusermodel_test_get_roles_list_default"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_stocks_api_coverage_testquerycotations_test_cotations_http_route"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L24",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1353",
"weight": 1.0,
- "source": "models_user_user",
- "target": "tests_test_models_testusermodel_test_get_roles_list_single_role"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_stocks_api_coverage_testquerylivecotation_test_http_route_returns_200"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L29",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1377",
"weight": 1.0,
- "source": "models_user_user",
- "target": "tests_test_models_testusermodel_test_get_roles_list_multiple_roles"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_stocks_api_coverage_testquerylivecotation_test_http_route_search_required"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L37",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1466",
"weight": 1.0,
- "source": "models_user_user",
- "target": "tests_test_models_testusermodel_test_add_role_new"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_stocks_api_coverage_testquerylivecotation_test_cotations_search_required"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L43",
+ "source_file": "tests/test_stocks_api_coverage.py",
+ "source_location": "L1298",
"weight": 1.0,
- "source": "models_user_user",
- "target": "tests_test_models_testusermodel_test_add_role_existing"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_stocks_api_coverage_testquerycotations_test_cotations_search_required"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L63",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L156",
"weight": 1.0,
- "source": "models_user_user",
- "target": "tests_test_models_testusermodel_test_has_role_true"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_controllers_coverage_testregisterendpoint_make_register_client"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L68",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L236",
"weight": 1.0,
- "source": "models_user_user",
- "target": "tests_test_models_testusermodel_test_has_role_false"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_controllers_coverage_testloginendpoint_make_login_client"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L75",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L289",
"weight": 1.0,
- "source": "models_user_user",
- "target": "tests_test_models_testusermodel_test_has_role_with_enum"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_controllers_coverage_testlogoutendpoint_make_logout_client"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L80",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L433",
"weight": 1.0,
- "source": "models_user_user",
- "target": "tests_test_models_testusermodel_test_toDict"
+ "source": "utils_errors_registererrorhandlers",
+ "target": "tests_test_controllers_coverage_testgooglecallback_make_callback_client"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/models/user.py",
- "source_location": "L22",
+ "source_file": "main/utils/http_session.py",
+ "source_location": "L9",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "models_user_user",
- "target": "models_user_user_getroleslist"
+ "source": "main_utils_http_session_py",
+ "target": "utils_http_session_getsession"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/models/user.py",
- "source_location": "L27",
+ "source_file": "main/utils/http_session.py",
+ "source_location": "L22",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "models_user_user",
- "target": "models_user_user_addrole"
+ "source": "main_utils_http_session_py",
+ "target": "utils_http_session_cleanup"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/models/user.py",
- "source_location": "L43",
+ "source_file": "main/utils/http_session.py",
+ "source_location": "L8",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "models_user_user",
- "target": "models_user_user_hasrole"
+ "source": "main_utils_http_session_py",
+ "target": "utils_http_session_get_session"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/models/user.py",
- "source_location": "L48",
+ "source_file": "main/utils/logging_config.py",
+ "source_location": "L12",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "models_user_user",
- "target": "models_user_user_todict"
+ "source": "main_utils_logging_config_py",
+ "target": "utils_logging_config_setuplogging"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/models/user.py",
- "source_location": "L19",
+ "source_file": "main/utils/logging_config.py",
+ "source_location": "L24",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "models_user_user",
- "target": "models_user_user_repr"
+ "source": "main_utils_logging_config_py",
+ "target": "utils_logging_config_discordhandler"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/models/user.py",
- "source_location": "L35",
+ "source_file": "main/utils/logging_config.py",
+ "source_location": "L49",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "models_user_user",
- "target": "models_user_user_removerole"
+ "source": "main_utils_logging_config_py",
+ "target": "utils_logging_config_setupdiscordhandler"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L50",
+ "relation": "method",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/logging_config.py",
+ "source_location": "L25",
"weight": 1.0,
- "source": "models_user_user",
- "target": "tests_test_models_testusermodel_test_remove_role_existing"
+ "confidence_score": 1.0,
+ "source": "utils_logging_config_discordhandler",
+ "target": "utils_logging_config_discordhandler_emit"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_models.py",
- "source_location": "L57",
- "weight": 1.0,
- "source": "models_user_user",
- "target": "tests_test_models_testusermodel_test_remove_role_last_role"
- },
- {
- "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/models/user_session.py",
- "source_location": "L5",
+ "source_file": "main/utils/logging_config.py",
+ "source_location": "L51",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_models_user_session_py",
- "target": "models_user_session_usersession"
+ "source": "utils_logging_config_discordhandler",
+ "target": "utils_logging_config_setupdiscordhandler"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "main/service/user_service.py",
- "source_location": "L8",
+ "source_file": "tests/test_logging_config_coverage.py",
+ "source_location": "L9",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "models_user_session_usersession",
- "target": "service_user_service_userservice"
+ "source": "utils_logging_config_discordhandler",
+ "target": "tests_test_logging_config_coverage_testdiscordhandleremit"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_sessions.py",
- "source_location": "L7",
+ "source_file": "tests/test_logging_config_coverage.py",
+ "source_location": "L9",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "models_user_session_usersession",
- "target": "tests_test_sessions_testusersessionmodel"
+ "source": "utils_logging_config_discordhandler",
+ "target": "tests_test_logging_config_coverage_testsetuplogging"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_sessions.py",
- "source_location": "L8",
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L138",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "models_user_session_usersession",
- "target": "tests_test_sessions_testsessionexpiration"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_sessions.py",
- "source_location": "L56",
- "weight": 1.0,
- "source": "models_user_session_usersession",
- "target": "tests_test_sessions_testusersessionmodel_test_getdevicename_with_browser_and_os"
+ "source": "utils_logging_config_discordhandler",
+ "target": "tests_test_thread_safety_testgetsession"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_sessions.py",
- "source_location": "L69",
- "weight": 1.0,
- "source": "models_user_session_usersession",
- "target": "tests_test_sessions_testusersessionmodel_test_getdevicename_with_fingerprint_only"
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L138",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_logging_config_discordhandler",
+ "target": "tests_test_thread_safety_testdiscordhandlerthreadpool"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_sessions.py",
- "source_location": "L81",
- "weight": 1.0,
- "source": "models_user_session_usersession",
- "target": "tests_test_sessions_testusersessionmodel_test_getdevicename_fallback"
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L138",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_logging_config_discordhandler",
+ "target": "tests_test_thread_safety_testconcurrentgetsession"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_sessions.py",
- "source_location": "L94",
+ "source_file": "tests/test_logging_config_coverage.py",
+ "source_location": "L10",
"weight": 1.0,
- "source": "models_user_session_usersession",
- "target": "tests_test_sessions_testusersessionmodel_test_getdevicename_empty_strings"
+ "source": "utils_logging_config_discordhandler",
+ "target": "tests_test_logging_config_coverage_testdiscordhandleremit_make_handler"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_sessions.py",
- "source_location": "L108",
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L110",
"weight": 1.0,
- "source": "models_user_session_usersession",
- "target": "tests_test_sessions_testusersessionmodel_test_isactive_default"
+ "source": "utils_logging_config_discordhandler",
+ "target": "tests_test_thread_safety_testdiscordhandlerthreadpool_test_emit_submits_to_executor"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_sessions.py",
- "source_location": "L112",
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L140",
"weight": 1.0,
- "source": "models_user_session_usersession",
- "target": "tests_test_sessions_testusersessionmodel_test_isactive_can_be_false"
+ "source": "utils_logging_config_discordhandler",
+ "target": "tests_test_thread_safety_testdiscordhandlerthreadpool_test_concurrent_emits_do_not_spawn_unbounded_threads"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_sessions.py",
- "source_location": "L156",
- "weight": 1.0,
- "source": "models_user_session_usersession",
- "target": "tests_test_sessions_testsessionexpiration_test_session_can_expire"
+ "source_file": "tests/test_thread_safety.py",
+ "source_location": "L138",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_logging_config_discordhandler",
+ "target": "tests_test_thread_safety_testconcurrenthttpproxy"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_sessions.py",
- "source_location": "L175",
+ "source_file": "tests/test_logging_config_coverage.py",
+ "source_location": "L107",
"weight": 1.0,
- "source": "models_user_session_usersession",
- "target": "tests_test_sessions_testsessionexpiration_test_session_still_valid_within_expiry"
+ "source": "utils_logging_config_setupdiscordhandler",
+ "target": "tests_test_logging_config_coverage_test_setup_discord_handler_enabled"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "tests/test_sessions.py",
- "source_location": "L193",
+ "source_file": "tests/test_logging_config_coverage.py",
+ "source_location": "L113",
"weight": 1.0,
- "source": "models_user_session_usersession",
- "target": "tests_test_sessions_testsessionexpiration_test_session_exactly_at_boundary"
+ "source": "utils_logging_config_setupdiscordhandler",
+ "target": "tests_test_logging_config_coverage_test_setup_discord_handler_disabled"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_sessions.py",
- "source_location": "L210",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/migrator.py",
+ "source_location": "L8",
"weight": 1.0,
- "source": "models_user_session_usersession",
- "target": "tests_test_sessions_testsessionexpiration_test_created_at_future_date"
+ "confidence_score": 1.0,
+ "source": "main_utils_migrator_py",
+ "target": "utils_migrator_runmigrations"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/models/user_session.py",
- "source_location": "L38",
+ "source_file": "main/utils/request_id.py",
+ "source_location": "L13",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "models_user_session_usersession",
- "target": "models_user_session_usersession_getdevicename"
+ "source": "main_utils_request_id_py",
+ "target": "utils_request_id_requestidmiddleware"
},
{
- "relation": "method",
+ "relation": "inherits",
"confidence": "EXTRACTED",
- "source_file": "main/models/user_session.py",
- "source_location": "L22",
+ "source_file": "main/utils/request_id.py",
+ "source_location": "L13",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "models_user_session_usersession",
- "target": "models_user_session_usersession_repr"
+ "source": "utils_request_id_requestidmiddleware",
+ "target": "basehttpmiddleware"
},
{
"relation": "method",
"confidence": "EXTRACTED",
- "source_file": "main/models/user_session.py",
- "source_location": "L25",
+ "source_file": "main/utils/request_id.py",
+ "source_location": "L14",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "models_user_session_usersession",
- "target": "models_user_session_usersession_todict"
+ "source": "utils_request_id_requestidmiddleware",
+ "target": "utils_request_id_requestidmiddleware_dispatch"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_sessions.py",
- "source_location": "L12",
- "weight": 1.0,
- "source": "models_user_session_usersession",
- "target": "tests_test_sessions_testusersessionmodel_test_repr"
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L17",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_request_id_requestidmiddleware",
+ "target": "tests_test_error_handlers_samplebody"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_sessions.py",
+ "source_file": "tests/test_error_handlers.py",
"source_location": "L17",
- "weight": 1.0,
- "source": "models_user_session_usersession",
- "target": "tests_test_sessions_testusersessionmodel_test_toDict_basic"
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_request_id_requestidmiddleware",
+ "target": "tests_test_error_handlers_testerrorresponsemodel"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_sessions.py",
- "source_location": "L34",
- "weight": 1.0,
- "source": "models_user_session_usersession",
- "target": "tests_test_sessions_testusersessionmodel_test_toDict_with_sensitive"
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L17",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_request_id_requestidmiddleware",
+ "target": "tests_test_error_handlers_testrequestcontextfilter"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_sessions.py",
- "source_location": "L45",
- "weight": 1.0,
- "source": "models_user_session_usersession",
- "target": "tests_test_sessions_testusersessionmodel_test_toDict_hides_useragent"
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L17",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_request_id_requestidmiddleware",
+ "target": "tests_test_error_handlers_testhttpexceptionhandler"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_sessions.py",
- "source_location": "L118",
- "weight": 1.0,
- "source": "models_user_session_usersession",
- "target": "tests_test_sessions_testusersessionmodel_test_todict_with_timestamps"
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L17",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_request_id_requestidmiddleware",
+ "target": "tests_test_error_handlers_testvalidationexceptionhandler"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_sessions.py",
- "source_location": "L132",
- "weight": 1.0,
- "source": "models_user_session_usersession",
- "target": "tests_test_sessions_testusersessionmodel_test_todict_without_timestamps"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/service/authentication_service.py",
- "source_location": "L9",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_service_authentication_service_py",
- "target": "service_authentication_service_authenticationservice"
- },
- {
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/service/authentication_service.py",
- "source_location": "L11",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_service_authentication_service_py",
- "target": "service_authentication_service_initialize"
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L17",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_request_id_requestidmiddleware",
+ "target": "tests_test_error_handlers_testgenericexceptionhandler"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "main/service/authentication_service.py",
- "source_location": "L6",
+ "source_file": "tests/test_error_handlers.py",
+ "source_location": "L17",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "service_authentication_service_authenticationservice",
- "target": "utils_service_manager_servicemanager"
+ "source": "utils_request_id_requestidmiddleware",
+ "target": "tests_test_error_handlers_testsuccesspassthrough"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/service/authentication_service.py",
- "source_location": "L12",
- "weight": 1.0,
- "source": "service_authentication_service_initialize",
- "target": "utils_service_manager_getapp"
+ "source_file": "tests/test_request_id.py",
+ "source_location": "L10",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_request_id_requestidmiddleware",
+ "target": "tests_test_request_id_testrequestidmiddleware"
},
{
- "relation": "contains",
+ "relation": "imports_from",
+ "context": "import",
"confidence": "EXTRACTED",
- "source_file": "main/service/prometheus_service.py",
- "source_location": "L23",
+ "source_file": "main/utils/roles.py",
+ "source_location": "L2",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_service_prometheus_service_py",
- "target": "service_prometheus_service_memorymaintenance"
+ "source": "main_utils_roles_py",
+ "target": "fastapi"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/service/prometheus_service.py",
+ "source_file": "main/utils/roles.py",
"source_location": "L4",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_service_prometheus_service_py",
- "target": "service_prometheus_service_prometheusservice"
+ "source": "main_utils_roles_py",
+ "target": "utils_roles_permission"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/service/prometheus_service.py",
- "source_location": "L6",
+ "source_file": "main/utils/roles.py",
+ "source_location": "L28",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_service_prometheus_service_py",
- "target": "service_prometheus_service_initialize"
+ "source": "main_utils_roles_py",
+ "target": "utils_roles_all"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/service/prometheus_service.py",
- "source_location": "L60",
+ "source_file": "main/utils/roles.py",
+ "source_location": "L32",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_service_prometheus_service_py",
- "target": "service_prometheus_service_registermemorymaintenancejob"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L49",
- "weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_memory_maintenance_testdecay_test_active_memory_decays"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L56",
- "weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_memory_maintenance_testdecay_test_zero_access_count_still_decays"
+ "source": "main_utils_roles_py",
+ "target": "utils_roles_roles"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L62",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/roles.py",
+ "source_location": "L51",
"weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_memory_maintenance_testdecay_test_high_score_decays_proportionally"
+ "confidence_score": 1.0,
+ "source": "main_utils_roles_py",
+ "target": "utils_roles_checkaccess"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L69",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/roles.py",
+ "source_location": "L64",
"weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_memory_maintenance_testdecay_test_very_low_score_stays_above_zero"
+ "confidence_score": 1.0,
+ "source": "main_utils_roles_py",
+ "target": "utils_roles_requirepermission"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L76",
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/roles.py",
+ "source_location": "L4",
"weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_memory_maintenance_testdecay_test_multiple_users_all_decayed"
+ "confidence_score": 1.0,
+ "source": "utils_roles_permission",
+ "target": "intflag"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L87",
- "weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_memory_maintenance_testarchive_test_dead_memory_archived"
+ "source_file": "tests/test_roles.py",
+ "source_location": "L7",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_roles_testpermission"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L94",
- "weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_memory_maintenance_testarchive_test_low_score_but_recent_not_archived"
+ "source_file": "tests/test_roles.py",
+ "source_location": "L7",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_roles_testroles"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L101",
- "weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_memory_maintenance_testarchive_test_zero_access_but_high_score_not_archived"
+ "source_file": "tests/test_roles_coverage.py",
+ "source_location": "L5",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_roles_coverage_testcheckaccess"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L108",
- "weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_memory_maintenance_testarchive_test_accessed_memory_not_archived"
+ "source_file": "tests/test_roles_coverage.py",
+ "source_location": "L5",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_roles_coverage_testrequirepermission"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L117",
- "weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_memory_maintenance_testarchive_test_already_archived_not_double_archived"
+ "source_file": "tests/test_roles_coverage.py",
+ "source_location": "L5",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_roles_coverage_testpermissionall"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L125",
- "weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_memory_maintenance_testarchive_test_multiple_users_independent_archive"
+ "source_file": "tests/test_roles_coverage.py",
+ "source_location": "L5",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_roles_coverage_testroleshierarchy"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L137",
- "weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_memory_maintenance_testdecayandarchivetogether_test_decay_then_archive_check"
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L7",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "prometheus_memory_memorymanager"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L145",
- "weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_memory_maintenance_testdecayandarchivetogether_test_score_above_threshold_after_decay_not_archived"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L6",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_memory_manager_testgetmemorylimit"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L151",
- "weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_memory_maintenance_testdecayandarchivetogether_test_score_just_below_threshold_archived"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L6",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_memory_manager_testupsertmemory"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L158",
- "weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_memory_maintenance_testdecayandarchivetogether_test_days_just_below_threshold_not_archived"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L6",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_memory_manager_testcountmemories"
},
- {
- "relation": "calls",
- "context": "call",
+ {
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L164",
- "weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_memory_maintenance_testdecayandarchivetogether_test_days_just_above_threshold_archived"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L6",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_memory_manager_testgetusermemories"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_memory_maintenance.py",
- "source_location": "L171",
- "weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_memory_maintenance_testemptydatabase_test_no_memories_does_not_crash"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L6",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_memory_manager_testdeletememory"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_type_aware_decay.py",
- "source_location": "L32",
- "weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_type_aware_decay_testtypeawaredecay_test_preference_decays_slowly"
+ "source_file": "tests/test_memory_manager.py",
+ "source_location": "L6",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_memory_manager_testsearchfulltext"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_type_aware_decay.py",
- "source_location": "L38",
- "weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_type_aware_decay_testtypeawaredecay_test_context_decays_fast"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testissecurescheme"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_type_aware_decay.py",
- "source_location": "L44",
- "weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_type_aware_decay_testtypeawaredecay_test_analysis_decays_normally"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testhealthendpoint"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_type_aware_decay.py",
- "source_location": "L50",
- "weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_type_aware_decay_testtypeawaredecay_test_feedback_decays_medium"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testregisterendpoint"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_type_aware_decay.py",
- "source_location": "L56",
- "weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_type_aware_decay_testtypeawaredecay_test_unknown_type_uses_default"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testloginendpoint"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_type_aware_decay.py",
- "source_location": "L66",
- "weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_type_aware_decay_testtypeawaredecay_test_mixed_types_all_correct"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testlogoutendpoint"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_type_aware_decay.py",
- "source_location": "L82",
- "weight": 1.0,
- "source": "service_prometheus_service_memorymaintenance",
- "target": "tests_test_type_aware_decay_testtypeawaredecay_test_preference_survives_longer"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testgooglelogin"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "main/service/prometheus_service.py",
- "source_location": "L1",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "service_prometheus_service_prometheusservice",
- "target": "utils_service_manager_servicemanager"
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testgooglecallback"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "main/service/prometheus_service.py",
- "source_location": "L13",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "service_prometheus_service_prometheusservice",
- "target": "models_memory_usermemory"
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testuserhealth"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/service/prometheus_service.py",
- "source_location": "L64",
- "weight": 1.0,
- "source": "service_prometheus_service_initialize",
- "target": "utils_service_manager_getapp"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testgetme"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/service/prometheus_service.py",
- "source_location": "L12",
- "weight": 1.0,
- "source": "service_prometheus_service_initialize",
- "target": "models_loader_getembeddingmodel"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testupgradeendpoints"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/service/prometheus_service.py",
- "source_location": "L70",
- "weight": 1.0,
- "source": "service_prometheus_service_initialize",
- "target": "utils_scheduler_registerjob"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testadminaccess"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/service/prometheus_service.py",
- "source_location": "L87",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "service_prometheus_service_initialize",
- "target": "service_prometheus_service_registermemorymaintenancejob"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testgetsessions"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/service/scraper_service.py",
- "source_location": "L14",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_service_scraper_service_py",
- "target": "service_scraper_service_runscraper"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testgetcurrentsession"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/service/scraper_service.py",
- "source_location": "L22",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_service_scraper_service_py",
- "target": "service_scraper_service_registerscraperjobs"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testrevokesession"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/service/scraper_service.py",
- "source_location": "L25",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_service_scraper_service_py",
- "target": "service_scraper_service_scraperservice"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testrevokeallsessions"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/service/scraper_service.py",
- "source_location": "L27",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_service_scraper_service_py",
- "target": "service_scraper_service_initialize"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testprometheushealth"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/service/scraper_service.py",
- "source_location": "L60",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "service_scraper_service_initialize",
- "target": "service_scraper_service_registerscraperjobs"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testprometheusgetsessions"
},
{
- "relation": "rationale_for",
- "confidence": "EXTRACTED",
- "source_file": "main/service/scraper_service.py",
- "source_location": "L23",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "service_scraper_service_rationale_23",
- "target": "service_scraper_service_registerscraperjobs"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testprometheuscreatesession"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/service/scraper_service.py",
- "source_location": "L42",
- "weight": 1.0,
- "source": "service_scraper_service_registerscraperjobs",
- "target": "utils_scheduler_registerjob"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testprometheusupdatesessiontitle"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/service/stocksapi_service.py",
- "source_location": "L10",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_service_stocksapi_service_py",
- "target": "service_stocksapi_service_mcpdetectmiddleware"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testprometheusgethistory"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/service/stocksapi_service.py",
- "source_location": "L6",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_service_stocksapi_service_py",
- "target": "service_stocksapi_service_stocksapiservice"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testprometheusdeletesession"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/service/stocksapi_service.py",
- "source_location": "L8",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_service_stocksapi_service_py",
- "target": "service_stocksapi_service_initialize"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testprometheuschat"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "main/service/stocksapi_service.py",
- "source_location": "L11",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "service_stocksapi_service_mcpdetectmiddleware",
- "target": "service_stocksapi_service_mcpdetectmiddleware_init"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_teststocksapihealth"
},
{
- "relation": "method",
- "confidence": "EXTRACTED",
- "source_file": "main/service/stocksapi_service.py",
- "source_location": "L14",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "service_stocksapi_service_mcpdetectmiddleware",
- "target": "service_stocksapi_service_mcpdetectmiddleware_call"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_teststocksapikeytest"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "main/service/stocksapi_service.py",
- "source_location": "L4",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "service_stocksapi_service_mcpdetectmiddleware",
- "target": "utils_service_manager_servicemanager"
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_teststocksapihistorical"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "main/service/stocksapi_service.py",
- "source_location": "L1",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "service_stocksapi_service_stocksapiservice",
- "target": "utils_service_manager_servicemanager"
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_teststocksapifundamental"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/service/stocksapi_service.py",
- "source_location": "L29",
- "weight": 1.0,
- "source": "service_stocksapi_service_initialize",
- "target": "utils_service_manager_getapp"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_teststocksapigeneratekey"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/service/user_service.py",
- "source_location": "L16",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_service_user_service_py",
- "target": "service_user_service_removeinactivesessions"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testaddroletouser"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/service/user_service.py",
- "source_location": "L4",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_service_user_service_py",
- "target": "service_user_service_userservice"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testgetcurrentuser"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/service/user_service.py",
- "source_location": "L6",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_service_user_service_py",
- "target": "service_user_service_initialize"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testhashpasswordempty"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/service/user_service.py",
- "source_location": "L46",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_service_user_service_py",
- "target": "service_user_service_registersessioncleanupjobs"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testverifyaccesstoken"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/service/user_service.py",
- "source_location": "L33",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_service_user_service_py",
- "target": "service_user_service_inactivesessionsscheduler"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testextracttokenpayloadreraise"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "main/service/user_service.py",
- "source_location": "L1",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "service_user_service_userservice",
- "target": "utils_service_manager_servicemanager"
+ "source": "utils_roles_permission",
+ "target": "tests_test_controllers_coverage_testmanagerinit"
+ },
+ {
+ "relation": "inherits",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/roles.py",
+ "source_location": "L32",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "intflag",
+ "target": "utils_roles_roles"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/service/user_service.py",
- "source_location": "L42",
+ "source_file": "main/app/stocks_api/compressor.py",
+ "source_location": "L91",
"weight": 1.0,
- "source": "service_user_service_initialize",
- "target": "utils_service_manager_getapp"
+ "source": "stocks_api_compressor_tocolumnar",
+ "target": "utils_roles_all"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/service/user_service.py",
- "source_location": "L48",
+ "source_file": "tests/test_vector_utils.py",
+ "source_location": "L112",
"weight": 1.0,
- "source": "service_user_service_initialize",
- "target": "utils_scheduler_registerjob"
+ "source": "utils_roles_all",
+ "target": "tests_test_vector_utils_testcontenthash_test_hex_format"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/service/user_service.py",
- "source_location": "L72",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "service_user_service_initialize",
- "target": "service_user_service_registersessioncleanupjobs"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_roles.py",
+ "source_location": "L7",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_roles_testpermission"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/utils/connectivity.py",
- "source_location": "L13",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_utils_connectivity_py",
- "target": "utils_connectivity_checkdatabaseconnection"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_roles.py",
+ "source_location": "L7",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_roles_testroles"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/utils/connectivity.py",
- "source_location": "L51",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_utils_connectivity_py",
- "target": "utils_connectivity_checkserviceconnection"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_roles_coverage.py",
+ "source_location": "L65",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_roles_coverage_testcheckaccess"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/utils/connectivity.py",
- "source_location": "L13",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_utils_connectivity_py",
- "target": "utils_connectivity_checkmysqlconnection"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_roles_coverage.py",
+ "source_location": "L65",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_roles_coverage_testrequirepermission"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/utils/connectivity.py",
- "source_location": "L13",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_utils_connectivity_py",
- "target": "utils_connectivity_checksingledb"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_roles_coverage.py",
+ "source_location": "L65",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_roles_coverage_testpermissionall"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_connectivity_coverage.py",
- "source_location": "L112",
- "weight": 1.0,
- "source": "utils_connectivity_checkserviceconnection",
- "target": "tests_test_connectivity_coverage_test_service_not_found"
+ "source_file": "tests/test_roles_coverage.py",
+ "source_location": "L65",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_roles_coverage_testroleshierarchy"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_connectivity_coverage.py",
- "source_location": "L124",
- "weight": 1.0,
- "source": "utils_connectivity_checkserviceconnection",
- "target": "tests_test_connectivity_coverage_test_stocks_api_health_ok"
+ "source_file": "main/app/prometheus/memory.py",
+ "source_location": "L7",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "prometheus_memory_memorymanager"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_connectivity_coverage.py",
- "source_location": "L139",
- "weight": 1.0,
- "source": "utils_connectivity_checkserviceconnection",
- "target": "tests_test_connectivity_coverage_test_non_stocks_prefix"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testissecurescheme"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_connectivity_coverage.py",
- "source_location": "L154",
- "weight": 1.0,
- "source": "utils_connectivity_checkserviceconnection",
- "target": "tests_test_connectivity_coverage_test_non_200_status"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testhealthendpoint"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_connectivity_coverage.py",
- "source_location": "L164",
- "weight": 1.0,
- "source": "utils_connectivity_checkserviceconnection",
- "target": "tests_test_connectivity_coverage_test_connection_error"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testregisterendpoint"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_connectivity_coverage.py",
- "source_location": "L174",
- "weight": 1.0,
- "source": "utils_connectivity_checkserviceconnection",
- "target": "tests_test_connectivity_coverage_test_timeout"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testloginendpoint"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_connectivity_coverage.py",
- "source_location": "L184",
- "weight": 1.0,
- "source": "utils_connectivity_checkserviceconnection",
- "target": "tests_test_connectivity_coverage_test_request_exception"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testlogoutendpoint"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_connectivity_coverage.py",
- "source_location": "L194",
- "weight": 1.0,
- "source": "utils_connectivity_checkserviceconnection",
- "target": "tests_test_connectivity_coverage_test_generic_exception"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testgooglelogin"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/utils/connectivity.py",
- "source_location": "L66",
- "weight": 1.0,
- "source": "utils_connectivity_checkserviceconnection",
- "target": "utils_http_session_get_session"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testgooglecallback"
},
{
- "relation": "imports_from",
- "context": "import",
- "confidence": "EXTRACTED",
- "source_file": "main/utils/errors.py",
- "source_location": "L5",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_utils_errors_py",
- "target": "fastapi"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testuserhealth"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/utils/errors.py",
- "source_location": "L13",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_utils_errors_py",
- "target": "utils_errors_errorresponse"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testgetme"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/utils/errors.py",
- "source_location": "L21",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_utils_errors_py",
- "target": "utils_errors_requestcontextfilter"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testupgradeendpoints"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/utils/errors.py",
- "source_location": "L27",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_utils_errors_py",
- "target": "utils_errors_builderrorresponse"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testadminaccess"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/utils/errors.py",
- "source_location": "L37",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_utils_errors_py",
- "target": "utils_errors_httpexceptionhandler"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testgetsessions"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/utils/errors.py",
- "source_location": "L44",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_utils_errors_py",
- "target": "utils_errors_validationexceptionhandler"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testgetcurrentsession"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/utils/errors.py",
- "source_location": "L56",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_utils_errors_py",
- "target": "utils_errors_genericexceptionhandler"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testrevokesession"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/utils/errors.py",
- "source_location": "L65",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_utils_errors_py",
- "target": "utils_errors_registererrorhandlers"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testrevokeallsessions"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/utils/errors.py",
- "source_location": "L29",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_utils_errors_py",
- "target": "utils_errors_build_error_response"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testprometheushealth"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/utils/errors.py",
- "source_location": "L38",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_utils_errors_py",
- "target": "utils_errors_http_exception_handler"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testprometheusgetsessions"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/utils/errors.py",
- "source_location": "L45",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_utils_errors_py",
- "target": "utils_errors_validation_exception_handler"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testprometheuscreatesession"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/utils/errors.py",
- "source_location": "L57",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_utils_errors_py",
- "target": "utils_errors_generic_exception_handler"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testprometheusupdatesessiontitle"
},
{
- "relation": "contains",
- "confidence": "EXTRACTED",
- "source_file": "main/utils/errors.py",
- "source_location": "L66",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "main_utils_errors_py",
- "target": "utils_errors_register_error_handlers"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testprometheusgethistory"
},
{
- "relation": "inherits",
- "confidence": "EXTRACTED",
- "source_file": "main/utils/errors.py",
- "source_location": "L13",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "utils_errors_errorresponse",
- "target": "basemodel"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testprometheusdeletesession"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "EXTRACTED",
- "source_file": "main/utils/errors.py",
- "source_location": "L28",
- "weight": 1.0,
- "confidence_score": 1.0,
- "source": "utils_errors_errorresponse",
- "target": "utils_errors_builderrorresponse"
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testprometheuschat"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_teststocksapihealth"
+ },
+ {
+ "relation": "uses",
+ "confidence": "INFERRED",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_teststocksapikeytest"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L12",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "utils_errors_errorresponse",
- "target": "tests_test_error_handlers_samplebody"
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_teststocksapihistorical"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L12",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "utils_errors_errorresponse",
- "target": "tests_test_error_handlers_testerrorresponsemodel"
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_teststocksapifundamental"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L12",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "utils_errors_errorresponse",
- "target": "tests_test_error_handlers_testrequestcontextfilter"
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_teststocksapigeneratekey"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L12",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "utils_errors_errorresponse",
- "target": "tests_test_error_handlers_testhttpexceptionhandler"
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testaddroletouser"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L12",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "utils_errors_errorresponse",
- "target": "tests_test_error_handlers_testvalidationexceptionhandler"
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testgetcurrentuser"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L12",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "utils_errors_errorresponse",
- "target": "tests_test_error_handlers_testgenericexceptionhandler"
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testhashpasswordempty"
},
{
"relation": "uses",
"confidence": "INFERRED",
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L12",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
"weight": 0.8,
"confidence_score": 0.5,
- "source": "utils_errors_errorresponse",
- "target": "tests_test_error_handlers_testsuccesspassthrough"
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testverifyaccesstoken"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L56",
- "weight": 1.0,
- "source": "utils_errors_errorresponse",
- "target": "tests_test_error_handlers_testerrorresponsemodel_test_error_response_structure"
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testextracttokenpayloadreraise"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "uses",
"confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L65",
+ "source_file": "tests/test_controllers_coverage.py",
+ "source_location": "L61",
+ "weight": 0.8,
+ "confidence_score": 0.5,
+ "source": "utils_roles_roles",
+ "target": "tests_test_controllers_coverage_testmanagerinit"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/scheduler.py",
+ "source_location": "L32",
"weight": 1.0,
- "source": "utils_errors_errorresponse",
- "target": "tests_test_error_handlers_testerrorresponsemodel_test_error_response_with_detail_and_request_id"
+ "confidence_score": 1.0,
+ "source": "main_utils_scheduler_py",
+ "target": "utils_scheduler_getsharedscheduler"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/errors.py",
- "source_location": "L30",
+ "source_file": "main/utils/scheduler.py",
+ "source_location": "L42",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "utils_errors_errorresponse",
- "target": "utils_errors_build_error_response"
+ "source": "main_utils_scheduler_py",
+ "target": "utils_scheduler_registerjob"
},
{
- "relation": "inherits",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L20",
+ "source_file": "main/utils/scheduler.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "basemodel",
- "target": "tests_test_error_handlers_samplebody"
+ "source": "utils_scheduler_rationale_1",
+ "target": "main_utils_scheduler_py"
},
{
- "relation": "method",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/utils/errors.py",
- "source_location": "L24",
+ "source_file": "main/utils/scheduler.py",
+ "source_location": "L50",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "utils_errors_requestcontextfilter",
- "target": "utils_errors_requestcontextfilter_filter"
+ "source": "utils_scheduler_registerjob",
+ "target": "utils_scheduler_getsharedscheduler"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/utils/logging_config.py",
- "source_location": "L9",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_errors_requestcontextfilter",
- "target": "utils_logging_config_discordhandler"
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/scheduler.py",
+ "source_location": "L33",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "utils_scheduler_rationale_33",
+ "target": "utils_scheduler_getsharedscheduler"
},
{
"relation": "calls",
"context": "call",
"confidence": "INFERRED",
"confidence_score": 0.8,
- "source_file": "main/utils/logging_config.py",
- "source_location": "L20",
+ "source_file": "main/service/user_service.py",
+ "source_location": "L55",
"weight": 1.0,
- "source": "utils_errors_requestcontextfilter",
- "target": "utils_logging_config_setuplogging"
+ "source": "service_user_service_registersessioncleanupjobs",
+ "target": "utils_scheduler_registerjob"
},
{
- "relation": "uses",
+ "relation": "calls",
+ "context": "call",
"confidence": "INFERRED",
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L12",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_errors_requestcontextfilter",
- "target": "tests_test_error_handlers_samplebody"
+ "confidence_score": 0.8,
+ "source_file": "main/service/prometheus_service.py",
+ "source_location": "L69",
+ "weight": 1.0,
+ "source": "service_prometheus_service_registermemorymaintenancejob",
+ "target": "utils_scheduler_registerjob"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L12",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_errors_requestcontextfilter",
- "target": "tests_test_error_handlers_testerrorresponsemodel"
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/scheduler.py",
+ "source_location": "L43",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "utils_scheduler_rationale_43",
+ "target": "utils_scheduler_registerjob"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L12",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_errors_requestcontextfilter",
- "target": "tests_test_error_handlers_testrequestcontextfilter"
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/service_manager.py",
+ "source_location": "L8",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_utils_service_manager_py",
+ "target": "fastapi"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L12",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_errors_requestcontextfilter",
- "target": "tests_test_error_handlers_testhttpexceptionhandler"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/service_manager.py",
+ "source_location": "L21",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_utils_service_manager_py",
+ "target": "utils_service_manager_getapp"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L12",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_errors_requestcontextfilter",
- "target": "tests_test_error_handlers_testvalidationexceptionhandler"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/service_manager.py",
+ "source_location": "L48",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_utils_service_manager_py",
+ "target": "utils_service_manager_runall"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L12",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_errors_requestcontextfilter",
- "target": "tests_test_error_handlers_testgenericexceptionhandler"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/service_manager.py",
+ "source_location": "L16",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "main_utils_service_manager_py",
+ "target": "utils_service_manager_servicemanager"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_error_handlers.py",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/models/loader.py",
"source_location": "L12",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_errors_requestcontextfilter",
- "target": "tests_test_error_handlers_testsuccesspassthrough"
- },
- {
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L78",
"weight": 1.0,
- "source": "utils_errors_requestcontextfilter",
- "target": "tests_test_error_handlers_testrequestcontextfilter_test_injects_request_id_from_contextvar"
+ "confidence_score": 1.0,
+ "source": "main_utils_models_loader_py",
+ "target": "models_loader_getembeddingmodel"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L87",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/utils/models/loader.py",
+ "source_location": "L21",
"weight": 1.0,
- "source": "utils_errors_requestcontextfilter",
- "target": "tests_test_error_handlers_testrequestcontextfilter_test_empty_request_id_default"
+ "confidence_score": 1.0,
+ "source": "main_utils_models_loader_py",
+ "target": "models_loader_embed"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/errors.py",
- "source_location": "L22",
+ "source_file": "main/utils/models/loader.py",
+ "source_location": "L11",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "utils_errors_requestcontextfilter",
- "target": "utils_errors_rationale_22"
+ "source": "main_utils_models_loader_py",
+ "target": "models_loader_downloadmodel"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/utils/errors.py",
- "source_location": "L40",
+ "source_file": "main/utils/models/loader.py",
+ "source_location": "L22",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "utils_errors_builderrorresponse",
- "target": "utils_errors_httpexceptionhandler"
+ "source": "models_loader_getembeddingmodel",
+ "target": "models_loader_embed"
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
- "source_file": "main/utils/errors.py",
- "source_location": "L52",
+ "source_file": "main/utils/models/loader.py",
+ "source_location": "L21",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "utils_errors_builderrorresponse",
- "target": "utils_errors_validationexceptionhandler"
+ "source": "models_loader_getembeddingmodel",
+ "target": "models_loader_downloadmodel"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/errors.py",
- "source_location": "L61",
+ "source_file": "migrations/env.py",
+ "source_location": "L25",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "utils_errors_builderrorresponse",
- "target": "utils_errors_genericexceptionhandler"
+ "source": "migrations_env_py",
+ "target": "migrations_env_getdatabaseurl"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/conftest.py",
- "source_location": "L84",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/env.py",
+ "source_location": "L28",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_conftest_stocks_http_client"
+ "confidence_score": 1.0,
+ "source": "migrations_env_py",
+ "target": "migrations_env_runmigrationsoffline"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/conftest.py",
- "source_location": "L93",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/env.py",
+ "source_location": "L39",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_conftest_client"
+ "confidence_score": 1.0,
+ "source": "migrations_env_py",
+ "target": "migrations_env_runmigrationsonline"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L31",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/env.py",
+ "source_location": "L30",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_controllers_coverage_make_auth_client"
+ "confidence_score": 1.0,
+ "source": "migrations_env_getdatabaseurl",
+ "target": "migrations_env_runmigrationsoffline"
},
{
"relation": "calls",
"context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L46",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/env.py",
+ "source_location": "L41",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_controllers_coverage_make_user_client"
+ "confidence_score": 1.0,
+ "source": "migrations_env_getdatabaseurl",
+ "target": "migrations_env_runmigrationsonline"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L66",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/25af7ad931e7_initial_migration.py",
+ "source_location": "L21",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_controllers_coverage_make_prometheus_client"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_25af7ad931e7_initial_migration_py",
+ "target": "versions_25af7ad931e7_initial_migration_upgrade"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L87",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/25af7ad931e7_initial_migration.py",
+ "source_location": "L61",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_controllers_coverage_make_stocksapi_client"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_25af7ad931e7_initial_migration_py",
+ "target": "versions_25af7ad931e7_initial_migration_downgrade"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L685",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/25af7ad931e7_initial_migration.py",
+ "source_location": "L1",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_controllers_coverage_testgetsessions_test_get_sessions"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_25af7ad931e7_initial_migration_py",
+ "target": "versions_25af7ad931e7_initial_migration_rationale_1"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L731",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/4a2f1c9e3b5d_user_sessions.py",
+ "source_location": "L20",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_controllers_coverage_testgetcurrentsession_test_get_current_session_found"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_4a2f1c9e3b5d_user_sessions_py",
+ "target": "versions_4a2f1c9e3b5d_user_sessions_upgrade"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L754",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/4a2f1c9e3b5d_user_sessions.py",
+ "source_location": "L47",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_controllers_coverage_testgetcurrentsession_test_get_current_session_not_found"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_4a2f1c9e3b5d_user_sessions_py",
+ "target": "versions_4a2f1c9e3b5d_user_sessions_downgrade"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L784",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/4a2f1c9e3b5d_user_sessions.py",
+ "source_location": "L1",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_controllers_coverage_testrevokesession_test_revoke_session_success"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_4a2f1c9e3b5d_user_sessions_py",
+ "target": "versions_4a2f1c9e3b5d_user_sessions_rationale_1"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L807",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/9f3b339dde20_drop_unused_user_sessions_columns.py",
+ "source_location": "L43",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_controllers_coverage_testrevokesession_test_revoke_session_not_found"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_9f3b339dde20_drop_unused_user_sessions_columns_py",
+ "target": "versions_9f3b339dde20_drop_unused_user_sessions_columns_upgrade"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L832",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/9f3b339dde20_drop_unused_user_sessions_columns.py",
+ "source_location": "L50",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_controllers_coverage_testrevokesession_test_revoke_session_failure"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_9f3b339dde20_drop_unused_user_sessions_columns_py",
+ "target": "versions_9f3b339dde20_drop_unused_user_sessions_columns_downgrade"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L858",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/9f3b339dde20_drop_unused_user_sessions_columns.py",
+ "source_location": "L1",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_controllers_coverage_testrevokeallsessions_test_revoke_all_sessions"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_9f3b339dde20_drop_unused_user_sessions_columns_py",
+ "target": "versions_9f3b339dde20_drop_unused_user_sessions_columns_rationale_1"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L975",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/9f3b339dde20_drop_unused_user_sessions_columns.py",
+ "source_location": "L44",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_controllers_coverage_testprometheusgethistory_test_get_history_found"
+ "confidence_score": 1.0,
+ "source": "versions_9f3b339dde20_drop_unused_user_sessions_columns_upgrade",
+ "target": "versions_9f3b339dde20_drop_unused_user_sessions_columns_rationale_44"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1011",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/9f3b339dde20_drop_unused_user_sessions_columns.py",
+ "source_location": "L51",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_controllers_coverage_testprometheusgethistory_test_get_history_not_found"
+ "confidence_score": 1.0,
+ "source": "versions_9f3b339dde20_drop_unused_user_sessions_columns_downgrade",
+ "target": "versions_9f3b339dde20_drop_unused_user_sessions_columns_rationale_51"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1090",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/add_access_token_hash.py",
+ "source_location": "L21",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_controllers_coverage_testprometheuschat_test_chat_existing_session_verified"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_add_access_token_hash_py",
+ "target": "versions_add_access_token_hash_upgrade"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L1132",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/add_access_token_hash.py",
+ "source_location": "L54",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_controllers_coverage_testprometheuschat_test_chat_existing_session_not_owner"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_add_access_token_hash_py",
+ "target": "versions_add_access_token_hash_downgrade"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L28",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/add_access_token_hash.py",
+ "source_location": "L1",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_error_handlers_app"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_add_access_token_hash_py",
+ "target": "versions_add_access_token_hash_rationale_1"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_oauth_cookie_security.py",
- "source_location": "L28",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/add_access_token_hash.py",
+ "source_location": "L22",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_oauth_cookie_security_make_callback_client"
+ "confidence_score": 1.0,
+ "source": "versions_add_access_token_hash_upgrade",
+ "target": "versions_add_access_token_hash_rationale_22"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_sso_state_cookie.py",
- "source_location": "L32",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/add_access_token_hash.py",
+ "source_location": "L55",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_sso_state_cookie_build_app"
+ "confidence_score": 1.0,
+ "source": "versions_add_access_token_hash_downgrade",
+ "target": "versions_add_access_token_hash_rationale_55"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L38",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/b1c2d3e4f5a6_create_prometheus_memories.py",
+ "source_location": "L22",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_memory_controller_testmemorycontrollerroutes_test_get_memories_rejects_unauthenticated"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_b1c2d3e4f5a6_create_prometheus_memories_py",
+ "target": "versions_b1c2d3e4f5a6_create_prometheus_memories_upgrade"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_memory_controller.py",
- "source_location": "L57",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/b1c2d3e4f5a6_create_prometheus_memories.py",
+ "source_location": "L50",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_memory_controller_testmemorycontrollerroutes_test_get_memories_rejects_basic_user"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_b1c2d3e4f5a6_create_prometheus_memories_py",
+ "target": "versions_b1c2d3e4f5a6_create_prometheus_memories_downgrade"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1165",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/b1c2d3e4f5a6_create_prometheus_memories.py",
+ "source_location": "L60",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_stocks_api_coverage_testquerycotations_test_cotations_http_route"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_b1c2d3e4f5a6_create_prometheus_memories_py",
+ "target": "versions_b1c2d3e4f5a6_create_prometheus_memories_fix_partial"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1353",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/b1c2d3e4f5a6_create_prometheus_memories.py",
+ "source_location": "L1",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_stocks_api_coverage_testquerylivecotation_test_http_route_returns_200"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_b1c2d3e4f5a6_create_prometheus_memories_py",
+ "target": "versions_b1c2d3e4f5a6_create_prometheus_memories_rationale_1"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1377",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/c2e4f6a8b0c1_drop_embedding_model_version.py",
+ "source_location": "L22",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_stocks_api_coverage_testquerylivecotation_test_http_route_search_required"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_c2e4f6a8b0c1_drop_embedding_model_version_py",
+ "target": "versions_c2e4f6a8b0c1_drop_embedding_model_version_upgrade"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1466",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/c2e4f6a8b0c1_drop_embedding_model_version.py",
+ "source_location": "L27",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_stocks_api_coverage_testquerylivecotation_test_cotations_search_required"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_c2e4f6a8b0c1_drop_embedding_model_version_py",
+ "target": "versions_c2e4f6a8b0c1_drop_embedding_model_version_downgrade"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_stocks_api_coverage.py",
- "source_location": "L1298",
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/c2e4f6a8b0c1_drop_embedding_model_version.py",
+ "source_location": "L1",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_stocks_api_coverage_testquerycotations_test_cotations_search_required"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_c2e4f6a8b0c1_drop_embedding_model_version_py",
+ "target": "versions_c2e4f6a8b0c1_drop_embedding_model_version_rationale_1"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L156",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/d3df3fc5ca72_rename_memory_base_score.py",
+ "source_location": "L17",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_controllers_coverage_testregisterendpoint_make_register_client"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_d3df3fc5ca72_rename_memory_base_score_py",
+ "target": "versions_d3df3fc5ca72_rename_memory_base_score_upgrade"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L236",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/d3df3fc5ca72_rename_memory_base_score.py",
+ "source_location": "L21",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_controllers_coverage_testloginendpoint_make_login_client"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_d3df3fc5ca72_rename_memory_base_score_py",
+ "target": "versions_d3df3fc5ca72_rename_memory_base_score_downgrade"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L289",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/d3e4f5a6b7c8_add_prometheus_sandboxes.py",
+ "source_location": "L22",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_controllers_coverage_testlogoutendpoint_make_logout_client"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_d3e4f5a6b7c8_add_prometheus_sandboxes_py",
+ "target": "versions_d3e4f5a6b7c8_add_prometheus_sandboxes_upgrade"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L433",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/d3e4f5a6b7c8_add_prometheus_sandboxes.py",
+ "source_location": "L36",
"weight": 1.0,
- "source": "utils_errors_registererrorhandlers",
- "target": "tests_test_controllers_coverage_testgooglecallback_make_callback_client"
+ "confidence_score": 1.0,
+ "source": "migrations_versions_d3e4f5a6b7c8_add_prometheus_sandboxes_py",
+ "target": "versions_d3e4f5a6b7c8_add_prometheus_sandboxes_downgrade"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/utils/http_session.py",
- "source_location": "L9",
+ "source_file": "migrations/versions/d3e4f5a6b7c8_add_prometheus_sandboxes.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_http_session_py",
- "target": "utils_http_session_getsession"
+ "source": "migrations_versions_d3e4f5a6b7c8_add_prometheus_sandboxes_py",
+ "target": "versions_d3e4f5a6b7c8_add_prometheus_sandboxes_rationale_1"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/http_session.py",
- "source_location": "L22",
+ "source_file": "migrations/versions/e4f5a6b7c8d9_fix_fulltext_index_prometheus_memories.py",
+ "source_location": "L21",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_http_session_py",
- "target": "utils_http_session_cleanup"
+ "source": "migrations_versions_e4f5a6b7c8d9_fix_fulltext_index_prometheus_memories_py",
+ "target": "versions_e4f5a6b7c8d9_fix_fulltext_index_prometheus_memories_upgrade"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/http_session.py",
- "source_location": "L8",
+ "source_file": "migrations/versions/e4f5a6b7c8d9_fix_fulltext_index_prometheus_memories.py",
+ "source_location": "L45",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_http_session_py",
- "target": "utils_http_session_get_session"
+ "source": "migrations_versions_e4f5a6b7c8d9_fix_fulltext_index_prometheus_memories_py",
+ "target": "versions_e4f5a6b7c8d9_fix_fulltext_index_prometheus_memories_downgrade"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/utils/logging_config.py",
- "source_location": "L12",
+ "source_file": "migrations/versions/e4f5a6b7c8d9_fix_fulltext_index_prometheus_memories.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_logging_config_py",
- "target": "utils_logging_config_setuplogging"
+ "source": "versions_e4f5a6b7c8d9_fix_fulltext_index_prometheus_memories_rationale_1",
+ "target": "migrations_versions_e4f5a6b7c8d9_fix_fulltext_index_prometheus_memories_py"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/logging_config.py",
- "source_location": "L24",
+ "source_file": "migrations/versions/e5f6a7b8c9d0_drop_workspace_path_prometheus_sandboxes.py",
+ "source_location": "L22",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_logging_config_py",
- "target": "utils_logging_config_discordhandler"
+ "source": "migrations_versions_e5f6a7b8c9d0_drop_workspace_path_prometheus_sandboxes_py",
+ "target": "versions_e5f6a7b8c9d0_drop_workspace_path_prometheus_sandboxes_upgrade"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/logging_config.py",
- "source_location": "L49",
+ "source_file": "migrations/versions/e5f6a7b8c9d0_drop_workspace_path_prometheus_sandboxes.py",
+ "source_location": "L26",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_logging_config_py",
- "target": "utils_logging_config_setupdiscordhandler"
+ "source": "migrations_versions_e5f6a7b8c9d0_drop_workspace_path_prometheus_sandboxes_py",
+ "target": "versions_e5f6a7b8c9d0_drop_workspace_path_prometheus_sandboxes_downgrade"
},
{
- "relation": "method",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "main/utils/logging_config.py",
- "source_location": "L25",
+ "source_file": "migrations/versions/e5f6a7b8c9d0_drop_workspace_path_prometheus_sandboxes.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "utils_logging_config_discordhandler",
- "target": "utils_logging_config_discordhandler_emit"
+ "source": "versions_e5f6a7b8c9d0_drop_workspace_path_prometheus_sandboxes_rationale_1",
+ "target": "migrations_versions_e5f6a7b8c9d0_drop_workspace_path_prometheus_sandboxes_py"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/logging_config.py",
- "source_location": "L51",
+ "source_file": "migrations/versions/f1a2b3c4d5e6_session_gc_index.py",
+ "source_location": "L26",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "utils_logging_config_discordhandler",
- "target": "utils_logging_config_setupdiscordhandler"
+ "source": "migrations_versions_f1a2b3c4d5e6_session_gc_index_py",
+ "target": "versions_f1a2b3c4d5e6_session_gc_index_upgrade"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_logging_config_coverage.py",
- "source_location": "L9",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_logging_config_discordhandler",
- "target": "tests_test_logging_config_coverage_testdiscordhandleremit"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/f1a2b3c4d5e6_session_gc_index.py",
+ "source_location": "L34",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "migrations_versions_f1a2b3c4d5e6_session_gc_index_py",
+ "target": "versions_f1a2b3c4d5e6_session_gc_index_downgrade"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_logging_config_coverage.py",
- "source_location": "L9",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_logging_config_discordhandler",
- "target": "tests_test_logging_config_coverage_testsetuplogging"
+ "relation": "rationale_for",
+ "confidence": "EXTRACTED",
+ "source_file": "migrations/versions/f1a2b3c4d5e6_session_gc_index.py",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "versions_f1a2b3c4d5e6_session_gc_index_rationale_1",
+ "target": "migrations_versions_f1a2b3c4d5e6_session_gc_index_py"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_thread_safety.py",
- "source_location": "L138",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_logging_config_discordhandler",
- "target": "tests_test_thread_safety_testgetsession"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "AGENTS.md",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "agents_md",
+ "target": "server_agents_project_overview"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_thread_safety.py",
- "source_location": "L138",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_logging_config_discordhandler",
- "target": "tests_test_thread_safety_testdiscordhandlerthreadpool"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "AGENTS.md",
+ "source_location": "L4",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "agents_md",
+ "target": "server_agents_dev_commands"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_thread_safety.py",
- "source_location": "L138",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_logging_config_discordhandler",
- "target": "tests_test_thread_safety_testconcurrentgetsession"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "AGENTS.md",
+ "source_location": "L23",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "agents_md",
+ "target": "server_agents_architecture"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_logging_config_coverage.py",
- "source_location": "L10",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "AGENTS.md",
+ "source_location": "L34",
"weight": 1.0,
- "source": "utils_logging_config_discordhandler",
- "target": "tests_test_logging_config_coverage_testdiscordhandleremit_make_handler"
+ "confidence_score": 1.0,
+ "source": "agents_md",
+ "target": "server_agents_testing"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_thread_safety.py",
- "source_location": "L110",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "AGENTS.md",
+ "source_location": "L38",
"weight": 1.0,
- "source": "utils_logging_config_discordhandler",
- "target": "tests_test_thread_safety_testdiscordhandlerthreadpool_test_emit_submits_to_executor"
+ "confidence_score": 1.0,
+ "source": "agents_md",
+ "target": "server_agents_graphify"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_thread_safety.py",
- "source_location": "L140",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "AGENTS.md",
+ "source_location": "L47",
"weight": 1.0,
- "source": "utils_logging_config_discordhandler",
- "target": "tests_test_thread_safety_testdiscordhandlerthreadpool_test_concurrent_emits_do_not_spawn_unbounded_threads"
+ "confidence_score": 1.0,
+ "source": "agents_md",
+ "target": "server_agents_stocks_api_pandas_first_pattern"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_thread_safety.py",
- "source_location": "L138",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_logging_config_discordhandler",
- "target": "tests_test_thread_safety_testconcurrenthttpproxy"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "AGENTS.md",
+ "source_location": "L54",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "agents_md",
+ "target": "server_agents_scraper_b3_xango_batch_data_pipeline"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_logging_config_coverage.py",
- "source_location": "L107",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "AGENTS.md",
+ "source_location": "L60",
"weight": 1.0,
- "source": "utils_logging_config_setupdiscordhandler",
- "target": "tests_test_logging_config_coverage_test_setup_discord_handler_enabled"
+ "confidence_score": 1.0,
+ "source": "agents_md",
+ "target": "server_agents_auth_users_dual_layer_session_security"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_logging_config_coverage.py",
- "source_location": "L113",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "AGENTS.md",
+ "source_location": "L28",
"weight": 1.0,
- "source": "utils_logging_config_setupdiscordhandler",
- "target": "tests_test_logging_config_coverage_test_setup_discord_handler_disabled"
+ "confidence_score": 1.0,
+ "source": "agents_md",
+ "target": "server_agents_key_quirks"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/migrator.py",
- "source_location": "L8",
+ "source_file": "AGENTS.md",
+ "source_location": "L57",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_migrator_py",
- "target": "utils_migrator_runmigrations"
+ "source": "agents_md",
+ "target": "server_agents_prometheus_ai_chat_strengths_gaps"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/request_id.py",
- "source_location": "L13",
+ "source_file": "AGENTS.md",
+ "source_location": "L5",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_request_id_py",
- "target": "utils_request_id_requestidmiddleware"
+ "source": "server_agents_dev_commands",
+ "target": "server_agents_codeblock_1"
},
{
- "relation": "inherits",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/request_id.py",
- "source_location": "L13",
+ "source_file": "AGENTS.md",
+ "source_location": "L31",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "utils_request_id_requestidmiddleware",
- "target": "basehttpmiddleware"
+ "source": "server_agents_dev_commands",
+ "target": "server_agents_ci_pipeline_order"
},
{
- "relation": "method",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/request_id.py",
- "source_location": "L14",
+ "source_file": "README.md",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "utils_request_id_requestidmiddleware",
- "target": "utils_request_id_requestidmiddleware_dispatch"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L17",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_request_id_requestidmiddleware",
- "target": "tests_test_error_handlers_samplebody"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L17",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_request_id_requestidmiddleware",
- "target": "tests_test_error_handlers_testerrorresponsemodel"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L17",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_request_id_requestidmiddleware",
- "target": "tests_test_error_handlers_testrequestcontextfilter"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L17",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_request_id_requestidmiddleware",
- "target": "tests_test_error_handlers_testhttpexceptionhandler"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L17",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_request_id_requestidmiddleware",
- "target": "tests_test_error_handlers_testvalidationexceptionhandler"
- },
- {
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L17",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_request_id_requestidmiddleware",
- "target": "tests_test_error_handlers_testgenericexceptionhandler"
+ "source": "readme_md",
+ "target": "server_readme_mansa_server"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_error_handlers.py",
- "source_location": "L17",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_request_id_requestidmiddleware",
- "target": "tests_test_error_handlers_testsuccesspassthrough"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "README.md",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_readme_mansa_server",
+ "target": "server_readme_run_with_docker"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_request_id.py",
- "source_location": "L10",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_request_id_requestidmiddleware",
- "target": "tests_test_request_id_testrequestidmiddleware"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "README.md",
+ "source_location": "L20",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_readme_mansa_server",
+ "target": "server_readme_environment_setup"
},
{
- "relation": "imports_from",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/roles.py",
- "source_location": "L2",
+ "source_file": "README.md",
+ "source_location": "L85",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_roles_py",
- "target": "fastapi"
+ "source": "server_readme_mansa_server",
+ "target": "server_readme_health_check"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/roles.py",
- "source_location": "L4",
+ "source_file": "README.md",
+ "source_location": "L91",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_roles_py",
- "target": "utils_roles_permission"
+ "source": "server_readme_mansa_server",
+ "target": "server_readme_license"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/roles.py",
- "source_location": "L28",
+ "source_file": "README.md",
+ "source_location": "L9",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_roles_py",
- "target": "utils_roles_all"
+ "source": "server_readme_run_with_docker",
+ "target": "server_readme_codeblock_1"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/roles.py",
- "source_location": "L32",
+ "source_file": "README.md",
+ "source_location": "L24",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_roles_py",
- "target": "utils_roles_roles"
+ "source": "server_readme_environment_setup",
+ "target": "server_readme_codeblock_2"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/roles.py",
- "source_location": "L51",
+ "source_file": "README.md",
+ "source_location": "L87",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_roles_py",
- "target": "utils_roles_checkaccess"
+ "source": "server_readme_health_check",
+ "target": "server_readme_codeblock_3"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/roles.py",
- "source_location": "L64",
+ "source_file": "TODO.md",
+ "source_location": "L25",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_roles_py",
- "target": "utils_roles_requirepermission"
+ "source": "todo_md",
+ "target": "server_todo_user_structure_defined_by_string_roles"
},
{
- "relation": "inherits",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/roles.py",
- "source_location": "L4",
+ "source_file": "TODO.md",
+ "source_location": "L34",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "utils_roles_permission",
- "target": "intflag"
+ "source": "server_todo_user_structure_defined_by_string_roles",
+ "target": "server_todo_user"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_roles.py",
- "source_location": "L7",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_roles_testpermission"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "TODO.md",
+ "source_location": "L37",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_todo_user_structure_defined_by_string_roles",
+ "target": "server_todo_premium"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_roles.py",
- "source_location": "L7",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_roles_testroles"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "TODO.md",
+ "source_location": "L40",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_todo_user_structure_defined_by_string_roles",
+ "target": "server_todo_developer"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_roles_coverage.py",
- "source_location": "L5",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_roles_coverage_testcheckaccess"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "TODO.md",
+ "source_location": "L67",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_todo_user_structure_defined_by_string_roles",
+ "target": "server_todo_stocks_api"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_roles_coverage.py",
- "source_location": "L5",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_roles_coverage_testrequirepermission"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "TODO.md",
+ "source_location": "L70",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "server_todo_user_structure_defined_by_string_roles",
+ "target": "server_todo_prometheus"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_roles_coverage.py",
- "source_location": "L5",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_roles_coverage_testpermissionall"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_md",
+ "target": "docs_authentication_authentication_management"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_roles_coverage.py",
- "source_location": "L5",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_roles_coverage_testroleshierarchy"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L9",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_authentication_management",
+ "target": "docs_authentication_usage"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L7",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "prometheus_memory_memorymanager"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L39",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_authentication_management",
+ "target": "docs_authentication_roles_and_permissions"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L6",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_memory_manager_testgetmemorylimit"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L49",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_authentication_management",
+ "target": "docs_authentication_api_endpoints"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L6",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_memory_manager_testupsertmemory"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L117",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_authentication_management",
+ "target": "docs_authentication_security_features"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L6",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_memory_manager_testcountmemories"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L130",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_authentication_management",
+ "target": "docs_authentication_device_detection"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L6",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_memory_manager_testgetusermemories"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L144",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_authentication_management",
+ "target": "docs_authentication_session_management"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L6",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_memory_manager_testdeletememory"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L154",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_authentication_management",
+ "target": "docs_authentication_workflow"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_memory_manager.py",
- "source_location": "L6",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_memory_manager_testsearchfulltext"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L187",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_authentication_management",
+ "target": "docs_authentication_license"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testissecurescheme"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L11",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_usage",
+ "target": "docs_authentication_codeblock_1"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testhealthendpoint"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L51",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_api_endpoints",
+ "target": "docs_authentication_health_check"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testregisterendpoint"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L57",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_api_endpoints",
+ "target": "docs_authentication_user_registration"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testloginendpoint"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L65",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_api_endpoints",
+ "target": "docs_authentication_user_login"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testlogoutendpoint"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L77",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_api_endpoints",
+ "target": "docs_authentication_profile_me"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testgooglelogin"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L84",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_api_endpoints",
+ "target": "docs_authentication_logout"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testgooglecallback"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L94",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_api_endpoints",
+ "target": "docs_authentication_google_oauth2_login"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testuserhealth"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L108",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_api_endpoints",
+ "target": "docs_authentication_google_callback"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testgetme"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L52",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_health_check",
+ "target": "docs_authentication_codeblock_2"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testupgradeendpoints"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L59",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_user_registration",
+ "target": "docs_authentication_codeblock_3"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testadminaccess"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L67",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_user_login",
+ "target": "docs_authentication_codeblock_4"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testgetsessions"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L79",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_profile_me",
+ "target": "docs_authentication_codeblock_5"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testgetcurrentsession"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L86",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_logout",
+ "target": "docs_authentication_codeblock_6"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testrevokesession"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L98",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_google_oauth2_login",
+ "target": "docs_authentication_codeblock_7"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testrevokeallsessions"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L104",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_google_oauth2_login",
+ "target": "docs_authentication_codeblock_8"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testprometheushealth"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/authentication.md",
+ "source_location": "L156",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_authentication_workflow",
+ "target": "docs_authentication_codeblock_9"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testprometheusgetsessions"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/prometheus.md",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_prometheus_md",
+ "target": "docs_prometheus_prometheus"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testprometheuscreatesession"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/prometheus.md",
+ "source_location": "L9",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_prometheus_prometheus",
+ "target": "docs_prometheus_usage"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testprometheusupdatesessiontitle"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/prometheus.md",
+ "source_location": "L55",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_prometheus_prometheus",
+ "target": "docs_prometheus_workflow"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testprometheusgethistory"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/prometheus.md",
+ "source_location": "L67",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_prometheus_prometheus",
+ "target": "docs_prometheus_api_endpoints"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testprometheusdeletesession"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/prometheus.md",
+ "source_location": "L74",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_prometheus_prometheus",
+ "target": "docs_prometheus_license"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testprometheuschat"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/prometheus.md",
+ "source_location": "L11",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_prometheus_usage",
+ "target": "docs_prometheus_codeblock_1"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_teststocksapihealth"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/prometheus.md",
+ "source_location": "L51",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_prometheus_usage",
+ "target": "docs_prometheus_codeblock_2"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_teststocksapikeytest"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/prometheus.md",
+ "source_location": "L57",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_prometheus_workflow",
+ "target": "docs_prometheus_codeblock_3"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_teststocksapihistorical"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/scraper_b3.md",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_scraper_b3_md",
+ "target": "docs_scraper_b3_brazilian_stocks_market_scraper"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_teststocksapifundamental"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/scraper_b3.md",
+ "source_location": "L5",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_scraper_b3_brazilian_stocks_market_scraper",
+ "target": "docs_scraper_b3_usage"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_teststocksapigeneratekey"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/scraper_b3.md",
+ "source_location": "L27",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_scraper_b3_brazilian_stocks_market_scraper",
+ "target": "docs_scraper_b3_output_format"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testaddroletouser"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/scraper_b3.md",
+ "source_location": "L55",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_scraper_b3_brazilian_stocks_market_scraper",
+ "target": "docs_scraper_b3_xang\u00f4"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testgetcurrentuser"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/scraper_b3.md",
+ "source_location": "L131",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_scraper_b3_brazilian_stocks_market_scraper",
+ "target": "docs_scraper_b3_license"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testhashpasswordempty"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/scraper_b3.md",
+ "source_location": "L8",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_scraper_b3_usage",
+ "target": "docs_scraper_b3_codeblock_1"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testverifyaccesstoken"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/scraper_b3.md",
+ "source_location": "L29",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_scraper_b3_output_format",
+ "target": "docs_scraper_b3_mysql_table_b3_stocks"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testextracttokenpayloadreraise"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/scraper_b3.md",
+ "source_location": "L38",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_scraper_b3_output_format",
+ "target": "docs_scraper_b3_sample_record"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_permission",
- "target": "tests_test_controllers_coverage_testmanagerinit"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/scraper_b3.md",
+ "source_location": "L40",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_scraper_b3_sample_record",
+ "target": "docs_scraper_b3_codeblock_2"
},
{
- "relation": "inherits",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/roles.py",
- "source_location": "L32",
+ "source_file": "docs/scraper_b3.md",
+ "source_location": "L60",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "intflag",
- "target": "utils_roles_roles"
+ "source": "docs_scraper_b3_xang\u00f4",
+ "target": "docs_scraper_b3_global_score_function"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/app/stocks_api/compressor.py",
- "source_location": "L91",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/scraper_b3.md",
+ "source_location": "L69",
"weight": 1.0,
- "source": "stocks_api_compressor_tocolumnar",
- "target": "utils_roles_all"
+ "confidence_score": 1.0,
+ "source": "docs_scraper_b3_xang\u00f4",
+ "target": "docs_scraper_b3_engines"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "tests/test_vector_utils.py",
- "source_location": "L112",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/scraper_b3.md",
+ "source_location": "L113",
"weight": 1.0,
- "source": "utils_roles_all",
- "target": "tests_test_vector_utils_testcontenthash_test_hex_format"
+ "confidence_score": 1.0,
+ "source": "docs_scraper_b3_xang\u00f4",
+ "target": "docs_scraper_b3_configuration_parameters"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_roles.py",
- "source_location": "L7",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_roles_testpermission"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/scraper_b3.md",
+ "source_location": "L71",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_scraper_b3_engines",
+ "target": "docs_scraper_b3_profit_quality_gate_m_profit"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_roles.py",
- "source_location": "L7",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_roles_testroles"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/scraper_b3.md",
+ "source_location": "L76",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_scraper_b3_engines",
+ "target": "docs_scraper_b3_fundamental_engine_phi"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_roles_coverage.py",
- "source_location": "L65",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_roles_coverage_testcheckaccess"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/scraper_b3.md",
+ "source_location": "L89",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_scraper_b3_engines",
+ "target": "docs_scraper_b3_risk_quality_engine_omega"
+ },
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/scraper_b3.md",
+ "source_location": "L101",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_scraper_b3_engines",
+ "target": "docs_scraper_b3_constraint_engine_lambda"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_roles_coverage.py",
- "source_location": "L65",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_roles_coverage_testrequirepermission"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/stocks_api.md",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_stocks_api_md",
+ "target": "docs_stocks_api_brazilian_stocks_market_api"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_roles_coverage.py",
- "source_location": "L65",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_roles_coverage_testpermissionall"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/stocks_api.md",
+ "source_location": "L7",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_stocks_api_brazilian_stocks_market_api",
+ "target": "docs_stocks_api_usage"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_roles_coverage.py",
- "source_location": "L65",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_roles_coverage_testroleshierarchy"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/stocks_api.md",
+ "source_location": "L32",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_stocks_api_brazilian_stocks_market_api",
+ "target": "docs_stocks_api_api_endpoints"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "main/app/prometheus/memory.py",
- "source_location": "L7",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "prometheus_memory_memorymanager"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/stocks_api.md",
+ "source_location": "L90",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_stocks_api_brazilian_stocks_market_api",
+ "target": "docs_stocks_api_response_format"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testissecurescheme"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/stocks_api.md",
+ "source_location": "L113",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_stocks_api_brazilian_stocks_market_api",
+ "target": "docs_stocks_api_license"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testhealthendpoint"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/stocks_api.md",
+ "source_location": "L9",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_stocks_api_usage",
+ "target": "docs_stocks_api_codeblock_1"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testregisterendpoint"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/stocks_api.md",
+ "source_location": "L34",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_stocks_api_api_endpoints",
+ "target": "docs_stocks_api_health_check"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testloginendpoint"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/stocks_api.md",
+ "source_location": "L40",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_stocks_api_api_endpoints",
+ "target": "docs_stocks_api_api_key_verification"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testlogoutendpoint"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/stocks_api.md",
+ "source_location": "L45",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_stocks_api_api_endpoints",
+ "target": "docs_stocks_api_key_management"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testgooglelogin"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/stocks_api.md",
+ "source_location": "L53",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_stocks_api_api_endpoints",
+ "target": "docs_stocks_api_historical_data"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testgooglecallback"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/stocks_api.md",
+ "source_location": "L72",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_stocks_api_api_endpoints",
+ "target": "docs_stocks_api_fundamental_data"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testuserhealth"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/stocks_api.md",
+ "source_location": "L35",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_stocks_api_health_check",
+ "target": "docs_stocks_api_codeblock_2"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testgetme"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/stocks_api.md",
+ "source_location": "L41",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_stocks_api_api_key_verification",
+ "target": "docs_stocks_api_codeblock_3"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testupgradeendpoints"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/stocks_api.md",
+ "source_location": "L47",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_stocks_api_key_management",
+ "target": "docs_stocks_api_codeblock_4"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testadminaccess"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/stocks_api.md",
+ "source_location": "L55",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_stocks_api_historical_data",
+ "target": "docs_stocks_api_codeblock_5"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testgetsessions"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/stocks_api.md",
+ "source_location": "L68",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_stocks_api_historical_data",
+ "target": "docs_stocks_api_codeblock_6"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testgetcurrentsession"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/stocks_api.md",
+ "source_location": "L74",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_stocks_api_fundamental_data",
+ "target": "docs_stocks_api_codeblock_7"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testrevokesession"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/stocks_api.md",
+ "source_location": "L86",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_stocks_api_fundamental_data",
+ "target": "docs_stocks_api_codeblock_8"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testrevokeallsessions"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/stocks_api.md",
+ "source_location": "L94",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_stocks_api_response_format",
+ "target": "docs_stocks_api_codeblock_9"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testprometheushealth"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/user.md",
+ "source_location": "L1",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_user_md",
+ "target": "docs_user_user_management"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testprometheusgetsessions"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/user.md",
+ "source_location": "L5",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_user_user_management",
+ "target": "docs_user_roles_and_permissions"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testprometheuscreatesession"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/user.md",
+ "source_location": "L17",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_user_user_management",
+ "target": "docs_user_api_endpoints"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testprometheusupdatesessiontitle"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/user.md",
+ "source_location": "L59",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_user_user_management",
+ "target": "docs_user_session_management"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testprometheusgethistory"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/user.md",
+ "source_location": "L140",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_user_user_management",
+ "target": "docs_user_permission_system"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testprometheusdeletesession"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/user.md",
+ "source_location": "L156",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_user_user_management",
+ "target": "docs_user_workflow"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testprometheuschat"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/user.md",
+ "source_location": "L177",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_user_user_management",
+ "target": "docs_user_license"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_teststocksapihealth"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/user.md",
+ "source_location": "L19",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_user_api_endpoints",
+ "target": "docs_user_health_check"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_teststocksapikeytest"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/user.md",
+ "source_location": "L25",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_user_api_endpoints",
+ "target": "docs_user_get_profile"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_teststocksapihistorical"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/user.md",
+ "source_location": "L41",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_user_api_endpoints",
+ "target": "docs_user_upgrade_to_developer_starter"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_teststocksapifundamental"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/user.md",
+ "source_location": "L47",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_user_api_endpoints",
+ "target": "docs_user_upgrade_to_developer_enterprise"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_teststocksapigeneratekey"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/user.md",
+ "source_location": "L53",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_user_api_endpoints",
+ "target": "docs_user_admin_access"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testaddroletouser"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/user.md",
+ "source_location": "L20",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_user_health_check",
+ "target": "docs_user_codeblock_1"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testgetcurrentuser"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/user.md",
+ "source_location": "L27",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_user_get_profile",
+ "target": "docs_user_codeblock_2"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testhashpasswordempty"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/user.md",
+ "source_location": "L31",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_user_get_profile",
+ "target": "docs_user_codeblock_3"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testverifyaccesstoken"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/user.md",
+ "source_location": "L43",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_user_upgrade_to_developer_starter",
+ "target": "docs_user_codeblock_4"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testextracttokenpayloadreraise"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/user.md",
+ "source_location": "L49",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_user_upgrade_to_developer_enterprise",
+ "target": "docs_user_codeblock_5"
},
{
- "relation": "uses",
- "confidence": "INFERRED",
- "source_file": "tests/test_controllers_coverage.py",
- "source_location": "L61",
- "weight": 0.8,
- "confidence_score": 0.5,
- "source": "utils_roles_roles",
- "target": "tests_test_controllers_coverage_testmanagerinit"
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/user.md",
+ "source_location": "L55",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "docs_user_admin_access",
+ "target": "docs_user_codeblock_6"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/scheduler.py",
- "source_location": "L32",
+ "source_file": "docs/user.md",
+ "source_location": "L63",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_scheduler_py",
- "target": "utils_scheduler_getsharedscheduler"
+ "source": "docs_user_session_management",
+ "target": "docs_user_list_all_sessions"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/scheduler.py",
- "source_location": "L42",
+ "source_file": "docs/user.md",
+ "source_location": "L92",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_scheduler_py",
- "target": "utils_scheduler_registerjob"
+ "source": "docs_user_session_management",
+ "target": "docs_user_get_current_session"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/scheduler.py",
- "source_location": "L1",
+ "source_file": "docs/user.md",
+ "source_location": "L114",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "utils_scheduler_rationale_1",
- "target": "main_utils_scheduler_py"
+ "source": "docs_user_session_management",
+ "target": "docs_user_revoke_a_session"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/scheduler.py",
- "source_location": "L50",
+ "source_file": "docs/user.md",
+ "source_location": "L127",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "utils_scheduler_registerjob",
- "target": "utils_scheduler_getsharedscheduler"
+ "source": "docs_user_session_management",
+ "target": "docs_user_revoke_all_sessions"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/scheduler.py",
- "source_location": "L33",
+ "source_file": "docs/user.md",
+ "source_location": "L65",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "utils_scheduler_rationale_33",
- "target": "utils_scheduler_getsharedscheduler"
+ "source": "docs_user_list_all_sessions",
+ "target": "docs_user_codeblock_7"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/service/user_service.py",
- "source_location": "L55",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/user.md",
+ "source_location": "L69",
"weight": 1.0,
- "source": "service_user_service_registersessioncleanupjobs",
- "target": "utils_scheduler_registerjob"
+ "confidence_score": 1.0,
+ "source": "docs_user_list_all_sessions",
+ "target": "docs_user_codeblock_8"
},
{
- "relation": "calls",
- "context": "call",
- "confidence": "INFERRED",
- "confidence_score": 0.8,
- "source_file": "main/service/prometheus_service.py",
- "source_location": "L69",
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "docs/user.md",
+ "source_location": "L94",
"weight": 1.0,
- "source": "service_prometheus_service_registermemorymaintenancejob",
- "target": "utils_scheduler_registerjob"
+ "confidence_score": 1.0,
+ "source": "docs_user_get_current_session",
+ "target": "docs_user_codeblock_9"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/scheduler.py",
- "source_location": "L43",
+ "source_file": "docs/user.md",
+ "source_location": "L98",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "utils_scheduler_rationale_43",
- "target": "utils_scheduler_registerjob"
+ "source": "docs_user_get_current_session",
+ "target": "docs_user_codeblock_10"
},
{
- "relation": "imports_from",
- "context": "import",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/service_manager.py",
- "source_location": "L8",
+ "source_file": "docs/user.md",
+ "source_location": "L116",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_service_manager_py",
- "target": "fastapi"
+ "source": "docs_user_revoke_a_session",
+ "target": "docs_user_codeblock_11"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/service_manager.py",
- "source_location": "L21",
+ "source_file": "docs/user.md",
+ "source_location": "L120",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_service_manager_py",
- "target": "utils_service_manager_getapp"
+ "source": "docs_user_revoke_a_session",
+ "target": "docs_user_codeblock_12"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/service_manager.py",
- "source_location": "L48",
+ "source_file": "docs/user.md",
+ "source_location": "L129",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_service_manager_py",
- "target": "utils_service_manager_runall"
+ "source": "docs_user_revoke_all_sessions",
+ "target": "docs_user_codeblock_13"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/service_manager.py",
- "source_location": "L16",
+ "source_file": "docs/user.md",
+ "source_location": "L133",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_service_manager_py",
- "target": "utils_service_manager_servicemanager"
+ "source": "docs_user_revoke_all_sessions",
+ "target": "docs_user_codeblock_14"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/models/loader.py",
- "source_location": "L12",
+ "source_file": "docs/user.md",
+ "source_location": "L144",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_models_loader_py",
- "target": "models_loader_getembeddingmodel"
+ "source": "docs_user_permission_system",
+ "target": "docs_user_codeblock_15"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/models/loader.py",
- "source_location": "L21",
+ "source_file": "docs/user.md",
+ "source_location": "L158",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_models_loader_py",
- "target": "models_loader_embed"
+ "source": "docs_user_workflow",
+ "target": "docs_user_codeblock_16"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/models/loader.py",
- "source_location": "L11",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "main_utils_models_loader_py",
- "target": "models_loader_downloadmodel"
+ "source": "docs_superpowers_plans_2026_08_09_sse_resume_md",
+ "target": "plans_2026_08_09_sse_resume_sse_resume_implementation_plan"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/models/loader.py",
- "source_location": "L22",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
+ "source_location": "L11",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "models_loader_getembeddingmodel",
- "target": "models_loader_embed"
+ "source": "plans_2026_08_09_sse_resume_sse_resume_implementation_plan",
+ "target": "plans_2026_08_09_sse_resume_global_constraints"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "main/utils/models/loader.py",
- "source_location": "L21",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
+ "source_location": "L26",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "models_loader_getembeddingmodel",
- "target": "models_loader_downloadmodel"
+ "source": "plans_2026_08_09_sse_resume_global_constraints",
+ "target": "plans_2026_08_09_sse_resume_task_1_streambus_module_with_unit_tests"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/env.py",
- "source_location": "L25",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
+ "source_location": "L242",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_env_py",
- "target": "migrations_env_getdatabaseurl"
+ "source": "plans_2026_08_09_sse_resume_global_constraints",
+ "target": "plans_2026_08_09_sse_resume_task_2_background_run_get_resume_route_in_prometheus_controller"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/env.py",
- "source_location": "L28",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
+ "source_location": "L412",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_env_py",
- "target": "migrations_env_runmigrationsoffline"
+ "source": "plans_2026_08_09_sse_resume_global_constraints",
+ "target": "plans_2026_08_09_sse_resume_task_3_frontend_api_js_shared_sse_parser_resumechat_cursor_tracking"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/env.py",
- "source_location": "L39",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
+ "source_location": "L576",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_env_py",
- "target": "migrations_env_runmigrationsonline"
+ "source": "plans_2026_08_09_sse_resume_global_constraints",
+ "target": "plans_2026_08_09_sse_resume_task_4_frontend_app_jsx_resume_lifecycle_boot_resume"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/env.py",
- "source_location": "L30",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
+ "source_location": "L863",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_env_getdatabaseurl",
- "target": "migrations_env_runmigrationsoffline"
+ "source": "plans_2026_08_09_sse_resume_global_constraints",
+ "target": "plans_2026_08_09_sse_resume_task_5_full_verification_todo_check_off"
},
{
- "relation": "calls",
- "context": "call",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/env.py",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
"source_location": "L41",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_env_getdatabaseurl",
- "target": "migrations_env_runmigrationsonline"
+ "source": "plans_2026_08_09_sse_resume_task_1_streambus_module_with_unit_tests",
+ "target": "plans_2026_08_09_sse_resume_codeblock_1"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/25af7ad931e7_initial_migration.py",
- "source_location": "L21",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
+ "source_location": "L130",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_25af7ad931e7_initial_migration_py",
- "target": "versions_25af7ad931e7_initial_migration_upgrade"
+ "source": "plans_2026_08_09_sse_resume_task_1_streambus_module_with_unit_tests",
+ "target": "plans_2026_08_09_sse_resume_codeblock_2"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/25af7ad931e7_initial_migration.py",
- "source_location": "L61",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
+ "source_location": "L235",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_25af7ad931e7_initial_migration_py",
- "target": "versions_25af7ad931e7_initial_migration_downgrade"
+ "source": "plans_2026_08_09_sse_resume_task_1_streambus_module_with_unit_tests",
+ "target": "plans_2026_08_09_sse_resume_codeblock_3"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/25af7ad931e7_initial_migration.py",
- "source_location": "L1",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
+ "source_location": "L257",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_25af7ad931e7_initial_migration_py",
- "target": "versions_25af7ad931e7_initial_migration_rationale_1"
+ "source": "plans_2026_08_09_sse_resume_task_2_background_run_get_resume_route_in_prometheus_controller",
+ "target": "plans_2026_08_09_sse_resume_codeblock_4"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/4a2f1c9e3b5d_user_sessions.py",
- "source_location": "L20",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
+ "source_location": "L329",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_4a2f1c9e3b5d_user_sessions_py",
- "target": "versions_4a2f1c9e3b5d_user_sessions_upgrade"
+ "source": "plans_2026_08_09_sse_resume_task_2_background_run_get_resume_route_in_prometheus_controller",
+ "target": "plans_2026_08_09_sse_resume_codeblock_5"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/4a2f1c9e3b5d_user_sessions.py",
- "source_location": "L47",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
+ "source_location": "L405",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_4a2f1c9e3b5d_user_sessions_py",
- "target": "versions_4a2f1c9e3b5d_user_sessions_downgrade"
+ "source": "plans_2026_08_09_sse_resume_task_2_background_run_get_resume_route_in_prometheus_controller",
+ "target": "plans_2026_08_09_sse_resume_codeblock_6"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/4a2f1c9e3b5d_user_sessions.py",
- "source_location": "L1",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
+ "source_location": "L426",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_4a2f1c9e3b5d_user_sessions_py",
- "target": "versions_4a2f1c9e3b5d_user_sessions_rationale_1"
+ "source": "plans_2026_08_09_sse_resume_task_3_frontend_api_js_shared_sse_parser_resumechat_cursor_tracking",
+ "target": "plans_2026_08_09_sse_resume_codeblock_7"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/9f3b339dde20_drop_unused_user_sessions_columns.py",
- "source_location": "L43",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
+ "source_location": "L498",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_9f3b339dde20_drop_unused_user_sessions_columns_py",
- "target": "versions_9f3b339dde20_drop_unused_user_sessions_columns_upgrade"
+ "source": "plans_2026_08_09_sse_resume_task_3_frontend_api_js_shared_sse_parser_resumechat_cursor_tracking",
+ "target": "plans_2026_08_09_sse_resume_codeblock_8"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/9f3b339dde20_drop_unused_user_sessions_columns.py",
- "source_location": "L50",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
+ "source_location": "L569",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_9f3b339dde20_drop_unused_user_sessions_columns_py",
- "target": "versions_9f3b339dde20_drop_unused_user_sessions_columns_downgrade"
+ "source": "plans_2026_08_09_sse_resume_task_3_frontend_api_js_shared_sse_parser_resumechat_cursor_tracking",
+ "target": "plans_2026_08_09_sse_resume_codeblock_9"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/9f3b339dde20_drop_unused_user_sessions_columns.py",
- "source_location": "L1",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
+ "source_location": "L590",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_9f3b339dde20_drop_unused_user_sessions_columns_py",
- "target": "versions_9f3b339dde20_drop_unused_user_sessions_columns_rationale_1"
+ "source": "plans_2026_08_09_sse_resume_task_4_frontend_app_jsx_resume_lifecycle_boot_resume",
+ "target": "plans_2026_08_09_sse_resume_codeblock_10"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/9f3b339dde20_drop_unused_user_sessions_columns.py",
- "source_location": "L44",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
+ "source_location": "L659",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "versions_9f3b339dde20_drop_unused_user_sessions_columns_upgrade",
- "target": "versions_9f3b339dde20_drop_unused_user_sessions_columns_rationale_44"
+ "source": "plans_2026_08_09_sse_resume_task_4_frontend_app_jsx_resume_lifecycle_boot_resume",
+ "target": "plans_2026_08_09_sse_resume_codeblock_11"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/9f3b339dde20_drop_unused_user_sessions_columns.py",
- "source_location": "L51",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
+ "source_location": "L681",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "versions_9f3b339dde20_drop_unused_user_sessions_columns_downgrade",
- "target": "versions_9f3b339dde20_drop_unused_user_sessions_columns_rationale_51"
+ "source": "plans_2026_08_09_sse_resume_task_4_frontend_app_jsx_resume_lifecycle_boot_resume",
+ "target": "plans_2026_08_09_sse_resume_codeblock_12"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/add_access_token_hash.py",
- "source_location": "L21",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
+ "source_location": "L768",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_add_access_token_hash_py",
- "target": "versions_add_access_token_hash_upgrade"
+ "source": "plans_2026_08_09_sse_resume_task_4_frontend_app_jsx_resume_lifecycle_boot_resume",
+ "target": "plans_2026_08_09_sse_resume_codeblock_13"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/add_access_token_hash.py",
- "source_location": "L54",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
+ "source_location": "L835",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_add_access_token_hash_py",
- "target": "versions_add_access_token_hash_downgrade"
+ "source": "plans_2026_08_09_sse_resume_task_4_frontend_app_jsx_resume_lifecycle_boot_resume",
+ "target": "plans_2026_08_09_sse_resume_codeblock_14"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/add_access_token_hash.py",
- "source_location": "L1",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
+ "source_location": "L856",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_add_access_token_hash_py",
- "target": "versions_add_access_token_hash_rationale_1"
+ "source": "plans_2026_08_09_sse_resume_task_4_frontend_app_jsx_resume_lifecycle_boot_resume",
+ "target": "plans_2026_08_09_sse_resume_codeblock_15"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/add_access_token_hash.py",
- "source_location": "L22",
+ "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
+ "source_location": "L889",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "versions_add_access_token_hash_upgrade",
- "target": "versions_add_access_token_hash_rationale_22"
+ "source": "plans_2026_08_09_sse_resume_task_5_full_verification_todo_check_off",
+ "target": "plans_2026_08_09_sse_resume_codeblock_16"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/add_access_token_hash.py",
- "source_location": "L55",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "versions_add_access_token_hash_downgrade",
- "target": "versions_add_access_token_hash_rationale_55"
+ "source": "docs_superpowers_plans_2026_08_15_stocks_api_perf_md",
+ "target": "plans_2026_08_15_stocks_api_perf_stocks_api_performance_pre_materialized_cache_sync_handlers_implementation_plan"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/b1c2d3e4f5a6_create_prometheus_memories.py",
- "source_location": "L22",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L13",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_b1c2d3e4f5a6_create_prometheus_memories_py",
- "target": "versions_b1c2d3e4f5a6_create_prometheus_memories_upgrade"
+ "source": "plans_2026_08_15_stocks_api_perf_stocks_api_performance_pre_materialized_cache_sync_handlers_implementation_plan",
+ "target": "plans_2026_08_15_stocks_api_perf_global_constraints"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/b1c2d3e4f5a6_create_prometheus_memories.py",
- "source_location": "L50",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L23",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_b1c2d3e4f5a6_create_prometheus_memories_py",
- "target": "versions_b1c2d3e4f5a6_create_prometheus_memories_downgrade"
+ "source": "plans_2026_08_15_stocks_api_perf_stocks_api_performance_pre_materialized_cache_sync_handlers_implementation_plan",
+ "target": "plans_2026_08_15_stocks_api_perf_file_structure"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/b1c2d3e4f5a6_create_prometheus_memories.py",
- "source_location": "L60",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L633",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_b1c2d3e4f5a6_create_prometheus_memories_py",
- "target": "versions_b1c2d3e4f5a6_create_prometheus_memories_fix_partial"
+ "source": "plans_2026_08_15_stocks_api_perf_stocks_api_performance_pre_materialized_cache_sync_handlers_implementation_plan",
+ "target": "plans_2026_08_15_stocks_api_perf_self_review"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/b1c2d3e4f5a6_create_prometheus_memories.py",
- "source_location": "L1",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L35",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_b1c2d3e4f5a6_create_prometheus_memories_py",
- "target": "versions_b1c2d3e4f5a6_create_prometheus_memories_rationale_1"
+ "source": "plans_2026_08_15_stocks_api_perf_file_structure",
+ "target": "plans_2026_08_15_stocks_api_perf_task_1_tickerpayloadcache_pre_materialize_per_ticker_payloads_at_refresh"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/c2e4f6a8b0c1_drop_embedding_model_version.py",
- "source_location": "L22",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L251",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_c2e4f6a8b0c1_drop_embedding_model_version_py",
- "target": "versions_c2e4f6a8b0c1_drop_embedding_model_version_upgrade"
+ "source": "plans_2026_08_15_stocks_api_perf_file_structure",
+ "target": "plans_2026_08_15_stocks_api_perf_task_2_fast_paths_in_stocksquerymanager_for_default_shaped_queries"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/c2e4f6a8b0c1_drop_embedding_model_version.py",
- "source_location": "L27",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L392",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_c2e4f6a8b0c1_drop_embedding_model_version_py",
- "target": "versions_c2e4f6a8b0c1_drop_embedding_model_version_downgrade"
+ "source": "plans_2026_08_15_stocks_api_perf_file_structure",
+ "target": "plans_2026_08_15_stocks_api_perf_task_3_convert_query_handlers_to_sync_def"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/c2e4f6a8b0c1_drop_embedding_model_version.py",
- "source_location": "L1",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L468",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_c2e4f6a8b0c1_drop_embedding_model_version_py",
- "target": "versions_c2e4f6a8b0c1_drop_embedding_model_version_rationale_1"
+ "source": "plans_2026_08_15_stocks_api_perf_file_structure",
+ "target": "plans_2026_08_15_stocks_api_perf_task_4_pre_parsed_cotation_date_index_replace_filtercotationcolumn_hot_path"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/d3df3fc5ca72_rename_memory_base_score.py",
- "source_location": "L17",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L613",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_d3df3fc5ca72_rename_memory_base_score_py",
- "target": "versions_d3df3fc5ca72_rename_memory_base_score_upgrade"
+ "source": "plans_2026_08_15_stocks_api_perf_file_structure",
+ "target": "plans_2026_08_15_stocks_api_perf_task_5_full_verification_graphify_update"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/d3df3fc5ca72_rename_memory_base_score.py",
- "source_location": "L21",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L49",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_d3df3fc5ca72_rename_memory_base_score_py",
- "target": "versions_d3df3fc5ca72_rename_memory_base_score_downgrade"
+ "source": "plans_2026_08_15_stocks_api_perf_task_1_tickerpayloadcache_pre_materialize_per_ticker_payloads_at_refresh",
+ "target": "plans_2026_08_15_stocks_api_perf_codeblock_1"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/d3e4f5a6b7c8_add_prometheus_sandboxes.py",
- "source_location": "L22",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L88",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_d3e4f5a6b7c8_add_prometheus_sandboxes_py",
- "target": "versions_d3e4f5a6b7c8_add_prometheus_sandboxes_upgrade"
+ "source": "plans_2026_08_15_stocks_api_perf_task_1_tickerpayloadcache_pre_materialize_per_ticker_payloads_at_refresh",
+ "target": "plans_2026_08_15_stocks_api_perf_codeblock_2"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/d3e4f5a6b7c8_add_prometheus_sandboxes.py",
- "source_location": "L36",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L118",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_d3e4f5a6b7c8_add_prometheus_sandboxes_py",
- "target": "versions_d3e4f5a6b7c8_add_prometheus_sandboxes_downgrade"
+ "source": "plans_2026_08_15_stocks_api_perf_task_1_tickerpayloadcache_pre_materialize_per_ticker_payloads_at_refresh",
+ "target": "plans_2026_08_15_stocks_api_perf_codeblock_3"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/d3e4f5a6b7c8_add_prometheus_sandboxes.py",
- "source_location": "L1",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L131",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_d3e4f5a6b7c8_add_prometheus_sandboxes_py",
- "target": "versions_d3e4f5a6b7c8_add_prometheus_sandboxes_rationale_1"
+ "source": "plans_2026_08_15_stocks_api_perf_task_1_tickerpayloadcache_pre_materialize_per_ticker_payloads_at_refresh",
+ "target": "plans_2026_08_15_stocks_api_perf_codeblock_4"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/e4f5a6b7c8d9_fix_fulltext_index_prometheus_memories.py",
- "source_location": "L21",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L177",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_e4f5a6b7c8d9_fix_fulltext_index_prometheus_memories_py",
- "target": "versions_e4f5a6b7c8d9_fix_fulltext_index_prometheus_memories_upgrade"
+ "source": "plans_2026_08_15_stocks_api_perf_task_1_tickerpayloadcache_pre_materialize_per_ticker_payloads_at_refresh",
+ "target": "plans_2026_08_15_stocks_api_perf_codeblock_5"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/e4f5a6b7c8d9_fix_fulltext_index_prometheus_memories.py",
- "source_location": "L45",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L228",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_e4f5a6b7c8d9_fix_fulltext_index_prometheus_memories_py",
- "target": "versions_e4f5a6b7c8d9_fix_fulltext_index_prometheus_memories_downgrade"
+ "source": "plans_2026_08_15_stocks_api_perf_task_1_tickerpayloadcache_pre_materialize_per_ticker_payloads_at_refresh",
+ "target": "plans_2026_08_15_stocks_api_perf_codeblock_6"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/e4f5a6b7c8d9_fix_fulltext_index_prometheus_memories.py",
- "source_location": "L1",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L244",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "versions_e4f5a6b7c8d9_fix_fulltext_index_prometheus_memories_rationale_1",
- "target": "migrations_versions_e4f5a6b7c8d9_fix_fulltext_index_prometheus_memories_py"
+ "source": "plans_2026_08_15_stocks_api_perf_task_1_tickerpayloadcache_pre_materialize_per_ticker_payloads_at_refresh",
+ "target": "plans_2026_08_15_stocks_api_perf_codeblock_7"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/e5f6a7b8c9d0_drop_workspace_path_prometheus_sandboxes.py",
- "source_location": "L22",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L263",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_e5f6a7b8c9d0_drop_workspace_path_prometheus_sandboxes_py",
- "target": "versions_e5f6a7b8c9d0_drop_workspace_path_prometheus_sandboxes_upgrade"
+ "source": "plans_2026_08_15_stocks_api_perf_task_2_fast_paths_in_stocksquerymanager_for_default_shaped_queries",
+ "target": "plans_2026_08_15_stocks_api_perf_codeblock_8"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/e5f6a7b8c9d0_drop_workspace_path_prometheus_sandboxes.py",
- "source_location": "L26",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L315",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_e5f6a7b8c9d0_drop_workspace_path_prometheus_sandboxes_py",
- "target": "versions_e5f6a7b8c9d0_drop_workspace_path_prometheus_sandboxes_downgrade"
+ "source": "plans_2026_08_15_stocks_api_perf_task_2_fast_paths_in_stocksquerymanager_for_default_shaped_queries",
+ "target": "plans_2026_08_15_stocks_api_perf_codeblock_9"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/e5f6a7b8c9d0_drop_workspace_path_prometheus_sandboxes.py",
- "source_location": "L1",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L349",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "versions_e5f6a7b8c9d0_drop_workspace_path_prometheus_sandboxes_rationale_1",
- "target": "migrations_versions_e5f6a7b8c9d0_drop_workspace_path_prometheus_sandboxes_py"
+ "source": "plans_2026_08_15_stocks_api_perf_task_2_fast_paths_in_stocksquerymanager_for_default_shaped_queries",
+ "target": "plans_2026_08_15_stocks_api_perf_codeblock_10"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/f1a2b3c4d5e6_session_gc_index.py",
- "source_location": "L26",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L405",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_f1a2b3c4d5e6_session_gc_index_py",
- "target": "versions_f1a2b3c4d5e6_session_gc_index_upgrade"
+ "source": "plans_2026_08_15_stocks_api_perf_task_3_convert_query_handlers_to_sync_def",
+ "target": "plans_2026_08_15_stocks_api_perf_codeblock_11"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/f1a2b3c4d5e6_session_gc_index.py",
- "source_location": "L34",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L461",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "migrations_versions_f1a2b3c4d5e6_session_gc_index_py",
- "target": "versions_f1a2b3c4d5e6_session_gc_index_downgrade"
+ "source": "plans_2026_08_15_stocks_api_perf_task_3_convert_query_handlers_to_sync_def",
+ "target": "plans_2026_08_15_stocks_api_perf_codeblock_12"
},
{
- "relation": "rationale_for",
+ "relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "migrations/versions/f1a2b3c4d5e6_session_gc_index.py",
- "source_location": "L1",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L482",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "versions_f1a2b3c4d5e6_session_gc_index_rationale_1",
- "target": "migrations_versions_f1a2b3c4d5e6_session_gc_index_py"
+ "source": "plans_2026_08_15_stocks_api_perf_task_4_pre_parsed_cotation_date_index_replace_filtercotationcolumn_hot_path",
+ "target": "plans_2026_08_15_stocks_api_perf_codeblock_13"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "AGENTS.md",
- "source_location": "L1",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L512",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "agents_md",
- "target": "server_agents_project_overview"
+ "source": "plans_2026_08_15_stocks_api_perf_task_4_pre_parsed_cotation_date_index_replace_filtercotationcolumn_hot_path",
+ "target": "plans_2026_08_15_stocks_api_perf_codeblock_14"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "AGENTS.md",
- "source_location": "L4",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L519",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "agents_md",
- "target": "server_agents_dev_commands"
+ "source": "plans_2026_08_15_stocks_api_perf_task_4_pre_parsed_cotation_date_index_replace_filtercotationcolumn_hot_path",
+ "target": "plans_2026_08_15_stocks_api_perf_codeblock_15"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "AGENTS.md",
- "source_location": "L23",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L539",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "agents_md",
- "target": "server_agents_architecture"
+ "source": "plans_2026_08_15_stocks_api_perf_task_4_pre_parsed_cotation_date_index_replace_filtercotationcolumn_hot_path",
+ "target": "plans_2026_08_15_stocks_api_perf_codeblock_16"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "AGENTS.md",
- "source_location": "L34",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L548",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "agents_md",
- "target": "server_agents_testing"
+ "source": "plans_2026_08_15_stocks_api_perf_task_4_pre_parsed_cotation_date_index_replace_filtercotationcolumn_hot_path",
+ "target": "plans_2026_08_15_stocks_api_perf_codeblock_17"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "AGENTS.md",
- "source_location": "L38",
+ "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
+ "source_location": "L606",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "agents_md",
- "target": "server_agents_graphify"
+ "source": "plans_2026_08_15_stocks_api_perf_task_4_pre_parsed_cotation_date_index_replace_filtercotationcolumn_hot_path",
+ "target": "plans_2026_08_15_stocks_api_perf_codeblock_18"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "AGENTS.md",
- "source_location": "L47",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "agents_md",
- "target": "server_agents_stocks_api_pandas_first_pattern"
+ "source": "docs_superpowers_plans_2026_08_15_workspace_endpoints_md",
+ "target": "plans_2026_08_15_workspace_endpoints_workspace_file_endpoints_agent_serve_file_tool_implementation_plan"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "AGENTS.md",
- "source_location": "L54",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L16",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "agents_md",
- "target": "server_agents_scraper_b3_xango_batch_data_pipeline"
+ "source": "plans_2026_08_15_workspace_endpoints_workspace_file_endpoints_agent_serve_file_tool_implementation_plan",
+ "target": "plans_2026_08_15_workspace_endpoints_global_constraints"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "AGENTS.md",
- "source_location": "L60",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L632",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "agents_md",
- "target": "server_agents_auth_users_dual_layer_session_security"
+ "source": "plans_2026_08_15_workspace_endpoints_workspace_file_endpoints_agent_serve_file_tool_implementation_plan",
+ "target": "plans_2026_08_15_workspace_endpoints_self_review"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "AGENTS.md",
- "source_location": "L28",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L29",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "agents_md",
- "target": "server_agents_key_quirks"
+ "source": "plans_2026_08_15_workspace_endpoints_global_constraints",
+ "target": "plans_2026_08_15_workspace_endpoints_task_1_sandbox_delete_file_binary_write"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "AGENTS.md",
- "source_location": "L57",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L152",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "agents_md",
- "target": "server_agents_prometheus_ai_chat_strengths_gaps"
+ "source": "plans_2026_08_15_workspace_endpoints_global_constraints",
+ "target": "plans_2026_08_15_workspace_endpoints_task_2_dependency_config_setting"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "AGENTS.md",
- "source_location": "L5",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L198",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "server_agents_dev_commands",
- "target": "server_agents_codeblock_1"
+ "source": "plans_2026_08_15_workspace_endpoints_global_constraints",
+ "target": "plans_2026_08_15_workspace_endpoints_task_3_controller_endpoints"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "AGENTS.md",
- "source_location": "L31",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L465",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "server_agents_dev_commands",
- "target": "server_agents_ci_pipeline_order"
+ "source": "plans_2026_08_15_workspace_endpoints_global_constraints",
+ "target": "plans_2026_08_15_workspace_endpoints_task_4_serve_file_agent_tool"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "README.md",
- "source_location": "L1",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L611",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "readme_md",
- "target": "server_readme_mansa_server"
+ "source": "plans_2026_08_15_workspace_endpoints_global_constraints",
+ "target": "plans_2026_08_15_workspace_endpoints_task_5_full_verification"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "README.md",
- "source_location": "L7",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L43",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "server_readme_mansa_server",
- "target": "server_readme_run_with_docker"
+ "source": "plans_2026_08_15_workspace_endpoints_task_1_sandbox_delete_file_binary_write",
+ "target": "plans_2026_08_15_workspace_endpoints_codeblock_1"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "README.md",
- "source_location": "L20",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L108",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "server_readme_mansa_server",
- "target": "server_readme_environment_setup"
+ "source": "plans_2026_08_15_workspace_endpoints_task_1_sandbox_delete_file_binary_write",
+ "target": "plans_2026_08_15_workspace_endpoints_codeblock_2"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "README.md",
- "source_location": "L85",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L145",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "server_readme_mansa_server",
- "target": "server_readme_health_check"
+ "source": "plans_2026_08_15_workspace_endpoints_task_1_sandbox_delete_file_binary_write",
+ "target": "plans_2026_08_15_workspace_endpoints_codeblock_3"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "README.md",
- "source_location": "L91",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L166",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "server_readme_mansa_server",
- "target": "server_readme_license"
+ "source": "plans_2026_08_15_workspace_endpoints_task_2_dependency_config_setting",
+ "target": "plans_2026_08_15_workspace_endpoints_codeblock_4"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "README.md",
- "source_location": "L9",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L172",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "server_readme_run_with_docker",
- "target": "server_readme_codeblock_1"
+ "source": "plans_2026_08_15_workspace_endpoints_task_2_dependency_config_setting",
+ "target": "plans_2026_08_15_workspace_endpoints_codeblock_5"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "README.md",
- "source_location": "L24",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L180",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "server_readme_environment_setup",
- "target": "server_readme_codeblock_2"
+ "source": "plans_2026_08_15_workspace_endpoints_task_2_dependency_config_setting",
+ "target": "plans_2026_08_15_workspace_endpoints_codeblock_6"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "README.md",
- "source_location": "L87",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L191",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "server_readme_health_check",
- "target": "server_readme_codeblock_3"
+ "source": "plans_2026_08_15_workspace_endpoints_task_2_dependency_config_setting",
+ "target": "plans_2026_08_15_workspace_endpoints_codeblock_7"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "TODO.md",
- "source_location": "L25",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L212",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "todo_md",
- "target": "server_todo_user_structure_defined_by_string_roles"
+ "source": "plans_2026_08_15_workspace_endpoints_task_3_controller_endpoints",
+ "target": "plans_2026_08_15_workspace_endpoints_codeblock_8"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "TODO.md",
- "source_location": "L34",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L368",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "server_todo_user_structure_defined_by_string_roles",
- "target": "server_todo_user"
+ "source": "plans_2026_08_15_workspace_endpoints_task_3_controller_endpoints",
+ "target": "plans_2026_08_15_workspace_endpoints_codeblock_9"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "TODO.md",
- "source_location": "L37",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L375",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "server_todo_user_structure_defined_by_string_roles",
- "target": "server_todo_premium"
+ "source": "plans_2026_08_15_workspace_endpoints_task_3_controller_endpoints",
+ "target": "plans_2026_08_15_workspace_endpoints_codeblock_10"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "TODO.md",
- "source_location": "L40",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L381",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "server_todo_user_structure_defined_by_string_roles",
- "target": "server_todo_developer"
+ "source": "plans_2026_08_15_workspace_endpoints_task_3_controller_endpoints",
+ "target": "plans_2026_08_15_workspace_endpoints_codeblock_11"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "TODO.md",
- "source_location": "L67",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L458",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "server_todo_user_structure_defined_by_string_roles",
- "target": "server_todo_stocks_api"
+ "source": "plans_2026_08_15_workspace_endpoints_task_3_controller_endpoints",
+ "target": "plans_2026_08_15_workspace_endpoints_codeblock_12"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "TODO.md",
- "source_location": "L70",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L479",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "server_todo_user_structure_defined_by_string_roles",
- "target": "server_todo_prometheus"
+ "source": "plans_2026_08_15_workspace_endpoints_task_4_serve_file_agent_tool",
+ "target": "plans_2026_08_15_workspace_endpoints_codeblock_13"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L1",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L560",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_md",
- "target": "docs_authentication_authentication_management"
+ "source": "plans_2026_08_15_workspace_endpoints_task_4_serve_file_agent_tool",
+ "target": "plans_2026_08_15_workspace_endpoints_codeblock_14"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L9",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L566",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_authentication_management",
- "target": "docs_authentication_usage"
+ "source": "plans_2026_08_15_workspace_endpoints_task_4_serve_file_agent_tool",
+ "target": "plans_2026_08_15_workspace_endpoints_codeblock_15"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L39",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L593",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_authentication_management",
- "target": "docs_authentication_roles_and_permissions"
+ "source": "plans_2026_08_15_workspace_endpoints_task_4_serve_file_agent_tool",
+ "target": "plans_2026_08_15_workspace_endpoints_codeblock_16"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L49",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L604",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_authentication_management",
- "target": "docs_authentication_api_endpoints"
+ "source": "plans_2026_08_15_workspace_endpoints_task_4_serve_file_agent_tool",
+ "target": "plans_2026_08_15_workspace_endpoints_codeblock_17"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L117",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
+ "source_location": "L626",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_authentication_management",
- "target": "docs_authentication_security_features"
+ "source": "plans_2026_08_15_workspace_endpoints_task_5_full_verification",
+ "target": "plans_2026_08_15_workspace_endpoints_codeblock_18"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L130",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_authentication_management",
- "target": "docs_authentication_device_detection"
+ "source": "docs_superpowers_plans_2026_08_15_workspace_frontend_md",
+ "target": "plans_2026_08_15_workspace_frontend_workspace_files_ui_promptbox_upload_implementation_plan"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L144",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
+ "source_location": "L13",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_authentication_management",
- "target": "docs_authentication_session_management"
+ "source": "plans_2026_08_15_workspace_frontend_workspace_files_ui_promptbox_upload_implementation_plan",
+ "target": "plans_2026_08_15_workspace_frontend_backend_contract_source_of_truth_for_api_js"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L154",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
+ "source_location": "L32",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_authentication_management",
- "target": "docs_authentication_workflow"
+ "source": "plans_2026_08_15_workspace_frontend_workspace_files_ui_promptbox_upload_implementation_plan",
+ "target": "plans_2026_08_15_workspace_frontend_global_constraints"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L187",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
+ "source_location": "L43",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_authentication_management",
- "target": "docs_authentication_license"
+ "source": "plans_2026_08_15_workspace_frontend_global_constraints",
+ "target": "plans_2026_08_15_workspace_frontend_task_1_api_layer_workspace_functions_in_src_api_js"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L11",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
+ "source_location": "L176",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_usage",
- "target": "docs_authentication_codeblock_1"
+ "source": "plans_2026_08_15_workspace_frontend_global_constraints",
+ "target": "plans_2026_08_15_workspace_frontend_task_2_settings_menu_workspace_files_grid_in_sessionsidebar"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L51",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
+ "source_location": "L294",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_api_endpoints",
- "target": "docs_authentication_health_check"
+ "source": "plans_2026_08_15_workspace_frontend_global_constraints",
+ "target": "plans_2026_08_15_workspace_frontend_task_3_drag_drop_file_upload_in_the_promptbox_inputbar_jsx"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L57",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
+ "source_location": "L403",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_api_endpoints",
- "target": "docs_authentication_user_registration"
+ "source": "plans_2026_08_15_workspace_frontend_global_constraints",
+ "target": "plans_2026_08_15_workspace_frontend_task_4_docker_restart_e2e_of_prometheus_chat_stream_performed_by_controller_not_a_subagent"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L65",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
+ "source_location": "L61",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_api_endpoints",
- "target": "docs_authentication_user_login"
+ "source": "plans_2026_08_15_workspace_frontend_task_1_api_layer_workspace_functions_in_src_api_js",
+ "target": "plans_2026_08_15_workspace_frontend_codeblock_1"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L77",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
+ "source_location": "L122",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_api_endpoints",
- "target": "docs_authentication_profile_me"
+ "source": "plans_2026_08_15_workspace_frontend_task_1_api_layer_workspace_functions_in_src_api_js",
+ "target": "plans_2026_08_15_workspace_frontend_codeblock_2"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L84",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
+ "source_location": "L169",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_api_endpoints",
- "target": "docs_authentication_logout"
+ "source": "plans_2026_08_15_workspace_frontend_task_1_api_layer_workspace_functions_in_src_api_js",
+ "target": "plans_2026_08_15_workspace_frontend_codeblock_3"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L94",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
+ "source_location": "L191",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_api_endpoints",
- "target": "docs_authentication_google_oauth2_login"
+ "source": "plans_2026_08_15_workspace_frontend_task_2_settings_menu_workspace_files_grid_in_sessionsidebar",
+ "target": "plans_2026_08_15_workspace_frontend_codeblock_4"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L108",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
+ "source_location": "L246",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_api_endpoints",
- "target": "docs_authentication_google_callback"
+ "source": "plans_2026_08_15_workspace_frontend_task_2_settings_menu_workspace_files_grid_in_sessionsidebar",
+ "target": "plans_2026_08_15_workspace_frontend_codeblock_5"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L52",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
+ "source_location": "L272",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_health_check",
- "target": "docs_authentication_codeblock_2"
+ "source": "plans_2026_08_15_workspace_frontend_task_2_settings_menu_workspace_files_grid_in_sessionsidebar",
+ "target": "plans_2026_08_15_workspace_frontend_codeblock_6"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L59",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
+ "source_location": "L287",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_user_registration",
- "target": "docs_authentication_codeblock_3"
+ "source": "plans_2026_08_15_workspace_frontend_task_2_settings_menu_workspace_files_grid_in_sessionsidebar",
+ "target": "plans_2026_08_15_workspace_frontend_codeblock_7"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L67",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
+ "source_location": "L308",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_user_login",
- "target": "docs_authentication_codeblock_4"
+ "source": "plans_2026_08_15_workspace_frontend_task_3_drag_drop_file_upload_in_the_promptbox_inputbar_jsx",
+ "target": "plans_2026_08_15_workspace_frontend_codeblock_8"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L79",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
+ "source_location": "L372",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_profile_me",
- "target": "docs_authentication_codeblock_5"
+ "source": "plans_2026_08_15_workspace_frontend_task_3_drag_drop_file_upload_in_the_promptbox_inputbar_jsx",
+ "target": "plans_2026_08_15_workspace_frontend_codeblock_9"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L86",
+ "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
+ "source_location": "L396",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_logout",
- "target": "docs_authentication_codeblock_6"
+ "source": "plans_2026_08_15_workspace_frontend_task_3_drag_drop_file_upload_in_the_promptbox_inputbar_jsx",
+ "target": "plans_2026_08_15_workspace_frontend_codeblock_10"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L98",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_google_oauth2_login",
- "target": "docs_authentication_codeblock_7"
+ "source": "docs_superpowers_plans_2026_08_17_openui_migration_md",
+ "target": "plans_2026_08_17_openui_migration_openui_migration_plan"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L104",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L20",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_google_oauth2_login",
- "target": "docs_authentication_codeblock_8"
+ "source": "plans_2026_08_17_openui_migration_openui_migration_plan",
+ "target": "plans_2026_08_17_openui_migration_global_constraints"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/authentication.md",
- "source_location": "L156",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L30",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_authentication_workflow",
- "target": "docs_authentication_codeblock_9"
+ "source": "plans_2026_08_17_openui_migration_openui_migration_plan",
+ "target": "plans_2026_08_17_openui_migration_file_structure"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/prometheus.md",
- "source_location": "L1",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L52",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_prometheus_md",
- "target": "docs_prometheus_prometheus"
+ "source": "plans_2026_08_17_openui_migration_openui_migration_plan",
+ "target": "plans_2026_08_17_openui_migration_task_1_install_openui_remove_mdocui"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/prometheus.md",
- "source_location": "L9",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L80",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_prometheus_prometheus",
- "target": "docs_prometheus_usage"
+ "source": "plans_2026_08_17_openui_migration_openui_migration_plan",
+ "target": "plans_2026_08_17_openui_migration_task_2_define_prometheus_component_library"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/prometheus.md",
- "source_location": "L55",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L385",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_prometheus_prometheus",
- "target": "docs_prometheus_workflow"
+ "source": "plans_2026_08_17_openui_migration_openui_migration_plan",
+ "target": "plans_2026_08_17_openui_migration_task_3_create_openui_renderer"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/prometheus.md",
- "source_location": "L67",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L455",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_prometheus_prometheus",
- "target": "docs_prometheus_api_endpoints"
+ "source": "plans_2026_08_17_openui_migration_openui_migration_plan",
+ "target": "plans_2026_08_17_openui_migration_task_4_backend_system_prompt"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/prometheus.md",
- "source_location": "L74",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L610",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_prometheus_prometheus",
- "target": "docs_prometheus_license"
+ "source": "plans_2026_08_17_openui_migration_openui_migration_plan",
+ "target": "plans_2026_08_17_openui_migration_task_5_integration_test"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/prometheus.md",
- "source_location": "L11",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L640",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_prometheus_usage",
- "target": "docs_prometheus_codeblock_1"
+ "source": "plans_2026_08_17_openui_migration_openui_migration_plan",
+ "target": "plans_2026_08_17_openui_migration_verification_checklist"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/prometheus.md",
- "source_location": "L51",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L32",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_prometheus_usage",
- "target": "docs_prometheus_codeblock_2"
+ "source": "plans_2026_08_17_openui_migration_file_structure",
+ "target": "plans_2026_08_17_openui_migration_frontend_local_only_never_committed"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/prometheus.md",
- "source_location": "L57",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L43",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_prometheus_workflow",
- "target": "docs_prometheus_codeblock_3"
+ "source": "plans_2026_08_17_openui_migration_file_structure",
+ "target": "plans_2026_08_17_openui_migration_backend_commit"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/scraper_b3.md",
- "source_location": "L1",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L58",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_scraper_b3_md",
- "target": "docs_scraper_b3_brazilian_stocks_market_scraper"
+ "source": "plans_2026_08_17_openui_migration_task_1_install_openui_remove_mdocui",
+ "target": "plans_2026_08_17_openui_migration_codeblock_1"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/scraper_b3.md",
- "source_location": "L5",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L66",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_scraper_b3_brazilian_stocks_market_scraper",
- "target": "docs_scraper_b3_usage"
+ "source": "plans_2026_08_17_openui_migration_task_1_install_openui_remove_mdocui",
+ "target": "plans_2026_08_17_openui_migration_codeblock_2"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/scraper_b3.md",
- "source_location": "L27",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L72",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_scraper_b3_brazilian_stocks_market_scraper",
- "target": "docs_scraper_b3_output_format"
+ "source": "plans_2026_08_17_openui_migration_task_1_install_openui_remove_mdocui",
+ "target": "plans_2026_08_17_openui_migration_codeblock_3"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/scraper_b3.md",
- "source_location": "L55",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L86",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_scraper_b3_brazilian_stocks_market_scraper",
- "target": "docs_scraper_b3_xang\u00f4"
+ "source": "plans_2026_08_17_openui_migration_task_2_define_prometheus_component_library",
+ "target": "plans_2026_08_17_openui_migration_component_mapping"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/scraper_b3.md",
- "source_location": "L131",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L101",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_scraper_b3_brazilian_stocks_market_scraper",
- "target": "docs_scraper_b3_license"
+ "source": "plans_2026_08_17_openui_migration_component_mapping",
+ "target": "plans_2026_08_17_openui_migration_codeblock_4"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/scraper_b3.md",
- "source_location": "L8",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L339",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_scraper_b3_usage",
- "target": "docs_scraper_b3_codeblock_1"
+ "source": "plans_2026_08_17_openui_migration_component_mapping",
+ "target": "plans_2026_08_17_openui_migration_codeblock_5"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/scraper_b3.md",
- "source_location": "L29",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L396",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_scraper_b3_output_format",
- "target": "docs_scraper_b3_mysql_table_b3_stocks"
+ "source": "plans_2026_08_17_openui_migration_task_3_create_openui_renderer",
+ "target": "plans_2026_08_17_openui_migration_codeblock_6"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/scraper_b3.md",
- "source_location": "L38",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L428",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_scraper_b3_output_format",
- "target": "docs_scraper_b3_sample_record"
+ "source": "plans_2026_08_17_openui_migration_task_3_create_openui_renderer",
+ "target": "plans_2026_08_17_openui_migration_codeblock_7"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/scraper_b3.md",
- "source_location": "L40",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L435",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_scraper_b3_sample_record",
- "target": "docs_scraper_b3_codeblock_2"
+ "source": "plans_2026_08_17_openui_migration_task_3_create_openui_renderer",
+ "target": "plans_2026_08_17_openui_migration_codeblock_8"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/scraper_b3.md",
- "source_location": "L60",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L442",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_scraper_b3_xang\u00f4",
- "target": "docs_scraper_b3_global_score_function"
+ "source": "plans_2026_08_17_openui_migration_task_3_create_openui_renderer",
+ "target": "plans_2026_08_17_openui_migration_codeblock_9"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/scraper_b3.md",
- "source_location": "L69",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L449",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_scraper_b3_xang\u00f4",
- "target": "docs_scraper_b3_engines"
+ "source": "plans_2026_08_17_openui_migration_task_3_create_openui_renderer",
+ "target": "plans_2026_08_17_openui_migration_codeblock_10"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/scraper_b3.md",
- "source_location": "L113",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L467",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_scraper_b3_xang\u00f4",
- "target": "docs_scraper_b3_configuration_parameters"
+ "source": "plans_2026_08_17_openui_migration_task_4_backend_system_prompt",
+ "target": "plans_2026_08_17_openui_migration_codeblock_11"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/scraper_b3.md",
- "source_location": "L71",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L486",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_scraper_b3_engines",
- "target": "docs_scraper_b3_profit_quality_gate_m_profit"
+ "source": "plans_2026_08_17_openui_migration_task_4_backend_system_prompt",
+ "target": "plans_2026_08_17_openui_migration_codeblock_12"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/scraper_b3.md",
- "source_location": "L76",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L501",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_scraper_b3_engines",
- "target": "docs_scraper_b3_fundamental_engine_phi"
+ "source": "plans_2026_08_17_openui_migration_task_4_backend_system_prompt",
+ "target": "plans_2026_08_17_openui_migration_codeblock_13"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/scraper_b3.md",
- "source_location": "L89",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L542",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_scraper_b3_engines",
- "target": "docs_scraper_b3_risk_quality_engine_omega"
+ "source": "plans_2026_08_17_openui_migration_task_4_backend_system_prompt",
+ "target": "plans_2026_08_17_openui_migration_codeblock_14"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/scraper_b3.md",
- "source_location": "L101",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L555",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_scraper_b3_engines",
- "target": "docs_scraper_b3_constraint_engine_lambda"
+ "source": "plans_2026_08_17_openui_migration_task_4_backend_system_prompt",
+ "target": "plans_2026_08_17_openui_migration_codeblock_15"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/stocks_api.md",
- "source_location": "L1",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L572",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_stocks_api_md",
- "target": "docs_stocks_api_brazilian_stocks_market_api"
+ "source": "plans_2026_08_17_openui_migration_task_4_backend_system_prompt",
+ "target": "plans_2026_08_17_openui_migration_codeblock_16"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/stocks_api.md",
- "source_location": "L7",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L577",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_stocks_api_brazilian_stocks_market_api",
- "target": "docs_stocks_api_usage"
+ "source": "plans_2026_08_17_openui_migration_task_4_backend_system_prompt",
+ "target": "plans_2026_08_17_openui_migration_codeblock_17"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/stocks_api.md",
- "source_location": "L32",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L590",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_stocks_api_brazilian_stocks_market_api",
- "target": "docs_stocks_api_api_endpoints"
+ "source": "plans_2026_08_17_openui_migration_task_4_backend_system_prompt",
+ "target": "plans_2026_08_17_openui_migration_codeblock_18"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/stocks_api.md",
- "source_location": "L90",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L596",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_stocks_api_brazilian_stocks_market_api",
- "target": "docs_stocks_api_response_format"
+ "source": "plans_2026_08_17_openui_migration_task_4_backend_system_prompt",
+ "target": "plans_2026_08_17_openui_migration_codeblock_19"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/stocks_api.md",
- "source_location": "L113",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L602",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_stocks_api_brazilian_stocks_market_api",
- "target": "docs_stocks_api_license"
+ "source": "plans_2026_08_17_openui_migration_task_4_backend_system_prompt",
+ "target": "plans_2026_08_17_openui_migration_codeblock_20"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/stocks_api.md",
- "source_location": "L9",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L614",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_stocks_api_usage",
- "target": "docs_stocks_api_codeblock_1"
+ "source": "plans_2026_08_17_openui_migration_task_5_integration_test",
+ "target": "plans_2026_08_17_openui_migration_codeblock_21"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/stocks_api.md",
- "source_location": "L34",
+ "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_location": "L620",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_stocks_api_api_endpoints",
- "target": "docs_stocks_api_health_check"
+ "source": "plans_2026_08_17_openui_migration_task_5_integration_test",
+ "target": "plans_2026_08_17_openui_migration_codeblock_22"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/stocks_api.md",
- "source_location": "L40",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_stocks_api_api_endpoints",
- "target": "docs_stocks_api_api_key_verification"
+ "source": "docs_superpowers_plans_2026_09_03_followup_hardening_md",
+ "target": "plans_2026_09_03_followup_hardening_follow_up_hardening_implementation_plan"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/stocks_api.md",
- "source_location": "L45",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L13",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_stocks_api_api_endpoints",
- "target": "docs_stocks_api_key_management"
+ "source": "plans_2026_09_03_followup_hardening_follow_up_hardening_implementation_plan",
+ "target": "plans_2026_09_03_followup_hardening_global_constraints"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/stocks_api.md",
- "source_location": "L53",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L26",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_stocks_api_api_endpoints",
- "target": "docs_stocks_api_historical_data"
+ "source": "plans_2026_09_03_followup_hardening_follow_up_hardening_implementation_plan",
+ "target": "plans_2026_09_03_followup_hardening_file_map"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/stocks_api.md",
- "source_location": "L72",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L814",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_stocks_api_api_endpoints",
- "target": "docs_stocks_api_fundamental_data"
+ "source": "plans_2026_09_03_followup_hardening_follow_up_hardening_implementation_plan",
+ "target": "plans_2026_09_03_followup_hardening_self_review"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/stocks_api.md",
- "source_location": "L35",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L44",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_stocks_api_health_check",
- "target": "docs_stocks_api_codeblock_2"
+ "source": "plans_2026_09_03_followup_hardening_file_map",
+ "target": "plans_2026_09_03_followup_hardening_task_1_thoth_maat_permission_decision"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/stocks_api.md",
- "source_location": "L41",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L127",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_stocks_api_api_key_verification",
- "target": "docs_stocks_api_codeblock_3"
+ "source": "plans_2026_09_03_followup_hardening_file_map",
+ "target": "plans_2026_09_03_followup_hardening_task_2_p6_redis_cashews_insertion_behind_existing_sync_cache"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/stocks_api.md",
- "source_location": "L47",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L240",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_stocks_api_key_management",
- "target": "docs_stocks_api_codeblock_4"
+ "source": "plans_2026_09_03_followup_hardening_file_map",
+ "target": "plans_2026_09_03_followup_hardening_task_3_zstd_hot_path_rework_via_feather_to_dict_zstd_migration"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/stocks_api.md",
- "source_location": "L55",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L337",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_stocks_api_historical_data",
- "target": "docs_stocks_api_codeblock_5"
+ "source": "plans_2026_09_03_followup_hardening_file_map",
+ "target": "plans_2026_09_03_followup_hardening_task_4_queryhistorical_queryfundamental_presort_invariant_guard"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/stocks_api.md",
- "source_location": "L68",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L415",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_stocks_api_historical_data",
- "target": "docs_stocks_api_codeblock_6"
+ "source": "plans_2026_09_03_followup_hardening_file_map",
+ "target": "plans_2026_09_03_followup_hardening_task_5_history_backfill_dedup_indices_as_logging_only"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/stocks_api.md",
- "source_location": "L74",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L509",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_stocks_api_fundamental_data",
- "target": "docs_stocks_api_codeblock_7"
+ "source": "plans_2026_09_03_followup_hardening_file_map",
+ "target": "plans_2026_09_03_followup_hardening_task_6_stocks_api_limiter_design_design_only_do_not_enable"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/stocks_api.md",
- "source_location": "L86",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L562",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_stocks_api_fundamental_data",
- "target": "docs_stocks_api_codeblock_8"
+ "source": "plans_2026_09_03_followup_hardening_file_map",
+ "target": "plans_2026_09_03_followup_hardening_task_7_remove_temporary_run_py_scraper_debug_endpoint"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/stocks_api.md",
- "source_location": "L94",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L623",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_stocks_api_response_format",
- "target": "docs_stocks_api_codeblock_9"
+ "source": "plans_2026_09_03_followup_hardening_file_map",
+ "target": "plans_2026_09_03_followup_hardening_task_8_fix_20_pre_existing_environmental_failures"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L1",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L712",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_md",
- "target": "docs_user_user_management"
+ "source": "plans_2026_09_03_followup_hardening_file_map",
+ "target": "plans_2026_09_03_followup_hardening_task_9_session_refresh_token_rotation_follow_up"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L5",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L61",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_user_management",
- "target": "docs_user_roles_and_permissions"
+ "source": "plans_2026_09_03_followup_hardening_task_1_thoth_maat_permission_decision",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_1"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L17",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L80",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_user_management",
- "target": "docs_user_api_endpoints"
+ "source": "plans_2026_09_03_followup_hardening_task_1_thoth_maat_permission_decision",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_2"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L59",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L96",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_user_management",
- "target": "docs_user_session_management"
+ "source": "plans_2026_09_03_followup_hardening_task_1_thoth_maat_permission_decision",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_3"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L140",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L120",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_user_management",
- "target": "docs_user_permission_system"
+ "source": "plans_2026_09_03_followup_hardening_task_1_thoth_maat_permission_decision",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_4"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L156",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L143",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_user_management",
- "target": "docs_user_workflow"
+ "source": "plans_2026_09_03_followup_hardening_task_2_p6_redis_cashews_insertion_behind_existing_sync_cache",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_5"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L177",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L185",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_user_management",
- "target": "docs_user_license"
+ "source": "plans_2026_09_03_followup_hardening_task_2_p6_redis_cashews_insertion_behind_existing_sync_cache",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_6"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L19",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L198",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_api_endpoints",
- "target": "docs_user_health_check"
+ "source": "plans_2026_09_03_followup_hardening_task_2_p6_redis_cashews_insertion_behind_existing_sync_cache",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_7"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L25",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L204",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_api_endpoints",
- "target": "docs_user_get_profile"
+ "source": "plans_2026_09_03_followup_hardening_task_2_p6_redis_cashews_insertion_behind_existing_sync_cache",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_8"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L41",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L233",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_api_endpoints",
- "target": "docs_user_upgrade_to_developer_starter"
+ "source": "plans_2026_09_03_followup_hardening_task_2_p6_redis_cashews_insertion_behind_existing_sync_cache",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_9"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L47",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L256",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_api_endpoints",
- "target": "docs_user_upgrade_to_developer_enterprise"
+ "source": "plans_2026_09_03_followup_hardening_task_3_zstd_hot_path_rework_via_feather_to_dict_zstd_migration",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_10"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L53",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L284",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_api_endpoints",
- "target": "docs_user_admin_access"
+ "source": "plans_2026_09_03_followup_hardening_task_3_zstd_hot_path_rework_via_feather_to_dict_zstd_migration",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_11"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L20",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L298",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_health_check",
- "target": "docs_user_codeblock_1"
+ "source": "plans_2026_09_03_followup_hardening_task_3_zstd_hot_path_rework_via_feather_to_dict_zstd_migration",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_12"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L27",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L330",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_get_profile",
- "target": "docs_user_codeblock_2"
+ "source": "plans_2026_09_03_followup_hardening_task_3_zstd_hot_path_rework_via_feather_to_dict_zstd_migration",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_13"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L31",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L351",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_get_profile",
- "target": "docs_user_codeblock_3"
+ "source": "plans_2026_09_03_followup_hardening_task_4_queryhistorical_queryfundamental_presort_invariant_guard",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_14"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L43",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L390",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_upgrade_to_developer_starter",
- "target": "docs_user_codeblock_4"
+ "source": "plans_2026_09_03_followup_hardening_task_4_queryhistorical_queryfundamental_presort_invariant_guard",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_15"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L49",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L408",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_upgrade_to_developer_enterprise",
- "target": "docs_user_codeblock_5"
+ "source": "plans_2026_09_03_followup_hardening_task_4_queryhistorical_queryfundamental_presort_invariant_guard",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_16"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L55",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L429",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_admin_access",
- "target": "docs_user_codeblock_6"
+ "source": "plans_2026_09_03_followup_hardening_task_5_history_backfill_dedup_indices_as_logging_only",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_17"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L63",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L451",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_session_management",
- "target": "docs_user_list_all_sessions"
+ "source": "plans_2026_09_03_followup_hardening_task_5_history_backfill_dedup_indices_as_logging_only",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_18"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L92",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L502",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_session_management",
- "target": "docs_user_get_current_session"
+ "source": "plans_2026_09_03_followup_hardening_task_5_history_backfill_dedup_indices_as_logging_only",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_19"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L114",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L525",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_session_management",
- "target": "docs_user_revoke_a_session"
+ "source": "plans_2026_09_03_followup_hardening_task_6_stocks_api_limiter_design_design_only_do_not_enable",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_20"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L127",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L541",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_session_management",
- "target": "docs_user_revoke_all_sessions"
+ "source": "plans_2026_09_03_followup_hardening_task_6_stocks_api_limiter_design_design_only_do_not_enable",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_21"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L65",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L555",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_list_all_sessions",
- "target": "docs_user_codeblock_7"
+ "source": "plans_2026_09_03_followup_hardening_task_6_stocks_api_limiter_design_design_only_do_not_enable",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_22"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L69",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L577",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_list_all_sessions",
- "target": "docs_user_codeblock_8"
+ "source": "plans_2026_09_03_followup_hardening_task_7_remove_temporary_run_py_scraper_debug_endpoint",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_23"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L94",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L598",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_get_current_session",
- "target": "docs_user_codeblock_9"
+ "source": "plans_2026_09_03_followup_hardening_task_7_remove_temporary_run_py_scraper_debug_endpoint",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_24"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L98",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L616",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_get_current_session",
- "target": "docs_user_codeblock_10"
+ "source": "plans_2026_09_03_followup_hardening_task_7_remove_temporary_run_py_scraper_debug_endpoint",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_25"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L116",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L640",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_revoke_a_session",
- "target": "docs_user_codeblock_11"
+ "source": "plans_2026_09_03_followup_hardening_task_8_fix_20_pre_existing_environmental_failures",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_26"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L120",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L668",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_revoke_a_session",
- "target": "docs_user_codeblock_12"
+ "source": "plans_2026_09_03_followup_hardening_task_8_fix_20_pre_existing_environmental_failures",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_27"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L129",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L676",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_revoke_all_sessions",
- "target": "docs_user_codeblock_13"
+ "source": "plans_2026_09_03_followup_hardening_task_8_fix_20_pre_existing_environmental_failures",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_28"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L133",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L705",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_revoke_all_sessions",
- "target": "docs_user_codeblock_14"
+ "source": "plans_2026_09_03_followup_hardening_task_8_fix_20_pre_existing_environmental_failures",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_29"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L144",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L731",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_permission_system",
- "target": "docs_user_codeblock_15"
+ "source": "plans_2026_09_03_followup_hardening_task_9_session_refresh_token_rotation_follow_up",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_30"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/user.md",
- "source_location": "L158",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L753",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_user_workflow",
- "target": "docs_user_codeblock_16"
+ "source": "plans_2026_09_03_followup_hardening_task_9_session_refresh_token_rotation_follow_up",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_31"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L1",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L769",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_superpowers_plans_2026_08_09_sse_resume_md",
- "target": "plans_2026_08_09_sse_resume_sse_resume_implementation_plan"
+ "source": "plans_2026_09_03_followup_hardening_task_9_session_refresh_token_rotation_follow_up",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_32"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L11",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L780",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_09_sse_resume_sse_resume_implementation_plan",
- "target": "plans_2026_08_09_sse_resume_global_constraints"
+ "source": "plans_2026_09_03_followup_hardening_task_9_session_refresh_token_rotation_follow_up",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_33"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L26",
+ "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_location": "L807",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_09_sse_resume_global_constraints",
- "target": "plans_2026_08_09_sse_resume_task_1_streambus_module_with_unit_tests"
+ "source": "plans_2026_09_03_followup_hardening_task_9_session_refresh_token_rotation_follow_up",
+ "target": "plans_2026_09_03_followup_hardening_codeblock_34"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L242",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_09_sse_resume_global_constraints",
- "target": "plans_2026_08_09_sse_resume_task_2_background_run_get_resume_route_in_prometheus_controller"
+ "source": "docs_superpowers_plans_2026_09_04_wallet_management_md",
+ "target": "plans_2026_09_04_wallet_management_wallet_management_thoth_iyagba_implementation_plan"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L412",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L13",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_09_sse_resume_global_constraints",
- "target": "plans_2026_08_09_sse_resume_task_3_frontend_api_js_shared_sse_parser_resumechat_cursor_tracking"
+ "source": "plans_2026_09_04_wallet_management_wallet_management_thoth_iyagba_implementation_plan",
+ "target": "plans_2026_09_04_wallet_management_global_constraints"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L576",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L35",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_09_sse_resume_global_constraints",
- "target": "plans_2026_08_09_sse_resume_task_4_frontend_app_jsx_resume_lifecycle_boot_resume"
+ "source": "plans_2026_09_04_wallet_management_wallet_management_thoth_iyagba_implementation_plan",
+ "target": "plans_2026_09_04_wallet_management_file_structure"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L863",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L60",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_09_sse_resume_global_constraints",
- "target": "plans_2026_08_09_sse_resume_task_5_full_verification_todo_check_off"
+ "source": "plans_2026_09_04_wallet_management_file_structure",
+ "target": "plans_2026_09_04_wallet_management_task_1_wallet_models_and_user_relationship"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L41",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L166",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_09_sse_resume_task_1_streambus_module_with_unit_tests",
- "target": "plans_2026_08_09_sse_resume_codeblock_1"
+ "source": "plans_2026_09_04_wallet_management_file_structure",
+ "target": "plans_2026_09_04_wallet_management_task_2_alembic_migration_for_wallet_tables"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L130",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L269",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_09_sse_resume_task_1_streambus_module_with_unit_tests",
- "target": "plans_2026_08_09_sse_resume_codeblock_2"
+ "source": "plans_2026_09_04_wallet_management_file_structure",
+ "target": "plans_2026_09_04_wallet_management_task_3_pure_derivation_math"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L235",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L391",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_09_sse_resume_task_1_streambus_module_with_unit_tests",
- "target": "plans_2026_08_09_sse_resume_codeblock_3"
+ "source": "plans_2026_09_04_wallet_management_file_structure",
+ "target": "plans_2026_09_04_wallet_management_task_4_holding_endpoints_create_holding_and_retarget_weight"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L257",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L567",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_09_sse_resume_task_2_background_run_get_resume_route_in_prometheus_controller",
- "target": "plans_2026_08_09_sse_resume_codeblock_4"
+ "source": "plans_2026_09_04_wallet_management_file_structure",
+ "target": "plans_2026_09_04_wallet_management_task_5_lot_endpoint_append_immutable_buy_sell_lots"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L329",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L720",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_09_sse_resume_task_2_background_run_get_resume_route_in_prometheus_controller",
- "target": "plans_2026_08_09_sse_resume_codeblock_5"
+ "source": "plans_2026_09_04_wallet_management_file_structure",
+ "target": "plans_2026_09_04_wallet_management_task_6_price_client_one_batched_stocks_api_fetch_per_snapshot"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L405",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L869",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_09_sse_resume_task_2_background_run_get_resume_route_in_prometheus_controller",
- "target": "plans_2026_08_09_sse_resume_codeblock_6"
+ "source": "plans_2026_09_04_wallet_management_file_structure",
+ "target": "plans_2026_09_04_wallet_management_task_7_snapshot_endpoint_derived_portfolio_read_with_live_prices"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L426",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1000",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_09_sse_resume_task_3_frontend_api_js_shared_sse_parser_resumechat_cursor_tracking",
- "target": "plans_2026_08_09_sse_resume_codeblock_7"
+ "source": "plans_2026_09_04_wallet_management_file_structure",
+ "target": "plans_2026_09_04_wallet_management_task_8_history_endpoint_paginated_lots_with_per_sell_realized_gain"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L498",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1115",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_09_sse_resume_task_3_frontend_api_js_shared_sse_parser_resumechat_cursor_tracking",
- "target": "plans_2026_08_09_sse_resume_codeblock_8"
+ "source": "plans_2026_09_04_wallet_management_file_structure",
+ "target": "plans_2026_09_04_wallet_management_task_9_walletservice_wiring_quality_gate_full_suite_ruff_mypy_coverage"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L569",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1224",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_09_sse_resume_task_3_frontend_api_js_shared_sse_parser_resumechat_cursor_tracking",
- "target": "plans_2026_08_09_sse_resume_codeblock_9"
+ "source": "plans_2026_09_04_wallet_management_file_structure",
+ "target": "plans_2026_09_04_wallet_management_task_10_first_party_get_stocks_dividends_adjusted_docstring_fix"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L590",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1325",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_09_sse_resume_task_4_frontend_app_jsx_resume_lifecycle_boot_resume",
- "target": "plans_2026_08_09_sse_resume_codeblock_10"
+ "source": "plans_2026_09_04_wallet_management_file_structure",
+ "target": "plans_2026_09_04_wallet_management_task_11_wallet_receipt_ledger_wallet_dividends_table_receipt_suggestion_endpoints"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L659",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1482",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_09_sse_resume_task_4_frontend_app_jsx_resume_lifecycle_boot_resume",
- "target": "plans_2026_08_09_sse_resume_codeblock_11"
+ "source": "plans_2026_09_04_wallet_management_file_structure",
+ "target": "plans_2026_09_04_wallet_management_task_12_split_cliff_regression_test_snapshot_history_dividend_extension_final_gate"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L681",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1618",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_09_sse_resume_task_4_frontend_app_jsx_resume_lifecycle_boot_resume",
- "target": "plans_2026_08_09_sse_resume_codeblock_12"
+ "source": "plans_2026_09_04_wallet_management_file_structure",
+ "target": "plans_2026_09_04_wallet_management_task_13_corporate_actions_table_read_time_scaling_sobras_rule_definitive_full_gate"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L768",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L73",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_09_sse_resume_task_4_frontend_app_jsx_resume_lifecycle_boot_resume",
- "target": "plans_2026_08_09_sse_resume_codeblock_13"
+ "source": "plans_2026_09_04_wallet_management_task_1_wallet_models_and_user_relationship",
+ "target": "plans_2026_09_04_wallet_management_codeblock_1"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L835",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L101",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_09_sse_resume_task_4_frontend_app_jsx_resume_lifecycle_boot_resume",
- "target": "plans_2026_08_09_sse_resume_codeblock_14"
+ "source": "plans_2026_09_04_wallet_management_task_1_wallet_models_and_user_relationship",
+ "target": "plans_2026_09_04_wallet_management_codeblock_2"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L856",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L138",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_09_sse_resume_task_4_frontend_app_jsx_resume_lifecycle_boot_resume",
- "target": "plans_2026_08_09_sse_resume_codeblock_15"
+ "source": "plans_2026_09_04_wallet_management_task_1_wallet_models_and_user_relationship",
+ "target": "plans_2026_09_04_wallet_management_codeblock_3"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-09-sse-resume.md",
- "source_location": "L889",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L144",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_09_sse_resume_task_5_full_verification_todo_check_off",
- "target": "plans_2026_08_09_sse_resume_codeblock_16"
+ "source": "plans_2026_09_04_wallet_management_task_1_wallet_models_and_user_relationship",
+ "target": "plans_2026_09_04_wallet_management_codeblock_4"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L1",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L159",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_superpowers_plans_2026_08_15_stocks_api_perf_md",
- "target": "plans_2026_08_15_stocks_api_perf_stocks_api_performance_pre_materialized_cache_sync_handlers_implementation_plan"
+ "source": "plans_2026_09_04_wallet_management_task_1_wallet_models_and_user_relationship",
+ "target": "plans_2026_09_04_wallet_management_codeblock_5"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L13",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L189",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_stocks_api_performance_pre_materialized_cache_sync_handlers_implementation_plan",
- "target": "plans_2026_08_15_stocks_api_perf_global_constraints"
+ "source": "plans_2026_09_04_wallet_management_task_2_alembic_migration_for_wallet_tables",
+ "target": "plans_2026_09_04_wallet_management_codeblock_6"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L23",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L248",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_stocks_api_performance_pre_materialized_cache_sync_handlers_implementation_plan",
- "target": "plans_2026_08_15_stocks_api_perf_file_structure"
+ "source": "plans_2026_09_04_wallet_management_task_2_alembic_migration_for_wallet_tables",
+ "target": "plans_2026_09_04_wallet_management_codeblock_7"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L633",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L262",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_stocks_api_performance_pre_materialized_cache_sync_handlers_implementation_plan",
- "target": "plans_2026_08_15_stocks_api_perf_self_review"
+ "source": "plans_2026_09_04_wallet_management_task_2_alembic_migration_for_wallet_tables",
+ "target": "plans_2026_09_04_wallet_management_codeblock_8"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L35",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L281",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_file_structure",
- "target": "plans_2026_08_15_stocks_api_perf_task_1_tickerpayloadcache_pre_materialize_per_ticker_payloads_at_refresh"
+ "source": "plans_2026_09_04_wallet_management_task_3_pure_derivation_math",
+ "target": "plans_2026_09_04_wallet_management_codeblock_9"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L251",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L325",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_file_structure",
- "target": "plans_2026_08_15_stocks_api_perf_task_2_fast_paths_in_stocksquerymanager_for_default_shaped_queries"
+ "source": "plans_2026_09_04_wallet_management_task_3_pure_derivation_math",
+ "target": "plans_2026_09_04_wallet_management_codeblock_10"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L392",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L384",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_file_structure",
- "target": "plans_2026_08_15_stocks_api_perf_task_3_convert_query_handlers_to_sync_def"
+ "source": "plans_2026_09_04_wallet_management_task_3_pure_derivation_math",
+ "target": "plans_2026_09_04_wallet_management_codeblock_11"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L468",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L404",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_file_structure",
- "target": "plans_2026_08_15_stocks_api_perf_task_4_pre_parsed_cotation_date_index_replace_filtercotationcolumn_hot_path"
+ "source": "plans_2026_09_04_wallet_management_task_4_holding_endpoints_create_holding_and_retarget_weight",
+ "target": "plans_2026_09_04_wallet_management_codeblock_12"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L613",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L471",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_file_structure",
- "target": "plans_2026_08_15_stocks_api_perf_task_5_full_verification_graphify_update"
+ "source": "plans_2026_09_04_wallet_management_task_4_holding_endpoints_create_holding_and_retarget_weight",
+ "target": "plans_2026_09_04_wallet_management_codeblock_13"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L49",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L524",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_task_1_tickerpayloadcache_pre_materialize_per_ticker_payloads_at_refresh",
- "target": "plans_2026_08_15_stocks_api_perf_codeblock_1"
+ "source": "plans_2026_09_04_wallet_management_task_4_holding_endpoints_create_holding_and_retarget_weight",
+ "target": "plans_2026_09_04_wallet_management_codeblock_14"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L88",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L560",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_task_1_tickerpayloadcache_pre_materialize_per_ticker_payloads_at_refresh",
- "target": "plans_2026_08_15_stocks_api_perf_codeblock_2"
+ "source": "plans_2026_09_04_wallet_management_task_4_holding_endpoints_create_holding_and_retarget_weight",
+ "target": "plans_2026_09_04_wallet_management_codeblock_15"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L118",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L580",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_task_1_tickerpayloadcache_pre_materialize_per_ticker_payloads_at_refresh",
- "target": "plans_2026_08_15_stocks_api_perf_codeblock_3"
+ "source": "plans_2026_09_04_wallet_management_task_5_lot_endpoint_append_immutable_buy_sell_lots",
+ "target": "plans_2026_09_04_wallet_management_codeblock_16"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L131",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L649",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_task_1_tickerpayloadcache_pre_materialize_per_ticker_payloads_at_refresh",
- "target": "plans_2026_08_15_stocks_api_perf_codeblock_4"
+ "source": "plans_2026_09_04_wallet_management_task_5_lot_endpoint_append_immutable_buy_sell_lots",
+ "target": "plans_2026_09_04_wallet_management_codeblock_17"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L177",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L659",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_task_1_tickerpayloadcache_pre_materialize_per_ticker_payloads_at_refresh",
- "target": "plans_2026_08_15_stocks_api_perf_codeblock_5"
+ "source": "plans_2026_09_04_wallet_management_task_5_lot_endpoint_append_immutable_buy_sell_lots",
+ "target": "plans_2026_09_04_wallet_management_codeblock_18"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L228",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L693",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_task_1_tickerpayloadcache_pre_materialize_per_ticker_payloads_at_refresh",
- "target": "plans_2026_08_15_stocks_api_perf_codeblock_6"
+ "source": "plans_2026_09_04_wallet_management_task_5_lot_endpoint_append_immutable_buy_sell_lots",
+ "target": "plans_2026_09_04_wallet_management_codeblock_19"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L244",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L713",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_task_1_tickerpayloadcache_pre_materialize_per_ticker_payloads_at_refresh",
- "target": "plans_2026_08_15_stocks_api_perf_codeblock_7"
+ "source": "plans_2026_09_04_wallet_management_task_5_lot_endpoint_append_immutable_buy_sell_lots",
+ "target": "plans_2026_09_04_wallet_management_codeblock_20"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L263",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L732",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_task_2_fast_paths_in_stocksquerymanager_for_default_shaped_queries",
- "target": "plans_2026_08_15_stocks_api_perf_codeblock_8"
+ "source": "plans_2026_09_04_wallet_management_task_6_price_client_one_batched_stocks_api_fetch_per_snapshot",
+ "target": "plans_2026_09_04_wallet_management_codeblock_21"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L315",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L804",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_task_2_fast_paths_in_stocksquerymanager_for_default_shaped_queries",
- "target": "plans_2026_08_15_stocks_api_perf_codeblock_9"
+ "source": "plans_2026_09_04_wallet_management_task_6_price_client_one_batched_stocks_api_fetch_per_snapshot",
+ "target": "plans_2026_09_04_wallet_management_codeblock_22"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L349",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L862",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_task_2_fast_paths_in_stocksquerymanager_for_default_shaped_queries",
- "target": "plans_2026_08_15_stocks_api_perf_codeblock_10"
+ "source": "plans_2026_09_04_wallet_management_task_6_price_client_one_batched_stocks_api_fetch_per_snapshot",
+ "target": "plans_2026_09_04_wallet_management_codeblock_23"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L405",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L882",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_task_3_convert_query_handlers_to_sync_def",
- "target": "plans_2026_08_15_stocks_api_perf_codeblock_11"
+ "source": "plans_2026_09_04_wallet_management_task_7_snapshot_endpoint_derived_portfolio_read_with_live_prices",
+ "target": "plans_2026_09_04_wallet_management_codeblock_24"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L461",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L944",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_task_3_convert_query_handlers_to_sync_def",
- "target": "plans_2026_08_15_stocks_api_perf_codeblock_12"
+ "source": "plans_2026_09_04_wallet_management_task_7_snapshot_endpoint_derived_portfolio_read_with_live_prices",
+ "target": "plans_2026_09_04_wallet_management_codeblock_25"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L482",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L972",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_task_4_pre_parsed_cotation_date_index_replace_filtercotationcolumn_hot_path",
- "target": "plans_2026_08_15_stocks_api_perf_codeblock_13"
+ "source": "plans_2026_09_04_wallet_management_task_7_snapshot_endpoint_derived_portfolio_read_with_live_prices",
+ "target": "plans_2026_09_04_wallet_management_codeblock_26"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L512",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L993",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_task_4_pre_parsed_cotation_date_index_replace_filtercotationcolumn_hot_path",
- "target": "plans_2026_08_15_stocks_api_perf_codeblock_14"
+ "source": "plans_2026_09_04_wallet_management_task_7_snapshot_endpoint_derived_portfolio_read_with_live_prices",
+ "target": "plans_2026_09_04_wallet_management_codeblock_27"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L519",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1013",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_task_4_pre_parsed_cotation_date_index_replace_filtercotationcolumn_hot_path",
- "target": "plans_2026_08_15_stocks_api_perf_codeblock_15"
+ "source": "plans_2026_09_04_wallet_management_task_8_history_endpoint_paginated_lots_with_per_sell_realized_gain",
+ "target": "plans_2026_09_04_wallet_management_codeblock_28"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L539",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1062",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_task_4_pre_parsed_cotation_date_index_replace_filtercotationcolumn_hot_path",
- "target": "plans_2026_08_15_stocks_api_perf_codeblock_16"
+ "source": "plans_2026_09_04_wallet_management_task_8_history_endpoint_paginated_lots_with_per_sell_realized_gain",
+ "target": "plans_2026_09_04_wallet_management_codeblock_29"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L548",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1095",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_task_4_pre_parsed_cotation_date_index_replace_filtercotationcolumn_hot_path",
- "target": "plans_2026_08_15_stocks_api_perf_codeblock_17"
+ "source": "plans_2026_09_04_wallet_management_task_8_history_endpoint_paginated_lots_with_per_sell_realized_gain",
+ "target": "plans_2026_09_04_wallet_management_codeblock_30"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-stocks-api-perf.md",
- "source_location": "L606",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1108",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_stocks_api_perf_task_4_pre_parsed_cotation_date_index_replace_filtercotationcolumn_hot_path",
- "target": "plans_2026_08_15_stocks_api_perf_codeblock_18"
+ "source": "plans_2026_09_04_wallet_management_task_8_history_endpoint_paginated_lots_with_per_sell_realized_gain",
+ "target": "plans_2026_09_04_wallet_management_codeblock_31"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L1",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1143",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_superpowers_plans_2026_08_15_workspace_endpoints_md",
- "target": "plans_2026_08_15_workspace_endpoints_workspace_file_endpoints_agent_serve_file_tool_implementation_plan"
+ "source": "plans_2026_09_04_wallet_management_task_9_walletservice_wiring_quality_gate_full_suite_ruff_mypy_coverage",
+ "target": "plans_2026_09_04_wallet_management_codeblock_32"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L16",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1157",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_workspace_file_endpoints_agent_serve_file_tool_implementation_plan",
- "target": "plans_2026_08_15_workspace_endpoints_global_constraints"
+ "source": "plans_2026_09_04_wallet_management_task_9_walletservice_wiring_quality_gate_full_suite_ruff_mypy_coverage",
+ "target": "plans_2026_09_04_wallet_management_codeblock_33"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L632",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1165",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_workspace_file_endpoints_agent_serve_file_tool_implementation_plan",
- "target": "plans_2026_08_15_workspace_endpoints_self_review"
+ "source": "plans_2026_09_04_wallet_management_task_9_walletservice_wiring_quality_gate_full_suite_ruff_mypy_coverage",
+ "target": "plans_2026_09_04_wallet_management_codeblock_34"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L29",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1192",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_global_constraints",
- "target": "plans_2026_08_15_workspace_endpoints_task_1_sandbox_delete_file_binary_write"
+ "source": "plans_2026_09_04_wallet_management_task_9_walletservice_wiring_quality_gate_full_suite_ruff_mypy_coverage",
+ "target": "plans_2026_09_04_wallet_management_codeblock_35"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L152",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1217",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_global_constraints",
- "target": "plans_2026_08_15_workspace_endpoints_task_2_dependency_config_setting"
+ "source": "plans_2026_09_04_wallet_management_task_9_walletservice_wiring_quality_gate_full_suite_ruff_mypy_coverage",
+ "target": "plans_2026_09_04_wallet_management_codeblock_36"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L198",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1237",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_global_constraints",
- "target": "plans_2026_08_15_workspace_endpoints_task_3_controller_endpoints"
+ "source": "plans_2026_09_04_wallet_management_task_10_first_party_get_stocks_dividends_adjusted_docstring_fix",
+ "target": "plans_2026_09_04_wallet_management_codeblock_37"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L465",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1276",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_global_constraints",
- "target": "plans_2026_08_15_workspace_endpoints_task_4_serve_file_agent_tool"
+ "source": "plans_2026_09_04_wallet_management_task_10_first_party_get_stocks_dividends_adjusted_docstring_fix",
+ "target": "plans_2026_09_04_wallet_management_codeblock_38"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L611",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1299",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_global_constraints",
- "target": "plans_2026_08_15_workspace_endpoints_task_5_full_verification"
+ "source": "plans_2026_09_04_wallet_management_task_10_first_party_get_stocks_dividends_adjusted_docstring_fix",
+ "target": "plans_2026_09_04_wallet_management_codeblock_39"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L43",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1318",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_task_1_sandbox_delete_file_binary_write",
- "target": "plans_2026_08_15_workspace_endpoints_codeblock_1"
+ "source": "plans_2026_09_04_wallet_management_task_10_first_party_get_stocks_dividends_adjusted_docstring_fix",
+ "target": "plans_2026_09_04_wallet_management_codeblock_40"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L108",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1341",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_task_1_sandbox_delete_file_binary_write",
- "target": "plans_2026_08_15_workspace_endpoints_codeblock_2"
+ "source": "plans_2026_09_04_wallet_management_task_11_wallet_receipt_ledger_wallet_dividends_table_receipt_suggestion_endpoints",
+ "target": "plans_2026_09_04_wallet_management_codeblock_41"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L145",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1397",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_task_1_sandbox_delete_file_binary_write",
- "target": "plans_2026_08_15_workspace_endpoints_codeblock_3"
+ "source": "plans_2026_09_04_wallet_management_task_11_wallet_receipt_ledger_wallet_dividends_table_receipt_suggestion_endpoints",
+ "target": "plans_2026_09_04_wallet_management_codeblock_42"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L166",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1419",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_task_2_dependency_config_setting",
- "target": "plans_2026_08_15_workspace_endpoints_codeblock_4"
+ "source": "plans_2026_09_04_wallet_management_task_11_wallet_receipt_ledger_wallet_dividends_table_receipt_suggestion_endpoints",
+ "target": "plans_2026_09_04_wallet_management_codeblock_43"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L172",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1452",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_task_2_dependency_config_setting",
- "target": "plans_2026_08_15_workspace_endpoints_codeblock_5"
+ "source": "plans_2026_09_04_wallet_management_task_11_wallet_receipt_ledger_wallet_dividends_table_receipt_suggestion_endpoints",
+ "target": "plans_2026_09_04_wallet_management_codeblock_44"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L180",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1475",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_task_2_dependency_config_setting",
- "target": "plans_2026_08_15_workspace_endpoints_codeblock_6"
+ "source": "plans_2026_09_04_wallet_management_task_11_wallet_receipt_ledger_wallet_dividends_table_receipt_suggestion_endpoints",
+ "target": "plans_2026_09_04_wallet_management_codeblock_45"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L191",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1496",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_task_2_dependency_config_setting",
- "target": "plans_2026_08_15_workspace_endpoints_codeblock_7"
+ "source": "plans_2026_09_04_wallet_management_task_12_split_cliff_regression_test_snapshot_history_dividend_extension_final_gate",
+ "target": "plans_2026_09_04_wallet_management_codeblock_46"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L212",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1512",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_task_3_controller_endpoints",
- "target": "plans_2026_08_15_workspace_endpoints_codeblock_8"
+ "source": "plans_2026_09_04_wallet_management_task_12_split_cliff_regression_test_snapshot_history_dividend_extension_final_gate",
+ "target": "plans_2026_09_04_wallet_management_codeblock_47"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L368",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1528",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_task_3_controller_endpoints",
- "target": "plans_2026_08_15_workspace_endpoints_codeblock_9"
+ "source": "plans_2026_09_04_wallet_management_task_12_split_cliff_regression_test_snapshot_history_dividend_extension_final_gate",
+ "target": "plans_2026_09_04_wallet_management_codeblock_48"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L375",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1546",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_task_3_controller_endpoints",
- "target": "plans_2026_08_15_workspace_endpoints_codeblock_10"
+ "source": "plans_2026_09_04_wallet_management_task_12_split_cliff_regression_test_snapshot_history_dividend_extension_final_gate",
+ "target": "plans_2026_09_04_wallet_management_codeblock_49"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L381",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1582",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_task_3_controller_endpoints",
- "target": "plans_2026_08_15_workspace_endpoints_codeblock_11"
+ "source": "plans_2026_09_04_wallet_management_task_12_split_cliff_regression_test_snapshot_history_dividend_extension_final_gate",
+ "target": "plans_2026_09_04_wallet_management_codeblock_50"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L458",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1613",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_task_3_controller_endpoints",
- "target": "plans_2026_08_15_workspace_endpoints_codeblock_12"
+ "source": "plans_2026_09_04_wallet_management_task_12_split_cliff_regression_test_snapshot_history_dividend_extension_final_gate",
+ "target": "plans_2026_09_04_wallet_management_codeblock_51"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L479",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1635",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_task_4_serve_file_agent_tool",
- "target": "plans_2026_08_15_workspace_endpoints_codeblock_13"
+ "source": "plans_2026_09_04_wallet_management_task_13_corporate_actions_table_read_time_scaling_sobras_rule_definitive_full_gate",
+ "target": "plans_2026_09_04_wallet_management_codeblock_52"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L560",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1661",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_task_4_serve_file_agent_tool",
- "target": "plans_2026_08_15_workspace_endpoints_codeblock_14"
+ "source": "plans_2026_09_04_wallet_management_task_13_corporate_actions_table_read_time_scaling_sobras_rule_definitive_full_gate",
+ "target": "plans_2026_09_04_wallet_management_codeblock_53"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L566",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1686",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_task_4_serve_file_agent_tool",
- "target": "plans_2026_08_15_workspace_endpoints_codeblock_15"
+ "source": "plans_2026_09_04_wallet_management_task_13_corporate_actions_table_read_time_scaling_sobras_rule_definitive_full_gate",
+ "target": "plans_2026_09_04_wallet_management_codeblock_54"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L593",
+ "source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
+ "source_location": "L1727",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_task_4_serve_file_agent_tool",
- "target": "plans_2026_08_15_workspace_endpoints_codeblock_16"
+ "source": "plans_2026_09_04_wallet_management_task_13_corporate_actions_table_read_time_scaling_sobras_rule_definitive_full_gate",
+ "target": "plans_2026_09_04_wallet_management_codeblock_55"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L604",
+ "source_file": "docs/superpowers/plans/2026-09-12-artifact-removal-cache-verdict.md",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_task_4_serve_file_agent_tool",
- "target": "plans_2026_08_15_workspace_endpoints_codeblock_17"
+ "source": "docs_superpowers_plans_2026_09_12_artifact_removal_cache_verdict_md",
+ "target": "plans_2026_09_12_artifact_removal_cache_verdict_artifact_removal_matrix_cache_verdict_plan"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-endpoints.md",
- "source_location": "L626",
+ "source_file": "docs/superpowers/plans/2026-09-12-artifact-removal-cache-verdict.md",
+ "source_location": "L3",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_endpoints_task_5_full_verification",
- "target": "plans_2026_08_15_workspace_endpoints_codeblock_18"
+ "source": "plans_2026_09_12_artifact_removal_cache_verdict_artifact_removal_matrix_cache_verdict_plan",
+ "target": "plans_2026_09_12_artifact_removal_cache_verdict_part_1_deletions_safe_no_live_referrers"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
- "source_location": "L1",
+ "source_file": "docs/superpowers/plans/2026-09-12-artifact-removal-cache-verdict.md",
+ "source_location": "L25",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_superpowers_plans_2026_08_15_workspace_frontend_md",
- "target": "plans_2026_08_15_workspace_frontend_workspace_files_ui_promptbox_upload_implementation_plan"
+ "source": "plans_2026_09_12_artifact_removal_cache_verdict_artifact_removal_matrix_cache_verdict_plan",
+ "target": "plans_2026_09_12_artifact_removal_cache_verdict_part_2_cache_verdict_keep_the_dict_skip_cashews"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
- "source_location": "L13",
+ "source_file": "docs/superpowers/specs/2026-09-04-wallet-design.md",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_frontend_workspace_files_ui_promptbox_upload_implementation_plan",
- "target": "plans_2026_08_15_workspace_frontend_backend_contract_source_of_truth_for_api_js"
+ "source": "docs_superpowers_specs_2026_09_04_wallet_design_md",
+ "target": "specs_2026_09_04_wallet_design_thoth_iyagba_wallet_management_design_spec"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
- "source_location": "L32",
+ "source_file": "docs/superpowers/specs/2026-09-04-wallet-design.md",
+ "source_location": "L8",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_frontend_workspace_files_ui_promptbox_upload_implementation_plan",
- "target": "plans_2026_08_15_workspace_frontend_global_constraints"
+ "source": "specs_2026_09_04_wallet_design_thoth_iyagba_wallet_management_design_spec",
+ "target": "specs_2026_09_04_wallet_design_1_context"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
- "source_location": "L43",
+ "source_file": "docs/superpowers/specs/2026-09-04-wallet-design.md",
+ "source_location": "L46",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_frontend_global_constraints",
- "target": "plans_2026_08_15_workspace_frontend_task_1_api_layer_workspace_functions_in_src_api_js"
+ "source": "specs_2026_09_04_wallet_design_thoth_iyagba_wallet_management_design_spec",
+ "target": "specs_2026_09_04_wallet_design_2_decision_design_a_pure_event_log_derive_at_read_time"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
- "source_location": "L176",
+ "source_file": "docs/superpowers/specs/2026-09-04-wallet-design.md",
+ "source_location": "L68",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_frontend_global_constraints",
- "target": "plans_2026_08_15_workspace_frontend_task_2_settings_menu_workspace_files_grid_in_sessionsidebar"
+ "source": "specs_2026_09_04_wallet_design_thoth_iyagba_wallet_management_design_spec",
+ "target": "specs_2026_09_04_wallet_design_3_data_model_user_db_alembic"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
- "source_location": "L294",
+ "source_file": "docs/superpowers/specs/2026-09-04-wallet-design.md",
+ "source_location": "L131",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_frontend_global_constraints",
- "target": "plans_2026_08_15_workspace_frontend_task_3_drag_drop_file_upload_in_the_promptbox_inputbar_jsx"
+ "source": "specs_2026_09_04_wallet_design_thoth_iyagba_wallet_management_design_spec",
+ "target": "specs_2026_09_04_wallet_design_4_derivations_all_at_read_time_date_order"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
- "source_location": "L403",
+ "source_file": "docs/superpowers/specs/2026-09-04-wallet-design.md",
+ "source_location": "L175",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_frontend_global_constraints",
- "target": "plans_2026_08_15_workspace_frontend_task_4_docker_restart_e2e_of_prometheus_chat_stream_performed_by_controller_not_a_subagent"
+ "source": "specs_2026_09_04_wallet_design_thoth_iyagba_wallet_management_design_spec",
+ "target": "specs_2026_09_04_wallet_design_5_endpoints_wallet_on_the_user_port_via_walletservice_getcurrentuser_gate_inline_body_query"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
- "source_location": "L61",
+ "source_file": "docs/superpowers/specs/2026-09-04-wallet-design.md",
+ "source_location": "L203",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_frontend_task_1_api_layer_workspace_functions_in_src_api_js",
- "target": "plans_2026_08_15_workspace_frontend_codeblock_1"
+ "source": "specs_2026_09_04_wallet_design_thoth_iyagba_wallet_management_design_spec",
+ "target": "specs_2026_09_04_wallet_design_6_live_prices_endpoint_only_isolation"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
- "source_location": "L122",
+ "source_file": "docs/superpowers/specs/2026-09-04-wallet-design.md",
+ "source_location": "L235",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_frontend_task_1_api_layer_workspace_functions_in_src_api_js",
- "target": "plans_2026_08_15_workspace_frontend_codeblock_2"
+ "source": "specs_2026_09_04_wallet_design_thoth_iyagba_wallet_management_design_spec",
+ "target": "specs_2026_09_04_wallet_design_7_validation_422_naming_the_rule_503_for_price_outages"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
- "source_location": "L169",
+ "source_file": "docs/superpowers/specs/2026-09-04-wallet-design.md",
+ "source_location": "L266",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_frontend_task_1_api_layer_workspace_functions_in_src_api_js",
- "target": "plans_2026_08_15_workspace_frontend_codeblock_3"
+ "source": "specs_2026_09_04_wallet_design_thoth_iyagba_wallet_management_design_spec",
+ "target": "specs_2026_09_04_wallet_design_8_testing_quality_gates_precedents_to_honor"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
- "source_location": "L191",
+ "source_file": "docs/superpowers/specs/2026-09-04-wallet-design.md",
+ "source_location": "L287",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_frontend_task_2_settings_menu_workspace_files_grid_in_sessionsidebar",
- "target": "plans_2026_08_15_workspace_frontend_codeblock_4"
+ "source": "specs_2026_09_04_wallet_design_thoth_iyagba_wallet_management_design_spec",
+ "target": "specs_2026_09_04_wallet_design_9_scope"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
- "source_location": "L246",
+ "source_file": "docs/superpowers/specs/2026-09-04-wallet-design.md",
+ "source_location": "L302",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_frontend_task_2_settings_menu_workspace_files_grid_in_sessionsidebar",
- "target": "plans_2026_08_15_workspace_frontend_codeblock_5"
+ "source": "specs_2026_09_04_wallet_design_thoth_iyagba_wallet_management_design_spec",
+ "target": "specs_2026_09_04_wallet_design_10_splits_served_prices_are_raw_by_default_verified_verdict_encode_as_is"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
- "source_location": "L272",
+ "source_file": "docs/superpowers/specs/2026-09-04-wallet-design.md",
+ "source_location": "L326",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_frontend_task_2_settings_menu_workspace_files_grid_in_sessionsidebar",
- "target": "plans_2026_08_15_workspace_frontend_codeblock_6"
+ "source": "specs_2026_09_04_wallet_design_thoth_iyagba_wallet_management_design_spec",
+ "target": "specs_2026_09_04_wallet_design_11_dividends_no_dedicated_endpoint_verified_verdict_encode_as_is"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
- "source_location": "L287",
+ "source_file": "docs/superpowers/specs/2026-09-04-wallet-design.md",
+ "source_location": "L364",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_frontend_task_2_settings_menu_workspace_files_grid_in_sessionsidebar",
- "target": "plans_2026_08_15_workspace_frontend_codeblock_7"
+ "source": "specs_2026_09_04_wallet_design_thoth_iyagba_wallet_management_design_spec",
+ "target": "specs_2026_09_04_wallet_design_12_corporate_actions_splits_and_grupamentos_via_one_read_time_mechanism"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
- "source_location": "L308",
+ "source_file": "docs/superpowers/specs/2026-09-04-wallet-design.md",
+ "source_location": "L403",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_frontend_task_3_drag_drop_file_upload_in_the_promptbox_inputbar_jsx",
- "target": "plans_2026_08_15_workspace_frontend_codeblock_8"
+ "source": "specs_2026_09_04_wallet_design_thoth_iyagba_wallet_management_design_spec",
+ "target": "specs_2026_09_04_wallet_design_13_dividend_methodology_ex_date_smoothing_check_both_branches_test_decides"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
- "source_location": "L372",
+ "source_file": "docs/superpowers/specs/2026-09-04-wallet-design.md",
+ "source_location": "L422",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_frontend_task_3_drag_drop_file_upload_in_the_promptbox_inputbar_jsx",
- "target": "plans_2026_08_15_workspace_frontend_codeblock_9"
+ "source": "specs_2026_09_04_wallet_design_thoth_iyagba_wallet_management_design_spec",
+ "target": "specs_2026_09_04_wallet_design_spec_self_review"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-15-workspace-frontend.md",
- "source_location": "L396",
+ "source_file": "docs/superpowers/specs/2026-09-04-wallet-design.md",
+ "source_location": "L53",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_15_workspace_frontend_task_3_drag_drop_file_upload_in_the_promptbox_inputbar_jsx",
- "target": "plans_2026_08_15_workspace_frontend_codeblock_10"
+ "source": "specs_2026_09_04_wallet_design_2_decision_design_a_pure_event_log_derive_at_read_time",
+ "target": "specs_2026_09_04_wallet_design_approaches_considered"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L1",
+ "source_file": "main/app/prometheus/matrix_cache.py",
+ "source_location": "L21",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_superpowers_plans_2026_08_17_openui_migration_md",
- "target": "plans_2026_08_17_openui_migration_openui_migration_plan"
+ "source": "main_app_prometheus_matrix_cache_py",
+ "target": "prometheus_matrix_cache_buildkey"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L20",
+ "source_file": "main/app/prometheus/matrix_cache.py",
+ "source_location": "L28",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_openui_migration_plan",
- "target": "plans_2026_08_17_openui_migration_global_constraints"
+ "source": "main_app_prometheus_matrix_cache_py",
+ "target": "prometheus_matrix_cache_runawait"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L30",
+ "source_file": "main/app/prometheus/matrix_cache.py",
+ "source_location": "L6",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_openui_migration_plan",
- "target": "plans_2026_08_17_openui_migration_file_structure"
+ "source": "main_app_prometheus_matrix_cache_py",
+ "target": "prometheus_matrix_cache_getmatrix"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L52",
+ "source_file": "main/app/prometheus/matrix_cache.py",
+ "source_location": "L12",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_openui_migration_plan",
- "target": "plans_2026_08_17_openui_migration_task_1_install_openui_remove_mdocui"
+ "source": "main_app_prometheus_matrix_cache_py",
+ "target": "prometheus_matrix_cache_invalidateuser"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L80",
+ "source_file": "main/app/prometheus/matrix_cache.py",
+ "source_location": "L16",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_openui_migration_plan",
- "target": "plans_2026_08_17_openui_migration_task_2_define_prometheus_component_library"
+ "source": "main_app_prometheus_matrix_cache_py",
+ "target": "prometheus_matrix_cache_clearall"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L385",
+ "source_file": "main/app/prometheus/matrix_cache.py",
+ "source_location": "L33",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_openui_migration_plan",
- "target": "plans_2026_08_17_openui_migration_task_3_create_openui_renderer"
+ "source": "prometheus_matrix_cache_getmatrix",
+ "target": "prometheus_matrix_cache_buildkey"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L455",
+ "source_file": "main/app/prometheus/matrix_cache.py",
+ "source_location": "L34",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_openui_migration_plan",
- "target": "plans_2026_08_17_openui_migration_task_4_backend_system_prompt"
+ "source": "prometheus_matrix_cache_getmatrix",
+ "target": "prometheus_matrix_cache_runawait"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L610",
+ "source_file": "main/app/prometheus/matrix_cache.py",
+ "source_location": "L51",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_openui_migration_plan",
- "target": "plans_2026_08_17_openui_migration_task_5_integration_test"
+ "source": "prometheus_matrix_cache_invalidateuser",
+ "target": "prometheus_matrix_cache_runawait"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L640",
+ "source_file": "main/app/prometheus/matrix_cache.py",
+ "source_location": "L59",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_openui_migration_plan",
- "target": "plans_2026_08_17_openui_migration_verification_checklist"
+ "source": "prometheus_matrix_cache_clearall",
+ "target": "prometheus_matrix_cache_runawait"
+ },
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "INFERRED",
+ "confidence_score": 0.8,
+ "source_file": "scripts/backfill_normalize_embeddings.py",
+ "source_location": "L36",
+ "weight": 1.0,
+ "source": "scripts_backfill_normalize_embeddings_main",
+ "target": "prometheus_matrix_cache_clearall"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L32",
+ "source_file": "bench/bench_memory_vector.py",
+ "source_location": "L12",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_file_structure",
- "target": "plans_2026_08_17_openui_migration_frontend_local_only_never_committed"
+ "source": "bench_bench_memory_vector_py",
+ "target": "bench_bench_memory_vector_benchonce"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
+ "source_file": "bench/bench_memory_vector.py",
"source_location": "L43",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_file_structure",
- "target": "plans_2026_08_17_openui_migration_backend_commit"
+ "source": "bench_bench_memory_vector_py",
+ "target": "bench_bench_memory_vector_main"
},
{
- "relation": "contains",
+ "relation": "calls",
+ "context": "call",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L58",
+ "source_file": "bench/bench_memory_vector.py",
+ "source_location": "L50",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_task_1_install_openui_remove_mdocui",
- "target": "plans_2026_08_17_openui_migration_codeblock_1"
+ "source": "bench_bench_memory_vector_main",
+ "target": "bench_bench_memory_vector_benchonce"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L66",
+ "source_file": "bench/results/20260912T190329Z-baseline.json",
+ "source_location": "L2",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_task_1_install_openui_remove_mdocui",
- "target": "plans_2026_08_17_openui_migration_codeblock_2"
+ "source": "bench_results_20260912t190329z_baseline_json",
+ "target": "results_20260912t190329z_baseline_label"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L72",
+ "source_file": "bench/results/20260912T190329Z-baseline.json",
+ "source_location": "L3",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_task_1_install_openui_remove_mdocui",
- "target": "plans_2026_08_17_openui_migration_codeblock_3"
+ "source": "bench_results_20260912t190329z_baseline_json",
+ "target": "results_20260912t190329z_baseline_at"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L86",
+ "source_file": "bench/results/20260912T190329Z-baseline.json",
+ "source_location": "L4",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_task_2_define_prometheus_component_library",
- "target": "plans_2026_08_17_openui_migration_component_mapping"
+ "source": "bench_results_20260912t190329z_baseline_json",
+ "target": "results_20260912t190329z_baseline_rows"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L101",
+ "source_file": "bench/results/20260912T192904Z-baseline.json",
+ "source_location": "L2",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_component_mapping",
- "target": "plans_2026_08_17_openui_migration_codeblock_4"
+ "source": "bench_results_20260912t192904z_baseline_json",
+ "target": "results_20260912t192904z_baseline_label"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L339",
+ "source_file": "bench/results/20260912T192904Z-baseline.json",
+ "source_location": "L3",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_component_mapping",
- "target": "plans_2026_08_17_openui_migration_codeblock_5"
+ "source": "bench_results_20260912t192904z_baseline_json",
+ "target": "results_20260912t192904z_baseline_at"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L396",
+ "source_file": "bench/results/20260912T192904Z-baseline.json",
+ "source_location": "L4",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_task_3_create_openui_renderer",
- "target": "plans_2026_08_17_openui_migration_codeblock_6"
+ "source": "bench_results_20260912t192904z_baseline_json",
+ "target": "results_20260912t192904z_baseline_rows"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L428",
+ "source_file": "scripts/backfill_normalize_embeddings.py",
+ "source_location": "L10",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_task_3_create_openui_renderer",
- "target": "plans_2026_08_17_openui_migration_codeblock_7"
+ "source": "scripts_backfill_normalize_embeddings_py",
+ "target": "scripts_backfill_normalize_embeddings_main"
},
{
- "relation": "contains",
+ "relation": "rationale_for",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L435",
+ "source_file": "scripts/backfill_normalize_embeddings.py",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_task_3_create_openui_renderer",
- "target": "plans_2026_08_17_openui_migration_codeblock_8"
+ "source": "scripts_backfill_normalize_embeddings_rationale_1",
+ "target": "scripts_backfill_normalize_embeddings_py"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L442",
+ "source_file": "docs/vector-scaleup-runbook.md",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_task_3_create_openui_renderer",
- "target": "plans_2026_08_17_openui_migration_codeblock_9"
+ "source": "docs_vector_scaleup_runbook_md",
+ "target": "docs_vector_scaleup_runbook_vector_scale_up_runbook"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L449",
+ "source_file": "docs/vector-scaleup-runbook.md",
+ "source_location": "L6",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_task_3_create_openui_renderer",
- "target": "plans_2026_08_17_openui_migration_codeblock_10"
+ "source": "docs_vector_scaleup_runbook_vector_scale_up_runbook",
+ "target": "docs_vector_scaleup_runbook_baseline_lane_4"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L467",
+ "source_file": "docs/vector-scaleup-runbook.md",
+ "source_location": "L12",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_task_4_backend_system_prompt",
- "target": "plans_2026_08_17_openui_migration_codeblock_11"
+ "source": "docs_vector_scaleup_runbook_vector_scale_up_runbook",
+ "target": "docs_vector_scaleup_runbook_move_triggers_any_one_fires_the_migration"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L486",
+ "source_file": "docs/vector-scaleup-runbook.md",
+ "source_location": "L18",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_task_4_backend_system_prompt",
- "target": "plans_2026_08_17_openui_migration_codeblock_12"
+ "source": "docs_vector_scaleup_runbook_vector_scale_up_runbook",
+ "target": "docs_vector_scaleup_runbook_options"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L501",
+ "source_file": "docs/vector-scaleup-runbook.md",
+ "source_location": "L26",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_task_4_backend_system_prompt",
- "target": "plans_2026_08_17_openui_migration_codeblock_13"
+ "source": "docs_vector_scaleup_runbook_vector_scale_up_runbook",
+ "target": "docs_vector_scaleup_runbook_export_recipe"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L542",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane1-vector-normalize.md",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_task_4_backend_system_prompt",
- "target": "plans_2026_08_17_openui_migration_codeblock_14"
+ "source": "docs_superpowers_plans_2026_09_12_lane1_vector_normalize_md",
+ "target": "plans_2026_09_12_lane1_vector_normalize_lane_1_normalized_embeddings_dot_product_search_implementation_plan"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L555",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane1-vector-normalize.md",
+ "source_location": "L15",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_task_4_backend_system_prompt",
- "target": "plans_2026_08_17_openui_migration_codeblock_15"
+ "source": "plans_2026_09_12_lane1_vector_normalize_lane_1_normalized_embeddings_dot_product_search_implementation_plan",
+ "target": "plans_2026_09_12_lane1_vector_normalize_global_constraints"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L572",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane1-vector-normalize.md",
+ "source_location": "L25",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_task_4_backend_system_prompt",
- "target": "plans_2026_08_17_openui_migration_codeblock_16"
+ "source": "plans_2026_09_12_lane1_vector_normalize_global_constraints",
+ "target": "plans_2026_09_12_lane1_vector_normalize_task_1_normalize_on_encode_row_normalize_helper"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L577",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane1-vector-normalize.md",
+ "source_location": "L98",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_task_4_backend_system_prompt",
- "target": "plans_2026_08_17_openui_migration_codeblock_17"
+ "source": "plans_2026_09_12_lane1_vector_normalize_global_constraints",
+ "target": "plans_2026_09_12_lane1_vector_normalize_task_2_backfill_existing_rows_to_unit_norm"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L590",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane1-vector-normalize.md",
+ "source_location": "L37",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_task_4_backend_system_prompt",
- "target": "plans_2026_08_17_openui_migration_codeblock_18"
+ "source": "plans_2026_09_12_lane1_vector_normalize_task_1_normalize_on_encode_row_normalize_helper",
+ "target": "plans_2026_09_12_lane1_vector_normalize_codeblock_1"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L596",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane1-vector-normalize.md",
+ "source_location": "L66",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_task_4_backend_system_prompt",
- "target": "plans_2026_08_17_openui_migration_codeblock_19"
+ "source": "plans_2026_09_12_lane1_vector_normalize_task_1_normalize_on_encode_row_normalize_helper",
+ "target": "plans_2026_09_12_lane1_vector_normalize_codeblock_2"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L602",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane1-vector-normalize.md",
+ "source_location": "L93",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_task_4_backend_system_prompt",
- "target": "plans_2026_08_17_openui_migration_codeblock_20"
+ "source": "plans_2026_09_12_lane1_vector_normalize_task_1_normalize_on_encode_row_normalize_helper",
+ "target": "plans_2026_09_12_lane1_vector_normalize_codeblock_3"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L614",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane1-vector-normalize.md",
+ "source_location": "L110",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_task_5_integration_test",
- "target": "plans_2026_08_17_openui_migration_codeblock_21"
+ "source": "plans_2026_09_12_lane1_vector_normalize_task_2_backfill_existing_rows_to_unit_norm",
+ "target": "plans_2026_09_12_lane1_vector_normalize_codeblock_4"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-08-17-openui-migration.md",
- "source_location": "L620",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane1-vector-normalize.md",
+ "source_location": "L159",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_08_17_openui_migration_task_5_integration_test",
- "target": "plans_2026_08_17_openui_migration_codeblock_22"
+ "source": "plans_2026_09_12_lane1_vector_normalize_task_2_backfill_existing_rows_to_unit_norm",
+ "target": "plans_2026_09_12_lane1_vector_normalize_codeblock_5"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane2-memory-query-path.md",
"source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "docs_superpowers_plans_2026_09_03_followup_hardening_md",
- "target": "plans_2026_09_03_followup_hardening_follow_up_hardening_implementation_plan"
+ "source": "docs_superpowers_plans_2026_09_12_lane2_memory_query_path_md",
+ "target": "plans_2026_09_12_lane2_memory_query_path_lane_2_memory_query_path_fix_implementation_plan"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L13",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane2-memory-query-path.md",
+ "source_location": "L16",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_follow_up_hardening_implementation_plan",
- "target": "plans_2026_09_03_followup_hardening_global_constraints"
+ "source": "plans_2026_09_12_lane2_memory_query_path_lane_2_memory_query_path_fix_implementation_plan",
+ "target": "plans_2026_09_12_lane2_memory_query_path_global_constraints"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L26",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane2-memory-query-path.md",
+ "source_location": "L27",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_follow_up_hardening_implementation_plan",
- "target": "plans_2026_09_03_followup_hardening_file_map"
+ "source": "plans_2026_09_12_lane2_memory_query_path_global_constraints",
+ "target": "plans_2026_09_12_lane2_memory_query_path_task_1_two_phase_candidate_load_with_deferred_blobs"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L814",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane2-memory-query-path.md",
+ "source_location": "L116",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_follow_up_hardening_implementation_plan",
- "target": "plans_2026_09_03_followup_hardening_self_review"
+ "source": "plans_2026_09_12_lane2_memory_query_path_global_constraints",
+ "target": "plans_2026_09_12_lane2_memory_query_path_task_2_fuse_vector_fulltext_and_recency_scores"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L44",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane2-memory-query-path.md",
+ "source_location": "L40",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_file_map",
- "target": "plans_2026_09_03_followup_hardening_task_1_thoth_maat_permission_decision"
+ "source": "plans_2026_09_12_lane2_memory_query_path_task_1_two_phase_candidate_load_with_deferred_blobs",
+ "target": "plans_2026_09_12_lane2_memory_query_path_codeblock_1"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L127",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane2-memory-query-path.md",
+ "source_location": "L52",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_file_map",
- "target": "plans_2026_09_03_followup_hardening_task_2_p6_redis_cashews_insertion_behind_existing_sync_cache"
+ "source": "plans_2026_09_12_lane2_memory_query_path_task_1_two_phase_candidate_load_with_deferred_blobs",
+ "target": "plans_2026_09_12_lane2_memory_query_path_codeblock_2"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L240",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane2-memory-query-path.md",
+ "source_location": "L82",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_file_map",
- "target": "plans_2026_09_03_followup_hardening_task_3_zstd_hot_path_rework_via_feather_to_dict_zstd_migration"
+ "source": "plans_2026_09_12_lane2_memory_query_path_task_1_two_phase_candidate_load_with_deferred_blobs",
+ "target": "plans_2026_09_12_lane2_memory_query_path_codeblock_3"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L337",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane2-memory-query-path.md",
+ "source_location": "L111",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_file_map",
- "target": "plans_2026_09_03_followup_hardening_task_4_queryhistorical_queryfundamental_presort_invariant_guard"
+ "source": "plans_2026_09_12_lane2_memory_query_path_task_1_two_phase_candidate_load_with_deferred_blobs",
+ "target": "plans_2026_09_12_lane2_memory_query_path_codeblock_4"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L415",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane2-memory-query-path.md",
+ "source_location": "L128",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_file_map",
- "target": "plans_2026_09_03_followup_hardening_task_5_history_backfill_dedup_indices_as_logging_only"
+ "source": "plans_2026_09_12_lane2_memory_query_path_task_2_fuse_vector_fulltext_and_recency_scores",
+ "target": "plans_2026_09_12_lane2_memory_query_path_codeblock_5"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L509",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane2-memory-query-path.md",
+ "source_location": "L143",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_file_map",
- "target": "plans_2026_09_03_followup_hardening_task_6_stocks_api_limiter_design_design_only_do_not_enable"
+ "source": "plans_2026_09_12_lane2_memory_query_path_task_2_fuse_vector_fulltext_and_recency_scores",
+ "target": "plans_2026_09_12_lane2_memory_query_path_codeblock_6"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L562",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane2-memory-query-path.md",
+ "source_location": "L173",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_file_map",
- "target": "plans_2026_09_03_followup_hardening_task_7_remove_temporary_run_py_scraper_debug_endpoint"
+ "source": "plans_2026_09_12_lane2_memory_query_path_task_2_fuse_vector_fulltext_and_recency_scores",
+ "target": "plans_2026_09_12_lane2_memory_query_path_codeblock_7"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L623",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane4-vector-bench.md",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_file_map",
- "target": "plans_2026_09_03_followup_hardening_task_8_fix_20_pre_existing_environmental_failures"
+ "source": "docs_superpowers_plans_2026_09_12_lane4_vector_bench_md",
+ "target": "plans_2026_09_12_lane4_vector_bench_lane_4_before_after_bench_implementation_plan"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L712",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane4-vector-bench.md",
+ "source_location": "L16",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_file_map",
- "target": "plans_2026_09_03_followup_hardening_task_9_session_refresh_token_rotation_follow_up"
+ "source": "plans_2026_09_12_lane4_vector_bench_lane_4_before_after_bench_implementation_plan",
+ "target": "plans_2026_09_12_lane4_vector_bench_global_constraints"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L61",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane4-vector-bench.md",
+ "source_location": "L25",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_1_thoth_maat_permission_decision",
- "target": "plans_2026_09_03_followup_hardening_codeblock_1"
+ "source": "plans_2026_09_12_lane4_vector_bench_global_constraints",
+ "target": "plans_2026_09_12_lane4_vector_bench_task_1_bench_script_with_synthetic_scale_sweep"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L80",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane4-vector-bench.md",
+ "source_location": "L105",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_1_thoth_maat_permission_decision",
- "target": "plans_2026_09_03_followup_hardening_codeblock_2"
+ "source": "plans_2026_09_12_lane4_vector_bench_global_constraints",
+ "target": "plans_2026_09_12_lane4_vector_bench_task_2_record_baseline_and_post_lane_numbers"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L96",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane4-vector-bench.md",
+ "source_location": "L38",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_1_thoth_maat_permission_decision",
- "target": "plans_2026_09_03_followup_hardening_codeblock_3"
+ "source": "plans_2026_09_12_lane4_vector_bench_task_1_bench_script_with_synthetic_scale_sweep",
+ "target": "plans_2026_09_12_lane4_vector_bench_codeblock_1"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L120",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane4-vector-bench.md",
+ "source_location": "L100",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_1_thoth_maat_permission_decision",
- "target": "plans_2026_09_03_followup_hardening_codeblock_4"
+ "source": "plans_2026_09_12_lane4_vector_bench_task_1_bench_script_with_synthetic_scale_sweep",
+ "target": "plans_2026_09_12_lane4_vector_bench_codeblock_2"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L143",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane5-vector-scaleup.md",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_2_p6_redis_cashews_insertion_behind_existing_sync_cache",
- "target": "plans_2026_09_03_followup_hardening_codeblock_5"
+ "source": "docs_superpowers_plans_2026_09_12_lane5_vector_scaleup_md",
+ "target": "plans_2026_09_12_lane5_vector_scaleup_lane_5_scale_up_readiness_implementation_plan"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L185",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane5-vector-scaleup.md",
+ "source_location": "L15",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_2_p6_redis_cashews_insertion_behind_existing_sync_cache",
- "target": "plans_2026_09_03_followup_hardening_codeblock_6"
+ "source": "plans_2026_09_12_lane5_vector_scaleup_lane_5_scale_up_readiness_implementation_plan",
+ "target": "plans_2026_09_12_lane5_vector_scaleup_global_constraints"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L198",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane5-vector-scaleup.md",
+ "source_location": "L25",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_2_p6_redis_cashews_insertion_behind_existing_sync_cache",
- "target": "plans_2026_09_03_followup_hardening_codeblock_7"
+ "source": "plans_2026_09_12_lane5_vector_scaleup_global_constraints",
+ "target": "plans_2026_09_12_lane5_vector_scaleup_task_1_vector_string_codec_independent_run_anytime"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L204",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane5-vector-scaleup.md",
+ "source_location": "L87",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_2_p6_redis_cashews_insertion_behind_existing_sync_cache",
- "target": "plans_2026_09_03_followup_hardening_codeblock_8"
+ "source": "plans_2026_09_12_lane5_vector_scaleup_global_constraints",
+ "target": "plans_2026_09_12_lane5_vector_scaleup_task_2_per_process_matrix_cache_gated_on_lanes_1_2_merge"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L233",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane5-vector-scaleup.md",
+ "source_location": "L163",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_2_p6_redis_cashews_insertion_behind_existing_sync_cache",
- "target": "plans_2026_09_03_followup_hardening_codeblock_9"
+ "source": "plans_2026_09_12_lane5_vector_scaleup_global_constraints",
+ "target": "plans_2026_09_12_lane5_vector_scaleup_task_3_scale_up_runbook_gated_on_task_2"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L256",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane5-vector-scaleup.md",
+ "source_location": "L38",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_3_zstd_hot_path_rework_via_feather_to_dict_zstd_migration",
- "target": "plans_2026_09_03_followup_hardening_codeblock_10"
+ "source": "plans_2026_09_12_lane5_vector_scaleup_task_1_vector_string_codec_independent_run_anytime",
+ "target": "plans_2026_09_12_lane5_vector_scaleup_codeblock_1"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L284",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane5-vector-scaleup.md",
+ "source_location": "L62",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_3_zstd_hot_path_rework_via_feather_to_dict_zstd_migration",
- "target": "plans_2026_09_03_followup_hardening_codeblock_11"
+ "source": "plans_2026_09_12_lane5_vector_scaleup_task_1_vector_string_codec_independent_run_anytime",
+ "target": "plans_2026_09_12_lane5_vector_scaleup_codeblock_2"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L298",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane5-vector-scaleup.md",
+ "source_location": "L82",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_3_zstd_hot_path_rework_via_feather_to_dict_zstd_migration",
- "target": "plans_2026_09_03_followup_hardening_codeblock_12"
+ "source": "plans_2026_09_12_lane5_vector_scaleup_task_1_vector_string_codec_independent_run_anytime",
+ "target": "plans_2026_09_12_lane5_vector_scaleup_codeblock_3"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L330",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane5-vector-scaleup.md",
+ "source_location": "L101",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_3_zstd_hot_path_rework_via_feather_to_dict_zstd_migration",
- "target": "plans_2026_09_03_followup_hardening_codeblock_13"
+ "source": "plans_2026_09_12_lane5_vector_scaleup_task_2_per_process_matrix_cache_gated_on_lanes_1_2_merge",
+ "target": "plans_2026_09_12_lane5_vector_scaleup_codeblock_4"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L351",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane5-vector-scaleup.md",
+ "source_location": "L129",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_4_queryhistorical_queryfundamental_presort_invariant_guard",
- "target": "plans_2026_09_03_followup_hardening_codeblock_14"
+ "source": "plans_2026_09_12_lane5_vector_scaleup_task_2_per_process_matrix_cache_gated_on_lanes_1_2_merge",
+ "target": "plans_2026_09_12_lane5_vector_scaleup_codeblock_5"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L390",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane5-vector-scaleup.md",
+ "source_location": "L158",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_4_queryhistorical_queryfundamental_presort_invariant_guard",
- "target": "plans_2026_09_03_followup_hardening_codeblock_15"
+ "source": "plans_2026_09_12_lane5_vector_scaleup_task_2_per_process_matrix_cache_gated_on_lanes_1_2_merge",
+ "target": "plans_2026_09_12_lane5_vector_scaleup_codeblock_6"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L408",
+ "source_file": "docs/superpowers/plans/2026-09-12-lane5-vector-scaleup.md",
+ "source_location": "L183",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_4_queryhistorical_queryfundamental_presort_invariant_guard",
- "target": "plans_2026_09_03_followup_hardening_codeblock_16"
+ "source": "plans_2026_09_12_lane5_vector_scaleup_task_3_scale_up_runbook_gated_on_task_2",
+ "target": "plans_2026_09_12_lane5_vector_scaleup_codeblock_7"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L429",
+ "source_file": "docs/superpowers/plans/2026-09-12-vector-lanes-spec.md",
+ "source_location": "L1",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_5_history_backfill_dedup_indices_as_logging_only",
- "target": "plans_2026_09_03_followup_hardening_codeblock_17"
+ "source": "docs_superpowers_plans_2026_09_12_vector_lanes_spec_md",
+ "target": "plans_2026_09_12_vector_lanes_spec_vector_lanes_spec_1_2_4_5"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L451",
+ "source_file": "docs/superpowers/plans/2026-09-12-vector-lanes-spec.md",
+ "source_location": "L8",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_5_history_backfill_dedup_indices_as_logging_only",
- "target": "plans_2026_09_03_followup_hardening_codeblock_18"
+ "source": "plans_2026_09_12_vector_lanes_spec_vector_lanes_spec_1_2_4_5",
+ "target": "plans_2026_09_12_vector_lanes_spec_current_code_exact"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L502",
+ "source_file": "docs/superpowers/plans/2026-09-12-vector-lanes-spec.md",
+ "source_location": "L32",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_5_history_backfill_dedup_indices_as_logging_only",
- "target": "plans_2026_09_03_followup_hardening_codeblock_19"
+ "source": "plans_2026_09_12_vector_lanes_spec_vector_lanes_spec_1_2_4_5",
+ "target": "plans_2026_09_12_vector_lanes_spec_lane_contracts_interfaces_between_lanes"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L525",
+ "source_file": "frontend/src/components/MdocMessage.jsx",
+ "source_location": "L5",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_6_stocks_api_limiter_design_design_only_do_not_enable",
- "target": "plans_2026_09_03_followup_hardening_codeblock_20"
+ "source": "frontend_src_components_mdocmessage_jsx",
+ "target": "components_mdocmessage_components"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L541",
+ "source_file": "frontend/src/components/MdocMessage.jsx",
+ "source_location": "L88",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_6_stocks_api_limiter_design_design_only_do_not_enable",
- "target": "plans_2026_09_03_followup_hardening_codeblock_21"
+ "source": "frontend_src_components_mdocmessage_jsx",
+ "target": "components_mdocmessage_allowed"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L555",
+ "source_file": "frontend/src/components/MdocMessage.jsx",
+ "source_location": "L54",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_6_stocks_api_limiter_design_design_only_do_not_enable",
- "target": "plans_2026_09_03_followup_hardening_codeblock_22"
+ "source": "frontend_src_components_mdocmessage_jsx",
+ "target": "components_mdocmessage_mdocmessage"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L577",
+ "source_file": "frontend/src/components/MdocMessage.jsx",
+ "source_location": "L4",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_7_remove_temporary_run_py_scraper_debug_endpoint",
- "target": "plans_2026_09_03_followup_hardening_codeblock_23"
+ "source": "frontend_src_components_mdocmessage_jsx",
+ "target": "components_mdocmessage_registry"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L598",
+ "source_file": "frontend/src/components/MdocMessage.jsx",
+ "source_location": "L14",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_7_remove_temporary_run_py_scraper_debug_endpoint",
- "target": "plans_2026_09_03_followup_hardening_codeblock_24"
+ "source": "frontend_src_components_mdocmessage_jsx",
+ "target": "components_mdocmessage_preprocessgeminitags"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L616",
+ "source_file": "frontend/src/components/MdocMessage.jsx",
+ "source_location": "L61",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_7_remove_temporary_run_py_scraper_debug_endpoint",
- "target": "plans_2026_09_03_followup_hardening_codeblock_25"
+ "source": "frontend_src_components_mdocmessage_jsx",
+ "target": "components_mdocmessage_workspacelink"
+ },
+ {
+ "relation": "imports_from",
+ "context": "import",
+ "confidence": "EXTRACTED",
+ "source_file": "frontend/tests/MdocMessage.test.jsx",
+ "source_location": "L3",
+ "weight": 1.0,
+ "confidence_score": 1.0,
+ "source": "frontend_src_components_mdocmessage_jsx",
+ "target": "frontend_tests_mdocmessage_test_jsx"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L640",
+ "source_file": "frontend/src/lib/prometheus-components.jsx",
+ "source_location": "L9",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_8_fix_20_pre_existing_environmental_failures",
- "target": "plans_2026_09_03_followup_hardening_codeblock_26"
+ "source": "frontend_src_lib_prometheus_components_jsx",
+ "target": "lib_prometheus_components_statcard"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L668",
+ "source_file": "frontend/src/lib/prometheus-components.jsx",
+ "source_location": "L39",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_8_fix_20_pre_existing_environmental_failures",
- "target": "plans_2026_09_03_followup_hardening_codeblock_27"
+ "source": "frontend_src_lib_prometheus_components_jsx",
+ "target": "lib_prometheus_components_datatable"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L676",
+ "source_file": "frontend/src/lib/prometheus-components.jsx",
+ "source_location": "L82",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_8_fix_20_pre_existing_environmental_failures",
- "target": "plans_2026_09_03_followup_hardening_codeblock_28"
+ "source": "frontend_src_lib_prometheus_components_jsx",
+ "target": "lib_prometheus_components_barchart"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L705",
+ "source_file": "frontend/src/lib/prometheus-components.jsx",
+ "source_location": "L123",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_8_fix_20_pre_existing_environmental_failures",
- "target": "plans_2026_09_03_followup_hardening_codeblock_29"
+ "source": "frontend_src_lib_prometheus_components_jsx",
+ "target": "lib_prometheus_components_contentcard"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L731",
+ "source_file": "frontend/src/lib/prometheus-components.jsx",
+ "source_location": "L148",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_9_session_refresh_token_rotation_follow_up",
- "target": "plans_2026_09_03_followup_hardening_codeblock_30"
+ "source": "frontend_src_lib_prometheus_components_jsx",
+ "target": "lib_prometheus_components_tabgroup"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L753",
+ "source_file": "frontend/src/lib/prometheus-components.jsx",
+ "source_location": "L158",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_9_session_refresh_token_rotation_follow_up",
- "target": "plans_2026_09_03_followup_hardening_codeblock_31"
+ "source": "frontend_src_lib_prometheus_components_jsx",
+ "target": "lib_prometheus_components_tabpanel"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L769",
+ "source_file": "frontend/src/lib/prometheus-components.jsx",
+ "source_location": "L179",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_9_session_refresh_token_rotation_follow_up",
- "target": "plans_2026_09_03_followup_hardening_codeblock_32"
+ "source": "frontend_src_lib_prometheus_components_jsx",
+ "target": "lib_prometheus_components_accordionitem"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L780",
+ "source_file": "frontend/src/lib/prometheus-components.jsx",
+ "source_location": "L202",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_9_session_refresh_token_rotation_follow_up",
- "target": "plans_2026_09_03_followup_hardening_codeblock_33"
+ "source": "frontend_src_lib_prometheus_components_jsx",
+ "target": "lib_prometheus_components_progressfill"
},
{
"relation": "contains",
"confidence": "EXTRACTED",
- "source_file": "docs/superpowers/plans/2026-09-03-followup-hardening.md",
- "source_location": "L807",
+ "source_file": "frontend/src/lib/prometheus-components.jsx",
+ "source_location": "L226",
"weight": 1.0,
"confidence_score": 1.0,
- "source": "plans_2026_09_03_followup_hardening_task_9_session_refresh_token_rotation_follow_up",
- "target": "plans_2026_09_03_followup_hardening_codeblock_34"
+ "source": "frontend_src_lib_prometheus_components_jsx",
+ "target": "lib_prometheus_components_divider"
},
{
"relation": "rationale_for",
@@ -129338,5 +134895,5 @@
"label": "User Authentication & Authorization"
}
],
- "built_at_commit": "e299aef0a357f960d8c62a63342dc0a8b4f3ac6b"
+ "built_at_commit": "4a1ef15c68d292a0f6cbe3dfdc45a05db7040ce9"
}
\ No newline at end of file
diff --git a/graphify-out/manifest.json b/graphify-out/manifest.json
index 739a477..0bb1a24 100644
--- a/graphify-out/manifest.json
+++ b/graphify-out/manifest.json
@@ -15,7 +15,7 @@
"semantic_hash": ""
},
"D:\\Repositories\\server\\run.py": {
- "mtime": 1788428771.874598,
+ "mtime": 1789165435.4754658,
"ast_hash": "8856c087c4c66080621d00487e4bc52c",
"semantic_hash": ""
},
@@ -35,23 +35,23 @@
"semantic_hash": "c471ffc33ba3a03ab85e430121d628aa"
},
"D:\\Repositories\\server\\frontend\\vite.config.js": {
- "mtime": 1785640843.0547705,
- "ast_hash": "e18955d43a8698c9161cb3b8192658cc",
+ "mtime": 1788637388.7357066,
+ "ast_hash": "1cfd7dbe10c0d84e0c2592781cdaeb5a",
"semantic_hash": ""
},
"D:\\Repositories\\server\\frontend\\src\\api.js": {
- "mtime": 1786815864.66707,
- "ast_hash": "33f51aa3db945e4e175b952810f5d875",
+ "mtime": 1788657707.1779685,
+ "ast_hash": "6bd39ec198869a8b3c107105d9da61e4",
"semantic_hash": ""
},
"D:\\Repositories\\server\\frontend\\src\\App.jsx": {
- "mtime": 1786832610.472853,
- "ast_hash": "d4881ac3307fa1da25ddd87d238888d9",
+ "mtime": 1788731924.642946,
+ "ast_hash": "3186206701c1fcc7edadadfc6687b640",
"semantic_hash": ""
},
"D:\\Repositories\\server\\frontend\\src\\App.resume.test.jsx": {
- "mtime": 1786987291.1863744,
- "ast_hash": "6d91b377e625c4557b45c94c13efb7fe",
+ "mtime": 1788633803.2661169,
+ "ast_hash": "fbbfeb199b290c128c9f52528639eb2e",
"semantic_hash": ""
},
"D:\\Repositories\\server\\frontend\\src\\main.jsx": {
@@ -70,23 +70,18 @@
"semantic_hash": ""
},
"D:\\Repositories\\server\\frontend\\src\\components\\InputBar.jsx": {
- "mtime": 1786818060.913828,
+ "mtime": 1788732001.616491,
"ast_hash": "99e3bf78159c0653af9e85d48bbebbdf",
"semantic_hash": ""
},
- "D:\\Repositories\\server\\frontend\\src\\components\\MdocMessage.jsx": {
- "mtime": 1786987145.254399,
- "ast_hash": "af1f1ebf72920ac108da4c49d4cdbac8",
- "semantic_hash": ""
- },
"D:\\Repositories\\server\\frontend\\src\\components\\MessageList.jsx": {
- "mtime": 1786987180.4653556,
- "ast_hash": "ad43d2815843620e01c3b577be498647",
+ "mtime": 1788731928.9884026,
+ "ast_hash": "531c058cb8a44f71048fdb7a7465a052",
"semantic_hash": ""
},
"D:\\Repositories\\server\\frontend\\src\\components\\SessionSidebar.jsx": {
- "mtime": 1786772945.2258272,
- "ast_hash": "c000beeef03b85ea37a060550a641047",
+ "mtime": 1788731918.6133094,
+ "ast_hash": "872b216a26d6e1ceb1fefb70c62d4fdd",
"semantic_hash": ""
},
"D:\\Repositories\\server\\frontend\\src\\components\\SettingsDialog.jsx": {
@@ -94,6 +89,71 @@
"ast_hash": "3f7f8fe1c78422e051c31e0b77833db5",
"semantic_hash": ""
},
+ "D:\\Repositories\\server\\frontend\\src\\components\\portfolio\\AddDividendDialog.jsx": {
+ "mtime": 1788637382.3049567,
+ "ast_hash": "dd4d8c81459f626fb7243403db0aa746",
+ "semantic_hash": ""
+ },
+ "D:\\Repositories\\server\\frontend\\src\\components\\portfolio\\AddHoldingDialog.jsx": {
+ "mtime": 1788633624.4360394,
+ "ast_hash": "204cf63da006c563b05deee7f0b6e8a3",
+ "semantic_hash": ""
+ },
+ "D:\\Repositories\\server\\frontend\\src\\components\\portfolio\\AddLotDialog.jsx": {
+ "mtime": 1788646071.7926874,
+ "ast_hash": "ea965d531dd96f266832ea5736655032",
+ "semantic_hash": ""
+ },
+ "D:\\Repositories\\server\\frontend\\src\\components\\portfolio\\charts.jsx": {
+ "mtime": 1788577278.4187212,
+ "ast_hash": "4507fc2d181185733f5ad3d8a0c6668d",
+ "semantic_hash": ""
+ },
+ "D:\\Repositories\\server\\frontend\\src\\components\\portfolio\\DistributionChart.jsx": {
+ "mtime": 1788577293.5451124,
+ "ast_hash": "9f6444a8961b28b3f7de1b5c039c3830",
+ "semantic_hash": ""
+ },
+ "D:\\Repositories\\server\\frontend\\src\\components\\portfolio\\HistoryList.jsx": {
+ "mtime": 1788657730.568204,
+ "ast_hash": "facd4a02d1f96bdfe867e1a50c61f3c5",
+ "semantic_hash": ""
+ },
+ "D:\\Repositories\\server\\frontend\\src\\components\\portfolio\\HoldingSearchBox.jsx": {
+ "mtime": 1788646061.960869,
+ "ast_hash": "982f7292542e259516e9d8cbb972e666",
+ "semantic_hash": ""
+ },
+ "D:\\Repositories\\server\\frontend\\src\\components\\portfolio\\HoldingsTable.jsx": {
+ "mtime": 1788637348.4011302,
+ "ast_hash": "592d748b94eee499190a64b755832f2e",
+ "semantic_hash": ""
+ },
+ "D:\\Repositories\\server\\frontend\\src\\components\\portfolio\\monthly.js": {
+ "mtime": 1788577816.6183271,
+ "ast_hash": "27abbd6e65356c0696286689d05019d1",
+ "semantic_hash": ""
+ },
+ "D:\\Repositories\\server\\frontend\\src\\components\\portfolio\\MonthlyBars.jsx": {
+ "mtime": 1788577877.0916457,
+ "ast_hash": "3ad34fe9c3defdf7ec57648d3c5503a8",
+ "semantic_hash": ""
+ },
+ "D:\\Repositories\\server\\frontend\\src\\components\\portfolio\\OverviewCards.jsx": {
+ "mtime": 1788633803.2661169,
+ "ast_hash": "71926313d4786176c03077aab2d58bb9",
+ "semantic_hash": ""
+ },
+ "D:\\Repositories\\server\\frontend\\src\\components\\portfolio\\PortfolioView.jsx": {
+ "mtime": 1788657745.6225016,
+ "ast_hash": "aad4e8c703bcb079a56e22986b5ba36a",
+ "semantic_hash": ""
+ },
+ "D:\\Repositories\\server\\frontend\\src\\components\\portfolio\\validation.js": {
+ "mtime": 1788637312.457845,
+ "ast_hash": "cc3c9ef70571032d09c56c776ebca02e",
+ "semantic_hash": ""
+ },
"D:\\Repositories\\server\\frontend\\src\\components\\ui\\alert-dialog.jsx": {
"mtime": 1785642143.1912372,
"ast_hash": "4a11ee84b0c877ea4f46860ede39fdf8",
@@ -139,11 +199,6 @@
"ast_hash": "72fd324120103da27aca78c0019a155e",
"semantic_hash": ""
},
- "D:\\Repositories\\server\\frontend\\src\\lib\\prometheus-components.jsx": {
- "mtime": 1786941354.6459155,
- "ast_hash": "9a50212ca0fd600ffd7bf2407bba8b92",
- "semantic_hash": ""
- },
"D:\\Repositories\\server\\frontend\\src\\lib\\utils.js": {
"mtime": 1785640918.5280218,
"ast_hash": "eff53006b93cfdef4aef148f202f1c3c",
@@ -160,7 +215,7 @@
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\app\\authentication\\session.py": {
- "mtime": 1788411558.9727383,
+ "mtime": 1789165435.4499094,
"ast_hash": "6507469627574af836ec8caf56062999",
"semantic_hash": ""
},
@@ -185,22 +240,22 @@
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\app\\prometheus\\compact.py": {
- "mtime": 1788413520.8543675,
- "ast_hash": "8aee0837dad4b4e23712c9184f28a93b",
+ "mtime": 1789245131.1614592,
+ "ast_hash": "1a49b42d011265f51dcda7c141c00f2d",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\app\\prometheus\\mcp.py": {
- "mtime": 1788411558.9772625,
- "ast_hash": "8a6522416bce5da3444e1525285b2d59",
+ "mtime": 1789243625.0874593,
+ "ast_hash": "2021e3b2c6b686a64082babc83b1c6fc",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\app\\prometheus\\memory.py": {
- "mtime": 1788411677.4246223,
- "ast_hash": "bbf9b9871f387ed1277330043acc28d3",
+ "mtime": 1789244959.7005122,
+ "ast_hash": "fa9f719664223148efd9e2386e65cdc2",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\app\\prometheus\\sandbox.py": {
- "mtime": 1788411698.304791,
+ "mtime": 1789165435.4529066,
"ast_hash": "494b384f69446280bcff4fab8b3acbf6",
"semantic_hash": ""
},
@@ -210,13 +265,13 @@
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\app\\prometheus\\tools.py": {
- "mtime": 1788411558.9797697,
- "ast_hash": "3f32a1ee73f2537d299c8443b2756998",
+ "mtime": 1789165435.453908,
+ "ast_hash": "39a7952d9fc6ce047e1e5800cd48f269",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\app\\prometheus\\vector.py": {
- "mtime": 1788411558.9797697,
- "ast_hash": "3cb831f022d1ad2e373265ff3f048003",
+ "mtime": 1789242566.5574288,
+ "ast_hash": "6b3c9f8d80bd2ac84294cd0c389ecd07",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\app\\scraper_b3\\scraper.py": {
@@ -230,13 +285,13 @@
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\app\\stocks_api\\cache.py": {
- "mtime": 1788463311.6798687,
+ "mtime": 1789165435.4559073,
"ast_hash": "6a98784ad560b372f318f672671b457c",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\app\\stocks_api\\compress.py": {
- "mtime": 1788411558.9827788,
- "ast_hash": "a97ad415b526de4711d0a9493e9979e3",
+ "mtime": 1789165435.4574144,
+ "ast_hash": "780168715e675b2ba0d260b2cbbf7b5a",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\app\\stocks_api\\key.py": {
@@ -245,13 +300,13 @@
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\app\\stocks_api\\query.py": {
- "mtime": 1788411558.9842775,
- "ast_hash": "393085dd7bd97ac21d198519e5c49e30",
+ "mtime": 1789245008.1815689,
+ "ast_hash": "cd5cca2b11e289a0cc18bd65ea13dc54",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\app\\stocks_api\\sync_cache.py": {
- "mtime": 1788411783.5251496,
- "ast_hash": "24583678cd1fb1822a49bd0f2e5d1c7d",
+ "mtime": 1789244868.9023068,
+ "ast_hash": "58fb001054397418eab03630ce699674",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\app\\stocks_api\\util.py": {
@@ -260,12 +315,12 @@
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\app\\user\\user.py": {
- "mtime": 1788413528.6446345,
+ "mtime": 1789165435.459432,
"ast_hash": "b9fdcffec5ca0cbad6252af644acbe02",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\controller\\authentication_controller.py": {
- "mtime": 1788413319.7519782,
+ "mtime": 1789165435.4604318,
"ast_hash": "c1ff3fd4aaaae1d2d03877cc298f260b",
"semantic_hash": ""
},
@@ -275,8 +330,8 @@
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\controller\\stocksapi_controller.py": {
- "mtime": 1788411558.988293,
- "ast_hash": "b58eae49501fc030c2bfa63f8d4bba9e",
+ "mtime": 1789165435.4624305,
+ "ast_hash": "0db02fcde3b2e0d565d4ae3c20f7e8cb",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\controller\\user_controller.py": {
@@ -290,18 +345,18 @@
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\models\\memory.py": {
- "mtime": 1788411558.9908047,
- "ast_hash": "796245ce455c218b53b476b39f35c30f",
+ "mtime": 1789165435.4624305,
+ "ast_hash": "c76f29fef1fab50d579d6dd8f82b9c60",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\models\\prometheus.py": {
- "mtime": 1788411558.9918032,
+ "mtime": 1789165435.4634314,
"ast_hash": "68de0cc1a6d9707a26241e318130c41f",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\models\\sandbox.py": {
- "mtime": 1788411558.9918032,
- "ast_hash": "5b99336b10855cbede0c12f9411f1127",
+ "mtime": 1789165435.4644322,
+ "ast_hash": "812b7c0da8ae615fd35f8c5b9c107b14",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\models\\stocksapi_key.py": {
@@ -315,12 +370,12 @@
"semantic_hash": "8a2a39ea5eb68ed6a8db8cd9fee6a111"
},
"D:\\Repositories\\server\\main\\models\\user.py": {
- "mtime": 1788411558.9938023,
+ "mtime": 1789165435.4679475,
"ast_hash": "e17234b7fc422b15eecce1497d94b107",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\models\\user_session.py": {
- "mtime": 1788457366.3378358,
+ "mtime": 1789165435.4704657,
"ast_hash": "0245c293779cd189e1e74b2d006af625",
"semantic_hash": ""
},
@@ -330,22 +385,22 @@
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\service\\prometheus_service.py": {
- "mtime": 1788463318.2587261,
- "ast_hash": "4aaa89281f467578d37e11b47bccc0ca",
+ "mtime": 1789244762.3055532,
+ "ast_hash": "25e09e25b1cb386a64f78f169a8515d1",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\service\\scraper_service.py": {
- "mtime": 1788463347.4746556,
- "ast_hash": "6a6f2b741d8a52c483f5ff33da8d5377",
+ "mtime": 1788463590.1617267,
+ "ast_hash": "6575c31ecdafb6c1b0b7b7313e6b1458",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\service\\stocksapi_service.py": {
- "mtime": 1788411558.996325,
- "ast_hash": "e0253ee2d0d4586ee34ef92710b467ac",
+ "mtime": 1788463568.1610415,
+ "ast_hash": "4dab046f696157a0738792d24d99971b",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\service\\user_service.py": {
- "mtime": 1788463324.1582181,
+ "mtime": 1789165435.4714649,
"ast_hash": "aab8360aeaaa776f5d17e5a0e0caf6dd",
"semantic_hash": ""
},
@@ -355,8 +410,8 @@
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\utils\\errors.py": {
- "mtime": 1788411558.9983256,
- "ast_hash": "3d50ac17a94454815fb678879be0fa60",
+ "mtime": 1789165435.4734647,
+ "ast_hash": "c2b4821f5e848dfe9154343dcefda2d2",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\utils\\http_session.py": {
@@ -380,8 +435,8 @@
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\utils\\roles.py": {
- "mtime": 1788411559.0028367,
- "ast_hash": "34c8aea4b7e66205538689dc1a44ac4a",
+ "mtime": 1789165435.4734647,
+ "ast_hash": "4cd3b8e35737d786f10bfb7f46d3444a",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\utils\\scheduler.py": {
@@ -405,8 +460,8 @@
"semantic_hash": "d41d8cd98f00b204e9800998ecf8427e"
},
"D:\\Repositories\\server\\migrations\\env.py": {
- "mtime": 1788411559.0048523,
- "ast_hash": "1c785bd0a8db4b5af71f71a7157dd84e",
+ "mtime": 1789165435.4744656,
+ "ast_hash": "345111c3a60677e141468fe7d6af0cd3",
"semantic_hash": ""
},
"D:\\Repositories\\server\\migrations\\versions\\25af7ad931e7_initial_migration.py": {
@@ -485,7 +540,7 @@
"semantic_hash": ""
},
"D:\\Repositories\\server\\requirements.txt": {
- "mtime": 1788411559.0148866,
+ "mtime": 1788645353.379248,
"ast_hash": "30c8b37aa441a613aada9cb1aa3bcca2",
"semantic_hash": ""
},
@@ -549,14 +604,29 @@
"ast_hash": "482c16c28c6f22cd82789e91207061e4",
"semantic_hash": ""
},
+ "D:\\Repositories\\server\\docs\\superpowers\\plans\\2026-09-04-wallet-management.md": {
+ "mtime": 1788538656.1964302,
+ "ast_hash": "dc4f25f91b2d763fe089759f08bd7416",
+ "semantic_hash": ""
+ },
+ "D:\\Repositories\\server\\docs\\superpowers\\plans\\2026-09-12-artifact-removal-cache-verdict.md": {
+ "mtime": 1789243746.3404026,
+ "ast_hash": "3550ab946bbde47f55f47473cfb994e1",
+ "semantic_hash": ""
+ },
+ "D:\\Repositories\\server\\docs\\superpowers\\specs\\2026-09-04-wallet-design.md": {
+ "mtime": 1788578240.0062113,
+ "ast_hash": "3ad505fd6016388f87bd14fa8da4f40e",
+ "semantic_hash": ""
+ },
"D:\\Repositories\\server\\frontend\\index.html": {
"mtime": 1785641936.6961534,
"ast_hash": "7bbc5e5a7693a5828d34f9f4d7eb8125",
"semantic_hash": ""
},
"D:\\Repositories\\server\\frontend\\pnpm-workspace.yaml": {
- "mtime": 1786942994.3379312,
- "ast_hash": "bfa208c19916cf140e4497bf3b3eaf25",
+ "mtime": 1788633933.7987409,
+ "ast_hash": "b742abf2d03aa9d79c3290767176eb41",
"semantic_hash": ""
}
}
\ No newline at end of file
diff --git a/main/app/prometheus/agent.py b/main/app/prometheus/agent.py
index 59e1549..0578800 100644
--- a/main/app/prometheus/agent.py
+++ b/main/app/prometheus/agent.py
@@ -260,7 +260,6 @@ async def streamMessage(self, query=None, sessionId=None, db=None, user=None, fi
if session and user:
try:
-
async def extract() -> None:
try:
await asyncio.to_thread(
diff --git a/main/app/prometheus/compact.py b/main/app/prometheus/compact.py
index dee3a87..d452bcd 100644
--- a/main/app/prometheus/compact.py
+++ b/main/app/prometheus/compact.py
@@ -3,12 +3,12 @@
import re
import json
import uuid
-import time
from datetime import datetime
from google import genai
from sqlalchemy.orm import Session as DBSession
+from main.utils.http_session import getSession
from main.models.prometheus import PrometheusSession
logger = logging.getLogger(__name__)
@@ -16,8 +16,6 @@
EPISODE_TOKEN_BUDGET = 8000
EPISODE_CAP = 12
-TICKER_RE = re.compile(r"\b([A-Z]{4}[0-9])\b")
-
DECISION_KEYWORDS = re.compile(
r"(?:prefiro|prefere|quero|gostaria|sempre|nunca|quando|"
r"não use|use ao invés|troque|prefira|defina|configure|"
@@ -25,8 +23,6 @@
re.IGNORECASE,
)
-SNAPSHOT_VALUE_RE = re.compile(r"([\w\s/.,]+?):\s*([\-]?[\d.,]+)\s*(x|%|pts|R\$)?")
-
tokenizer = None
@@ -55,36 +51,6 @@ def countTokens(text: str) -> int:
return len(text) // 3
-FALLBACK_FIELDS = [
- "P/L",
- "P/VP",
- "P/EBIT",
- "P/ATIVO",
- "EV/EBIT",
- "PSR",
- "ROE",
- "ROA",
- "ROIC",
- "DY",
- "MARGEM BRUTA",
- "MARGEM EBIT",
- "MARG. LIQUIDA",
- "MARGEM EBITDA",
- "LPA",
- "VPA",
- "PEG Ratio",
- "SGR",
- "INVESTING SCORE",
- "LIQ. CORRENTE",
- "DIV. LIQ. / PATRI.",
- "PASSIVO / ATIVOS",
- "GIRO ATIVOS",
- "PRECO DE GRAHAM",
- "PRECO DE BAZIN",
- "TAG ALONG",
-]
-
-
fieldData: dict | None = None
metricRegex: re.Pattern | None = None
@@ -94,17 +60,9 @@ def getStocksFieldsUrl() -> str:
def loadFieldData() -> dict:
- """Load historical/fundamental field names via STOCKS_API /fields endpoint, caching in ``fieldData``.
-
- Endpoint-only (box-isolation): Prometheus consumes STOCKS_API solely over HTTP,
- never via direct imports of ``main.app.stocks_api``. On fetch failure or
- unreachable service returns ``{"historical": [], "fundamental": []}`` without raising.
- """
global fieldData
if fieldData is None:
try:
- from main.utils.http_session import getSession
-
response = getSession().get(getStocksFieldsUrl(), timeout=5)
response.raise_for_status()
payload = response.json()
@@ -151,16 +109,13 @@ def getMetricRegex() -> re.Pattern:
def extractTickers(text: str) -> list[str]:
- return list(dict.fromkeys(TICKER_RE.findall(text)))
+ return list(dict.fromkeys(re.compile(r"\b([A-Z]{4}[0-9])\b").findall(text)))
def extractMetrics(text: str, useRegistry: bool = False) -> list[str]:
if useRegistry:
regex = getMetricRegex()
- else:
- escaped = [re.escape(f) for f in FALLBACK_FIELDS if len(f) > 1]
- escaped.sort(key=len, reverse=True)
- regex = re.compile(r"\b(" + "|".join(escaped) + r")\b")
+
return list(dict.fromkeys(regex.findall(text)))
@@ -182,7 +137,7 @@ def extractSnapshots(toolResults: list[dict]) -> list[str]:
snapshots = []
for tr in toolResults:
content = str(tr.get("content", ""))
- for match in SNAPSHOT_VALUE_RE.finditer(content):
+ for match in re.compile(r"([\w\s/.,]+?):\s*([\-]?[\d.,]+)\s*(x|%|pts|R\$)?").finditer(content):
label = match.group(1).strip()
value = match.group(2)
unit = match.group(3) or ""
diff --git a/main/app/prometheus/mcp.py b/main/app/prometheus/mcp.py
index aeeca73..e84bf9f 100644
--- a/main/app/prometheus/mcp.py
+++ b/main/app/prometheus/mcp.py
@@ -8,15 +8,13 @@
logger = logging.getLogger(__name__)
-HEALTH_CHECK_INTERVAL = 60
-
MCP_SERVERS = [
{
"name": "stocks",
"url": f"http://{Config.STOCKS_API.HOST}:{Config.STOCKS_API.PORT}/stocks/mcp",
"headers": {"X-MCP": "true"},
},
- {"name": "searxng", "url": f"{Config.PROMETHEUS.SEARXNG_URL}/mcp/"},
+ {"name": "searxng", "url": f"{Config.PROMETHEUS.SEARXNG_URL}/mcp/"}
]
@@ -54,13 +52,13 @@ async def initialize(self):
async def getClients(self):
if self.clients is None:
await self.initialize()
- if time.time() - self.lastHealthCheck > HEALTH_CHECK_INTERVAL:
+ if time.time() - self.lastHealthCheck > 60:
asyncio.create_task(self.healthCheck())
return self.clients, [c.session for c in self.clients.values()]
async def healthCheck(self):
async with self.lock:
- if time.time() - self.lastHealthCheck < HEALTH_CHECK_INTERVAL:
+ if time.time() - self.lastHealthCheck < 60:
return
self.lastHealthCheck = time.time()
for name, client in self.clients.items():
diff --git a/main/app/stocks_api/query.py b/main/app/stocks_api/query.py
index 0fc5520..27f41b0 100644
--- a/main/app/stocks_api/query.py
+++ b/main/app/stocks_api/query.py
@@ -72,10 +72,6 @@ def cleanJSON(obj):
def parseJSON(x, decompressor):
if isinstance(x, bytes):
- # P1: caller-owned decompressor (one per request, not per
- # cell) + only the already-projected JSON_COLUMNS cells of
- # the sliced rows reach this path. Full Arrow-blob rework
- # deferred — behavior identical, construction cost removed.
x = decompressor.decompress(x).decode("utf-8")
try:
return orjson.loads(x)
@@ -166,9 +162,6 @@ def queryHistorical(
if search:
df = self.filterBySearchTerms(df, search)
- # P1: cache is pre-sorted (TICKER asc, TIME desc) at load, so no
- # per-request TIME sort. orderBy still sorts when requested, and
- # head(limit) still applies after ordering — same semantics.
if orderBy and orderBy in df.columns:
df = df.sort_values(by=orderBy, ascending=False)
@@ -249,9 +242,7 @@ def queryFundamental(
except Exception as e:
logger.exception("Date parsing failed")
raise HTTPException(status_code=400, detail="Invalid date format. Use YYYY-MM-DD")
- # P1: boolean masks preserve the pre-sorted (TIME desc)
- # cache order — no full-frame re-sort needed.
-
+
if not search or search.strip() == "":
df = df.drop_duplicates(subset=["TICKER"], keep="first")
@@ -262,8 +253,6 @@ def queryFundamental(
df = df.head(limit)
if "TIME" in df.columns:
- # P1: TIME display normalization on the final slice only
- # (was: whole frame before slicing); output values identical.
df = df.copy()
df["TIME"] = pd.to_datetime(df["TIME"]).dt.strftime("%Y-%m-%d")
@@ -311,11 +300,6 @@ def queryCotations(
if search:
df = self.filterBySearchTerms(df, search)
- # Robust to unsorted input (e.g. tests injecting a raw frame):
- # sort only the small filtered per-query slice by TIME desc so
- # keep="first" keeps the most-recent row per TICKER. The P1 win
- # holds — the full-frame cache sort in loadFromFeather is never
- # redone here.
if "TIME" in df.columns:
df = df.sort_values(by="TIME", ascending=False, kind="mergesort")
df = df.drop_duplicates(subset=["TICKER"], keep="first")
From 43fd9a0d16c544c6209e3a0fcec302523e9d2cfd Mon Sep 17 00:00:00 2001
From: heitorrosa <76885858+heitorrosa@users.noreply.github.com>
Date: Sat, 12 Sep 2026 17:55:49 -0300
Subject: [PATCH 46/50] fix mypy types in memory search
---
main/app/prometheus/memory.py | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/main/app/prometheus/memory.py b/main/app/prometheus/memory.py
index c1600bb..8eaf6d7 100644
--- a/main/app/prometheus/memory.py
+++ b/main/app/prometheus/memory.py
@@ -4,7 +4,7 @@
import json
import unicodedata
from datetime import datetime, timezone
-from typing import Any, Callable
+from typing import Any, Callable, cast
from cashews import Cache
from google import genai
@@ -27,6 +27,7 @@
MATRIX_MISS = object()
+
def matrixKey(userId: Any) -> str:
if isinstance(userId, tuple):
uid, memoryType = userId
@@ -43,10 +44,10 @@ def getMatrix(userId: Any, loader: Callable[[], tuple[list[int], np.ndarray]]) -
cacheKey = matrixKey(userId)
cached = asyncio.run(matrixCache.get(cacheKey, default=MATRIX_MISS))
if cached is not MATRIX_MISS:
- return cached # type: ignore[no-any-return]
+ return cast(tuple[list[int], np.ndarray], cached)
freshIds, freshMatrix = loader()
asyncio.run(matrixCache.set(cacheKey, (freshIds, freshMatrix), tags=("matrix", matrixUserTag(userId))))
- return asyncio.run(matrixCache.get(cacheKey, default=(freshIds, freshMatrix)))
+ return cast(tuple[list[int], np.ndarray], asyncio.run(matrixCache.get(cacheKey, default=(freshIds, freshMatrix))))
def invalidateUser(userId: int) -> None:
@@ -56,6 +57,7 @@ def invalidateUser(userId: int) -> None:
def clearAll() -> None:
asyncio.run(matrixCache.clear())
+
logger = logging.getLogger(__name__)
MEMORY_LIMIT_BASIC = 50
@@ -235,7 +237,7 @@ def search(
queryFilter = queryFilter.filter(PrometheusMemoryModel.memoryType == memoryType)
candidateRows = (
- queryFilter.options(defer(PrometheusMemoryModel.embedding))
+ queryFilter.options(defer(cast(Any, PrometheusMemoryModel.embedding)))
.order_by(PrometheusMemoryModel.score.desc())
.limit(MEMORY_SEARCH_PREFILTER_CAP)
.all()
@@ -272,8 +274,8 @@ def loadMatrix() -> tuple[list[int], np.ndarray]:
return ([], np.empty((0, 0), dtype=np.float32))
rawEmbs = [m.embedding for m in rowsWithEmb]
if isinstance(rawEmbs[0], (bytes, bytearray, memoryview)):
- return ([m.id for m in rowsWithEmb], decodeEmbeddings(rawEmbs)) # type: ignore[arg-type]
- return ([m.id for m in rowsWithEmb], np.array(rawEmbs, dtype=np.float32))
+ return ([cast(int, m.id) for m in rowsWithEmb], decodeEmbeddings(rawEmbs)) # type: ignore[arg-type]
+ return ([cast(int, m.id) for m in rowsWithEmb], np.array(rawEmbs, dtype=np.float32))
try:
cachedIds, matrix = getMatrix((userId, memoryType), loadMatrix)
@@ -283,7 +285,7 @@ def loadMatrix() -> tuple[list[int], np.ndarray]:
simById = {mid: float(s) for mid, s in zip(cachedIds, sims)}
except Exception as e:
logger.warning(f"Embedding scoring failed, using full-text and recency only: {e}")
- vecScores = [simById.get(m.id, 0.0) for m in candidateRows]
+ vecScores = [simById.get(cast(int, m.id), 0.0) for m in candidateRows]
vecNorm = minMax(vecScores)
ftRows = cls.fullTextSearch(db, userId, query, MEMORY_SEARCH_PREFILTER_CAP)
ftRank = {r["id"]: 1.0 / (i + 1) for i, r in enumerate(ftRows)}
@@ -291,8 +293,8 @@ def loadMatrix() -> tuple[list[int], np.ndarray]:
fused = []
for m, v in zip(candidateRows, vecNorm):
rec = getRelevanceScore(m, now)
- f = 0.6 * v + 0.25 * ftRank.get(m.id, 0.0) + 0.15 * rec
- fused.append((m, f, simById.get(m.id, 0.0)))
+ f = 0.6 * v + 0.25 * ftRank.get(cast(int, m.id), 0.0) + 0.15 * rec
+ fused.append((m, f, simById.get(cast(int, m.id), 0.0)))
fused.sort(key=lambda p: p[1], reverse=True)
return [
{
From ee07e06b89a78b2069d126e37cac35e10971ff5e Mon Sep 17 00:00:00 2001
From: heitorrosa <76885858+heitorrosa@users.noreply.github.com>
Date: Sat, 12 Sep 2026 17:56:00 -0300
Subject: [PATCH 47/50] fix mypy column int cast in prometheus memory
maintenance
---
main/service/prometheus_service.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/main/service/prometheus_service.py b/main/service/prometheus_service.py
index 2effd94..21eb457 100644
--- a/main/service/prometheus_service.py
+++ b/main/service/prometheus_service.py
@@ -49,7 +49,7 @@ def memoryMaintenance(db: Session | None = None):
if retention < ARCHIVE_SCORE_THRESHOLD and m.accessCount == 0:
m.archivedAt = datetime.now() # type: ignore[assignment]
- invalidateUser(m.userId)
+ invalidateUser(int(m.userId))
archived += 1
db.commit()
From f04a628f05e86ed717a8998a8fe0f664137f3740 Mon Sep 17 00:00:00 2001
From: heitorrosa <76885858+heitorrosa@users.noreply.github.com>
Date: Sat, 12 Sep 2026 17:57:40 -0300
Subject: [PATCH 48/50] restore fallback fields in prometheus compact
---
main/app/prometheus/compact.py | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/main/app/prometheus/compact.py b/main/app/prometheus/compact.py
index d452bcd..7adba32 100644
--- a/main/app/prometheus/compact.py
+++ b/main/app/prometheus/compact.py
@@ -16,6 +16,8 @@
EPISODE_TOKEN_BUDGET = 8000
EPISODE_CAP = 12
+FALLBACK_FIELDS = ("P/L", "P/VP", "ROE", "DY", "LPA", "VPA", "PRECO", "INVESTING SCORE")
+
DECISION_KEYWORDS = re.compile(
r"(?:prefiro|prefere|quero|gostaria|sempre|nunca|quando|"
r"não use|use ao invés|troque|prefira|defina|configure|"
@@ -101,6 +103,8 @@ def getMetricRegex() -> re.Pattern:
if metricRegex is None:
data = loadFieldData()
fields = data["historical"] + data["fundamental"]
+ if not fields:
+ fields = list(FALLBACK_FIELDS)
escaped = [re.escape(f) for f in fields if len(f) > 1]
escaped.sort(key=len, reverse=True)
pattern = r"\b(" + "|".join(escaped) + r")\b"
@@ -115,6 +119,11 @@ def extractTickers(text: str) -> list[str]:
def extractMetrics(text: str, useRegistry: bool = False) -> list[str]:
if useRegistry:
regex = getMetricRegex()
+ else:
+ fallbackEscaped = [re.escape(f) for f in FALLBACK_FIELDS if len(f) > 1]
+ fallbackEscaped.sort(key=len, reverse=True)
+ fallbackPattern = r"\b(" + "|".join(fallbackEscaped) + r")\b"
+ regex = re.compile(fallbackPattern)
return list(dict.fromkeys(regex.findall(text)))
From 0f03079f2fef4a78efd67aed61edd543b3bfc497 Mon Sep 17 00:00:00 2001
From: heitorrosa <76885858+heitorrosa@users.noreply.github.com>
Date: Sat, 12 Sep 2026 18:00:54 -0300
Subject: [PATCH 49/50] defer fastmcp client import to fix test collection
---
main/app/prometheus/mcp.py | 23 ++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)
diff --git a/main/app/prometheus/mcp.py b/main/app/prometheus/mcp.py
index e84bf9f..a04d8f8 100644
--- a/main/app/prometheus/mcp.py
+++ b/main/app/prometheus/mcp.py
@@ -3,8 +3,20 @@
import time
import asyncio
-from fastmcp import Client
-from fastmcp.client.client import StreamableHttpTransport
+Client = None
+StreamableHttpTransport = None
+
+
+def ensureFastmcp():
+ global Client, StreamableHttpTransport
+ if Client is None or StreamableHttpTransport is None:
+ from fastmcp import Client as FastmcpClient
+ from fastmcp.client.client import StreamableHttpTransport as FastmcpTransport
+
+ Client = FastmcpClient
+ StreamableHttpTransport = FastmcpTransport
+ return Client, StreamableHttpTransport
+
logger = logging.getLogger(__name__)
@@ -14,16 +26,17 @@
"url": f"http://{Config.STOCKS_API.HOST}:{Config.STOCKS_API.PORT}/stocks/mcp",
"headers": {"X-MCP": "true"},
},
- {"name": "searxng", "url": f"{Config.PROMETHEUS.SEARXNG_URL}/mcp/"}
+ {"name": "searxng", "url": f"{Config.PROMETHEUS.SEARXNG_URL}/mcp/"},
]
def buildClient(server):
+ clientCls, transportCls = ensureFastmcp()
url = server["url"]
headers = server.get("headers", {})
if headers:
- return Client(transport=StreamableHttpTransport(url, headers=headers))
- return Client(url)
+ return clientCls(transport=transportCls(url, headers=headers))
+ return clientCls(url)
class MCPClientPool:
From e1c5d4da57b574d3dad9e29a15e8e5a75a518edb Mon Sep 17 00:00:00 2001
From: heitorrosa <76885858+heitorrosa@users.noreply.github.com>
Date: Sat, 12 Sep 2026 18:17:59 -0300
Subject: [PATCH 50/50] fix
---
graphify-out/.graphify_labels.json | 8 -
graphify-out/GRAPH_REPORT.md | 294 +++++----
graphify-out/graph.json | 948 +++++++++++++++--------------
graphify-out/manifest.json | 22 +-
main/app/prometheus/agent.py | 1 +
main/app/stocks_api/query.py | 2 +-
6 files changed, 641 insertions(+), 634 deletions(-)
diff --git a/graphify-out/.graphify_labels.json b/graphify-out/.graphify_labels.json
index 2bba037..5078b19 100644
--- a/graphify-out/.graphify_labels.json
+++ b/graphify-out/.graphify_labels.json
@@ -499,7 +499,6 @@
"497": "Community 497",
"498": "Community 498",
"499": "Community 499",
- "500": "Community 500",
"501": "Community 501",
"502": "Community 502",
"503": "Community 503",
@@ -528,22 +527,15 @@
"526": "Community 526",
"527": "Community 527",
"528": "Community 528",
- "529": "Community 529",
- "530": "Community 530",
"531": "Community 531",
"532": "Community 532",
"533": "Community 533",
"534": "Community 534",
- "535": "Community 535",
"536": "Community 536",
"537": "Community 537",
"538": "Community 538",
- "539": "Community 539",
"540": "Community 540",
- "541": "Community 541",
"542": "Community 542",
- "543": "Community 543",
- "544": "Community 544",
"545": "Community 545",
"546": "Community 546",
"547": "Community 547",
diff --git a/graphify-out/GRAPH_REPORT.md b/graphify-out/GRAPH_REPORT.md
index d425ff2..fab88c8 100644
--- a/graphify-out/GRAPH_REPORT.md
+++ b/graphify-out/GRAPH_REPORT.md
@@ -1,16 +1,16 @@
# Graph Report - server (2026-09-12)
## Corpus Check
-- 121 files · ~71,457 words
+- 121 files · ~71,539 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
-- 5952 nodes · 7951 edges · 566 communities (332 shown, 234 thin omitted)
+- 5953 nodes · 7953 edges · 558 communities (330 shown, 228 thin omitted)
- Extraction: 84% EXTRACTED · 16% INFERRED · 0% AMBIGUOUS · INFERRED: 1251 edges (avg confidence: 0.69)
- Token cost: 0 input · 0 output
## Graph Freshness
-- Built from commit: `4a1ef15c`
+- Built from commit: `0f03079f`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
@@ -505,7 +505,6 @@
- [[_COMMUNITY_Community 497|Community 497]]
- [[_COMMUNITY_Community 498|Community 498]]
- [[_COMMUNITY_Community 499|Community 499]]
-- [[_COMMUNITY_Community 500|Community 500]]
- [[_COMMUNITY_Community 501|Community 501]]
- [[_COMMUNITY_Community 502|Community 502]]
- [[_COMMUNITY_Community 503|Community 503]]
@@ -529,22 +528,15 @@
- [[_COMMUNITY_Community 526|Community 526]]
- [[_COMMUNITY_Community 527|Community 527]]
- [[_COMMUNITY_Community 528|Community 528]]
-- [[_COMMUNITY_Community 529|Community 529]]
-- [[_COMMUNITY_Community 530|Community 530]]
- [[_COMMUNITY_Community 531|Community 531]]
- [[_COMMUNITY_Community 532|Community 532]]
- [[_COMMUNITY_Community 533|Community 533]]
- [[_COMMUNITY_Community 534|Community 534]]
-- [[_COMMUNITY_Community 535|Community 535]]
- [[_COMMUNITY_Community 536|Community 536]]
- [[_COMMUNITY_Community 537|Community 537]]
- [[_COMMUNITY_Community 538|Community 538]]
-- [[_COMMUNITY_Community 539|Community 539]]
- [[_COMMUNITY_Community 540|Community 540]]
-- [[_COMMUNITY_Community 541|Community 541]]
- [[_COMMUNITY_Community 542|Community 542]]
-- [[_COMMUNITY_Community 543|Community 543]]
-- [[_COMMUNITY_Community 544|Community 544]]
- [[_COMMUNITY_Community 545|Community 545]]
- [[_COMMUNITY_Community 546|Community 546]]
- [[_COMMUNITY_Community 547|Community 547]]
@@ -586,10 +578,10 @@
main/app/stocks_api/cache.py → tests/test_stocks_api_coverage.py
- `StocksCacheManager` --calls--> `test_cache_scheduler_starts_daemon_thread()` [INFERRED]
main/app/stocks_api/cache.py → tests/test_stocks_api_coverage.py
-- `HarnessState` --uses--> `TestCheckCache` [INFERRED]
- main/app/prometheus/state.py → tests/test_sandbox_tools.py
-- `HarnessState` --uses--> `TestDispatchToolCallSandbox` [INFERRED]
- main/app/prometheus/state.py → tests/test_sandbox_tools.py
+- `HarnessState` --uses--> `TestGetState` [INFERRED]
+ main/app/prometheus/state.py → tests/test_state_tools.py
+- `HarnessState` --uses--> `TestSetState` [INFERRED]
+ main/app/prometheus/state.py → tests/test_state_tools.py
## Hyperedges (group relationships)
- **Authentication Module** — AuthenticationManager, SessionManager, auth_util, auth_constants, getGoogleSSO [INFERRED]
@@ -599,7 +591,7 @@
- **Configuration & Database Infrastructure** — config_Config, config_engine, config_stocksEngine [INFERRED]
- **User Authentication & Authorization** — user_service, authentication, user_roles, permission_system [INFERRED]
-## Communities (566 total, 234 thin omitted)
+## Communities (558 total, 228 thin omitted)
### Community 0 - "Stocks API Endpoints"
Cohesion: 0.0
@@ -614,8 +606,8 @@ Cohesion: 0.13
Nodes (21): Thin async wrapper around the CubeSandbox/E2B HTTP API. All methods are sta, SandboxManager, _mock_forgevm(), Unit tests for SandboxManager — HTTP calls mocked via a fake client class., Wire up mock forgevm AsyncClient that returns sandbox with all methods., Wire up mock forgevm AsyncClient that returns sandbox with all methods., test_create_sandbox(), test_destroy_sandbox() (+13 more)
### Community 3 - "Prometheus Agent"
-Cohesion: 0.07
-Nodes (23): Tests covering query.py lines 22-48., Tests covering query.py lines 22-48., Tests covering query.py lines 22-48., Tests covering query.py lines 22-48., Tests covering query.py lines 22-48., Tests covering cache.py lines 28-76., Tests covering cache.py lines 28-76., Regression: is_string_dtype fails when column has strings + None (pandas 2.x). (+15 more)
+Cohesion: 0.06
+Nodes (28): Tests covering query.py lines 22-48., Tests covering query.py lines 22-48., Tests covering query.py lines 22-48., Tests covering query.py lines 22-48., Tests covering query.py lines 22-48., replaceNan handles direct float NaN values (line 34)., Tests covering cache.py lines 28-76., Tests covering cache.py lines 28-76. (+20 more)
### Community 4 - "Data Models & Types"
Cohesion: 0.11
@@ -635,7 +627,7 @@ Nodes (29): Algorithmic Compression (`compact.py`) Implementation Plan, code:pyt
### Community 8 - "Device Detection"
Cohesion: 0.06
-Nodes (27): HarnessState, Retrieve a value from state. Returns default if key not found., Return a copy of the current state., Format state as a string for injection into the LLM context., Check if state changed since last reset., Reset the changed flag. Returns the previous state., Clear all state data., In-memory state dict that persists across loop iterations within a single reques (+19 more)
+Nodes (15): HarnessState, Retrieve a value from state. Returns default if key not found., Return a copy of the current state., Format state as a string for injection into the LLM context., Check if state changed since last reset., Reset the changed flag. Returns the previous state., Clear all state data., In-memory state dict that persists across loop iterations within a single reques (+7 more)
### Community 9 - "Server Configuration"
Cohesion: 0.11
@@ -667,11 +659,11 @@ Nodes (38): code:block1 (User 123: "Analyze PETR4 vs VALE3 correlation"), code:p
### Community 16 - "Community 16"
Cohesion: 0.05
-Nodes (33): _make_prometheus_client(), Covers lines 111-112: sessionId is None, new session created., Covers lines 111-112: sessionId is None, new session created., Covers lines 118-119: sessionId is None, new session created., Covers lines 111-112: sessionId is None, new session created., Return (client, app) with prometheus router and mocked deps., Covers lines 33-36: GET /prometheus/sessions., Covers lines 33-36: GET /prometheus/sessions. (+25 more)
+Nodes (34): _make_prometheus_client(), Generic Exception in chat propagates to FastAPI's default 500 handler., Generic Exception in chat propagates to FastAPI's default 500 handler., Generic Exception in chat propagates to FastAPI's default 500 handler., Generic Exception in chat propagates via SSE error event., Covers line 125, 126-128: generic Exception in chat., Return (client, app) with prometheus router and mocked deps., Covers lines 33-36: GET /prometheus/sessions. (+26 more)
### Community 17 - "Community 17"
-Cohesion: 0.11
-Nodes (17): Multiple search terms with tickerIndex., Multiple search terms with tickerIndex., Multiple search terms with tickerIndex., Search with no index match falls back to string startswith., Search with no index match falls back to string startswith., Search with no index match falls back to string startswith., Multiple search terms with tickerIndex., Multiple search terms with tickerIndex. (+9 more)
+Cohesion: 0.08
+Nodes (23): search.strip() == '' should still dedup (line 181)., search.strip() == '' should still dedup (line 181)., search.strip() == '' should still dedup (line 181)., DataFrame without TIME column., DataFrame without TIME column., DataFrame without TIME column., search.strip() == '' should still dedup (line 181)., Multiple search terms with tickerIndex. (+15 more)
### Community 18 - "Community 18"
Cohesion: 0.07
@@ -687,11 +679,11 @@ Nodes (35): 1. Memory System (B+), 2. Summarizer/Episodes (B), 3. Loop Events (A
### Community 21 - "Community 21"
Cohesion: 0.06
-Nodes (23): _make_stocks_df(), Return a small DataFrame with the columns the query module expects., Return a small DataFrame with the columns the query module expects., Tests covering query.py lines 77-132., Tests covering query.py lines 77-132., Tests covering query.py lines 77-132., Tests covering query.py lines 77-132., Tests covering query.py lines 77-132. (+15 more)
+Nodes (24): Store a value in state. Marks state as changed for context injection., _make_stocks_df(), Return a small DataFrame with the columns the query module expects., Return a small DataFrame with the columns the query module expects., Tests covering query.py lines 77-132., Tests covering query.py lines 77-132., Tests covering query.py lines 77-132., Tests covering query.py lines 77-132. (+16 more)
### Community 22 - "Community 22"
-Cohesion: 0.07
-Nodes (19): filterCotationColumn(), Tests for queryLiveCotation and /stocks/cotations/live., Tests for queryLiveCotation and /stocks/cotations/live., Tests for queryLiveCotation and /stocks/cotations/live., Tests for queryLiveCotation and /stocks/cotations/live., Tests for queryLiveCotation and /stocks/cotations/live., GET /stocks/realtime-cotation without search returns 422., GET /cotations without search returns 422. (+11 more)
+Cohesion: 0.14
+Nodes (7): filterCotationColumn(), Tests for queryLiveCotation and /stocks/cotations/live., Tests for queryLiveCotation and /stocks/cotations/live., Tests for queryLiveCotation and /stocks/cotations/live., Tests for queryLiveCotation and /stocks/cotations/live., Tests for queryLiveCotation and /stocks/cotations/live., TestQueryLiveCotation
### Community 23 - "Community 23"
Cohesion: 0.06
@@ -706,20 +698,20 @@ Cohesion: 0.06
Nodes (13): Tests for input validation via HTTP endpoints. Validation is now inline via Bod, PUT /prometheus/sessions/{sessionId} — validates title via Body(...), POST /prometheus/chat/stream — validates query via Body(...), POST /auth/register — validates username, email, password via Body(...), Test that endpoints reject requests with missing required fields., POST /auth/login — validates username, password via Body(...), POST /prometheus/sessions — validates title via Body(...), TestChatValidation (+5 more)
### Community 26 - "Community 26"
-Cohesion: 0.1
-Nodes (23): generateKey(), createKey(), _hash_key(), hashKey(), Return SHA-256 hex digest of the given key., Test that concurrent requests are properly serialized at DB level. Th, Test edge case: request exactly at quota limit., Test edge case: request exactly at quota limit. (+15 more)
+Cohesion: 0.13
+Nodes (16): generateKey(), createKey(), _hash_key(), hashKey(), Return SHA-256 hex digest of the given key., Test edge case: request exactly at quota limit., Test edge case: request exactly at quota limit., Test that increment works from zero usage. (+8 more)
### Community 27 - "Community 27"
-Cohesion: 0.16
-Nodes (14): getRelevanceScore(), _FakeMemory, A memory with no lastAccessedAt should use baseScore as-is., Scores are deterministic — no cron mutation needed., Same memory at different points in time yields different scores., A memory accessed 10x (baseScore 1.0) should still outrank a memory acce, A rarely-used old memory should lose to a popular fresh one., With same access time, higher baseScore always wins. (+6 more)
+Cohesion: 0.15
+Nodes (15): getUserMemories(), getRelevanceScore(), _FakeMemory, A memory with no lastAccessedAt should use baseScore as-is., Scores are deterministic — no cron mutation needed., Same memory at different points in time yields different scores., A memory accessed 10x (baseScore 1.0) should still outrank a memory acce, A rarely-used old memory should lose to a popular fresh one. (+7 more)
### Community 28 - "Community 28"
Cohesion: 0.07
-Nodes (27): No historical data columns -> inner 400 caught by outer except -> 500., No historical data columns -> inner 400 caught by outer except -> 500., If an unexpected exception occurs in queryHistorical., No historical data columns -> inner 400 caught by outer except -> 500., No historical data columns -> inner 400 caught by outer except -> 500., If an unexpected exception occurs (line 132)., If an unexpected exception occurs (line 132)., Historical query with a year range. (+19 more)
+Nodes (27): Pass field name WITHOUT year (how categorizeColumns returns them)., Pass field name WITHOUT year (how categorizeColumns returns them)., Pass field name WITHOUT year (how categorizeColumns returns them)., Pass field name WITHOUT year (how categorizeColumns returns them)., If an unexpected exception occurs in queryHistorical., Pass field name WITHOUT year (how categorizeColumns returns them)., Pass field name WITHOUT year (how categorizeColumns returns them)., Pass field name WITHOUT year (how categorizeColumns returns them). (+19 more)
### Community 29 - "Community 29"
-Cohesion: 0.09
-Nodes (15): PrometheusGenerator, _make_generator(), Tests to increase coverage for: - main/app/prometheus/generation.py - main/a, test_execute_workflow_basic_no_history(), test_execute_workflow_global_request_api_error(), test_execute_workflow_global_request_status_not_200(), test_execute_workflow_global_request_with_api_key(), test_execute_workflow_session_db_exception() (+7 more)
+Cohesion: 0.08
+Nodes (17): PrometheusGenerator, Thread-safe proxy that delegates to per-thread sessions., SessionProxy, _make_generator(), Tests to increase coverage for: - main/app/prometheus/generation.py - main/a, test_execute_workflow_basic_no_history(), test_execute_workflow_global_request_api_error(), test_execute_workflow_global_request_status_not_200() (+9 more)
### Community 30 - "Community 30"
Cohesion: 0.07
@@ -734,8 +726,8 @@ Cohesion: 0.11
Nodes (12): ToolContext — bundles all dependencies for tool execution. Replace passing user, Single dependency bundle for tool execution. Created once per request in ag, Extract userId from user dict if not explicitly set., ToolContext, Unit tests for ToolContext dataclass., Dataclass equality works out of the box., Explicit userId takes precedence over user dict., Two contexts share no mutable defaults. (+4 more)
### Community 33 - "Community 33"
-Cohesion: 0.12
-Nodes (14): BaseHTTPMiddleware, BaseModel, Tests for standardized error responses (errors.py)., SampleBody, TestErrorResponseModel, TestGenericExceptionHandler, TestHTTPExceptionHandler, TestRequestContextFilter (+6 more)
+Cohesion: 0.09
+Nodes (23): BaseHTTPMiddleware, BaseModel, app(), Tests for standardized error responses (errors.py)., SampleBody, TestErrorResponseModel, TestGenericExceptionHandler, TestHTTPExceptionHandler (+15 more)
### Community 34 - "Community 34"
Cohesion: 0.11
@@ -758,12 +750,12 @@ Cohesion: 0.07
Nodes (27): code:json ([), code:javascript (const loadHistory = async (sid) => {), code:jsx (export default function MessageList({ messages, toolEvents, ), code:javascript (const loadHistory = async (sid) => {), code:jsx (export default function AgentLoop({ toolEvents, turnMetrics ), code:bash (git add frontend/src/App.jsx frontend/src/components/Message), code:bash (docker-compose up -d --build), code:sql (SELECT COUNT(*) FROM prometheus WHERE JSON_CONTAINS_PATH(his) (+19 more)
### Community 39 - "Community 39"
-Cohesion: 0.05
-Nodes (40): Invalid date -> inner 400 passes through (not wrapped as 500)., Invalid date -> inner 400 caught by outer except -> 500., Invalid date -> inner 400 caught by outer except -> 500., Invalid date -> inner 400 caught by outer except -> 500., search.strip() == '' should still dedup (line 181)., search.strip() == '' should still dedup (line 181)., Invalid date -> inner 400 caught by outer except -> 500., Invalid date -> inner 400 caught by outer except -> 500. (+32 more)
+Cohesion: 0.07
+Nodes (25): Two dates in the range, both valid., Two dates in the range, both valid., Two dates in the range, both valid., Two dates in the range, both valid., Search with no index match falls back to string startswith., Search with no index match falls back to string startswith., search.strip() == '' should still dedup (line 181)., Search with no index match falls back to string startswith. (+17 more)
### Community 40 - "Community 40"
-Cohesion: 0.22
-Nodes (17): _make_callback_client(), Tests for OAuth callback security - JWT token should NOT be in URL. Token is de, Return (client, app, mock_session) for testing Google callback., Return (client, app, mock_session) for testing Google callback., Return (client, app, mock_session) for testing Google callback., Helper to setup common mock values for callback tests., Helper to setup common mock values for callback tests., Helper to setup common mock values for callback tests. (+9 more)
+Cohesion: 0.12
+Nodes (26): _make_callback_client(), Tests for OAuth callback security - JWT token should NOT be in URL. Token is de, Verify frontend can still auth after OAuth redirect via cookie., Return (client, app, mock_session) for testing Google callback., Return (client, app, mock_session) for testing Google callback., Verify frontend can still get token after OAuth redirect., Verify frontend can still get token after OAuth redirect., Frontend JavaScript should be able to read token from readable cookie. (+18 more)
### Community 41 - "Community 41"
Cohesion: 0.08
@@ -774,13 +766,17 @@ Cohesion: 0.09
Nodes (16): StocksCacheManager, Tests for dynamic ticker index feature, Ticker index should be built when cache is loaded, Ticker index should contain all tickers from cache, Ticker index should be case-insensitive, Looking up ticker should return valid row index, Ticker index should be rebuilt when cache refreshes, TestTickerIndex (+8 more)
### Community 43 - "Community 43"
-Cohesion: 0.18
-Nodes (4): hashPassword(), verifyPassword(), TestAuthUtil, TestAuthUtilEdgeCases
+Cohesion: 0.14
+Nodes (6): authenticateUser(), createUserAccount(), hashPassword(), verifyPassword(), TestAuthUtil, TestAuthUtilEdgeCases
### Community 44 - "Community 44"
Cohesion: 0.14
Nodes (3): UserSession, TestSessionExpiration, TestUserSessionModel
+### Community 45 - "Community 45"
+Cohesion: 0.09
+Nodes (5): Tests for main/utils/roles.py — covers requirePermission and edge cases., TestCheckAccess, TestPermissionAll, TestRequirePermission, TestRolesHierarchy
+
### Community 46 - "Community 46"
Cohesion: 0.09
Nodes (21): Regression: queryFundamental must not mutate the shared cache TIME column., Regression: queryFundamental must not mutate the shared cache TIME column., Regression: queryFundamental must not mutate the shared cache TIME column., Single invalid date -> inner 400 passes through., Single invalid date -> inner 400 caught by outer except -> 500., Single invalid date -> inner 400 caught by outer except -> 500., Single invalid date -> inner 400 caught by outer except -> 500., Invalid fields now raise 400 with actionable error message. (+13 more)
@@ -794,8 +790,8 @@ Cohesion: 0.06
Nodes (34): Backend (COMMIT), code:bash (cd frontend && pnpm add @openuidev/react-lang), code:bash (rm frontend/src/components/MdocMessage.jsx), code:python ("""OpenUI Lang system prompt section for Prometheus agent.), code:block12, code:block13, code:block14, code:block15 (+26 more)
### Community 49 - "Community 49"
-Cohesion: 0.06
-Nodes (32): dispatchToolCall(), TDD tests: verify memory tools are wired into the Prometheus agent. RED: Thes, dispatchToolCall must route memory tool names via TOOL_REGISTRY., makeChat must include MEMORY_TOOLS alongside MCP sessions., makeChat must include MEMORY_TOOLS alongside MCP sessions., makeChat must include MEMORY_TOOLS alongside MCP sessions., makeChat must include MEMORY_TOOLS alongside MCP sessions., TOOL_REGISTRY pattern must work correctly. (+24 more)
+Cohesion: 0.1
+Nodes (20): dispatchToolCall(), TDD tests: verify memory tools are wired into the Prometheus agent. RED: Thes, TOOL_REGISTRY pattern must work correctly., test_memory_tool_skipped_without_user(), test_non_memory_tool_not_routed_to_executeMemoryTool(), test_non_registry_tool_not_routed(), test_save_memory_routed_to_executeMemoryTool(), test_save_memory_routed_via_registry() (+12 more)
### Community 50 - "Community 50"
Cohesion: 0.07
@@ -811,11 +807,11 @@ Nodes (7): Cover all methods in chat.py (lines 11-120)., Cover all methods in ch
### Community 53 - "Community 53"
Cohesion: 0.12
-Nodes (19): archiveDead(), count_memories(), decayScores(), deleteMemory(), findSimilarKey(), _fulltext_search(), fullTextSearch(), get_memory_limit() (+11 more)
+Nodes (23): archiveDead(), count_memories(), countMemories(), decayScores(), deleteMemory(), extract(), findSimilarKey(), _fulltext_search() (+15 more)
### Community 54 - "Community 54"
-Cohesion: 0.11
-Nodes (15): memoryMaintenance(), Zero access but score still above threshold → not archived., Even with low score, if accessed → not archived., Even with low score, if accessed → not archived., Already archived memories are skipped., Already archived memories are skipped., Score below threshold + accessCount=0 + 90+ days → archived., Score below threshold + accessCount=0 + 90+ days → archived. (+7 more)
+Cohesion: 0.06
+Nodes (30): memoryMaintenance(), create_memories(), Zero access but score still above threshold → not archived., Even with low score, if accessed → not archived., Even with low score, if accessed → not archived., Already archived memories are skipped., Already archived memories are skipped., Decay happens first, then archive check with new scores. (+22 more)
### Community 55 - "Community 55"
Cohesion: 0.11
@@ -841,13 +837,17 @@ Nodes (20): Tests for main/utils/connectivity.py — covers all branches., test_
Cohesion: 0.09
Nodes (7): Cover all methods in session.py (lines 14-154)., Cover all methods in session.py (lines 14-154)., Cover all methods in session.py (lines 14-154)., Cover all methods in session.py (lines 14-154)., Cover all methods in session.py (lines 14-154)., Cover all methods in session.py (lines 14-154)., TestSessionManager
+### Community 61 - "Community 61"
+Cohesion: 0.13
+Nodes (4): PrometheusSession, User, TestPrometheusSessionModel, TestUserModel
+
### Community 62 - "Community 62"
Cohesion: 0.1
Nodes (20): architectures, attention_probs_dropout_prob, gradient_checkpointing, hidden_act, hidden_dropout_prob, hidden_size, initializer_range, intermediate_size (+12 more)
### Community 63 - "Community 63"
-Cohesion: 0.18
-Nodes (9): _filterCotationByDate(), filterCotationData(), _parseCotationDate(), Shared query pipeline for historical and fundamental endpoints., Fetch live prices for B3 tickers via yfinance. B3 tickers must match, Parse DD-MM-YYYY from COTACAO 10Y JSON DATA field. ponytail: stdlib datetime onl, Filter COTACAO 10Y JSON entries by their inner DATA field (DD-MM-YYYY)., sanitizeNanValues() (+1 more)
+Cohesion: 0.13
+Nodes (10): _filterCotationByDate(), filterCotationData(), _parseCotationDate(), Shared query pipeline for historical and fundamental endpoints., Fetch live prices for B3 tickers via yfinance. B3 tickers must match, Parse DD-MM-YYYY from COTACAO 10Y JSON DATA field. ponytail: stdlib datetime onl, Filter COTACAO 10Y JSON entries by their inner DATA field (DD-MM-YYYY)., sanitizeNanValues() (+2 more)
### Community 64 - "Community 64"
Cohesion: 0.06
@@ -882,7 +882,7 @@ Cohesion: 0.05
Nodes (29): B3Scraper, getCurrentSelic(), getInitialData(), calculateInvestingScore(), AuthenticationService, initialize(), initialize(), P5: register memory maintenance on the shared scheduler. Kept in this ser (+21 more)
### Community 73 - "Community 73"
-Cohesion: 0.17
+Cohesion: 0.19
Nodes (3): parseDateRange(), TestParseDateRange, TestParseDateRange
### Community 74 - "Community 74"
@@ -910,7 +910,7 @@ Cohesion: 0.05
Nodes (44): cn(), AlertDialogAction(), AlertDialogCancel(), AlertDialogContent(), AlertDialogDescription(), AlertDialogFooter(), AlertDialogHeader(), AlertDialogMedia() (+36 more)
### Community 80 - "Community 80"
-Cohesion: 0.13
+Cohesion: 0.14
Nodes (18): buildSummary(), charCount(), countTokens(), extractDecisions(), extractMetrics(), extractSnapshots(), extractTickers(), extractToolCalls() (+10 more)
### Community 81 - "Community 81"
@@ -926,16 +926,16 @@ Cohesion: 0.12
Nodes (16): Brazilian Stocks Market Scraper, code:env (#), code:json ({), Configuration Parameters, Constraint Engine ($\Lambda$), Engines, Fundamental Engine ($\Phi$), Global Score Function (+8 more)
### Community 84 - "Community 84"
-Cohesion: 0.14
-Nodes (12): chat(), chat_stream(), createSession(), downloadWorkspaceFile(), _forward(), getHistory(), Verify the user owns the session, raise 403 otherwise., Verify the user owns the session, raise 403 otherwise. (+4 more)
+Cohesion: 0.1
+Nodes (19): chat(), chat_stream(), create_memory(), createMemory(), createSession(), downloadWorkspaceFile(), _forward(), getHistory() (+11 more)
### Community 85 - "Community 85"
Cohesion: 0.21
Nodes (16): AddDividendDialog(), fmtBRL(), AddLotDialog(), HoldingSearchBox(), matchHoldings(), assertDividendTotal(), assertNotFuture(), assertTicker() (+8 more)
### Community 86 - "Community 86"
-Cohesion: 0.1
-Nodes (15): create_memories(), Decay happens first, then archive check with new scores., Decay happens first, then archive check with new scores., Score that decays to >= threshold stays alive. 0.11 * 0.95 = 0.1045 >= 0.1., Score that decays to >= threshold stays alive. 0.12 * 0.90 = 0.108 >= 0.1., 89 days with low score → not archived (need > 90)., 89 days with low score → not archived (need > 90)., Helper to create memories with controlled baseScore, lastAccessedAt, accessCount (+7 more)
+Cohesion: 0.17
+Nodes (7): Verify memory endpoints exist and are wired correctly., GET /prometheus/memories exists., POST /prometheus/memories exists., DELETE /prometheus/memories/{id} exists., GET /memories requires authentication., GET /memories requires USE_PROMETHEUS (basic USER role denied)., TestMemoryControllerRoutes
### Community 87 - "Community 87"
Cohesion: 0.1
@@ -950,8 +950,8 @@ Cohesion: 0.08
Nodes (23): code:python (import asyncio), code:jsx (import { describe, it, expect, vi, beforeEach } from 'vitest), code:javascript (const RESUME_KEY = 'mansa_resume';), code:javascript (let accumulated = '';), code:javascript (const maybeResume = useCallback(async () => {), code:javascript (useEffect(() => {), code:bash (git add frontend/src/App.jsx frontend/src/App.resume.test.js), code:bash (git add TODO.md) (+15 more)
### Community 90 - "Community 90"
-Cohesion: 0.08
-Nodes (27): verifyAPIKey(), Integration tests for the verifyAPIKey function., Test successful API key verification., Integration tests for the verifyAPIKey function., Test API key verification when quota is exceeded., Test API key verification with invalid key., Test API key verification with missing key., Test API key verification with invalid key. (+19 more)
+Cohesion: 0.14
+Nodes (11): Integration tests for the verifyAPIKey function., Test successful API key verification., Integration tests for the verifyAPIKey function., Test API key verification when quota is exceeded., Test API key verification with invalid key., Test API key verification with missing key., Test API key verification with invalid key., Test that API key system can be disabled. (+3 more)
### Community 91 - "Community 91"
Cohesion: 0.12
@@ -986,36 +986,36 @@ Cohesion: 0.28
Nodes (6): extractTokenPayload(), Tests for extractTokenPayload — the standalone token extraction dependency., Create a mock Starlette Request with given headers., Authorization: Bearer (empty) — no token after Bearer., Authorization: Basic xxx — not Bearer, so no token found., TestExtractTokenPayload
### Community 99 - "Community 99"
-Cohesion: 0.08
-Nodes (11): Verify memory endpoints exist and are wired correctly., GET /prometheus/memories exists., POST /memories rejects missing key., POST /memories rejects missing value., POST /prometheus/memories exists., DELETE /prometheus/memories/{id} exists., GET /memories requires authentication., GET /memories requires USE_PROMETHEUS (basic USER role denied). (+3 more)
+Cohesion: 0.17
+Nodes (4): POST /memories rejects missing key., POST /memories rejects missing value., Full integration tests using mocked MemoryManager., TestMemoryEndpointsIntegration
### Community 100 - "Community 100"
-Cohesion: 0.06
-Nodes (14): _assert_gemini_safe(), Every function in TOOL_REGISTRY must have Gemini-safe signatures. Custom cl, Every function in TOOL_REGISTRY must have Gemini-safe signatures. Custom cl, Regression: HarnessState must never leak into tool signatures., Regression: HarnessState must never leak into tool signatures., Assert a tool function has only Gemini-compatible parameter types., Assert a tool function has only Gemini-compatible parameter types., test_get_state_no_state_returns_error() (+6 more)
+Cohesion: 0.09
+Nodes (13): _assert_gemini_safe(), Every function in TOOL_REGISTRY must have Gemini-safe signatures. Custom cl, Every function in TOOL_REGISTRY must have Gemini-safe signatures. Custom cl, Regression: HarnessState must never leak into tool signatures., Regression: HarnessState must never leak into tool signatures., Assert a tool function has only Gemini-compatible parameter types., Assert a tool function has only Gemini-compatible parameter types., test_get_state_no_state_returns_error() (+5 more)
### Community 101 - "Community 101"
Cohesion: 0.09
-Nodes (20): Covers lines 114-115, 117-120, 122, 125: POST /prometheus/chat., Covers lines 114-115, 117-120, 122, 125: POST /prometheus/chat., Covers lines 109-136: POST /prometheus/chat/stream (SSE)., Covers lines 114-115, 117-120, 122: existing session with verified ownership., Covers lines 114-115, 117-120, 122: existing session with verified ownership., Covers lines 114-115, 117-120, 122: existing session with verified ownership., Covers lines 120-121: existing session with verified ownership., Covers lines 114-115, 117-120, 122, 125: POST /prometheus/chat. (+12 more)
+Nodes (19): Covers lines 114-115, 117-120, 122, 125: POST /prometheus/chat., Covers lines 114-115, 117-120, 122, 125: POST /prometheus/chat., Covers lines 111-112: sessionId is None, new session created., Covers lines 111-112: sessionId is None, new session created., Covers lines 109-136: POST /prometheus/chat/stream (SSE)., Covers lines 118-119: sessionId is None, new session created., Covers lines 114-115, 117-120, 122: existing session with verified ownership., Covers lines 114-115, 117-120, 122: existing session with verified ownership. (+11 more)
### Community 102 - "Community 102"
-Cohesion: 0.14
-Nodes (9): BaseSettings, BaseMansaSettings, Config, DiscordSettings, MysqlSettings, ScraperSettings, StocksApiSettings, UserSettings (+1 more)
+Cohesion: 0.13
+Nodes (10): BaseSettings, BaseMansaSettings, DiscordSettings, MysqlSettings, PrometheusSettings, ScraperSettings, StocksApiSettings, UserSettings (+2 more)
### Community 103 - "Community 103"
Cohesion: 0.13
Nodes (14): 10. Performance, 11. Testing, 12. Risks, 13. Out of Scope (YAGNI), 14. Open Questions, 1. Executive Summary, 2. Context & Motivation, 5. Architecture Decision (+6 more)
### Community 104 - "Community 104"
-Cohesion: 0.1
-Nodes (17): Covers lines 126-136: DELETE /user/sessions/{sessionId}., Covers lines 126-136: DELETE /user/sessions/{sessionId}., Covers lines 126, 131, 135-136., Covers lines 126, 131, 135-136., Covers lines 126-136: DELETE /user/sessions/{sessionId}., Covers lines 126, 131, 135-136., Covers lines 127-129: session not found., Covers lines 127-129: session not found. (+9 more)
+Cohesion: 0.06
+Nodes (33): Covers lines 100-104, 106: GET /user/sessions/current., Covers lines 100-104, 106: GET /user/sessions/current., Covers lines 100-104, 106: session found., Covers lines 100-104, 106: session found., Covers lines 100-104, 106: GET /user/sessions/current., Covers lines 100-104, 106: session found., Covers line 104: session not found., Covers line 104: session not found. (+25 more)
### Community 106 - "Community 106"
Cohesion: 0.22
Nodes (3): parseYearInput(), TestParseYearInput, TestParseYearInput
### Community 107 - "Community 107"
-Cohesion: 0.13
-Nodes (13): Covers lines 100-104, 106: GET /user/sessions/current., Covers lines 100-104, 106: GET /user/sessions/current., Covers lines 100-104, 106: session found., Covers lines 100-104, 106: session found., Covers lines 100-104, 106: GET /user/sessions/current., Covers lines 100-104, 106: session found., Covers line 104: session not found., Covers line 104: session not found. (+5 more)
+Cohesion: 0.2
+Nodes (9): Invalid date -> inner 400 passes through (not wrapped as 500)., Invalid date -> inner 400 caught by outer except -> 500., Invalid date -> inner 400 caught by outer except -> 500., Invalid date -> inner 400 caught by outer except -> 500., Invalid date -> inner 400 caught by outer except -> 500., Invalid date -> inner 400 caught by outer except -> 500., Invalid date -> inner 400 caught by outer except -> 500., Invalid date -> inner 400 caught by outer except -> 500. (+1 more)
### Community 108 - "Community 108"
Cohesion: 0.14
@@ -1034,7 +1034,7 @@ Cohesion: 0.14
Nodes (13): code:python (import pytest), code:python (import logging), code:bash (git add main/app/prometheus/state.py tests/test_harness_stat), File Map, Global Constraints, Phase 1: HarnessState (In-Memory Agent Scratchpad), Prometheus Harness — Master Implementation Plan (v2: CubeSandbox + On-Demand), Relationship to Existing Systems (+5 more)
### Community 112 - "Community 112"
-Cohesion: 0.19
+Cohesion: 0.16
Nodes (11): applyUpdate(), contentHash(), Same input → same hash., Different inputs → different hashes., Returns 32-char hex string., TestContentHash, ALL(), content_hash() (+3 more)
### Community 113 - "Community 113"
@@ -1066,8 +1066,8 @@ Cohesion: 0.07
Nodes (26): code:python ("""Tests for SandboxManager file mutation helpers (delete_fi), code:python (from main.app.prometheus.sandbox import SandboxManager, host), code:python (@router.post("/workspace/upload")), code:bash (git add main/controller/prometheus_controller.py tests/test_), code:python (from unittest.mock import patch, MagicMock), code:python (from main.app.prometheus.sandbox import SandboxManager, host), code:python (async def serve_file(path: str, **_) -> dict:), code:python ("serve_file": serve_file,) (+18 more)
### Community 120 - "Community 120"
-Cohesion: 0.12
-Nodes (27): _make_auth_client(), Tests to cover uncovered lines across controllers, UserManager, and auth util., Return (client, app) with auth + user routers and mocked getSession., test_callback_existing_user(), test_callback_generic_exception(), test_callback_new_user(), test_callback_no_user_info(), test_callback_with_state_redirect() (+19 more)
+Cohesion: 0.1
+Nodes (32): _make_auth_client(), Tests to cover uncovered lines across controllers, UserManager, and auth util., Covers lines 44-54, 63, 66-71: register success, ValueError, generic Exception., Covers lines 44-54, 63, 66-71: register success, ValueError, generic Exception., Covers lines 87-93, 102: login success and failure paths., Covers lines 87-93, 102: login success and failure paths., Return (client, app) with auth + user routers and mocked getSession., Covers lines 155-156, 158, 160-168, 170-177, 179-184, 186, 190-204: googleCallba (+24 more)
### Community 121 - "Community 121"
Cohesion: 0.21
@@ -1085,13 +1085,9 @@ Nodes (12): Appendix A: Codebase Findings, code:block6 (D:\Repositories\server\)
Cohesion: 0.07
Nodes (27): code:python (# tests/test_stocks_payload_cache.py), code:python (pc = self.cacheManager.tickerPayloads), code:python (# tests/test_stocks_sync_handlers.py), code:bash (git add main/controller/stocksapi_controller.py main/app/sto), code:python (def test_payload_cache_cotation_index():), code:python (self._cotations: dict[str, bytes] = {}), code:python (cotationCols = ["TICKER", "NOME", "TIME", "COTACAO 10Y PADRA), code:python (self._cotations = cot) (+19 more)
-### Community 125 - "Community 125"
-Cohesion: 0.14
-Nodes (3): PrometheusSession, createSession(), TestPrometheusSessionModel
-
### Community 126 - "Community 126"
-Cohesion: 0.14
-Nodes (14): _count_memories(), _create_memory(), _get_memory(), Keys with Jaccard > 0.8 should merge., Keys with Jaccard > 0.8 should merge., Keys with low similarity should not merge., Keys with low similarity should not merge., Keys with low similarity should not merge. (+6 more)
+Cohesion: 0.15
+Nodes (11): _count_memories(), _create_memory(), _get_memory(), Keys with Jaccard > 0.8 should merge., Keys with Jaccard > 0.8 should merge., Keys with low similarity should not merge., Keys with low similarity should not merge., Keys with low similarity should not merge. (+3 more)
### Community 127 - "Community 127"
Cohesion: 0.2
@@ -1110,13 +1106,9 @@ Cohesion: 0.22
Nodes (8): Hit the actual /stocks/cotations HTTP endpoint with adjusted=false., Hit the actual /stocks/cotations HTTP endpoint with adjusted=false., Hit the actual /stocks/cotations HTTP endpoint with adjusted=false., Hit the actual /stocks/cotations HTTP endpoint with adjusted=false., Hit the actual /stocks/cotations HTTP endpoint with adjusted=false., Hit the actual /stocks/cotations HTTP endpoint with adjusted=false., Hit the actual /stocks/cotations HTTP endpoint with adjusted=false., Hit the actual /stocks/cotations HTTP endpoint with adjusted=false.
### Community 131 - "Community 131"
-Cohesion: 0.23
+Cohesion: 0.21
Nodes (8): pack → unpack preserves values., Empty list roundtrips., 384-dim vector packs to 1536 bytes., TestPackUnpack, pack_vector(), Unpack MySQL BLOB to float list., Vectorized cosine similarity: one query against N embeddings., unpack_vector()
-### Community 132 - "Community 132"
-Cohesion: 0.17
-Nodes (6): Pytest Testing, Tests for run.py /status endpoint — covers status response structure., Create a test client for the status endpoint without running lifespan., Create a test client for the status endpoint without running lifespan., statusClient(), TestScraperTrigger
-
### Community 133 - "Community 133"
Cohesion: 0.18
Nodes (11): code:python (import inspect), code:python (from main.app.prometheus.state import HarnessState), code:bash (git add main/app/prometheus/tools.py tests/test_tools.py), code:python (SYSTEM_PROMPT = """), code:bash (git add main/app/prometheus/agent.py), code:dockerfile (FROM python:3.11-slim), code:bash (git add Dockerfile.sandbox), Phase 6: Agent Integration (All Layers) (+3 more)
@@ -1139,7 +1131,7 @@ Nodes (6): Dataset, produce_data(), Train script for a single file Need to set
### Community 140 - "Community 140"
Cohesion: 0.06
-Nodes (34): Base, PrometheusMemory, PrometheusMemory, MemoryManager, PrometheusMemory, All memory operations. Stateless class methods., PrometheusService, TestDifferentKeysNoMerge (+26 more)
+Nodes (39): Base, PrometheusMemory, PrometheusMemory, MemoryManager, PrometheusMemory, All memory operations. Stateless class methods., PrometheusService, TestDifferentKeysNoMerge (+31 more)
### Community 141 - "Community 141"
Cohesion: 0.24
@@ -1166,7 +1158,7 @@ Cohesion: 0.15
Nodes (7): COLUMNS, fmtBRL(), fmtPct(), OverviewCards(), fetchWallet(), fetchWalletHistory(), updateHoldingWeight()
### Community 147 - "Community 147"
-Cohesion: 0.26
+Cohesion: 0.23
Nodes (3): categorizeColumns(), TestCategorizeColumns, TestCategorizeColumns
### Community 149 - "Community 149"
@@ -1178,8 +1170,8 @@ Cohesion: 0.2
Nodes (3): MEMORY_TOOLS must be defined as a Tool wrapping FunctionDeclarations., MEMORY_TOOLS must be a list of callables with proper signatures., TestMemoryToolsDefinition
### Community 152 - "Community 152"
-Cohesion: 0.08
-Nodes (30): check_cache(), _getDb(), Search user's saved memories, preferences, and past analysis context. Use t, Search user's saved memories, preferences, and past analysis context. Use t, Read a file from the sandbox filesystem. Args: path: Absolute pa, Read a file from the sandbox filesystem. Args: path: Absolute pa, Get a download link for a workspace file to share with the user. Use this, Search user's saved memories, preferences, and past analysis context. Use (+22 more)
+Cohesion: 0.11
+Nodes (19): _getDb(), Search user's saved memories, preferences, and past analysis context. Use t, Search user's saved memories, preferences, and past analysis context. Use t, Search user's saved memories, preferences, and past analysis context. Use, Search user's saved memories, preferences, and past analysis context. Use, Search user's saved memories, preferences, and past analysis context. Use, Search user's saved memories, preferences, and past analysis context. Use, Search user's saved memories, preferences, and past analysis context. Use (+11 more)
### Community 153 - "Community 153"
Cohesion: 0.12
@@ -1286,8 +1278,8 @@ Cohesion: 0.29
Nodes (7): Integration: /stocks/fundamental date filter should work per-ticker., Integration: /stocks/fundamental date filter should work per-ticker., When tickers have different date coverage, each should get its closest snapshot., When tickers have different date coverage, each should get its closest snapshot., Integration: /stocks/fundamental date filter should work per-ticker., When tickers have different date coverage, each should get its closest snapshot., TestFundamentalDateFiltering
### Community 181 - "Community 181"
-Cohesion: 0.57
-Nodes (6): addRole(), addRoleToUser(), getCurrentUser(), getRolesList(), hasRole(), toDict()
+Cohesion: 0.31
+Nodes (8): verifyAccessToken(), FastAPI, addRole(), addRoleToUser(), getCurrentUser(), getRolesList(), hasRole(), toDict()
### Community 182 - "Community 182"
Cohesion: 0.25
@@ -1297,13 +1289,17 @@ Nodes (7): code:block1 (main/), Execution Handoff, Executive Summary: What Mem0
Cohesion: 0.17
Nodes (7): Different query parameters should not share cache, Cache should expire after TTL, Tests for query result caching, CacheManager should track cached queries, Query cache should have configurable TTL, getCachedStocks should support column filtering, TestQueryCaching
+### Community 184 - "Community 184"
+Cohesion: 0.11
+Nodes (6): Tests for run.py /status endpoint — covers status response structure., Create a test client for the status endpoint without running lifespan., Create a test client for the status endpoint without running lifespan., statusClient(), TestScraperTrigger, TestStatusEndpoint
+
### Community 185 - "Community 185"
Cohesion: 0.38
Nodes (7): code:python (import pytest), code:python (from __future__ import annotations), code:bash (git add main/app/prometheus/context.py tests/test_context.py), Phase 4: ToolContext (Bundled Dispatch Dependencies), Phase 4: ToolContext (Replace God Function), Task 5: ToolContext — Dataclass for Agent Use, Task 5: ToolContext — Single Dispatch Object
### Community 186 - "Community 186"
-Cohesion: 0.18
-Nodes (11): client(), TestClient with all routers mounted — no lifespan (no DB/service init). O, TestClient with all routers mounted — no lifespan (no DB/service init). O, TestClient with all routers mounted — no lifespan (no DB/service init). O, TestClient with all routers mounted — no lifespan (no DB/service init). O, TestClient with all routers mounted — no lifespan (no DB/service init). O, TestClient with stocks router + verifyAPIKey + getCurrentUser overrides., TestClient with all routers mounted — no lifespan (no DB/service init). O (+3 more)
+Cohesion: 0.22
+Nodes (7): Integration tests for all query optimizations, Integration tests for all query optimizations, All optimizations should be implemented, All optimizations should be implemented, Query filter should use ticker index, Query filter should use ticker index, TestQueryOptimization
### Community 187 - "Community 187"
Cohesion: 0.29
@@ -1334,8 +1330,8 @@ Cohesion: 0.33
Nodes (6): normalizer, clean_text, handle_chinese_chars, lowercase, strip_accents, type
### Community 194 - "Community 194"
-Cohesion: 0.31
-Nodes (3): buildClient(), MCPClientPool, _parseServers()
+Cohesion: 0.26
+Nodes (5): buildClient(), ensureFastmcp(), MCPClientPool, _parseServers(), Config
### Community 195 - "Community 195"
Cohesion: 0.33
@@ -1414,8 +1410,8 @@ Cohesion: 0.17
Nodes (11): code:python (def test_search_defersEmbeddingBlob(db):), code:python (from contextlib import contextmanager), code:python (from sqlalchemy.orm import defer), code:bash (git add main/app/prometheus/memory.py tests/test_memory_sear), code:python (def test_search_fusesFulltextOverVectorOnly(db):), code:python (def minMax(values: list[float]) -> list[float]:), code:bash (git add main/app/prometheus/memory.py tests/test_memory_sear), Global Constraints (+3 more)
### Community 215 - "Community 215"
-Cohesion: 0.18
-Nodes (6): System prompt should include state context when provided., System prompt should not include state section when empty., State section should appear after memories section., All state entries should appear in the prompt., System prompt should work without state parameter., TestBuildSystemPromptState
+Cohesion: 0.25
+Nodes (7): No historical data columns -> inner 400 caught by outer except -> 500., No historical data columns -> inner 400 caught by outer except -> 500., No historical data columns -> inner 400 caught by outer except -> 500., No historical data columns -> inner 400 caught by outer except -> 500., No historical data columns -> inner 400 caught by outer except -> 500., No historical data columns -> inner 400 caught by outer except -> 500., Multiple search terms, all found in tickerIndex.
### Community 216 - "Community 216"
Cohesion: 0.29
@@ -1442,8 +1438,8 @@ Cohesion: 0.2
Nodes (9): Covers lines 143, 145, 147-148: POST /user/sessions/revoke-all., Covers lines 143, 145, 147-148: POST /user/sessions/revoke-all., Covers lines 143, 145, 147-148., Covers lines 143, 145, 147-148., Covers lines 143, 145, 147-148: POST /user/sessions/revoke-all., Covers lines 143, 145, 147-148., Covers lines 143, 145, 147-148: POST /user/sessions/revoke-all., Covers lines 143, 145, 147-148. (+1 more)
### Community 222 - "Community 222"
-Cohesion: 0.25
-Nodes (7): Pass field name WITHOUT year (how categorizeColumns returns them)., Pass field name WITHOUT year (how categorizeColumns returns them)., Pass field name WITHOUT year (how categorizeColumns returns them)., Pass field name WITHOUT year (how categorizeColumns returns them)., Pass field name WITHOUT year (how categorizeColumns returns them)., Pass field name WITHOUT year (how categorizeColumns returns them)., Pass field name WITHOUT year (how categorizeColumns returns them).
+Cohesion: 0.29
+Nodes (6): GET /stocks/realtime-cotation without search returns 422., GET /stocks/realtime-cotation without search returns 422., GET /stocks/realtime-cotation without search returns 422., GET /stocks/realtime-cotation without search returns 422., GET /stocks/realtime-cotation without search returns 422., GET /stocks/realtime-cotation without search returns 422.
### Community 223 - "Community 223"
Cohesion: 0.4
@@ -1490,8 +1486,8 @@ Cohesion: 0.4
Nodes (5): 8. Build Sequence (4 phases, each independently shippable), Phase 0 — Sandbox foundation (1-2 days, no user-facing change), Phase 1 — MCP exposure of STOCKS_API (1 day), Phase 2 — Refactor PROMETHEUS to agentic (3-5 days, the big one), Phase 3 — Hardening (1-2 days, can ship incrementally)
### Community 234 - "Community 234"
-Cohesion: 0.33
-Nodes (5): Tests for optimized search filtering, Tests for optimized search filtering, Filter should use ticker index for O(1) lookup, Filter should use ticker index for O(1) lookup, TestFilterBySearchTerms
+Cohesion: 0.29
+Nodes (6): GET /cotations without search returns 422., GET /cotations without search returns 422., GET /cotations without search returns 422., GET /cotations without search returns 422., GET /cotations without search returns 422., GET /cotations without search returns 422.
### Community 236 - "Community 236"
Cohesion: 0.5
@@ -1537,6 +1533,10 @@ Nodes (4): code:tsx (import React from "react";), code:tsx (import { SandboxArti
Cohesion: 0.5
Nodes (4): Category 5: Error Handling Gaps (MEDIUM), Issue 5.1 — Generic exception handler swallows traceback in production, Issue 5.2 — DiscordHandler sends only message, not traceback, Issue 5.3 — `_build_error_response` ignores `status_code` parameter
+### Community 251 - "Community 251"
+Cohesion: 0.14
+Nodes (4): Pytest Testing, Tests for main/utils/http_session.py — covers all branches., TestGetSession, TestPermission
+
### Community 252 - "Community 252"
Cohesion: 0.5
Nodes (3): Comma-separated list containing slash fields must pass., Comma-separated list containing slash fields must pass., Comma-separated list containing slash fields must pass.
@@ -1617,20 +1617,24 @@ Nodes (4): Priority 1: Fix Critical Gaps, Priority 2: Improve Retrieval, Priorit
Cohesion: 0.23
Nodes (6): CHART_COLORS, PortfolioBarsCard(), PortfolioPieCard(), tooltipStyle, groupHistoryByMonth(), monthKey()
+### Community 487 - "Community 487"
+Cohesion: 0.33
+Nodes (6): dispatchToolCall must route memory tool names via TOOL_REGISTRY., dispatchToolCall must route memory tool names to executeMemoryTool., dispatchToolCall must route memory tool names to executeMemoryTool., dispatchToolCall must route memory tool names to executeMemoryTool., dispatchToolCall must route memory tool names to executeMemoryTool., TestDispatchRoutesMemoryTools
+
### Community 488 - "Community 488"
Cohesion: 0.33
-Nodes (5): replaceNan handles direct float NaN values (line 34)., replaceNan handles direct float NaN values (line 34)., replaceNan handles direct float NaN values (line 34)., replaceNan handles direct float NaN values (line 34)., replaceNan handles direct float NaN values (line 34).
+Nodes (6): makeChat must include MEMORY_TOOLS alongside MCP sessions., makeChat must include MEMORY_TOOLS alongside MCP sessions., makeChat must include MEMORY_TOOLS alongside MCP sessions., makeChat must include MEMORY_TOOLS alongside MCP sessions., makeChat must include MEMORY_TOOLS alongside MCP sessions., TestMakeChatIncludesMemoryTools
### Community 489 - "Community 489"
Cohesion: 0.6
Nodes (4): hammer_measured(), main(), Fire n requests with c concurrent workers, measuring ttfb + total per request., stats()
### Community 490 - "Community 490"
-Cohesion: 0.33
-Nodes (5): Performance tests for query operations, Performance tests for query operations, Query should respond within 1 second, Query should respond within 1 second, TestQueryPerformance
+Cohesion: 0.4
+Nodes (5): Tests covering key.py lines 15-40. Uses asyncio.run() since pytest-asyncio, Tests covering key.py lines 15-40. Uses asyncio.run() since pytest-asyncio, Tests covering key.py lines 15-40. Uses asyncio.run() since pytest-asyncio, Tests covering key.py lines 15-40. Uses asyncio.run() since pytest-asyncio, TestVerifyAPIKey
### Community 491 - "Community 491"
-Cohesion: 0.47
+Cohesion: 0.32
Nodes (3): TestCleanup, cleanup(), Close the main thread's session at interpreter shutdown.
### Community 492 - "Community 492"
@@ -1638,40 +1642,36 @@ Cohesion: 0.33
Nodes (5): Baseline (lane 4), Export recipe, Move triggers (any one fires the migration), Options, Vector Scale-Up Runbook
### Community 493 - "Community 493"
-Cohesion: 0.07
-Nodes (28): Covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: UserManager.getC, Covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: UserManager.getC, Covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: UserManager.getC, Covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: UserManager.getC, Covers lines 36-38, 40-44, 46, 48-49, 51, 58-59, 61: successful user retrieval., Covers lines 36-38, 40-44, 46, 48-49, 51, 58-59, 61: successful user retrieval., Covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: UserManager.getC, Covers lines 36-38, 40-44, 46, 48-49, 51, 58-59, 61: successful user retrieval. (+20 more)
+Cohesion: 0.05
+Nodes (38): Covers line 27: user already has the role., Covers line 27: user already has the role., Covers line 27: user already has the role., Covers line 27: user already has the role., Covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: UserManager.getC, Covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: UserManager.getC, Covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: UserManager.getC, Covers lines 34, 36-38, 40-44, 46, 48-49, 51, 58-59, 61, 63-67: UserManager.getC (+30 more)
### Community 495 - "Community 495"
Cohesion: 0.25
Nodes (4): Authentication System, Google OAuth, JWT Authentication, TestSessionExpiryConfig
### Community 497 - "Community 497"
-Cohesion: 0.39
-Nodes (8): _build_error_response(), buildErrorResponse(), generic_exception_handler(), genericExceptionHandler(), http_exception_handler(), httpExceptionHandler(), validation_exception_handler(), validationExceptionHandler()
+Cohesion: 0.5
+Nodes (4): code:python ("""add wallet_holdings and wallet_lots tables), code:python (import main.models.wallet), code:bash (git add migrations/versions/wallet_tables_20260904_add_walle), Task 2: Alembic migration for wallet tables
### Community 498 - "Community 498"
-Cohesion: 0.04
-Nodes (50): AuthenticationManager, IntFlag, Covers line 18: GET /stocks/health., Covers line 18: GET /stocks/health., Covers line 18: GET /stocks/health., Covers line 18: GET /stocks/health., Covers line 18: GET /stocks/health., Covers line 28: GET /auth/health. (+42 more)
+Cohesion: 0.06
+Nodes (36): AuthenticationManager, IntFlag, Covers line 18: GET /stocks/health., Covers line 18: GET /stocks/health., Covers line 18: GET /stocks/health., Covers line 18: GET /stocks/health., Covers line 18: GET /stocks/health., Covers line 28: GET /auth/health. (+28 more)
### Community 499 - "Community 499"
Cohesion: 0.2
Nodes (9): code:python (import numpy as np), code:python (def normalizeRows(matrix: np.ndarray) -> np.ndarray:), code:bash (git add main/app/prometheus/vector.py tests/test_vector_norm), code:python ("""One-shot: renormalize stored embeddings to unit norm. Usa), code:bash (git add scripts/backfill_normalize_embeddings.py), Global Constraints, Lane 1: Normalized Embeddings + Dot-Product Search Implementation Plan, Task 1: Normalize on encode + row-normalize helper (+1 more)
-### Community 500 - "Community 500"
-Cohesion: 0.22
-Nodes (4): authenticateUser(), createUserAccount(), FastAPI, PaginationParams
-
### Community 501 - "Community 501"
Cohesion: 0.22
Nodes (3): getCurrentSession(), getSessions(), sessionToDict()
### Community 502 - "Community 502"
-Cohesion: 0.09
-Nodes (17): Tests for connection pool configuration, Tests for connection pool configuration, Stocks engine should have optimized pool settings, Stocks engine should have optimized pool settings, Tests for lazy JSON deserialization, Tests for lazy JSON deserialization, Query manager should have deserialize method, Query manager should have deserialize method (+9 more)
+Cohesion: 0.08
+Nodes (20): Tests for connection pool configuration, Tests for connection pool configuration, Stocks engine should have optimized pool settings, Stocks engine should have optimized pool settings, Tests for lazy JSON deserialization, Tests for lazy JSON deserialization, Query manager should have deserialize method, Query manager should have deserialize method (+12 more)
### Community 503 - "Community 503"
Cohesion: 0.25
-Nodes (7): code:python ("""add wallet_holdings and wallet_lots tables), code:python (import main.models.wallet), code:bash (git add migrations/versions/wallet_tables_20260904_add_walle), File Structure, Global Constraints, Task 2: Alembic migration for wallet tables, Wallet Management (Thoth/Iyagba) Implementation Plan
+Nodes (7): code:python (from dataclasses import dataclass), code:bash (git add main/app/wallet/__init__.py main/app/wallet/math.py ), code:python (from datetime import date), File Structure, Global Constraints, Task 3: Pure derivation math, Wallet Management (Thoth/Iyagba) Implementation Plan
### Community 505 - "Community 505"
Cohesion: 0.33
@@ -1702,8 +1702,8 @@ Cohesion: 0.07
Nodes (17): Tests for connection pool configuration, Stocks engine should have optimized pool settings, Tests for lazy JSON deserialization, Query manager should have deserialize method, Integration tests for all query optimizations, All optimizations should be implemented, Query filter should use ticker index, Tests for dynamic ticker index feature (+9 more)
### Community 519 - "Community 519"
-Cohesion: 0.22
-Nodes (7): verifyAccessToken(), Covers lines 50-51: jwt.InvalidTokenError., Covers lines 50-51: jwt.InvalidTokenError., Covers lines 50-51: jwt.InvalidTokenError., Covers lines 50-51: jwt.InvalidTokenError., Covers lines 50-51: jwt.InvalidTokenError., Covers lines 50-51: jwt.InvalidTokenError.
+Cohesion: 0.29
+Nodes (6): Covers lines 50-51: jwt.InvalidTokenError., Covers lines 50-51: jwt.InvalidTokenError., Covers lines 50-51: jwt.InvalidTokenError., Covers lines 50-51: jwt.InvalidTokenError., Covers lines 50-51: jwt.InvalidTokenError., Covers lines 50-51: jwt.InvalidTokenError.
### Community 520 - "Community 520"
Cohesion: 0.33
@@ -1714,12 +1714,12 @@ Cohesion: 0.38
Nodes (9): compactCotations(), compactRow(), compactValue(), compressResponse(), fixHeaders(), getAbbr(), getNest(), toColumnar() (+1 more)
### Community 522 - "Community 522"
-Cohesion: 0.14
+Cohesion: 0.17
Nodes (9): Verify that getSession() returns per-thread Session instances., Calling getSession() twice in the same thread returns the same object., Two threads must NOT share a Session object., With 20 concurrent threads, every thread must get its own Session., The returned object must be a real requests.Session., TestGetSession, get_session(), Return a requests.Session for the current thread. Sessions are created la (+1 more)
### Community 523 - "Community 523"
-Cohesion: 0.1
-Nodes (21): list_files(), Read a file from the workspace. Args: path: Path to the file (e., Read a file from the workspace. Args: path: Path to the file (e., Write a file to the workspace. Use this to save data files (CSV, JSON, scri, Write a file to the workspace. Use this to save data files (CSV, JSON, scri, Write a file to the workspace. Use this to save data files (CSV, JSON, scri, Read a file from the sandbox filesystem. Args: path: Absolute pa, Read a file from the sandbox filesystem. Args: path: Absolute pa (+13 more)
+Cohesion: 0.06
+Nodes (39): check_cache(), execute_code(), list_files(), Execute Python code in an isolated sandbox. Use for quantitative analysis,, Read a file from the workspace. Args: path: Path to the file (e., Execute Python code in an isolated sandbox. Use for quantitative analysis,, Read a file from the workspace. Args: path: Path to the file (e., Execute Python code in an isolated sandbox. Use for quantitative analysis, (+31 more)
### Community 524 - "Community 524"
Cohesion: 0.33
@@ -1734,20 +1734,12 @@ Cohesion: 0.33
Nodes (7): buildKey(), clearAll(), getMatrix(), invalidateUser(), runAwait(), main(), One-shot: renormalize stored embeddings to unit norm. Usage: python scripts/back
### Community 527 - "Community 527"
-Cohesion: 0.17
-Nodes (6): pytest_configure(), Set required env vars before test collection. config.py eagerly instantia, Reset slowapi in-memory rate limiter between every test., Set required env vars before test collection. config.py eagerly instantia, Set required env vars before test collection. config.py eagerly instantia, _reset_rate_limiter()
+Cohesion: 0.09
+Nodes (17): client(), pytest_configure(), TestClient with all routers mounted — no lifespan (no DB/service init). O, Set required env vars before test collection. config.py eagerly instantia, Reset slowapi in-memory rate limiter between every test., Set required env vars before test collection. config.py eagerly instantia, TestClient with all routers mounted — no lifespan (no DB/service init). O, TestClient with all routers mounted — no lifespan (no DB/service init). O (+9 more)
### Community 528 - "Community 528"
-Cohesion: 0.07
-Nodes (26): Covers lines 13, 17, 19-20, 22-27: UserManager.addRoleToUser., Covers lines 13, 17, 19-20, 22-27: UserManager.addRoleToUser., Covers lines 17, 22-27: user found, role not present, role added., Covers lines 17, 22-27: user found, role not present, role added., Covers lines 13, 17, 19-20, 22-27: UserManager.addRoleToUser., Covers lines 17, 22-27: user found, role not present, role added., Covers lines 13, 17, 19-20, 22-27: UserManager.addRoleToUser., Covers lines 17, 22-27: user found, role not present, role added. (+18 more)
-
-### Community 529 - "Community 529"
-Cohesion: 0.4
-Nodes (5): Verify frontend can still auth after OAuth redirect via cookie., Verify frontend can still get token after OAuth redirect., Verify frontend can still get token after OAuth redirect., Frontend JavaScript should be able to read token from readable cookie., TestOAuthCallbackFrontendCompatibility
-
-### Community 530 - "Community 530"
-Cohesion: 0.36
-Nodes (7): create_memory(), createMemory(), _downloadModel(), embed(), getEmbeddingModel(), executeMemoryTool(), embed()
+Cohesion: 0.11
+Nodes (16): Covers lines 13, 17, 19-20, 22-27: UserManager.addRoleToUser., Covers lines 13, 17, 19-20, 22-27: UserManager.addRoleToUser., Covers lines 17, 22-27: user found, role not present, role added., Covers lines 17, 22-27: user found, role not present, role added., Covers lines 13, 17, 19-20, 22-27: UserManager.addRoleToUser., Covers lines 17, 22-27: user found, role not present, role added., Covers lines 13, 17, 19-20, 22-27: UserManager.addRoleToUser., Covers lines 17, 22-27: user found, role not present, role added. (+8 more)
### Community 532 - "Community 532"
Cohesion: 0.5
@@ -1762,33 +1754,21 @@ Cohesion: 0.5
Nodes (4): LATER (P2 — when touching these files), NOW (P0 — fix before next release), Priority Matrix, SOON (P1 — fix within 2 weeks)
### Community 536 - "Community 536"
-Cohesion: 0.14
-Nodes (14): execute_code(), Store a value in the harness state for this session. Use this to save inter, Execute Python code in an isolated sandbox. Use for quantitative analysis,, Execute Python code in an isolated sandbox. Use for quantitative analysis,, Execute Python code in an isolated sandbox. Use for quantitative analysis,, Execute Python code in an isolated sandbox. Use for quantitative analysis,, Execute Python code in an isolated sandbox. Use for quantitative analysis,, Store a value in the harness state for this session. Use this to save interm (+6 more)
+Cohesion: 0.1
+Nodes (25): executeStateTool(), get_state(), Store a value in the harness state for this session. Use this to save inter, Retrieve values from the harness state. Use this to recall intermediate results,, Retrieve values from the harness state. Use this to recall intermediate results,, Retrieve values from the harness state. Use this to recall intermediate results,, Retrieve values from the harness state. Use this to recall intermediate results,, Store a value in the harness state for this session. Use this to save interm (+17 more)
### Community 538 - "Community 538"
Cohesion: 0.4
Nodes (4): COTACAO 10Y PADRAO and COTACAO 10Y AJUSTADA belong to /cotations, not /fundament, COTACAO 10Y PADRAO and COTACAO 10Y AJUSTADA belong to /cotations, not /fundament, COTACAO 10Y PADRAO and COTACAO 10Y AJUSTADA belong to /cotations, not /fundament, COTACAO 10Y PADRAO and COTACAO 10Y AJUSTADA belong to /cotations, not /fundament
-### Community 539 - "Community 539"
-Cohesion: 0.83
-Nodes (4): countMemories(), extract(), getMemoryLimit(), upsertMemory()
-
### Community 540 - "Community 540"
Cohesion: 0.29
Nodes (6): code:python (import argparse), code:bash (git add bench/bench_memory_vector.py), Global Constraints, Lane 4: Before/After Bench Implementation Plan, Task 1: Bench script with synthetic scale sweep, Task 2: Record baseline and post-lane numbers
-### Community 541 - "Community 541"
-Cohesion: 0.5
-Nodes (4): Verify JWT token is NOT leaked in redirect URL after OAuth callback., Verify JWT token is NOT leaked in redirect URL after OAuth callback., Verify JWT token is NOT leaked in redirect URL after OAuth callback., TestOAuthCallbackTokenNotInURL
-
### Community 542 - "Community 542"
Cohesion: 0.5
Nodes (3): at, label, rows
-### Community 544 - "Community 544"
-Cohesion: 0.5
-Nodes (4): code:python (from dataclasses import dataclass), code:bash (git add main/app/wallet/__init__.py main/app/wallet/math.py ), code:python (from datetime import date), Task 3: Pure derivation math
-
### Community 545 - "Community 545"
Cohesion: 0.29
Nodes (7): code:python (def test_split_cliff_no_fake_loss_on_adjusted_series(monkeyp), code:python (def test_snapshot_includes_received_and_cash_gain(dbSession,), code:python (def test_history_merges_dividend_receipts(dbSession, sampleU), code:python (def test_ex_div_methodology_decides_received_stacking(dbSess), code:python (def ex_div_smoothing_verdict(padrao_before: float, padrao_af), code:bash (git add main/app/wallet/manager.py main/controller/wallet_co), Task 12: Split-cliff regression test + snapshot/history dividend extension + final gate
@@ -1849,6 +1829,10 @@ Nodes (3): Current code (exact), Lane contracts (interfaces between lanes), Vect
Cohesion: 0.5
Nodes (4): code:python (import pytest), code:python (import logging), code:bash (git add main/app/wallet/prices.py tests/test_wallet_prices.p), Task 6: Price client — one batched STOCKS_API fetch per snapshot
+### Community 561 - "Community 561"
+Cohesion: 0.17
+Nodes (9): Test that concurrent requests are properly serialized at DB level. Th, Test that invalid API key returns zero rows affected., Test that multiple API keys have independent quotas., Test that invalid API key returns zero rows affected., Test that multiple API keys have independent quotas., Test that atomic increment prevents race conditions., Test that atomic increment prevents race conditions., Test that concurrent requests are properly serialized at DB level. Th (+1 more)
+
### Community 562 - "Community 562"
Cohesion: 0.67
Nodes (3): checkServiceConnection — success, not found, errors., checkServiceConnection — success, not found, errors., TestCheckServiceConnection
@@ -1862,27 +1846,27 @@ Cohesion: 0.67
Nodes (3): checkMySqlConnection — success, errors, engine=None paths., checkMySqlConnection — success, errors, engine=None paths., TestCheckMySqlConnection
### Community 567 - "Community 567"
-Cohesion: 0.33
-Nodes (6): Tests covering key.py lines 48-66., Tests covering key.py lines 48-66., Tests covering key.py lines 48-66., Tests covering key.py lines 48-66., Tests covering key.py lines 48-66., TestCreateKey
+Cohesion: 0.15
+Nodes (17): verifyAPIKey(), Tests to increase coverage for query.py, key.py, and cache.py in stocks_api., Tests covering key.py lines 48-66., Tests covering key.py lines 48-66., Tests covering key.py lines 48-66., Tests covering key.py lines 48-66., Tests covering key.py lines 48-66., test_cache_scheduler_starts_apscheduler() (+9 more)
### Community 568 - "Community 568"
-Cohesion: 0.17
-Nodes (11): normalizeKey(), Store a value in state. Marks state as changed for context injection., ResponseCache, autoAbbreviate(), dedupAbbrev(), detectNestedFields(), generateAbbreviations(), _parse_date() (+3 more)
+Cohesion: 0.39
+Nodes (8): autoAbbreviate(), dedupAbbrev(), detectNestedFields(), generateAbbreviations(), _parse_date(), parseDate(), parseDateEnd(), parseDateStart()
## Knowledge Gaps
- **3020 isolated node(s):** `$schema`, `style`, `rsc`, `tsx`, `config` (+3015 more)
These have ≤1 connection - possible missing edges or undocumented components.
-- **234 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
+- **228 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
-- **Why does `Pytest Testing` connect `Community 132` to `Authentication Core`, `Frontend Components`, `Community 129`, `Data Models & Types`, `Community 518`, `Device Detection`, `Community 138`, `Community 140`, `Community 527`, `Community 18`, `Community 24`, `Community 25`, `Community 27`, `Community 29`, `Community 32`, `Community 33`, `Community 546`, `Community 40`, `Community 44`, `Community 172`, `Community 49`, `Community 51`, `Community 54`, `Community 59`, `Community 188`, `Community 67`, `Community 73`, `Community 86`, `Community 90`, `Community 475`, `Community 120`, `Community 93`, `Community 477`, `Community 95`, `Community 99`, `Community 100`, `Community 495`, `Community 112`, `Community 498`, `Community 500`, `Community 502`, `Community 504`, `Community 251`, `Community 125`?**
- _High betweenness centrality (0.091) - this node is a cross-community bridge._
-- **Why does `UserManager` connect `Community 498` to `Prometheus Agent`, `Prometheus Memory`, `Community 525`, `User Roles & Permissions`, `Community 141`, `Community 16`, `Community 528`, `Community 21`, `Community 22`, `Community 37`, `Community 47`, `Community 178`, `Community 181`, `Community 567`, `Community 58`, `Community 61`, `Community 68`, `Community 208`, `Community 474`, `Community 90`, `Community 221`, `Community 99`, `Community 101`, `Community 104`, `Community 107`, `Community 493`, `Community 114`, `Community 125`?**
- _High betweenness centrality (0.045) - this node is a cross-community bridge._
-- **Why does `FastAPI` connect `Community 500` to `Community 129`, `Community 519`, `Community 18`, `Community 33`, `Community 546`, `Community 34`, `Community 37`, `Community 40`, `Community 169`, `Community 181`, `Community 568`, `Community 58`, `Community 63`, `Community 71`, `Community 72`, `Community 73`, `Community 84`, `Community 90`, `Community 475`, `Community 120`, `Community 477`, `Community 110`, `Community 497`, `Community 498`, `Community 501`, `Community 504`?**
- _High betweenness centrality (0.036) - this node is a cross-community bridge._
+- **Why does `Pytest Testing` connect `Community 251` to `Authentication Core`, `Frontend Components`, `Community 129`, `Data Models & Types`, `Community 131`, `Community 518`, `Community 138`, `Community 140`, `Community 527`, `Community 18`, `Community 147`, `Community 24`, `Community 25`, `Community 536`, `Community 27`, `Community 29`, `Community 32`, `Community 33`, `Community 546`, `Community 40`, `Community 44`, `Community 45`, `Community 172`, `Community 49`, `Community 51`, `Community 181`, `Community 54`, `Community 567`, `Community 184`, `Community 59`, `Community 188`, `Community 61`, `Community 475`, `Community 120`, `Community 93`, `Community 477`, `Community 95`, `Community 99`, `Community 100`, `Community 495`, `Community 502`, `Community 504`?**
+ _High betweenness centrality (0.101) - this node is a cross-community bridge._
+- **Why does `UserManager` connect `Community 498` to `Prometheus Agent`, `Prometheus Memory`, `Community 140`, `Community 525`, `User Roles & Permissions`, `Community 141`, `Community 16`, `Community 528`, `Community 21`, `Community 22`, `Community 37`, `Community 47`, `Community 178`, `Community 181`, `Community 567`, `Community 58`, `Community 61`, `Community 68`, `Community 208`, `Community 86`, `Community 474`, `Community 221`, `Community 99`, `Community 101`, `Community 104`, `Community 490`, `Community 493`, `Community 114`, `Community 120`?**
+ _High betweenness centrality (0.049) - this node is a cross-community bridge._
+- **Why does `Prometheus` connect `Community 116` to `Frontend Components`, `Community 517`, `Device Detection`, `Community 137`, `Community 138`, `Community 140`, `Frontend App Shell`, `Community 151`, `Community 24`, `Community 162`, `Community 49`, `Community 52`, `Community 60`, `Community 61`, `Community 194`, `Community 68`, `Community 80`, `Community 87`, `Community 88`, `Community 93`, `Community 487`, `Community 488`, `Community 105`?**
+ _High betweenness centrality (0.042) - this node is a cross-community bridge._
- **Are the 72 inferred relationships involving `StocksCacheManager` (e.g. with `TestStocksCacheManager` and `TestVerifyAPIKey`) actually correct?**
_`StocksCacheManager` has 72 INFERRED edges - model-reasoned connections that need verification._
- **Are the 52 inferred relationships involving `HarnessState` (e.g. with `Prometheus` and `.streamMessage()`) actually correct?**
diff --git a/graphify-out/graph.json b/graphify-out/graph.json
index befad39..a173322 100644
--- a/graphify-out/graph.json
+++ b/graphify-out/graph.json
@@ -219,7 +219,7 @@
"source_file": "config.py",
"source_location": "L61",
"id": "server_config_prometheussettings",
- "community": 535,
+ "community": 102,
"norm_label": "prometheussettings"
},
{
@@ -246,7 +246,7 @@
"source_file": "config.py",
"source_location": "L93",
"id": "server_config_config",
- "community": 102,
+ "community": 194,
"norm_label": "config"
},
{
@@ -2199,7 +2199,7 @@
"source_file": "main/app/authentication/authentication.py",
"source_location": "L1",
"id": "main_app_authentication_authentication_py",
- "community": 500,
+ "community": 43,
"norm_label": "authentication.py"
},
{
@@ -2217,7 +2217,7 @@
"source_file": "main/app/authentication/authentication.py",
"source_location": "L16",
"id": "authentication_authentication_createuseraccount",
- "community": 500,
+ "community": 43,
"norm_label": "createuseraccount()"
},
{
@@ -2226,7 +2226,7 @@
"source_file": "main/app/authentication/authentication.py",
"source_location": "L51",
"id": "authentication_authentication_authenticategoogleuser",
- "community": 500,
+ "community": 43,
"norm_label": "authenticategoogleuser()"
},
{
@@ -2235,7 +2235,7 @@
"source_file": "main/app/authentication/authentication.py",
"source_location": "L65",
"id": "authentication_authentication_authenticateuser",
- "community": 500,
+ "community": 43,
"norm_label": "authenticateuser()"
},
{
@@ -2370,7 +2370,7 @@
"source_file": "main/app/authentication/util.py",
"source_location": "L1",
"id": "main_app_authentication_util_py",
- "community": 519,
+ "community": 181,
"norm_label": "util.py"
},
{
@@ -2406,7 +2406,7 @@
"source_file": "main/app/authentication/util.py",
"source_location": "L43",
"id": "authentication_util_verifyaccesstoken",
- "community": 519,
+ "community": 181,
"norm_label": "verifyaccesstoken()"
},
{
@@ -2593,7 +2593,7 @@
"label": "getTokenizer()",
"file_type": "code",
"source_file": "main/app/prometheus/compact.py",
- "source_location": "L29",
+ "source_location": "L31",
"id": "prometheus_compact_gettokenizer",
"community": 80,
"norm_label": "gettokenizer()"
@@ -2602,7 +2602,7 @@
"label": "countTokens()",
"file_type": "code",
"source_file": "main/app/prometheus/compact.py",
- "source_location": "L41",
+ "source_location": "L43",
"id": "prometheus_compact_counttokens",
"community": 80,
"norm_label": "counttokens()"
@@ -2611,7 +2611,7 @@
"label": "getStocksFieldsUrl()",
"file_type": "code",
"source_file": "main/app/prometheus/compact.py",
- "source_location": "L58",
+ "source_location": "L60",
"id": "prometheus_compact_getstocksfieldsurl",
"community": 80,
"norm_label": "getstocksfieldsurl()"
@@ -2620,7 +2620,7 @@
"label": "loadFieldData()",
"file_type": "code",
"source_file": "main/app/prometheus/compact.py",
- "source_location": "L62",
+ "source_location": "L64",
"id": "prometheus_compact_loadfielddata",
"community": 80,
"norm_label": "loadfielddata()"
@@ -2629,7 +2629,7 @@
"label": "getHistoricalFields()",
"file_type": "code",
"source_file": "main/app/prometheus/compact.py",
- "source_location": "L85",
+ "source_location": "L87",
"id": "prometheus_compact_gethistoricalfields",
"community": 80,
"norm_label": "gethistoricalfields()"
@@ -2638,7 +2638,7 @@
"label": "getFundamentalColumns()",
"file_type": "code",
"source_file": "main/app/prometheus/compact.py",
- "source_location": "L89",
+ "source_location": "L91",
"id": "prometheus_compact_getfundamentalcolumns",
"community": 80,
"norm_label": "getfundamentalcolumns()"
@@ -2647,7 +2647,7 @@
"label": "invalidateFieldData()",
"file_type": "code",
"source_file": "main/app/prometheus/compact.py",
- "source_location": "L93",
+ "source_location": "L95",
"id": "prometheus_compact_invalidatefielddata",
"community": 80,
"norm_label": "invalidatefielddata()"
@@ -2656,7 +2656,7 @@
"label": "getMetricRegex()",
"file_type": "code",
"source_file": "main/app/prometheus/compact.py",
- "source_location": "L99",
+ "source_location": "L101",
"id": "prometheus_compact_getmetricregex",
"community": 80,
"norm_label": "getmetricregex()"
@@ -2665,7 +2665,7 @@
"label": "extractTickers()",
"file_type": "code",
"source_file": "main/app/prometheus/compact.py",
- "source_location": "L111",
+ "source_location": "L115",
"id": "prometheus_compact_extracttickers",
"community": 80,
"norm_label": "extracttickers()"
@@ -2674,7 +2674,7 @@
"label": "extractMetrics()",
"file_type": "code",
"source_file": "main/app/prometheus/compact.py",
- "source_location": "L115",
+ "source_location": "L119",
"id": "prometheus_compact_extractmetrics",
"community": 80,
"norm_label": "extractmetrics()"
@@ -2683,7 +2683,7 @@
"label": "extractDecisions()",
"file_type": "code",
"source_file": "main/app/prometheus/compact.py",
- "source_location": "L122",
+ "source_location": "L131",
"id": "prometheus_compact_extractdecisions",
"community": 80,
"norm_label": "extractdecisions()"
@@ -2692,7 +2692,7 @@
"label": "extractSnapshots()",
"file_type": "code",
"source_file": "main/app/prometheus/compact.py",
- "source_location": "L136",
+ "source_location": "L145",
"id": "prometheus_compact_extractsnapshots",
"community": 80,
"norm_label": "extractsnapshots()"
@@ -2701,7 +2701,7 @@
"label": "extractToolCalls()",
"file_type": "code",
"source_file": "main/app/prometheus/compact.py",
- "source_location": "L149",
+ "source_location": "L158",
"id": "prometheus_compact_extracttoolcalls",
"community": 80,
"norm_label": "extracttoolcalls()"
@@ -2710,7 +2710,7 @@
"label": "buildSummary()",
"file_type": "code",
"source_file": "main/app/prometheus/compact.py",
- "source_location": "L165",
+ "source_location": "L174",
"id": "prometheus_compact_buildsummary",
"community": 80,
"norm_label": "buildsummary()"
@@ -2719,7 +2719,7 @@
"label": "PrometheusCompactor",
"file_type": "code",
"source_file": "main/app/prometheus/compact.py",
- "source_location": "L186",
+ "source_location": "L195",
"id": "prometheus_compact_prometheuscompactor",
"community": 80,
"norm_label": "prometheuscompactor"
@@ -2728,7 +2728,7 @@
"label": ".shouldCompact()",
"file_type": "code",
"source_file": "main/app/prometheus/compact.py",
- "source_location": "L187",
+ "source_location": "L196",
"id": "prometheus_compact_prometheuscompactor_shouldcompact",
"community": 80,
"norm_label": ".shouldcompact()"
@@ -2737,7 +2737,7 @@
"label": ".getCompactableChunk()",
"file_type": "code",
"source_file": "main/app/prometheus/compact.py",
- "source_location": "L204",
+ "source_location": "L213",
"id": "prometheus_compact_prometheuscompactor_getcompactablechunk",
"community": 80,
"norm_label": ".getcompactablechunk()"
@@ -2746,7 +2746,7 @@
"label": ".extractEpisode()",
"file_type": "code",
"source_file": "main/app/prometheus/compact.py",
- "source_location": "L213",
+ "source_location": "L222",
"id": "prometheus_compact_prometheuscompactor_extractepisode",
"community": 80,
"norm_label": ".extractepisode()"
@@ -2755,7 +2755,7 @@
"label": ".consolidate()",
"file_type": "code",
"source_file": "main/app/prometheus/compact.py",
- "source_location": "L235",
+ "source_location": "L244",
"id": "prometheus_compact_prometheuscompactor_consolidate",
"community": 80,
"norm_label": ".consolidate()"
@@ -2764,7 +2764,7 @@
"label": ".compact()",
"file_type": "code",
"source_file": "main/app/prometheus/compact.py",
- "source_location": "L262",
+ "source_location": "L271",
"id": "prometheus_compact_prometheuscompactor_compact",
"community": 80,
"norm_label": ".compact()"
@@ -2773,7 +2773,7 @@
"label": ".getEpisodes()",
"file_type": "code",
"source_file": "main/app/prometheus/compact.py",
- "source_location": "L301",
+ "source_location": "L310",
"id": "prometheus_compact_prometheuscompactor_getepisodes",
"community": 80,
"norm_label": ".getepisodes()"
@@ -2787,11 +2787,20 @@
"community": 194,
"norm_label": "mcp.py"
},
+ {
+ "label": "ensureFastmcp()",
+ "file_type": "code",
+ "source_file": "main/app/prometheus/mcp.py",
+ "source_location": "L10",
+ "id": "prometheus_mcp_ensurefastmcp",
+ "community": 194,
+ "norm_label": "ensurefastmcp()"
+ },
{
"label": "buildClient()",
"file_type": "code",
"source_file": "main/app/prometheus/mcp.py",
- "source_location": "L23",
+ "source_location": "L33",
"id": "prometheus_mcp_buildclient",
"community": 194,
"norm_label": "buildclient()"
@@ -2800,7 +2809,7 @@
"label": "MCPClientPool",
"file_type": "code",
"source_file": "main/app/prometheus/mcp.py",
- "source_location": "L31",
+ "source_location": "L42",
"id": "prometheus_mcp_mcpclientpool",
"community": 194,
"norm_label": "mcpclientpool"
@@ -2809,7 +2818,7 @@
"label": ".__init__()",
"file_type": "code",
"source_file": "main/app/prometheus/mcp.py",
- "source_location": "L32",
+ "source_location": "L43",
"id": "prometheus_mcp_mcpclientpool_init",
"community": 194,
"norm_label": ".__init__()"
@@ -2818,7 +2827,7 @@
"label": ".initialize()",
"file_type": "code",
"source_file": "main/app/prometheus/mcp.py",
- "source_location": "L37",
+ "source_location": "L48",
"id": "prometheus_mcp_mcpclientpool_initialize",
"community": 194,
"norm_label": ".initialize()"
@@ -2827,7 +2836,7 @@
"label": ".getClients()",
"file_type": "code",
"source_file": "main/app/prometheus/mcp.py",
- "source_location": "L54",
+ "source_location": "L65",
"id": "prometheus_mcp_mcpclientpool_getclients",
"community": 194,
"norm_label": ".getclients()"
@@ -2836,7 +2845,7 @@
"label": ".healthCheck()",
"file_type": "code",
"source_file": "main/app/prometheus/mcp.py",
- "source_location": "L61",
+ "source_location": "L72",
"id": "prometheus_mcp_mcpclientpool_healthcheck",
"community": 194,
"norm_label": ".healthcheck()"
@@ -2845,7 +2854,7 @@
"label": ".reconnect()",
"file_type": "code",
"source_file": "main/app/prometheus/mcp.py",
- "source_location": "L73",
+ "source_location": "L84",
"id": "prometheus_mcp_mcpclientpool_reconnect",
"community": 194,
"norm_label": ".reconnect()"
@@ -2854,7 +2863,7 @@
"label": ".close()",
"file_type": "code",
"source_file": "main/app/prometheus/mcp.py",
- "source_location": "L90",
+ "source_location": "L101",
"id": "prometheus_mcp_mcpclientpool_close",
"community": 194,
"norm_label": ".close()"
@@ -2872,7 +2881,7 @@
"label": "matrixKey()",
"file_type": "code",
"source_file": "main/app/prometheus/memory.py",
- "source_location": "L30",
+ "source_location": "L31",
"id": "prometheus_memory_matrixkey",
"community": 53,
"norm_label": "matrixkey()"
@@ -2881,7 +2890,7 @@
"label": "matrixUserTag()",
"file_type": "code",
"source_file": "main/app/prometheus/memory.py",
- "source_location": "L37",
+ "source_location": "L38",
"id": "prometheus_memory_matrixusertag",
"community": 53,
"norm_label": "matrixusertag()"
@@ -2890,7 +2899,7 @@
"label": "getMatrix()",
"file_type": "code",
"source_file": "main/app/prometheus/memory.py",
- "source_location": "L42",
+ "source_location": "L43",
"id": "prometheus_memory_getmatrix",
"community": 53,
"norm_label": "getmatrix()"
@@ -2899,7 +2908,7 @@
"label": "invalidateUser()",
"file_type": "code",
"source_file": "main/app/prometheus/memory.py",
- "source_location": "L52",
+ "source_location": "L53",
"id": "prometheus_memory_invalidateuser",
"community": 53,
"norm_label": "invalidateuser()"
@@ -2908,7 +2917,7 @@
"label": "clearAll()",
"file_type": "code",
"source_file": "main/app/prometheus/memory.py",
- "source_location": "L56",
+ "source_location": "L57",
"id": "prometheus_memory_clearall",
"community": 53,
"norm_label": "clearall()"
@@ -2917,7 +2926,7 @@
"label": "getClient()",
"file_type": "code",
"source_file": "main/app/prometheus/memory.py",
- "source_location": "L79",
+ "source_location": "L81",
"id": "prometheus_memory_getclient",
"community": 53,
"norm_label": "getclient()"
@@ -2926,7 +2935,7 @@
"label": "minMax()",
"file_type": "code",
"source_file": "main/app/prometheus/memory.py",
- "source_location": "L86",
+ "source_location": "L88",
"id": "prometheus_memory_minmax",
"community": 53,
"norm_label": "minmax()"
@@ -2935,16 +2944,16 @@
"label": "normalizeKey()",
"file_type": "code",
"source_file": "main/app/prometheus/memory.py",
- "source_location": "L95",
+ "source_location": "L97",
"id": "prometheus_memory_normalizekey",
- "community": 568,
+ "community": 53,
"norm_label": "normalizekey()"
},
{
"label": "findSimilarKey()",
"file_type": "code",
"source_file": "main/app/prometheus/memory.py",
- "source_location": "L102",
+ "source_location": "L104",
"id": "prometheus_memory_findsimilarkey",
"community": 53,
"norm_label": "findsimilarkey()"
@@ -2953,7 +2962,7 @@
"label": "PrometheusMemory",
"file_type": "code",
"source_file": "main/app/prometheus/memory.py",
- "source_location": "L125",
+ "source_location": "L127",
"id": "prometheus_memory_prometheusmemory",
"community": 140,
"norm_label": "prometheusmemory"
@@ -2962,34 +2971,34 @@
"label": "getMemoryLimit()",
"file_type": "code",
"source_file": "main/app/prometheus/memory.py",
- "source_location": "L127",
+ "source_location": "L129",
"id": "prometheus_memory_getmemorylimit",
- "community": 539,
+ "community": 53,
"norm_label": "getmemorylimit()"
},
{
"label": "countMemories()",
"file_type": "code",
"source_file": "main/app/prometheus/memory.py",
- "source_location": "L133",
+ "source_location": "L135",
"id": "prometheus_memory_countmemories",
- "community": 539,
+ "community": 53,
"norm_label": "countmemories()"
},
{
"label": "upsertMemory()",
"file_type": "code",
"source_file": "main/app/prometheus/memory.py",
- "source_location": "L142",
+ "source_location": "L144",
"id": "prometheus_memory_upsertmemory",
- "community": 539,
+ "community": 53,
"norm_label": "upsertmemory()"
},
{
"label": "search()",
"file_type": "code",
"source_file": "main/app/prometheus/memory.py",
- "source_location": "L220",
+ "source_location": "L222",
"id": "prometheus_memory_search",
"community": 53,
"norm_label": "search()"
@@ -2998,7 +3007,7 @@
"label": "fullTextSearch()",
"file_type": "code",
"source_file": "main/app/prometheus/memory.py",
- "source_location": "L315",
+ "source_location": "L317",
"id": "prometheus_memory_fulltextsearch",
"community": 53,
"norm_label": "fulltextsearch()"
@@ -3007,16 +3016,16 @@
"label": "getUserMemories()",
"file_type": "code",
"source_file": "main/app/prometheus/memory.py",
- "source_location": "L373",
+ "source_location": "L375",
"id": "prometheus_memory_getusermemories",
- "community": 53,
+ "community": 27,
"norm_label": "getusermemories()"
},
{
"label": "deleteMemory()",
"file_type": "code",
"source_file": "main/app/prometheus/memory.py",
- "source_location": "L398",
+ "source_location": "L400",
"id": "prometheus_memory_deletememory",
"community": 53,
"norm_label": "deletememory()"
@@ -3025,7 +3034,7 @@
"label": "countTokensCached()",
"file_type": "code",
"source_file": "main/app/prometheus/memory.py",
- "source_location": "L416",
+ "source_location": "L418",
"id": "prometheus_memory_counttokenscached",
"community": 80,
"norm_label": "counttokenscached()"
@@ -3034,9 +3043,9 @@
"label": "extract()",
"file_type": "code",
"source_file": "main/app/prometheus/memory.py",
- "source_location": "L426",
+ "source_location": "L428",
"id": "prometheus_memory_extract",
- "community": 539,
+ "community": 53,
"norm_label": "extract()"
},
{
@@ -3306,7 +3315,7 @@
"source_file": "main/app/prometheus/tools.py",
"source_location": "L1",
"id": "main_app_prometheus_tools_py",
- "community": 152,
+ "community": 523,
"norm_label": "tools.py"
},
{
@@ -3333,7 +3342,7 @@
"source_file": "main/app/prometheus/tools.py",
"source_location": "L89",
"id": "prometheus_tools_execute_code",
- "community": 536,
+ "community": 523,
"norm_label": "execute_code()"
},
{
@@ -3369,7 +3378,7 @@
"source_file": "main/app/prometheus/tools.py",
"source_location": "L153",
"id": "prometheus_tools_serve_file",
- "community": 152,
+ "community": 523,
"norm_label": "serve_file()"
},
{
@@ -3405,7 +3414,7 @@
"source_file": "main/app/prometheus/tools.py",
"source_location": "L90",
"id": "prometheus_tools_rationale_90",
- "community": 536,
+ "community": 523,
"norm_label": "execute python code in an isolated sandbox. use for quantitative analysis,"
},
{
@@ -3441,7 +3450,7 @@
"source_file": "main/app/prometheus/tools.py",
"source_location": "L154",
"id": "prometheus_tools_rationale_154",
- "community": 152,
+ "community": 523,
"norm_label": "get a download link for a workspace file to share with the user. use this"
},
{
@@ -3468,7 +3477,7 @@
"source_file": "main/app/prometheus/vector.py",
"source_location": "L15",
"id": "prometheus_vector_embed",
- "community": 530,
+ "community": 84,
"norm_label": "embed()"
},
{
@@ -3963,7 +3972,7 @@
"source_file": "main/app/stocks_api/key.py",
"source_location": "L21",
"id": "stocks_api_key_verifyapikey",
- "community": 90,
+ "community": 567,
"norm_label": "verifyapikey()"
},
{
@@ -4647,7 +4656,7 @@
"source_file": "main/models/prometheus.py",
"source_location": "L1",
"id": "main_models_prometheus_py",
- "community": 125,
+ "community": 61,
"norm_label": "prometheus.py"
},
{
@@ -4656,7 +4665,7 @@
"source_file": "main/models/prometheus.py",
"source_location": "L7",
"id": "models_prometheus_prometheussession",
- "community": 125,
+ "community": 61,
"norm_label": "prometheussession"
},
{
@@ -5016,7 +5025,7 @@
"source_file": "main/utils/errors.py",
"source_location": "L1",
"id": "main_utils_errors_py",
- "community": 497,
+ "community": 33,
"norm_label": "errors.py"
},
{
@@ -5061,7 +5070,7 @@
"source_file": "main/utils/errors.py",
"source_location": "L26",
"id": "utils_errors_builderrorresponse",
- "community": 497,
+ "community": 33,
"norm_label": "builderrorresponse()"
},
{
@@ -5070,7 +5079,7 @@
"source_file": "main/utils/errors.py",
"source_location": "L36",
"id": "utils_errors_httpexceptionhandler",
- "community": 497,
+ "community": 33,
"norm_label": "httpexceptionhandler()"
},
{
@@ -5079,7 +5088,7 @@
"source_file": "main/utils/errors.py",
"source_location": "L43",
"id": "utils_errors_validationexceptionhandler",
- "community": 497,
+ "community": 33,
"norm_label": "validationexceptionhandler()"
},
{
@@ -5088,7 +5097,7 @@
"source_file": "main/utils/errors.py",
"source_location": "L55",
"id": "utils_errors_genericexceptionhandler",
- "community": 497,
+ "community": 33,
"norm_label": "genericexceptionhandler()"
},
{
@@ -5106,7 +5115,7 @@
"source_file": "main/utils/http_session.py",
"source_location": "L1",
"id": "main_utils_http_session_py",
- "community": 522,
+ "community": 491,
"norm_label": "http_session.py"
},
{
@@ -5115,7 +5124,7 @@
"source_file": "main/utils/http_session.py",
"source_location": "L8",
"id": "utils_http_session_getsession",
- "community": 522,
+ "community": 491,
"norm_label": "getsession()"
},
{
@@ -5223,7 +5232,7 @@
"source_file": "main/utils/roles.py",
"source_location": "L1",
"id": "main_utils_roles_py",
- "community": 498,
+ "community": 112,
"norm_label": "roles.py"
},
{
@@ -5232,7 +5241,7 @@
"source_file": "main/utils/roles.py",
"source_location": "L5",
"id": "utils_roles_permission",
- "community": 498,
+ "community": 140,
"norm_label": "permission"
},
{
@@ -5268,7 +5277,7 @@
"source_file": "main/utils/roles.py",
"source_location": "L29",
"id": "utils_roles_checkaccess",
- "community": 498,
+ "community": 112,
"norm_label": "checkaccess()"
},
{
@@ -5277,7 +5286,7 @@
"source_file": "main/utils/roles.py",
"source_location": "L42",
"id": "utils_roles_requirepermission",
- "community": 498,
+ "community": 112,
"norm_label": "requirepermission()"
},
{
@@ -5340,7 +5349,7 @@
"source_file": "main/utils/models/loader.py",
"source_location": "L1",
"id": "main_utils_models_loader_py",
- "community": 530,
+ "community": 84,
"norm_label": "loader.py"
},
{
@@ -5349,7 +5358,7 @@
"source_file": "main/utils/models/loader.py",
"source_location": "L12",
"id": "models_loader_getembeddingmodel",
- "community": 530,
+ "community": 84,
"norm_label": "getembeddingmodel()"
},
{
@@ -8688,7 +8697,7 @@
"source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
"source_location": "L166",
"id": "plans_2026_09_04_wallet_management_task_2_alembic_migration_for_wallet_tables",
- "community": 503,
+ "community": 497,
"norm_label": "task 2: alembic migration for wallet tables"
},
{
@@ -8697,7 +8706,7 @@
"source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
"source_location": "L189",
"id": "plans_2026_09_04_wallet_management_codeblock_6",
- "community": 503,
+ "community": 497,
"norm_label": "code:python (\"\"\"add wallet_holdings and wallet_lots tables)"
},
{
@@ -8706,7 +8715,7 @@
"source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
"source_location": "L248",
"id": "plans_2026_09_04_wallet_management_codeblock_7",
- "community": 503,
+ "community": 497,
"norm_label": "code:python (import main.models.wallet)"
},
{
@@ -8715,7 +8724,7 @@
"source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
"source_location": "L262",
"id": "plans_2026_09_04_wallet_management_codeblock_8",
- "community": 503,
+ "community": 497,
"norm_label": "code:bash (git add migrations/versions/wallet_tables_20260904_add_walle)"
},
{
@@ -8724,7 +8733,7 @@
"source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
"source_location": "L269",
"id": "plans_2026_09_04_wallet_management_task_3_pure_derivation_math",
- "community": 544,
+ "community": 503,
"norm_label": "task 3: pure derivation math"
},
{
@@ -8733,7 +8742,7 @@
"source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
"source_location": "L281",
"id": "plans_2026_09_04_wallet_management_codeblock_9",
- "community": 544,
+ "community": 503,
"norm_label": "code:python (from datetime import date)"
},
{
@@ -8742,7 +8751,7 @@
"source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
"source_location": "L325",
"id": "plans_2026_09_04_wallet_management_codeblock_10",
- "community": 544,
+ "community": 503,
"norm_label": "code:python (from dataclasses import dataclass)"
},
{
@@ -8751,7 +8760,7 @@
"source_file": "docs/superpowers/plans/2026-09-04-wallet-management.md",
"source_location": "L384",
"id": "plans_2026_09_04_wallet_management_codeblock_11",
- "community": 544,
+ "community": 503,
"norm_label": "code:bash (git add main/app/wallet/__init__.py main/app/wallet/math.py )"
},
{
@@ -11594,7 +11603,7 @@
"file_type": "code",
"source_file": "main/app/prometheus/compact.py",
"source_location": "L222",
- "community": 80,
+ "community": 517,
"norm_label": ".__init__()",
"id": "prometheus_compact_prometheuscompactor_init"
},
@@ -11630,7 +11639,7 @@
"file_type": "rationale",
"source_file": "main/app/prometheus/tools.py",
"source_location": "L92",
- "community": 536,
+ "community": 523,
"norm_label": "execute python code in an isolated sandbox. use for quantitative analysis,",
"id": "prometheus_tools_rationale_92"
},
@@ -11666,7 +11675,7 @@
"file_type": "rationale",
"source_file": "main/app/prometheus/tools.py",
"source_location": "L156",
- "community": 152,
+ "community": 523,
"norm_label": "get a download link for a workspace file to share with the user. use this",
"id": "prometheus_tools_rationale_156"
},
@@ -11909,7 +11918,7 @@
"file_type": "rationale",
"source_file": "main/app/prometheus/tools.py",
"source_location": "L145",
- "community": 152,
+ "community": 523,
"norm_label": "get a download link for a workspace file to share with the user. use this",
"id": "prometheus_tools_rationale_145"
},
@@ -12260,7 +12269,7 @@
"file_type": "code",
"source_file": "main/app/stocks_api/response_cache.py",
"source_location": "L1",
- "community": 568,
+ "community": 63,
"norm_label": "response_cache.py",
"id": "main_app_stocks_api_response_cache_py"
},
@@ -12269,7 +12278,7 @@
"file_type": "code",
"source_file": "main/app/stocks_api/response_cache.py",
"source_location": "L19",
- "community": 568,
+ "community": 63,
"norm_label": "responsecache",
"id": "stocks_api_response_cache_responsecache"
},
@@ -12278,7 +12287,7 @@
"file_type": "code",
"source_file": "main/app/stocks_api/response_cache.py",
"source_location": "L20",
- "community": 568,
+ "community": 63,
"norm_label": ".__init__()",
"id": "stocks_api_response_cache_responsecache_init"
},
@@ -12287,7 +12296,7 @@
"file_type": "code",
"source_file": "main/app/stocks_api/response_cache.py",
"source_location": "L29",
- "community": 568,
+ "community": 63,
"norm_label": ".makekey()",
"id": "stocks_api_response_cache_responsecache_makekey"
},
@@ -12296,7 +12305,7 @@
"file_type": "code",
"source_file": "main/app/stocks_api/response_cache.py",
"source_location": "L34",
- "community": 568,
+ "community": 63,
"norm_label": ".get()",
"id": "stocks_api_response_cache_responsecache_get"
},
@@ -12305,7 +12314,7 @@
"file_type": "code",
"source_file": "main/app/stocks_api/response_cache.py",
"source_location": "L51",
- "community": 568,
+ "community": 63,
"norm_label": ".set()",
"id": "stocks_api_response_cache_responsecache_set"
},
@@ -14141,7 +14150,7 @@
"file_type": "code",
"source_file": "main/app/prometheus/state.py",
"source_location": "L14",
- "community": 568,
+ "community": 21,
"norm_label": ".set()",
"id": "prometheus_state_harnessstate_set"
},
@@ -14195,7 +14204,7 @@
"file_type": "code",
"source_file": "main/app/prometheus/tools.py",
"source_location": "L89",
- "community": 8,
+ "community": 536,
"norm_label": "get_state()",
"id": "prometheus_tools_get_state"
},
@@ -14222,7 +14231,7 @@
"file_type": "rationale",
"source_file": "main/app/prometheus/tools.py",
"source_location": "L123",
- "community": 536,
+ "community": 523,
"norm_label": "execute python code in an isolated sandbox. use for quantitative analysis,",
"id": "prometheus_tools_rationale_123"
},
@@ -15626,7 +15635,7 @@
"file_type": "rationale",
"source_file": "main/app/prometheus/tools.py",
"source_location": "L81",
- "community": 8,
+ "community": 536,
"norm_label": "retrieve values from the harness state. use this to recall intermediate results,",
"id": "prometheus_tools_rationale_81"
},
@@ -15644,7 +15653,7 @@
"file_type": "rationale",
"source_file": "main/app/prometheus/tools.py",
"source_location": "L114",
- "community": 536,
+ "community": 523,
"norm_label": "execute python code in an isolated sandbox. use for quantitative analysis,",
"id": "prometheus_tools_rationale_114"
},
@@ -21899,7 +21908,7 @@
"file_type": "code",
"source_file": "tests/conftest.py",
"source_location": "L81",
- "community": 186,
+ "community": 527,
"norm_label": "stocks_http_client()",
"id": "tests_conftest_stocks_http_client"
},
@@ -21908,7 +21917,7 @@
"file_type": "code",
"source_file": "tests/conftest.py",
"source_location": "L106",
- "community": 186,
+ "community": 527,
"norm_label": "client()",
"id": "tests_conftest_client"
},
@@ -21935,7 +21944,7 @@
"file_type": "rationale",
"source_file": "tests/conftest.py",
"source_location": "L82",
- "community": 186,
+ "community": 527,
"norm_label": "testclient with stocks router + verifyapikey + getcurrentuser overrides.",
"id": "tests_conftest_rationale_82"
},
@@ -21944,7 +21953,7 @@
"file_type": "rationale",
"source_file": "tests/conftest.py",
"source_location": "L107",
- "community": 186,
+ "community": 527,
"norm_label": "testclient with all routers mounted \u2014 no lifespan (no db/service init). o",
"id": "tests_conftest_rationale_107"
},
@@ -22052,7 +22061,7 @@
"file_type": "code",
"source_file": "tests/test_agent_state_integration.py",
"source_location": "L7",
- "community": 215,
+ "community": 8,
"norm_label": "testbuildsystempromptstate",
"id": "tests_test_agent_state_integration_testbuildsystempromptstate"
},
@@ -22061,7 +22070,7 @@
"file_type": "code",
"source_file": "tests/test_agent_state_integration.py",
"source_location": "L8",
- "community": 215,
+ "community": 8,
"norm_label": ".test_build_system_prompt_no_state()",
"id": "tests_test_agent_state_integration_testbuildsystempromptstate_test_build_system_prompt_no_state"
},
@@ -22070,7 +22079,7 @@
"file_type": "code",
"source_file": "tests/test_agent_state_integration.py",
"source_location": "L13",
- "community": 215,
+ "community": 8,
"norm_label": ".test_build_system_prompt_with_state()",
"id": "tests_test_agent_state_integration_testbuildsystempromptstate_test_build_system_prompt_with_state"
},
@@ -22079,7 +22088,7 @@
"file_type": "code",
"source_file": "tests/test_agent_state_integration.py",
"source_location": "L21",
- "community": 215,
+ "community": 8,
"norm_label": ".test_build_system_prompt_empty_state()",
"id": "tests_test_agent_state_integration_testbuildsystempromptstate_test_build_system_prompt_empty_state"
},
@@ -22088,7 +22097,7 @@
"file_type": "code",
"source_file": "tests/test_agent_state_integration.py",
"source_location": "L27",
- "community": 215,
+ "community": 8,
"norm_label": ".test_build_system_prompt_state_after_memories()",
"id": "tests_test_agent_state_integration_testbuildsystempromptstate_test_build_system_prompt_state_after_memories"
},
@@ -22097,7 +22106,7 @@
"file_type": "code",
"source_file": "tests/test_agent_state_integration.py",
"source_location": "L37",
- "community": 215,
+ "community": 8,
"norm_label": ".test_build_system_prompt_multiple_state_entries()",
"id": "tests_test_agent_state_integration_testbuildsystempromptstate_test_build_system_prompt_multiple_state_entries"
},
@@ -22178,7 +22187,7 @@
"file_type": "rationale",
"source_file": "tests/test_agent_state_integration.py",
"source_location": "L9",
- "community": 215,
+ "community": 8,
"norm_label": "system prompt should work without state parameter.",
"id": "tests_test_agent_state_integration_rationale_9"
},
@@ -22187,7 +22196,7 @@
"file_type": "rationale",
"source_file": "tests/test_agent_state_integration.py",
"source_location": "L14",
- "community": 215,
+ "community": 8,
"norm_label": "system prompt should include state context when provided.",
"id": "tests_test_agent_state_integration_rationale_14"
},
@@ -22196,7 +22205,7 @@
"file_type": "rationale",
"source_file": "tests/test_agent_state_integration.py",
"source_location": "L22",
- "community": 215,
+ "community": 8,
"norm_label": "system prompt should not include state section when empty.",
"id": "tests_test_agent_state_integration_rationale_22"
},
@@ -22205,7 +22214,7 @@
"file_type": "rationale",
"source_file": "tests/test_agent_state_integration.py",
"source_location": "L28",
- "community": 215,
+ "community": 8,
"norm_label": "state section should appear after memories section.",
"id": "tests_test_agent_state_integration_rationale_28"
},
@@ -22214,7 +22223,7 @@
"file_type": "rationale",
"source_file": "tests/test_agent_state_integration.py",
"source_location": "L38",
- "community": 215,
+ "community": 8,
"norm_label": "all state entries should appear in the prompt.",
"id": "tests_test_agent_state_integration_rationale_38"
},
@@ -22286,7 +22295,7 @@
"file_type": "code",
"source_file": "tests/test_api_key_quota_atomic.py",
"source_location": "L23",
- "community": 26,
+ "community": 561,
"norm_label": "testatomicquotaincrement",
"id": "tests_test_api_key_quota_atomic_testatomicquotaincrement"
},
@@ -22313,7 +22322,7 @@
"file_type": "code",
"source_file": "tests/test_api_key_quota_atomic.py",
"source_location": "L88",
- "community": 26,
+ "community": 561,
"norm_label": ".test_concurrent_requests_serialized_at_db_level()",
"id": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_concurrent_requests_serialized_at_db_level"
},
@@ -22331,7 +22340,7 @@
"file_type": "code",
"source_file": "tests/test_api_key_quota_atomic.py",
"source_location": "L150",
- "community": 26,
+ "community": 561,
"norm_label": ".test_invalid_api_key_returns_zero_rows()",
"id": "tests_test_api_key_quota_atomic_testatomicquotaincrement_test_invalid_api_key_returns_zero_rows"
},
@@ -22430,7 +22439,7 @@
"file_type": "rationale",
"source_file": "tests/test_api_key_quota_atomic.py",
"source_location": "L24",
- "community": 26,
+ "community": 561,
"norm_label": "test that atomic increment prevents race conditions.",
"id": "tests_test_api_key_quota_atomic_rationale_24"
},
@@ -22457,7 +22466,7 @@
"file_type": "rationale",
"source_file": "tests/test_api_key_quota_atomic.py",
"source_location": "L89",
- "community": 26,
+ "community": 561,
"norm_label": "test that concurrent requests are properly serialized at db level. th",
"id": "tests_test_api_key_quota_atomic_rationale_89"
},
@@ -22475,7 +22484,7 @@
"file_type": "rationale",
"source_file": "tests/test_api_key_quota_atomic.py",
"source_location": "L151",
- "community": 26,
+ "community": 561,
"norm_label": "test that invalid api key returns zero rows affected.",
"id": "tests_test_api_key_quota_atomic_rationale_151"
},
@@ -22745,7 +22754,7 @@
"file_type": "code",
"source_file": "tests/test_config.py",
"source_location": "L1",
- "community": 132,
+ "community": 251,
"norm_label": "test_config.py",
"id": "tests_test_config_py"
},
@@ -23105,7 +23114,7 @@
"file_type": "code",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L146",
- "community": 498,
+ "community": 120,
"norm_label": "testregisterendpoint",
"id": "tests_test_controllers_coverage_testregisterendpoint"
},
@@ -23150,7 +23159,7 @@
"file_type": "code",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L215",
- "community": 498,
+ "community": 120,
"norm_label": "testloginendpoint",
"id": "tests_test_controllers_coverage_testloginendpoint"
},
@@ -23267,7 +23276,7 @@
"file_type": "code",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L390",
- "community": 498,
+ "community": 120,
"norm_label": "testgooglecallback",
"id": "tests_test_controllers_coverage_testgooglecallback"
},
@@ -23447,7 +23456,7 @@
"file_type": "code",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L668",
- "community": 107,
+ "community": 104,
"norm_label": "testgetcurrentsession",
"id": "tests_test_controllers_coverage_testgetcurrentsession"
},
@@ -23456,7 +23465,7 @@
"file_type": "code",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L671",
- "community": 107,
+ "community": 104,
"norm_label": ".test_get_current_session_found()",
"id": "tests_test_controllers_coverage_testgetcurrentsession_test_get_current_session_found"
},
@@ -23465,7 +23474,7 @@
"file_type": "code",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L704",
- "community": 107,
+ "community": 104,
"norm_label": ".test_get_current_session_not_found()",
"id": "tests_test_controllers_coverage_testgetcurrentsession_test_get_current_session_not_found"
},
@@ -23681,7 +23690,7 @@
"file_type": "code",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1023",
- "community": 16,
+ "community": 101,
"norm_label": ".test_chat_new_session()",
"id": "tests_test_controllers_coverage_testprometheuschat_test_chat_new_session"
},
@@ -23708,7 +23717,7 @@
"file_type": "code",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1121",
- "community": 101,
+ "community": 16,
"norm_label": ".test_chat_generic_exception()",
"id": "tests_test_controllers_coverage_testprometheuschat_test_chat_generic_exception"
},
@@ -23825,7 +23834,7 @@
"file_type": "code",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1249",
- "community": 528,
+ "community": 493,
"norm_label": ".test_add_role_already_has_role()",
"id": "tests_test_controllers_coverage_testaddroletouser_test_add_role_already_has_role"
},
@@ -23870,7 +23879,7 @@
"file_type": "code",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1307",
- "community": 528,
+ "community": 493,
"norm_label": ".test_get_current_user_session_revoked()",
"id": "tests_test_controllers_coverage_testgetcurrentuser_test_get_current_user_session_revoked"
},
@@ -24050,7 +24059,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L147",
- "community": 498,
+ "community": 120,
"norm_label": "covers lines 44-54, 63, 66-71: register success, valueerror, generic exception.",
"id": "tests_test_controllers_coverage_rationale_147"
},
@@ -24095,7 +24104,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L216",
- "community": 498,
+ "community": 120,
"norm_label": "covers lines 87-93, 102: login success and failure paths.",
"id": "tests_test_controllers_coverage_rationale_216"
},
@@ -24212,7 +24221,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L391",
- "community": 498,
+ "community": 120,
"norm_label": "covers lines 155-156, 158, 160-168, 170-177, 179-184, 186, 190-204: googlecallba",
"id": "tests_test_controllers_coverage_rationale_391"
},
@@ -24320,7 +24329,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L669",
- "community": 107,
+ "community": 104,
"norm_label": "covers lines 100-104, 106: get /user/sessions/current.",
"id": "tests_test_controllers_coverage_rationale_669"
},
@@ -24329,7 +24338,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L672",
- "community": 107,
+ "community": 104,
"norm_label": "covers lines 100-104, 106: session found.",
"id": "tests_test_controllers_coverage_rationale_672"
},
@@ -24338,7 +24347,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L705",
- "community": 107,
+ "community": 104,
"norm_label": "covers line 104: session not found.",
"id": "tests_test_controllers_coverage_rationale_705"
},
@@ -24527,7 +24536,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1024",
- "community": 16,
+ "community": 101,
"norm_label": "covers lines 118-119: sessionid is none, new session created.",
"id": "tests_test_controllers_coverage_rationale_1024"
},
@@ -24554,7 +24563,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1122",
- "community": 101,
+ "community": 16,
"norm_label": "generic exception in chat propagates via sse error event.",
"id": "tests_test_controllers_coverage_rationale_1122"
},
@@ -24644,7 +24653,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1250",
- "community": 528,
+ "community": 493,
"norm_label": "covers line 27: user already has the role.",
"id": "tests_test_controllers_coverage_rationale_1250"
},
@@ -24680,7 +24689,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1308",
- "community": 528,
+ "community": 493,
"norm_label": "covers lines 42-44: session validation fails.",
"id": "tests_test_controllers_coverage_rationale_1308"
},
@@ -25346,7 +25355,7 @@
"file_type": "code",
"source_file": "tests/test_error_handlers.py",
"source_location": "L25",
- "community": 120,
+ "community": 33,
"norm_label": "app()",
"id": "tests_test_error_handlers_app"
},
@@ -25634,7 +25643,7 @@
"file_type": "code",
"source_file": "tests/test_harness_state.py",
"source_location": "L1",
- "community": 132,
+ "community": 251,
"norm_label": "test_harness_state.py",
"id": "tests_test_harness_state_py"
},
@@ -26219,7 +26228,7 @@
"file_type": "code",
"source_file": "tests/test_memory_dedup.py",
"source_location": "L1",
- "community": 126,
+ "community": 140,
"norm_label": "test_memory_dedup.py",
"id": "tests_test_memory_dedup_py"
},
@@ -26255,7 +26264,7 @@
"file_type": "code",
"source_file": "tests/test_memory_dedup.py",
"source_location": "L28",
- "community": 126,
+ "community": 140,
"norm_label": "testexactsamekeyupdates",
"id": "tests_test_memory_dedup_testexactsamekeyupdates"
},
@@ -26309,7 +26318,7 @@
"file_type": "code",
"source_file": "tests/test_memory_dedup.py",
"source_location": "L55",
- "community": 126,
+ "community": 140,
"norm_label": "testmergeboostsscore",
"id": "tests_test_memory_dedup_testmergeboostsscore"
},
@@ -26327,7 +26336,7 @@
"file_type": "code",
"source_file": "tests/test_memory_dedup.py",
"source_location": "L64",
- "community": 126,
+ "community": 140,
"norm_label": "testmergeincrementsaccess",
"id": "tests_test_memory_dedup_testmergeincrementsaccess"
},
@@ -26390,7 +26399,7 @@
"file_type": "code",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L1",
- "community": 86,
+ "community": 54,
"norm_label": "test_memory_maintenance.py",
"id": "tests_test_memory_maintenance_py"
},
@@ -26399,7 +26408,7 @@
"file_type": "code",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L18",
- "community": 86,
+ "community": 54,
"norm_label": "brt()",
"id": "tests_test_memory_maintenance_brt"
},
@@ -26408,7 +26417,7 @@
"file_type": "code",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L23",
- "community": 86,
+ "community": 54,
"norm_label": "create_memories()",
"id": "tests_test_memory_maintenance_create_memories"
},
@@ -26417,7 +26426,7 @@
"file_type": "code",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L46",
- "community": 86,
+ "community": 54,
"norm_label": "testdecay",
"id": "tests_test_memory_maintenance_testdecay"
},
@@ -26426,7 +26435,7 @@
"file_type": "code",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L47",
- "community": 86,
+ "community": 54,
"norm_label": ".test_active_memory_decays()",
"id": "tests_test_memory_maintenance_testdecay_test_active_memory_decays"
},
@@ -26435,7 +26444,7 @@
"file_type": "code",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L54",
- "community": 86,
+ "community": 54,
"norm_label": ".test_zero_access_count_still_decays()",
"id": "tests_test_memory_maintenance_testdecay_test_zero_access_count_still_decays"
},
@@ -26444,7 +26453,7 @@
"file_type": "code",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L61",
- "community": 86,
+ "community": 54,
"norm_label": ".test_high_score_decays_proportionally()",
"id": "tests_test_memory_maintenance_testdecay_test_high_score_decays_proportionally"
},
@@ -26453,7 +26462,7 @@
"file_type": "code",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L67",
- "community": 86,
+ "community": 54,
"norm_label": ".test_very_low_score_stays_above_zero()",
"id": "tests_test_memory_maintenance_testdecay_test_very_low_score_stays_above_zero"
},
@@ -26462,7 +26471,7 @@
"file_type": "code",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L74",
- "community": 86,
+ "community": 54,
"norm_label": ".test_multiple_users_all_decayed()",
"id": "tests_test_memory_maintenance_testdecay_test_multiple_users_all_decayed"
},
@@ -26534,7 +26543,7 @@
"file_type": "code",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L133",
- "community": 86,
+ "community": 54,
"norm_label": "testdecayandarchivetogether",
"id": "tests_test_memory_maintenance_testdecayandarchivetogether"
},
@@ -26543,7 +26552,7 @@
"file_type": "code",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L134",
- "community": 86,
+ "community": 54,
"norm_label": ".test_decay_then_archive_check()",
"id": "tests_test_memory_maintenance_testdecayandarchivetogether_test_decay_then_archive_check"
},
@@ -26552,7 +26561,7 @@
"file_type": "code",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L143",
- "community": 86,
+ "community": 54,
"norm_label": ".test_score_above_threshold_after_decay_not_archived()",
"id": "tests_test_memory_maintenance_testdecayandarchivetogether_test_score_above_threshold_after_decay_not_archived"
},
@@ -26561,7 +26570,7 @@
"file_type": "code",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L150",
- "community": 86,
+ "community": 54,
"norm_label": ".test_score_just_below_threshold_archived()",
"id": "tests_test_memory_maintenance_testdecayandarchivetogether_test_score_just_below_threshold_archived"
},
@@ -26570,7 +26579,7 @@
"file_type": "code",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L156",
- "community": 86,
+ "community": 54,
"norm_label": ".test_days_just_below_threshold_not_archived()",
"id": "tests_test_memory_maintenance_testdecayandarchivetogether_test_days_just_below_threshold_not_archived"
},
@@ -26579,7 +26588,7 @@
"file_type": "code",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L163",
- "community": 86,
+ "community": 54,
"norm_label": ".test_days_just_above_threshold_archived()",
"id": "tests_test_memory_maintenance_testdecayandarchivetogether_test_days_just_above_threshold_archived"
},
@@ -26606,7 +26615,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L24",
- "community": 86,
+ "community": 54,
"norm_label": "helper to create memories with controlled basescore, lastaccessedat, accesscount",
"id": "tests_test_memory_maintenance_rationale_24"
},
@@ -26615,7 +26624,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L55",
- "community": 86,
+ "community": 54,
"norm_label": "decay applies to all active memories, not just accessed ones.",
"id": "tests_test_memory_maintenance_rationale_55"
},
@@ -26624,7 +26633,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L68",
- "community": 86,
+ "community": 54,
"norm_label": "basescore should never reach exactly 0 from decay alone.",
"id": "tests_test_memory_maintenance_rationale_68"
},
@@ -26678,7 +26687,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L135",
- "community": 86,
+ "community": 54,
"norm_label": "decay happens first, then archive check with new scores.",
"id": "tests_test_memory_maintenance_rationale_135"
},
@@ -26687,7 +26696,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L144",
- "community": 86,
+ "community": 54,
"norm_label": "score that decays to >= threshold stays alive. 0.12 * 0.90 = 0.108 >= 0.1.",
"id": "tests_test_memory_maintenance_rationale_144"
},
@@ -26696,7 +26705,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L157",
- "community": 86,
+ "community": 54,
"norm_label": "89 days with low score \u2192 not archived (need > 90).",
"id": "tests_test_memory_maintenance_rationale_157"
},
@@ -26723,7 +26732,7 @@
"file_type": "code",
"source_file": "tests/test_memory_manager.py",
"source_location": "L9",
- "community": 543,
+ "community": 140,
"norm_label": ".test_basic_user()",
"id": "tests_test_memory_manager_testgetmemorylimit_test_basic_user"
},
@@ -27020,7 +27029,7 @@
"file_type": "code",
"source_file": "tests/test_memory_tools_wiring.py",
"source_location": "L60",
- "community": 105,
+ "community": 21,
"norm_label": ".test_memory_tool_names_unchanged()",
"id": "tests_test_memory_tools_wiring_testmemorytoolfunctions_test_memory_tool_names_unchanged"
},
@@ -27065,7 +27074,7 @@
"file_type": "code",
"source_file": "tests/test_memory_tools_wiring.py",
"source_location": "L79",
- "community": 49,
+ "community": 488,
"norm_label": "testmakechatincludesmemorytools",
"id": "tests_test_memory_tools_wiring_testmakechatincludesmemorytools"
},
@@ -27083,7 +27092,7 @@
"file_type": "code",
"source_file": "tests/test_memory_tools_wiring.py",
"source_location": "L112",
- "community": 49,
+ "community": 487,
"norm_label": "testdispatchroutesmemorytools",
"id": "tests_test_memory_tools_wiring_testdispatchroutesmemorytools"
},
@@ -27146,7 +27155,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_tools_wiring.py",
"source_location": "L80",
- "community": 49,
+ "community": 488,
"norm_label": "makechat must include memory_tools alongside mcp sessions.",
"id": "tests_test_memory_tools_wiring_rationale_80"
},
@@ -27155,7 +27164,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_tools_wiring.py",
"source_location": "L113",
- "community": 49,
+ "community": 487,
"norm_label": "dispatchtoolcall must route memory tool names via tool_registry.",
"id": "tests_test_memory_tools_wiring_rationale_113"
},
@@ -27272,7 +27281,7 @@
"file_type": "code",
"source_file": "tests/test_models.py",
"source_location": "L1",
- "community": 125,
+ "community": 61,
"norm_label": "test_models.py",
"id": "tests_test_models_py"
},
@@ -27488,7 +27497,7 @@
"file_type": "code",
"source_file": "tests/test_models.py",
"source_location": "L162",
- "community": 125,
+ "community": 61,
"norm_label": "testprometheussessionmodel",
"id": "tests_test_models_testprometheussessionmodel"
},
@@ -27497,7 +27506,7 @@
"file_type": "code",
"source_file": "tests/test_models.py",
"source_location": "L163",
- "community": 125,
+ "community": 61,
"norm_label": ".test_create_session()",
"id": "tests_test_models_testprometheussessionmodel_test_create_session"
},
@@ -27506,7 +27515,7 @@
"file_type": "code",
"source_file": "tests/test_models.py",
"source_location": "L172",
- "community": 125,
+ "community": 61,
"norm_label": ".test_default_history()",
"id": "tests_test_models_testprometheussessionmodel_test_default_history"
},
@@ -27542,7 +27551,7 @@
"file_type": "code",
"source_file": "tests/test_oauth_cookie_security.py",
"source_location": "L56",
- "community": 541,
+ "community": 40,
"norm_label": "testoauthcallbacktokennotinurl",
"id": "tests_test_oauth_cookie_security_testoauthcallbacktokennotinurl"
},
@@ -27587,7 +27596,7 @@
"file_type": "code",
"source_file": "tests/test_oauth_cookie_security.py",
"source_location": "L169",
- "community": 529,
+ "community": 40,
"norm_label": "testoauthcallbackfrontendcompatibility",
"id": "tests_test_oauth_cookie_security_testoauthcallbackfrontendcompatibility"
},
@@ -27641,7 +27650,7 @@
"file_type": "rationale",
"source_file": "tests/test_oauth_cookie_security.py",
"source_location": "L57",
- "community": 541,
+ "community": 40,
"norm_label": "verify jwt token is not leaked in redirect url after oauth callback.",
"id": "tests_test_oauth_cookie_security_rationale_57"
},
@@ -27686,7 +27695,7 @@
"file_type": "rationale",
"source_file": "tests/test_oauth_cookie_security.py",
"source_location": "L170",
- "community": 529,
+ "community": 40,
"norm_label": "verify frontend can still auth after oauth redirect via cookie.",
"id": "tests_test_oauth_cookie_security_rationale_170"
},
@@ -28559,7 +28568,7 @@
"file_type": "code",
"source_file": "tests/test_prometheus_tools.py",
"source_location": "L44",
- "community": 100,
+ "community": 132,
"norm_label": "testmemorytoolfunctions",
"id": "tests_test_prometheus_tools_testmemorytoolfunctions"
},
@@ -28568,7 +28577,7 @@
"file_type": "code",
"source_file": "tests/test_prometheus_tools.py",
"source_location": "L45",
- "community": 100,
+ "community": 132,
"norm_label": ".test_search_memory_has_docstring()",
"id": "tests_test_prometheus_tools_testmemorytoolfunctions_test_search_memory_has_docstring"
},
@@ -28577,7 +28586,7 @@
"file_type": "code",
"source_file": "tests/test_prometheus_tools.py",
"source_location": "L49",
- "community": 100,
+ "community": 132,
"norm_label": ".test_save_memory_has_docstring()",
"id": "tests_test_prometheus_tools_testmemorytoolfunctions_test_save_memory_has_docstring"
},
@@ -28586,7 +28595,7 @@
"file_type": "code",
"source_file": "tests/test_prometheus_tools.py",
"source_location": "L53",
- "community": 100,
+ "community": 132,
"norm_label": ".test_search_memory_signature()",
"id": "tests_test_prometheus_tools_testmemorytoolfunctions_test_search_memory_signature"
},
@@ -28595,7 +28604,7 @@
"file_type": "code",
"source_file": "tests/test_prometheus_tools.py",
"source_location": "L59",
- "community": 100,
+ "community": 132,
"norm_label": ".test_save_memory_signature()",
"id": "tests_test_prometheus_tools_testmemorytoolfunctions_test_save_memory_signature"
},
@@ -28604,7 +28613,7 @@
"file_type": "code",
"source_file": "tests/test_prometheus_tools.py",
"source_location": "L66",
- "community": 100,
+ "community": 132,
"norm_label": ".test_search_memory_has_type_hints()",
"id": "tests_test_prometheus_tools_testmemorytoolfunctions_test_search_memory_has_type_hints"
},
@@ -28613,7 +28622,7 @@
"file_type": "code",
"source_file": "tests/test_prometheus_tools.py",
"source_location": "L71",
- "community": 100,
+ "community": 132,
"norm_label": ".test_save_memory_has_type_hints()",
"id": "tests_test_prometheus_tools_testmemorytoolfunctions_test_save_memory_has_type_hints"
},
@@ -28622,7 +28631,7 @@
"file_type": "code",
"source_file": "tests/test_prometheus_tools.py",
"source_location": "L77",
- "community": 100,
+ "community": 132,
"norm_label": ".test_memory_tools_is_list_of_callables()",
"id": "tests_test_prometheus_tools_testmemorytoolfunctions_test_memory_tools_is_list_of_callables"
},
@@ -28631,7 +28640,7 @@
"file_type": "code",
"source_file": "tests/test_prometheus_tools.py",
"source_location": "L83",
- "community": 100,
+ "community": 132,
"norm_label": ".test_memory_tool_names_unchanged()",
"id": "tests_test_prometheus_tools_testmemorytoolfunctions_test_memory_tool_names_unchanged"
},
@@ -29180,7 +29189,7 @@
"file_type": "code",
"source_file": "tests/test_roles.py",
"source_location": "L1",
- "community": 67,
+ "community": 251,
"norm_label": "test_roles.py",
"id": "tests_test_roles_py"
},
@@ -29189,7 +29198,7 @@
"file_type": "code",
"source_file": "tests/test_roles.py",
"source_location": "L4",
- "community": 67,
+ "community": 251,
"norm_label": "testpermission",
"id": "tests_test_roles_testpermission"
},
@@ -29198,7 +29207,7 @@
"file_type": "code",
"source_file": "tests/test_roles.py",
"source_location": "L5",
- "community": 67,
+ "community": 251,
"norm_label": ".test_permission_enum_values()",
"id": "tests_test_roles_testpermission_test_permission_enum_values"
},
@@ -29207,7 +29216,7 @@
"file_type": "code",
"source_file": "tests/test_roles.py",
"source_location": "L10",
- "community": 67,
+ "community": 251,
"norm_label": ".test_permission_all_includes_all()",
"id": "tests_test_roles_testpermission_test_permission_all_includes_all"
},
@@ -29360,7 +29369,7 @@
"file_type": "code",
"source_file": "tests/test_roles_coverage.py",
"source_location": "L1",
- "community": 498,
+ "community": 45,
"norm_label": "test_roles_coverage.py",
"id": "tests_test_roles_coverage_py"
},
@@ -29477,7 +29486,7 @@
"file_type": "code",
"source_file": "tests/test_roles_coverage.py",
"source_location": "L45",
- "community": 498,
+ "community": 45,
"norm_label": "testrequirepermission",
"id": "tests_test_roles_coverage_testrequirepermission"
},
@@ -29486,7 +29495,7 @@
"file_type": "code",
"source_file": "tests/test_roles_coverage.py",
"source_location": "L46",
- "community": 498,
+ "community": 45,
"norm_label": ".test_raises_403_when_missing()",
"id": "tests_test_roles_coverage_testrequirepermission_test_raises_403_when_missing"
},
@@ -29495,7 +29504,7 @@
"file_type": "code",
"source_file": "tests/test_roles_coverage.py",
"source_location": "L64",
- "community": 498,
+ "community": 45,
"norm_label": ".test_passes_when_has_permission()",
"id": "tests_test_roles_coverage_testrequirepermission_test_passes_when_has_permission"
},
@@ -29504,7 +29513,7 @@
"file_type": "code",
"source_file": "tests/test_roles_coverage.py",
"source_location": "L83",
- "community": 498,
+ "community": 45,
"norm_label": "testpermissionall",
"id": "tests_test_roles_coverage_testpermissionall"
},
@@ -29513,7 +29522,7 @@
"file_type": "code",
"source_file": "tests/test_roles_coverage.py",
"source_location": "L84",
- "community": 498,
+ "community": 45,
"norm_label": ".test_all_includes_all_permissions()",
"id": "tests_test_roles_coverage_testpermissionall_test_all_includes_all_permissions"
},
@@ -29522,7 +29531,7 @@
"file_type": "code",
"source_file": "tests/test_roles_coverage.py",
"source_location": "L92",
- "community": 498,
+ "community": 45,
"norm_label": "testroleshierarchy",
"id": "tests_test_roles_coverage_testroleshierarchy"
},
@@ -29531,7 +29540,7 @@
"file_type": "code",
"source_file": "tests/test_roles_coverage.py",
"source_location": "L93",
- "community": 498,
+ "community": 45,
"norm_label": ".test_premium_includes_user()",
"id": "tests_test_roles_coverage_testroleshierarchy_test_premium_includes_user"
},
@@ -29540,7 +29549,7 @@
"file_type": "code",
"source_file": "tests/test_roles_coverage.py",
"source_location": "L96",
- "community": 498,
+ "community": 45,
"norm_label": ".test_enterprise_includes_starter()",
"id": "tests_test_roles_coverage_testroleshierarchy_test_enterprise_includes_starter"
},
@@ -29549,7 +29558,7 @@
"file_type": "code",
"source_file": "tests/test_roles_coverage.py",
"source_location": "L99",
- "community": 498,
+ "community": 45,
"norm_label": ".test_admin_includes_all()",
"id": "tests_test_roles_coverage_testroleshierarchy_test_admin_includes_all"
},
@@ -29558,7 +29567,7 @@
"file_type": "rationale",
"source_file": "tests/test_roles_coverage.py",
"source_location": "L1",
- "community": 498,
+ "community": 45,
"norm_label": "tests for main/utils/roles.py \u2014 covers requirepermission and edge cases.",
"id": "tests_test_roles_coverage_rationale_1"
},
@@ -30431,7 +30440,7 @@
"file_type": "code",
"source_file": "tests/test_state_tools.py",
"source_location": "L1",
- "community": 8,
+ "community": 536,
"norm_label": "test_state_tools.py",
"id": "tests_test_state_tools_py"
},
@@ -30521,7 +30530,7 @@
"file_type": "code",
"source_file": "tests/test_state_tools.py",
"source_location": "L60",
- "community": 8,
+ "community": 536,
"norm_label": "testgetstate",
"id": "tests_test_state_tools_testgetstate"
},
@@ -30530,7 +30539,7 @@
"file_type": "code",
"source_file": "tests/test_state_tools.py",
"source_location": "L62",
- "community": 8,
+ "community": 536,
"norm_label": "test_get_state_specific_key()",
"id": "tests_test_state_tools_test_get_state_specific_key"
},
@@ -30539,7 +30548,7 @@
"file_type": "code",
"source_file": "tests/test_state_tools.py",
"source_location": "L69",
- "community": 8,
+ "community": 536,
"norm_label": "test_get_state_all()",
"id": "tests_test_state_tools_test_get_state_all"
},
@@ -30548,7 +30557,7 @@
"file_type": "code",
"source_file": "tests/test_state_tools.py",
"source_location": "L77",
- "community": 8,
+ "community": 536,
"norm_label": "test_get_state_missing_key()",
"id": "tests_test_state_tools_test_get_state_missing_key"
},
@@ -30557,7 +30566,7 @@
"file_type": "code",
"source_file": "tests/test_state_tools.py",
"source_location": "L83",
- "community": 8,
+ "community": 536,
"norm_label": "test_get_state_no_state()",
"id": "tests_test_state_tools_test_get_state_no_state"
},
@@ -30566,7 +30575,7 @@
"file_type": "code",
"source_file": "tests/test_state_tools.py",
"source_location": "L88",
- "community": 8,
+ "community": 536,
"norm_label": "testsetstate",
"id": "tests_test_state_tools_testsetstate"
},
@@ -30575,7 +30584,7 @@
"file_type": "code",
"source_file": "tests/test_state_tools.py",
"source_location": "L90",
- "community": 8,
+ "community": 536,
"norm_label": "test_set_state()",
"id": "tests_test_state_tools_test_set_state"
},
@@ -30593,7 +30602,7 @@
"file_type": "code",
"source_file": "tests/test_state_tools.py",
"source_location": "L102",
- "community": 8,
+ "community": 536,
"norm_label": "teststatedispatch",
"id": "tests_test_state_tools_teststatedispatch"
},
@@ -30602,7 +30611,7 @@
"file_type": "code",
"source_file": "tests/test_state_tools.py",
"source_location": "L104",
- "community": 8,
+ "community": 536,
"norm_label": "test_dispatch_get_state()",
"id": "tests_test_state_tools_test_dispatch_get_state"
},
@@ -30611,7 +30620,7 @@
"file_type": "code",
"source_file": "tests/test_state_tools.py",
"source_location": "L114",
- "community": 8,
+ "community": 536,
"norm_label": "test_dispatch_set_state()",
"id": "tests_test_state_tools_test_dispatch_set_state"
},
@@ -30620,7 +30629,7 @@
"file_type": "code",
"source_file": "tests/test_status_endpoint.py",
"source_location": "L1",
- "community": 132,
+ "community": 184,
"norm_label": "test_status_endpoint.py",
"id": "tests_test_status_endpoint_py"
},
@@ -30629,7 +30638,7 @@
"file_type": "code",
"source_file": "tests/test_status_endpoint.py",
"source_location": "L9",
- "community": 132,
+ "community": 184,
"norm_label": "statusclient()",
"id": "tests_test_status_endpoint_statusclient"
},
@@ -30728,7 +30737,7 @@
"file_type": "code",
"source_file": "tests/test_status_endpoint.py",
"source_location": "L69",
- "community": 132,
+ "community": 184,
"norm_label": "testscrapertrigger",
"id": "tests_test_status_endpoint_testscrapertrigger"
},
@@ -30737,7 +30746,7 @@
"file_type": "code",
"source_file": "tests/test_status_endpoint.py",
"source_location": "L70",
- "community": 132,
+ "community": 184,
"norm_label": ".test_scraper_trigger_debug_mode()",
"id": "tests_test_status_endpoint_testscrapertrigger_test_scraper_trigger_debug_mode"
},
@@ -30746,7 +30755,7 @@
"file_type": "code",
"source_file": "tests/test_status_endpoint.py",
"source_location": "L77",
- "community": 132,
+ "community": 184,
"norm_label": ".test_scraper_trigger_not_debug()",
"id": "tests_test_status_endpoint_testscrapertrigger_test_scraper_trigger_not_debug"
},
@@ -30755,7 +30764,7 @@
"file_type": "rationale",
"source_file": "tests/test_status_endpoint.py",
"source_location": "L1",
- "community": 132,
+ "community": 184,
"norm_label": "tests for run.py /status endpoint \u2014 covers status response structure.",
"id": "tests_test_status_endpoint_rationale_1"
},
@@ -30764,7 +30773,7 @@
"file_type": "rationale",
"source_file": "tests/test_status_endpoint.py",
"source_location": "L10",
- "community": 132,
+ "community": 184,
"norm_label": "create a test client for the status endpoint without running lifespan.",
"id": "tests_test_status_endpoint_rationale_10"
},
@@ -30773,7 +30782,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L1",
- "community": 90,
+ "community": 567,
"norm_label": "test_stocks_api_coverage.py",
"id": "tests_test_stocks_api_coverage_py"
},
@@ -30809,7 +30818,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L55",
- "community": 90,
+ "community": 567,
"norm_label": "test_cache_scheduler_starts_apscheduler()",
"id": "tests_test_stocks_api_coverage_test_cache_scheduler_starts_apscheduler"
},
@@ -30881,7 +30890,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L152",
- "community": 90,
+ "community": 490,
"norm_label": "testverifyapikey",
"id": "tests_test_stocks_api_coverage_testverifyapikey"
},
@@ -30890,7 +30899,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L157",
- "community": 90,
+ "community": 567,
"norm_label": "test_verify_api_key_disabled_returns_none()",
"id": "tests_test_stocks_api_coverage_test_verify_api_key_disabled_returns_none"
},
@@ -30899,7 +30908,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L168",
- "community": 90,
+ "community": 567,
"norm_label": "test_verify_api_key_missing_raises_401()",
"id": "tests_test_stocks_api_coverage_test_verify_api_key_missing_raises_401"
},
@@ -30908,7 +30917,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L181",
- "community": 90,
+ "community": 567,
"norm_label": "test_verify_api_key_invalid_key_raises_401()",
"id": "tests_test_stocks_api_coverage_test_verify_api_key_invalid_key_raises_401"
},
@@ -30917,7 +30926,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L198",
- "community": 90,
+ "community": 567,
"norm_label": "test_verify_api_key_quota_exceeded()",
"id": "tests_test_stocks_api_coverage_test_verify_api_key_quota_exceeded"
},
@@ -30926,7 +30935,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L216",
- "community": 90,
+ "community": 567,
"norm_label": "test_verify_api_key_success()",
"id": "tests_test_stocks_api_coverage_test_verify_api_key_success"
},
@@ -30935,7 +30944,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L230",
- "community": 90,
+ "community": 567,
"norm_label": "test_verify_api_key_http_exception_rollback()",
"id": "tests_test_stocks_api_coverage_test_verify_api_key_http_exception_rollback"
},
@@ -30944,7 +30953,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L249",
- "community": 90,
+ "community": 567,
"norm_label": "test_verify_api_key_generic_exception_rollback()",
"id": "tests_test_stocks_api_coverage_test_verify_api_key_generic_exception_rollback"
},
@@ -31133,7 +31142,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L419",
- "community": 488,
+ "community": 3,
"norm_label": ".test_deserialize_float_nan_direct()",
"id": "tests_test_stocks_api_coverage_testdeserializejsoncolumns_test_deserialize_float_nan_direct"
},
@@ -31295,7 +31304,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L591",
- "community": 222,
+ "community": 28,
"norm_label": ".test_historical_with_fields()",
"id": "tests_test_stocks_api_coverage_testqueryhistorical_test_historical_with_fields"
},
@@ -31331,7 +31340,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L617",
- "community": 28,
+ "community": 215,
"norm_label": ".test_historical_no_historical_fields()",
"id": "tests_test_stocks_api_coverage_testqueryhistorical_test_historical_no_historical_fields"
},
@@ -31493,7 +31502,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L766",
- "community": 39,
+ "community": 107,
"norm_label": ".test_fundamental_with_invalid_date()",
"id": "tests_test_stocks_api_coverage_testqueryfundamental_test_fundamental_with_invalid_date"
},
@@ -31547,7 +31556,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L819",
- "community": 39,
+ "community": 17,
"norm_label": ".test_fundamental_empty_search_string_no_dedup()",
"id": "tests_test_stocks_api_coverage_testqueryfundamental_test_fundamental_empty_search_string_no_dedup"
},
@@ -31556,7 +31565,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L828",
- "community": 39,
+ "community": 17,
"norm_label": ".test_fundamental_no_time_column()",
"id": "tests_test_stocks_api_coverage_testqueryfundamental_test_fundamental_no_time_column"
},
@@ -31601,7 +31610,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L890",
- "community": 17,
+ "community": 39,
"norm_label": ".test_fundamental_search_fallback_string_match()",
"id": "tests_test_stocks_api_coverage_testqueryfundamental_test_fundamental_search_fallback_string_match"
},
@@ -31889,7 +31898,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L1265",
- "community": 22,
+ "community": 222,
"norm_label": ".test_http_route_search_required()",
"id": "tests_test_stocks_api_coverage_testquerylivecotation_test_http_route_search_required"
},
@@ -31925,7 +31934,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L1315",
- "community": 22,
+ "community": 234,
"norm_label": ".test_cotations_search_required()",
"id": "tests_test_stocks_api_coverage_testquerylivecotation_test_cotations_search_required"
},
@@ -31934,7 +31943,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L1",
- "community": 90,
+ "community": 567,
"norm_label": "tests to increase coverage for query.py, key.py, and cache.py in stocks_api.",
"id": "tests_test_stocks_api_coverage_rationale_1"
},
@@ -31961,7 +31970,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L153",
- "community": 90,
+ "community": 490,
"norm_label": "tests covering key.py lines 15-40. uses asyncio.run() since pytest-asyncio",
"id": "tests_test_stocks_api_coverage_rationale_153"
},
@@ -32087,7 +32096,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L420",
- "community": 488,
+ "community": 3,
"norm_label": "replacenan handles direct float nan values (line 34).",
"id": "tests_test_stocks_api_coverage_rationale_420"
},
@@ -32150,7 +32159,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L592",
- "community": 222,
+ "community": 28,
"norm_label": "pass field name without year (how categorizecolumns returns them).",
"id": "tests_test_stocks_api_coverage_rationale_592"
},
@@ -32159,7 +32168,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L618",
- "community": 28,
+ "community": 215,
"norm_label": "no historical data columns -> inner 400 caught by outer except -> 500.",
"id": "tests_test_stocks_api_coverage_rationale_618"
},
@@ -32204,7 +32213,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L694",
- "community": 28,
+ "community": 215,
"norm_label": "multiple search terms, all found in tickerindex.",
"id": "tests_test_stocks_api_coverage_rationale_694"
},
@@ -32231,7 +32240,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L767",
- "community": 39,
+ "community": 107,
"norm_label": "invalid date -> inner 400 passes through (not wrapped as 500).",
"id": "tests_test_stocks_api_coverage_rationale_767"
},
@@ -32240,7 +32249,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L820",
- "community": 39,
+ "community": 17,
"norm_label": "search.strip() == '' should still dedup (line 181).",
"id": "tests_test_stocks_api_coverage_rationale_820"
},
@@ -32249,7 +32258,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L829",
- "community": 39,
+ "community": 17,
"norm_label": "dataframe without time column.",
"id": "tests_test_stocks_api_coverage_rationale_829"
},
@@ -32294,7 +32303,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L891",
- "community": 17,
+ "community": 39,
"norm_label": "search with no index match falls back to string startswith.",
"id": "tests_test_stocks_api_coverage_rationale_891"
},
@@ -32384,7 +32393,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L1266",
- "community": 22,
+ "community": 222,
"norm_label": "get /stocks/realtime-cotation without search returns 422.",
"id": "tests_test_stocks_api_coverage_rationale_1266"
},
@@ -32393,7 +32402,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L1316",
- "community": 22,
+ "community": 234,
"norm_label": "get /cotations without search returns 422.",
"id": "tests_test_stocks_api_coverage_rationale_1316"
},
@@ -33149,7 +33158,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_util.py",
"source_location": "L1",
- "community": 73,
+ "community": 147,
"norm_label": "test_stocks_util.py",
"id": "tests_test_stocks_util_py"
},
@@ -33734,7 +33743,7 @@
"file_type": "code",
"source_file": "tests/test_user_deps.py",
"source_location": "L1",
- "community": 500,
+ "community": 181,
"norm_label": "test_user_deps.py",
"id": "tests_test_user_deps_py"
},
@@ -33869,7 +33878,7 @@
"file_type": "code",
"source_file": "tests/test_vector_utils.py",
"source_location": "L1",
- "community": 112,
+ "community": 131,
"norm_label": "test_vector_utils.py",
"id": "tests_test_vector_utils_py"
},
@@ -35300,7 +35309,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1120",
- "community": 101,
+ "community": 16,
"norm_label": "generic exception in chat propagates to fastapi's default 500 handler.",
"id": "tests_test_controllers_coverage_rationale_1120"
},
@@ -35390,7 +35399,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1243",
- "community": 528,
+ "community": 493,
"norm_label": "covers line 27: user already has the role.",
"id": "tests_test_controllers_coverage_rationale_1243"
},
@@ -35417,7 +35426,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1301",
- "community": 528,
+ "community": 493,
"norm_label": "covers lines 42-44: session validation fails.",
"id": "tests_test_controllers_coverage_rationale_1301"
},
@@ -35624,7 +35633,7 @@
"file_type": "rationale",
"source_file": "main/app/prometheus/tools.py",
"source_location": "L79",
- "community": 8,
+ "community": 536,
"norm_label": "retrieve values from the harness state. use this to recall intermediate results,",
"id": "prometheus_tools_rationale_79"
},
@@ -35642,7 +35651,7 @@
"file_type": "rationale",
"source_file": "main/app/prometheus/tools.py",
"source_location": "L112",
- "community": 536,
+ "community": 523,
"norm_label": "execute python code in an isolated sandbox. use for quantitative analysis,",
"id": "prometheus_tools_rationale_112"
},
@@ -36308,7 +36317,7 @@
"file_type": "rationale",
"source_file": "main/app/prometheus/tools.py",
"source_location": "L78",
- "community": 8,
+ "community": 536,
"norm_label": "retrieve values from the harness state. use this to recall intermediate results,",
"id": "prometheus_tools_rationale_78"
},
@@ -38657,7 +38666,7 @@
"file_type": "code",
"source_file": "main/app/prometheus/tools.py",
"source_location": "L139",
- "community": 152,
+ "community": 523,
"norm_label": "read_sandbox_file()",
"id": "prometheus_tools_read_sandbox_file"
},
@@ -38666,7 +38675,7 @@
"file_type": "code",
"source_file": "main/app/prometheus/tools.py",
"source_location": "L151",
- "community": 152,
+ "community": 523,
"norm_label": "upload_to_sandbox()",
"id": "prometheus_tools_upload_to_sandbox"
},
@@ -38675,7 +38684,7 @@
"file_type": "code",
"source_file": "main/app/prometheus/tools.py",
"source_location": "L165",
- "community": 152,
+ "community": 523,
"norm_label": "check_cache()",
"id": "prometheus_tools_check_cache"
},
@@ -38693,7 +38702,7 @@
"file_type": "rationale",
"source_file": "main/app/prometheus/tools.py",
"source_location": "L109",
- "community": 536,
+ "community": 523,
"norm_label": "execute python code in an isolated sandbox. use for quantitative analysis,",
"id": "prometheus_tools_rationale_109"
},
@@ -38702,7 +38711,7 @@
"file_type": "rationale",
"source_file": "main/app/prometheus/tools.py",
"source_location": "L140",
- "community": 152,
+ "community": 523,
"norm_label": "read a file from the sandbox filesystem. args: path: absolute pa",
"id": "prometheus_tools_rationale_140"
},
@@ -38711,7 +38720,7 @@
"file_type": "rationale",
"source_file": "main/app/prometheus/tools.py",
"source_location": "L152",
- "community": 152,
+ "community": 523,
"norm_label": "upload a file to the sandbox filesystem. use this to push data files (csv,",
"id": "prometheus_tools_rationale_152"
},
@@ -38720,7 +38729,7 @@
"file_type": "rationale",
"source_file": "main/app/prometheus/tools.py",
"source_location": "L166",
- "community": 152,
+ "community": 523,
"norm_label": "check if a computed result exists in the cache. use before executing expens",
"id": "prometheus_tools_rationale_166"
},
@@ -38945,7 +38954,7 @@
"file_type": "code",
"source_file": "tests/test_config_sandbox.py",
"source_location": "L1",
- "community": 132,
+ "community": 251,
"norm_label": "test_config_sandbox.py",
"id": "tests_test_config_sandbox_py"
},
@@ -38954,7 +38963,7 @@
"file_type": "code",
"source_file": "tests/test_config_sandbox.py",
"source_location": "L5",
- "community": 535,
+ "community": 102,
"norm_label": "testsandboxconfig",
"id": "tests_test_config_sandbox_testsandboxconfig"
},
@@ -38963,7 +38972,7 @@
"file_type": "code",
"source_file": "tests/test_config_sandbox.py",
"source_location": "L6",
- "community": 535,
+ "community": 102,
"norm_label": ".test_sandbox_defaults()",
"id": "tests_test_config_sandbox_testsandboxconfig_test_sandbox_defaults"
},
@@ -38972,7 +38981,7 @@
"file_type": "code",
"source_file": "tests/test_config_sandbox.py",
"source_location": "L13",
- "community": 535,
+ "community": 102,
"norm_label": ".test_sandbox_fields_exist()",
"id": "tests_test_config_sandbox_testsandboxconfig_test_sandbox_fields_exist"
},
@@ -38981,7 +38990,7 @@
"file_type": "code",
"source_file": "tests/test_config_sandbox.py",
"source_location": "L21",
- "community": 535,
+ "community": 102,
"norm_label": ".test_sandbox_types()",
"id": "tests_test_config_sandbox_testsandboxconfig_test_sandbox_types"
},
@@ -39404,7 +39413,7 @@
"file_type": "rationale",
"source_file": "main/app/prometheus/tools.py",
"source_location": "L142",
- "community": 152,
+ "community": 523,
"norm_label": "read a file from the sandbox filesystem. args: path: absolute pa",
"id": "prometheus_tools_rationale_142"
},
@@ -40007,7 +40016,7 @@
"file_type": "rationale",
"source_file": "main/app/prometheus/tools.py",
"source_location": "L77",
- "community": 8,
+ "community": 536,
"norm_label": "retrieve values from the harness state. use this to recall intermediate results,",
"id": "prometheus_tools_rationale_77"
},
@@ -40079,7 +40088,7 @@
"file_type": "code",
"source_file": "main/app/prometheus/tools.py",
"source_location": "L104",
- "community": 8,
+ "community": 536,
"norm_label": "executestatetool()",
"id": "prometheus_tools_executestatetool"
},
@@ -40124,7 +40133,7 @@
"file_type": "code",
"source_file": "tests/test_state_tools.py",
"source_location": "L54",
- "community": 8,
+ "community": 536,
"norm_label": "testexecutestatetool",
"id": "tests_test_state_tools_testexecutestatetool"
},
@@ -40133,7 +40142,7 @@
"file_type": "code",
"source_file": "tests/test_state_tools.py",
"source_location": "L84",
- "community": 8,
+ "community": 536,
"norm_label": "test_unknown_tool()",
"id": "tests_test_state_tools_test_unknown_tool"
},
@@ -40160,7 +40169,7 @@
"file_type": "rationale",
"source_file": "main/app/prometheus/state.py",
"source_location": "L22",
- "community": 568,
+ "community": 21,
"norm_label": "store a value in state. marks state as changed for context injection.",
"id": "prometheus_state_rationale_22"
},
@@ -40277,7 +40286,7 @@
"file_type": "code",
"source_file": "main/app/prometheus/tools.py",
"source_location": "L46",
- "community": 530,
+ "community": 84,
"norm_label": "executememorytool()",
"id": "prometheus_tools_executememorytool"
},
@@ -40421,7 +40430,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_tools_wiring.py",
"source_location": "L52",
- "community": 49,
+ "community": 488,
"norm_label": "makechat must include memory_tools alongside mcp sessions.",
"id": "tests_test_memory_tools_wiring_rationale_52"
},
@@ -40430,7 +40439,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_tools_wiring.py",
"source_location": "L89",
- "community": 49,
+ "community": 487,
"norm_label": "dispatchtoolcall must route memory tool names to executememorytool.",
"id": "tests_test_memory_tools_wiring_rationale_89"
},
@@ -40457,7 +40466,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_tools_wiring.py",
"source_location": "L57",
- "community": 49,
+ "community": 488,
"norm_label": "makechat must include memory_tools alongside mcp sessions.",
"id": "tests_test_memory_tools_wiring_rationale_57"
},
@@ -40466,7 +40475,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_tools_wiring.py",
"source_location": "L92",
- "community": 49,
+ "community": 487,
"norm_label": "dispatchtoolcall must route memory tool names to executememorytool.",
"id": "tests_test_memory_tools_wiring_rationale_92"
},
@@ -40484,7 +40493,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L23",
- "community": 86,
+ "community": 54,
"norm_label": "helper to create memories with controlled basescore, lastaccessedat, accesscount",
"id": "tests_test_memory_maintenance_rationale_23"
},
@@ -40493,7 +40502,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L54",
- "community": 86,
+ "community": 54,
"norm_label": "decay applies to all active memories, not just accessed ones.",
"id": "tests_test_memory_maintenance_rationale_54"
},
@@ -40502,7 +40511,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L67",
- "community": 86,
+ "community": 54,
"norm_label": "basescore should never reach exactly 0 from decay alone.",
"id": "tests_test_memory_maintenance_rationale_67"
},
@@ -40556,7 +40565,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L134",
- "community": 86,
+ "community": 54,
"norm_label": "decay happens first, then archive check with new scores.",
"id": "tests_test_memory_maintenance_rationale_134"
},
@@ -40565,7 +40574,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L143",
- "community": 86,
+ "community": 54,
"norm_label": "score that decays to >= threshold stays alive. 0.11 * 0.95 = 0.1045 >= 0.1.",
"id": "tests_test_memory_maintenance_rationale_143"
},
@@ -40574,7 +40583,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_maintenance.py",
"source_location": "L156",
- "community": 86,
+ "community": 54,
"norm_label": "89 days with low score \u2192 not archived (need > 90).",
"id": "tests_test_memory_maintenance_rationale_156"
},
@@ -40583,7 +40592,7 @@
"file_type": "code",
"source_file": "main/utils/models/loader.py",
"source_location": "L23",
- "community": 530,
+ "community": 84,
"norm_label": "embed()",
"id": "models_loader_embed"
},
@@ -40763,7 +40772,7 @@
"file_type": "code",
"source_file": "main/utils/models/loader.py",
"source_location": "L11",
- "community": 530,
+ "community": 84,
"norm_label": "_downloadmodel()",
"id": "models_loader_downloadmodel"
},
@@ -40907,7 +40916,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1302",
- "community": 528,
+ "community": 493,
"norm_label": "covers lines 42-44: session validation fails.",
"id": "tests_test_controllers_coverage_rationale_1302"
},
@@ -41042,7 +41051,7 @@
"file_type": "rationale",
"source_file": "tests/test_oauth_cookie_security.py",
"source_location": "L58",
- "community": 541,
+ "community": 40,
"norm_label": "verify jwt token is not leaked in redirect url after oauth callback.",
"id": "tests_test_oauth_cookie_security_rationale_58"
},
@@ -41096,7 +41105,7 @@
"file_type": "rationale",
"source_file": "tests/test_oauth_cookie_security.py",
"source_location": "L210",
- "community": 529,
+ "community": 40,
"norm_label": "verify frontend can still get token after oauth redirect.",
"id": "tests_test_oauth_cookie_security_rationale_210"
},
@@ -41105,7 +41114,7 @@
"file_type": "rationale",
"source_file": "tests/test_oauth_cookie_security.py",
"source_location": "L219",
- "community": 529,
+ "community": 40,
"norm_label": "frontend javascript should be able to read token from readable cookie.",
"id": "tests_test_oauth_cookie_security_rationale_219"
},
@@ -41222,7 +41231,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_tools_wiring.py",
"source_location": "L56",
- "community": 49,
+ "community": 488,
"norm_label": "makechat must include memory_tools alongside mcp sessions.",
"id": "tests_test_memory_tools_wiring_rationale_56"
},
@@ -41231,7 +41240,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_tools_wiring.py",
"source_location": "L91",
- "community": 49,
+ "community": 487,
"norm_label": "dispatchtoolcall must route memory tool names to executememorytool.",
"id": "tests_test_memory_tools_wiring_rationale_91"
},
@@ -41555,7 +41564,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_tools_wiring.py",
"source_location": "L48",
- "community": 49,
+ "community": 488,
"norm_label": "makechat must include memory_tools alongside mcp sessions.",
"id": "tests_test_memory_tools_wiring_rationale_48"
},
@@ -41564,7 +41573,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_tools_wiring.py",
"source_location": "L76",
- "community": 49,
+ "community": 487,
"norm_label": "dispatchtoolcall must route memory tool names to executememorytool.",
"id": "tests_test_memory_tools_wiring_rationale_76"
},
@@ -41654,7 +41663,7 @@
"file_type": "code",
"source_file": "main/controller/prometheus_controller.py",
"source_location": "L177",
- "community": 530,
+ "community": 84,
"norm_label": "creatememory()",
"id": "controller_prometheus_controller_creatememory"
},
@@ -41681,7 +41690,7 @@
"file_type": "code",
"source_file": "tests/test_memory_controller.py",
"source_location": "L10",
- "community": 99,
+ "community": 86,
"norm_label": "testmemorycontrollerroutes",
"id": "tests_test_memory_controller_testmemorycontrollerroutes"
},
@@ -41690,7 +41699,7 @@
"file_type": "code",
"source_file": "tests/test_memory_controller.py",
"source_location": "L11",
- "community": 99,
+ "community": 86,
"norm_label": ".test_get_memories_endpoint_exists()",
"id": "tests_test_memory_controller_testmemorycontrollerroutes_test_get_memories_endpoint_exists"
},
@@ -41699,7 +41708,7 @@
"file_type": "code",
"source_file": "tests/test_memory_controller.py",
"source_location": "L15",
- "community": 99,
+ "community": 86,
"norm_label": ".test_post_memories_endpoint_exists()",
"id": "tests_test_memory_controller_testmemorycontrollerroutes_test_post_memories_endpoint_exists"
},
@@ -41708,7 +41717,7 @@
"file_type": "code",
"source_file": "tests/test_memory_controller.py",
"source_location": "L19",
- "community": 99,
+ "community": 86,
"norm_label": ".test_delete_memories_endpoint_exists()",
"id": "tests_test_memory_controller_testmemorycontrollerroutes_test_delete_memories_endpoint_exists"
},
@@ -41717,7 +41726,7 @@
"file_type": "code",
"source_file": "tests/test_memory_controller.py",
"source_location": "L23",
- "community": 99,
+ "community": 86,
"norm_label": ".test_get_memories_rejects_unauthenticated()",
"id": "tests_test_memory_controller_testmemorycontrollerroutes_test_get_memories_rejects_unauthenticated"
},
@@ -41726,7 +41735,7 @@
"file_type": "code",
"source_file": "tests/test_memory_controller.py",
"source_location": "L38",
- "community": 99,
+ "community": 86,
"norm_label": ".test_get_memories_rejects_basic_user()",
"id": "tests_test_memory_controller_testmemorycontrollerroutes_test_get_memories_rejects_basic_user"
},
@@ -42464,7 +42473,7 @@
"file_type": "code",
"source_file": "main/controller/prometheus_controller.py",
"source_location": "L177",
- "community": 530,
+ "community": 84,
"norm_label": "create_memory()",
"id": "controller_prometheus_controller_create_memory"
},
@@ -42563,7 +42572,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_controller.py",
"source_location": "L11",
- "community": 99,
+ "community": 86,
"norm_label": "verify memory endpoints exist and are wired correctly.",
"id": "tests_test_memory_controller_rationale_11"
},
@@ -42572,7 +42581,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_controller.py",
"source_location": "L14",
- "community": 99,
+ "community": 86,
"norm_label": "get /prometheus/memories exists.",
"id": "tests_test_memory_controller_rationale_14"
},
@@ -42581,7 +42590,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_controller.py",
"source_location": "L20",
- "community": 99,
+ "community": 86,
"norm_label": "post /prometheus/memories exists.",
"id": "tests_test_memory_controller_rationale_20"
},
@@ -42590,7 +42599,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_controller.py",
"source_location": "L25",
- "community": 99,
+ "community": 86,
"norm_label": "delete /prometheus/memories/{id} exists.",
"id": "tests_test_memory_controller_rationale_25"
},
@@ -42599,7 +42608,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_controller.py",
"source_location": "L30",
- "community": 99,
+ "community": 86,
"norm_label": "get /memories requires authentication.",
"id": "tests_test_memory_controller_rationale_30"
},
@@ -42608,7 +42617,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_controller.py",
"source_location": "L47",
- "community": 99,
+ "community": 86,
"norm_label": "get /memories requires use_prometheus (basic user role denied).",
"id": "tests_test_memory_controller_rationale_47"
},
@@ -42689,7 +42698,7 @@
"file_type": "rationale",
"source_file": "tests/test_memory_manager.py",
"source_location": "L11",
- "community": 543,
+ "community": 140,
"norm_label": "non-extended role gets basic limit.",
"id": "tests_test_memory_manager_rationale_11"
},
@@ -43940,7 +43949,7 @@
"file_type": "code",
"source_file": "main/app/prometheus/generation.py",
"source_location": "L1",
- "community": 487,
+ "community": 29,
"norm_label": "generation.py",
"id": "main_app_prometheus_generation_py"
},
@@ -43976,7 +43985,7 @@
"file_type": "code",
"source_file": "main/app/prometheus/generation.py",
"source_location": "L36",
- "community": 487,
+ "community": 29,
"norm_label": ".executeworkflow()",
"id": "prometheus_generation_prometheusgenerator_executeworkflow"
},
@@ -44057,7 +44066,7 @@
"file_type": "rationale",
"source_file": "tests/conftest.py",
"source_location": "L74",
- "community": 186,
+ "community": 527,
"norm_label": "testclient with stocks router + verifyapikey + getcurrentuser overrides.",
"id": "tests_conftest_rationale_74"
},
@@ -44066,7 +44075,7 @@
"file_type": "rationale",
"source_file": "tests/conftest.py",
"source_location": "L99",
- "community": 186,
+ "community": 527,
"norm_label": "testclient with all routers mounted \u2014 no lifespan (no db/service init). o",
"id": "tests_conftest_rationale_99"
},
@@ -44138,7 +44147,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L665",
- "community": 107,
+ "community": 104,
"norm_label": "covers lines 100-104, 106: get /user/sessions/current.",
"id": "tests_test_controllers_coverage_rationale_665"
},
@@ -44147,7 +44156,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L668",
- "community": 107,
+ "community": 104,
"norm_label": "covers lines 100-104, 106: session found.",
"id": "tests_test_controllers_coverage_rationale_668"
},
@@ -44156,7 +44165,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L701",
- "community": 107,
+ "community": 104,
"norm_label": "covers line 104: session not found.",
"id": "tests_test_controllers_coverage_rationale_701"
},
@@ -44345,7 +44354,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1020",
- "community": 16,
+ "community": 101,
"norm_label": "covers lines 111-112: sessionid is none, new session created.",
"id": "tests_test_controllers_coverage_rationale_1020"
},
@@ -44372,7 +44381,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1116",
- "community": 101,
+ "community": 16,
"norm_label": "generic exception in chat propagates to fastapi's default 500 handler.",
"id": "tests_test_controllers_coverage_rationale_1116"
},
@@ -44462,7 +44471,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1239",
- "community": 528,
+ "community": 493,
"norm_label": "covers line 27: user already has the role.",
"id": "tests_test_controllers_coverage_rationale_1239"
},
@@ -44498,7 +44507,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1298",
- "community": 528,
+ "community": 493,
"norm_label": "covers lines 42-44: session validation fails.",
"id": "tests_test_controllers_coverage_rationale_1298"
},
@@ -44588,7 +44597,7 @@
"file_type": "rationale",
"source_file": "tests/test_oauth_cookie_security.py",
"source_location": "L61",
- "community": 541,
+ "community": 40,
"norm_label": "verify jwt token is not leaked in redirect url after oauth callback.",
"id": "tests_test_oauth_cookie_security_rationale_61"
},
@@ -44642,7 +44651,7 @@
"file_type": "rationale",
"source_file": "tests/test_oauth_cookie_security.py",
"source_location": "L216",
- "community": 529,
+ "community": 40,
"norm_label": "verify frontend can still get token after oauth redirect.",
"id": "tests_test_oauth_cookie_security_rationale_216"
},
@@ -44750,7 +44759,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L663",
- "community": 107,
+ "community": 104,
"norm_label": "covers lines 100-104, 106: get /user/sessions/current.",
"id": "tests_test_controllers_coverage_rationale_663"
},
@@ -44759,7 +44768,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L666",
- "community": 107,
+ "community": 104,
"norm_label": "covers lines 100-104, 106: session found.",
"id": "tests_test_controllers_coverage_rationale_666"
},
@@ -44768,7 +44777,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L699",
- "community": 107,
+ "community": 104,
"norm_label": "covers line 104: session not found.",
"id": "tests_test_controllers_coverage_rationale_699"
},
@@ -44957,7 +44966,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1018",
- "community": 16,
+ "community": 101,
"norm_label": "covers lines 111-112: sessionid is none, new session created.",
"id": "tests_test_controllers_coverage_rationale_1018"
},
@@ -44984,7 +44993,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1115",
- "community": 101,
+ "community": 16,
"norm_label": "generic exception in chat propagates to fastapi's default 500 handler.",
"id": "tests_test_controllers_coverage_rationale_1115"
},
@@ -45065,7 +45074,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1238",
- "community": 528,
+ "community": 493,
"norm_label": "covers line 27: user already has the role.",
"id": "tests_test_controllers_coverage_rationale_1238"
},
@@ -45101,7 +45110,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1297",
- "community": 528,
+ "community": 493,
"norm_label": "covers lines 42-44: session validation fails.",
"id": "tests_test_controllers_coverage_rationale_1297"
},
@@ -45515,7 +45524,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L229",
- "community": 90,
+ "community": 490,
"norm_label": "tests covering key.py lines 15-40. uses asyncio.run() since pytest-asyncio",
"id": "tests_test_stocks_api_coverage_rationale_229"
},
@@ -45632,7 +45641,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L496",
- "community": 488,
+ "community": 3,
"norm_label": "replacenan handles direct float nan values (line 34).",
"id": "tests_test_stocks_api_coverage_rationale_496"
},
@@ -45695,7 +45704,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L668",
- "community": 222,
+ "community": 28,
"norm_label": "pass field name without year (how categorizecolumns returns them).",
"id": "tests_test_stocks_api_coverage_rationale_668"
},
@@ -45767,7 +45776,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L843",
- "community": 39,
+ "community": 107,
"norm_label": "invalid date -> inner 400 passes through (not wrapped as 500).",
"id": "tests_test_stocks_api_coverage_rationale_843"
},
@@ -45785,7 +45794,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L905",
- "community": 39,
+ "community": 17,
"norm_label": "dataframe without time column.",
"id": "tests_test_stocks_api_coverage_rationale_905"
},
@@ -45830,7 +45839,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L967",
- "community": 17,
+ "community": 39,
"norm_label": "search with no index match falls back to string startswith.",
"id": "tests_test_stocks_api_coverage_rationale_967"
},
@@ -45920,7 +45929,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L1342",
- "community": 22,
+ "community": 222,
"norm_label": "get /stocks/realtime-cotation without search returns 422.",
"id": "tests_test_stocks_api_coverage_rationale_1342"
},
@@ -45929,7 +45938,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L1392",
- "community": 22,
+ "community": 234,
"norm_label": "get /cotations without search returns 422.",
"id": "tests_test_stocks_api_coverage_rationale_1392"
},
@@ -46055,7 +46064,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L1344",
- "community": 22,
+ "community": 222,
"norm_label": "get /stocks/realtime-cotation without search returns 422.",
"id": "tests_test_stocks_api_coverage_rationale_1344"
},
@@ -46064,7 +46073,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L1394",
- "community": 22,
+ "community": 234,
"norm_label": "get /cotations without search returns 422.",
"id": "tests_test_stocks_api_coverage_rationale_1394"
},
@@ -46244,7 +46253,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L1400",
- "community": 22,
+ "community": 222,
"norm_label": "get /stocks/realtime-cotation without search returns 422.",
"id": "tests_test_stocks_api_coverage_rationale_1400"
},
@@ -46253,7 +46262,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L1468",
- "community": 22,
+ "community": 234,
"norm_label": "get /cotations without search returns 422.",
"id": "tests_test_stocks_api_coverage_rationale_1468"
},
@@ -46280,7 +46289,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L228",
- "community": 90,
+ "community": 490,
"norm_label": "tests covering key.py lines 15-40. uses asyncio.run() since pytest-asyncio",
"id": "tests_test_stocks_api_coverage_rationale_228"
},
@@ -46397,7 +46406,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L495",
- "community": 488,
+ "community": 3,
"norm_label": "replacenan handles direct float nan values (line 34).",
"id": "tests_test_stocks_api_coverage_rationale_495"
},
@@ -46460,7 +46469,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L667",
- "community": 222,
+ "community": 28,
"norm_label": "pass field name without year (how categorizecolumns returns them).",
"id": "tests_test_stocks_api_coverage_rationale_667"
},
@@ -46469,7 +46478,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L693",
- "community": 28,
+ "community": 215,
"norm_label": "no historical data columns -> inner 400 caught by outer except -> 500.",
"id": "tests_test_stocks_api_coverage_rationale_693"
},
@@ -46541,7 +46550,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L895",
- "community": 39,
+ "community": 17,
"norm_label": "search.strip() == '' should still dedup (line 181).",
"id": "tests_test_stocks_api_coverage_rationale_895"
},
@@ -46550,7 +46559,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L904",
- "community": 39,
+ "community": 17,
"norm_label": "dataframe without time column.",
"id": "tests_test_stocks_api_coverage_rationale_904"
},
@@ -46586,7 +46595,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L964",
- "community": 17,
+ "community": 39,
"norm_label": "search with no index match falls back to string startswith.",
"id": "tests_test_stocks_api_coverage_rationale_964"
},
@@ -46676,7 +46685,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L1396",
- "community": 22,
+ "community": 222,
"norm_label": "get /stocks/realtime-cotation without search returns 422.",
"id": "tests_test_stocks_api_coverage_rationale_1396"
},
@@ -46685,7 +46694,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L1464",
- "community": 22,
+ "community": 234,
"norm_label": "get /cotations without search returns 422.",
"id": "tests_test_stocks_api_coverage_rationale_1464"
},
@@ -46712,7 +46721,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L1388",
- "community": 22,
+ "community": 222,
"norm_label": "get /stocks/realtime-cotation without search returns 422.",
"id": "tests_test_stocks_api_coverage_rationale_1388"
},
@@ -46721,7 +46730,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L1456",
- "community": 22,
+ "community": 234,
"norm_label": "get /cotations without search returns 422.",
"id": "tests_test_stocks_api_coverage_rationale_1456"
},
@@ -46820,7 +46829,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L832",
- "community": 39,
+ "community": 107,
"norm_label": "invalid date -> inner 400 caught by outer except -> 500.",
"id": "tests_test_stocks_api_coverage_rationale_832"
},
@@ -46829,7 +46838,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L885",
- "community": 39,
+ "community": 17,
"norm_label": "search.strip() == '' should still dedup (line 181).",
"id": "tests_test_stocks_api_coverage_rationale_885"
},
@@ -46838,7 +46847,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L894",
- "community": 39,
+ "community": 17,
"norm_label": "dataframe without time column.",
"id": "tests_test_stocks_api_coverage_rationale_894"
},
@@ -46874,7 +46883,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L954",
- "community": 17,
+ "community": 39,
"norm_label": "search with no index match falls back to string startswith.",
"id": "tests_test_stocks_api_coverage_rationale_954"
},
@@ -47639,7 +47648,7 @@
"file_type": "code",
"source_file": "main/app/prometheus/generation.py",
"source_location": "L19",
- "community": 487,
+ "community": 29,
"norm_label": "sessionproxy",
"id": "prometheus_generation_sessionproxy"
},
@@ -47648,7 +47657,7 @@
"file_type": "code",
"source_file": "main/app/prometheus/generation.py",
"source_location": "L20",
- "community": 487,
+ "community": 29,
"norm_label": ".get()",
"id": "prometheus_generation_sessionproxy_get"
},
@@ -47657,7 +47666,7 @@
"file_type": "code",
"source_file": "main/app/prometheus/generation.py",
"source_location": "L23",
- "community": 487,
+ "community": 29,
"norm_label": ".post()",
"id": "prometheus_generation_sessionproxy_post"
},
@@ -47756,7 +47765,7 @@
"file_type": "code",
"source_file": "main/utils/pagination.py",
"source_location": "L1",
- "community": 500,
+ "community": 482,
"norm_label": "pagination.py",
"id": "main_utils_pagination_py"
},
@@ -47765,7 +47774,7 @@
"file_type": "code",
"source_file": "main/utils/pagination.py",
"source_location": "L4",
- "community": 500,
+ "community": 482,
"norm_label": "paginationparams",
"id": "utils_pagination_paginationparams"
},
@@ -47774,7 +47783,7 @@
"file_type": "code",
"source_file": "main/utils/pagination.py",
"source_location": "L5",
- "community": 500,
+ "community": 482,
"norm_label": ".__init__()",
"id": "utils_pagination_paginationparams_init"
},
@@ -47792,7 +47801,7 @@
"file_type": "rationale",
"source_file": "tests/conftest.py",
"source_location": "L75",
- "community": 186,
+ "community": 527,
"norm_label": "testclient with all routers mounted \u2014 no lifespan (no db/service init). o",
"id": "tests_conftest_rationale_75"
},
@@ -47828,7 +47837,7 @@
"file_type": "rationale",
"source_file": "tests/test_api_key_quota_atomic.py",
"source_location": "L39",
- "community": 26,
+ "community": 561,
"norm_label": "test that atomic increment prevents race conditions.",
"id": "tests_test_api_key_quota_atomic_rationale_39"
},
@@ -47855,7 +47864,7 @@
"file_type": "rationale",
"source_file": "tests/test_api_key_quota_atomic.py",
"source_location": "L104",
- "community": 26,
+ "community": 561,
"norm_label": "test that concurrent requests are properly serialized at db level. th",
"id": "tests_test_api_key_quota_atomic_rationale_104"
},
@@ -47873,7 +47882,7 @@
"file_type": "rationale",
"source_file": "tests/test_api_key_quota_atomic.py",
"source_location": "L166",
- "community": 26,
+ "community": 561,
"norm_label": "test that invalid api key returns zero rows affected.",
"id": "tests_test_api_key_quota_atomic_rationale_166"
},
@@ -48017,7 +48026,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L148",
- "community": 498,
+ "community": 120,
"norm_label": "covers lines 44-54, 63, 66-71: register success, valueerror, generic exception.",
"id": "tests_test_controllers_coverage_rationale_148"
},
@@ -48044,7 +48053,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L228",
- "community": 498,
+ "community": 120,
"norm_label": "covers lines 87-93, 102: login success and failure paths.",
"id": "tests_test_controllers_coverage_rationale_228"
},
@@ -48152,7 +48161,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L425",
- "community": 498,
+ "community": 120,
"norm_label": "covers lines 155-156, 158, 160-168, 170-177, 179-184, 186, 190-204: googlecallba",
"id": "tests_test_controllers_coverage_rationale_425"
},
@@ -48242,7 +48251,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L708",
- "community": 107,
+ "community": 104,
"norm_label": "covers lines 100-104, 106: get /user/sessions/current.",
"id": "tests_test_controllers_coverage_rationale_708"
},
@@ -48251,7 +48260,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L711",
- "community": 107,
+ "community": 104,
"norm_label": "covers lines 100-104, 106: session found.",
"id": "tests_test_controllers_coverage_rationale_711"
},
@@ -48260,7 +48269,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L744",
- "community": 107,
+ "community": 104,
"norm_label": "covers line 104: session not found.",
"id": "tests_test_controllers_coverage_rationale_744"
},
@@ -48449,7 +48458,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1063",
- "community": 16,
+ "community": 101,
"norm_label": "covers lines 111-112: sessionid is none, new session created.",
"id": "tests_test_controllers_coverage_rationale_1063"
},
@@ -48476,7 +48485,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1160",
- "community": 101,
+ "community": 16,
"norm_label": "covers line 125, 126-128: generic exception in chat.",
"id": "tests_test_controllers_coverage_rationale_1160"
},
@@ -48566,7 +48575,7 @@
"file_type": "rationale",
"source_file": "tests/test_controllers_coverage.py",
"source_location": "L1356",
- "community": 528,
+ "community": 493,
"norm_label": "covers lines 42-44: session validation fails.",
"id": "tests_test_controllers_coverage_rationale_1356"
},
@@ -49097,7 +49106,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L227",
- "community": 90,
+ "community": 490,
"norm_label": "tests covering key.py lines 15-40. uses asyncio.run() since pytest-asyncio",
"id": "tests_test_stocks_api_coverage_rationale_227"
},
@@ -49214,7 +49223,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L494",
- "community": 488,
+ "community": 3,
"norm_label": "replacenan handles direct float nan values (line 34).",
"id": "tests_test_stocks_api_coverage_rationale_494"
},
@@ -49277,7 +49286,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L666",
- "community": 222,
+ "community": 28,
"norm_label": "pass field name without year (how categorizecolumns returns them).",
"id": "tests_test_stocks_api_coverage_rationale_666"
},
@@ -49286,7 +49295,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L692",
- "community": 28,
+ "community": 215,
"norm_label": "no historical data columns -> inner 400 caught by outer except -> 500.",
"id": "tests_test_stocks_api_coverage_rationale_692"
},
@@ -49340,7 +49349,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L831",
- "community": 39,
+ "community": 107,
"norm_label": "invalid date -> inner 400 caught by outer except -> 500.",
"id": "tests_test_stocks_api_coverage_rationale_831"
},
@@ -49349,7 +49358,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L884",
- "community": 39,
+ "community": 17,
"norm_label": "search.strip() == '' should still dedup (line 181).",
"id": "tests_test_stocks_api_coverage_rationale_884"
},
@@ -49358,7 +49367,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L893",
- "community": 39,
+ "community": 17,
"norm_label": "dataframe without time column.",
"id": "tests_test_stocks_api_coverage_rationale_893"
},
@@ -49403,7 +49412,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L953",
- "community": 17,
+ "community": 39,
"norm_label": "search with no index match falls back to string startswith.",
"id": "tests_test_stocks_api_coverage_rationale_953"
},
@@ -49610,7 +49619,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L827",
- "community": 39,
+ "community": 107,
"norm_label": "invalid date -> inner 400 caught by outer except -> 500.",
"id": "tests_test_stocks_api_coverage_rationale_827"
},
@@ -49619,7 +49628,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L876",
- "community": 39,
+ "community": 17,
"norm_label": "search.strip() == '' should still dedup (line 181).",
"id": "tests_test_stocks_api_coverage_rationale_876"
},
@@ -49700,7 +49709,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L826",
- "community": 39,
+ "community": 107,
"norm_label": "invalid date -> inner 400 caught by outer except -> 500.",
"id": "tests_test_stocks_api_coverage_rationale_826"
},
@@ -49736,7 +49745,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L943",
- "community": 17,
+ "community": 39,
"norm_label": "search with no index match falls back to string startswith.",
"id": "tests_test_stocks_api_coverage_rationale_943"
},
@@ -49754,7 +49763,7 @@
"file_type": "rationale",
"source_file": "main/app/prometheus/generation.py",
"source_location": "L20",
- "community": 487,
+ "community": 29,
"norm_label": "thread-safe proxy that delegates to per-thread sessions.",
"id": "prometheus_generation_rationale_20"
},
@@ -49772,7 +49781,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L620",
- "community": 222,
+ "community": 28,
"norm_label": "pass field name without year (how categorizecolumns returns them).",
"id": "tests_test_stocks_api_coverage_rationale_620"
},
@@ -49781,7 +49790,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L646",
- "community": 28,
+ "community": 215,
"norm_label": "no historical data columns -> inner 400 caught by outer except -> 500.",
"id": "tests_test_stocks_api_coverage_rationale_646"
},
@@ -49835,7 +49844,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L780",
- "community": 39,
+ "community": 107,
"norm_label": "invalid date -> inner 400 caught by outer except -> 500.",
"id": "tests_test_stocks_api_coverage_rationale_780"
},
@@ -49844,7 +49853,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L828",
- "community": 39,
+ "community": 17,
"norm_label": "search.strip() == '' should still dedup (line 181).",
"id": "tests_test_stocks_api_coverage_rationale_828"
},
@@ -49853,7 +49862,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L837",
- "community": 39,
+ "community": 17,
"norm_label": "dataframe without time column.",
"id": "tests_test_stocks_api_coverage_rationale_837"
},
@@ -49889,7 +49898,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L897",
- "community": 17,
+ "community": 39,
"norm_label": "search with no index match falls back to string startswith.",
"id": "tests_test_stocks_api_coverage_rationale_897"
},
@@ -49916,7 +49925,7 @@
"file_type": "rationale",
"source_file": "tests/test_status_endpoint.py",
"source_location": "L9",
- "community": 132,
+ "community": 184,
"norm_label": "create a test client for the status endpoint without running lifespan.",
"id": "tests_test_status_endpoint_rationale_9"
},
@@ -49925,7 +49934,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L54",
- "community": 90,
+ "community": 567,
"norm_label": "test_cache_scheduler_starts_daemon_thread()",
"id": "tests_test_stocks_api_coverage_test_cache_scheduler_starts_daemon_thread"
},
@@ -49943,7 +49952,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L621",
- "community": 222,
+ "community": 28,
"norm_label": "pass field name without year (how categorizecolumns returns them).",
"id": "tests_test_stocks_api_coverage_rationale_621"
},
@@ -49952,7 +49961,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L647",
- "community": 28,
+ "community": 215,
"norm_label": "no historical data columns -> inner 400 caught by outer except -> 500.",
"id": "tests_test_stocks_api_coverage_rationale_647"
},
@@ -50006,7 +50015,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L781",
- "community": 39,
+ "community": 107,
"norm_label": "invalid date -> inner 400 caught by outer except -> 500.",
"id": "tests_test_stocks_api_coverage_rationale_781"
},
@@ -50015,7 +50024,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L838",
- "community": 39,
+ "community": 17,
"norm_label": "dataframe without time column.",
"id": "tests_test_stocks_api_coverage_rationale_838"
},
@@ -50078,7 +50087,7 @@
"file_type": "code",
"source_file": "main/utils/errors.py",
"source_location": "L27",
- "community": 497,
+ "community": 33,
"norm_label": "_build_error_response()",
"id": "utils_errors_build_error_response"
},
@@ -50087,7 +50096,7 @@
"file_type": "code",
"source_file": "main/utils/errors.py",
"source_location": "L37",
- "community": 497,
+ "community": 33,
"norm_label": "http_exception_handler()",
"id": "utils_errors_http_exception_handler"
},
@@ -50096,7 +50105,7 @@
"file_type": "code",
"source_file": "main/utils/errors.py",
"source_location": "L44",
- "community": 497,
+ "community": 33,
"norm_label": "validation_exception_handler()",
"id": "utils_errors_validation_exception_handler"
},
@@ -50105,7 +50114,7 @@
"file_type": "code",
"source_file": "main/utils/errors.py",
"source_location": "L56",
- "community": 497,
+ "community": 33,
"norm_label": "generic_exception_handler()",
"id": "utils_errors_generic_exception_handler"
},
@@ -50114,7 +50123,7 @@
"file_type": "code",
"source_file": "main/utils/errors.py",
"source_location": "L65",
- "community": 120,
+ "community": 104,
"norm_label": "register_error_handlers()",
"id": "utils_errors_register_error_handlers"
},
@@ -50924,7 +50933,7 @@
"file_type": "rationale",
"source_file": "main/utils/errors.py",
"source_location": "L68",
- "community": 120,
+ "community": 104,
"norm_label": "register exception handlers on the fastapi app. note: httpexception and r",
"id": "utils_errors_rationale_68"
},
@@ -51014,7 +51023,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L489",
- "community": 488,
+ "community": 3,
"norm_label": "replacenan handles direct float nan values (line 34).",
"id": "tests_test_stocks_api_coverage_rationale_489"
},
@@ -51059,7 +51068,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L615",
- "community": 222,
+ "community": 28,
"norm_label": "pass field name without year (how categorizecolumns returns them).",
"id": "tests_test_stocks_api_coverage_rationale_615"
},
@@ -51068,7 +51077,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L641",
- "community": 28,
+ "community": 215,
"norm_label": "no historical data columns -> inner 400 caught by outer except -> 500.",
"id": "tests_test_stocks_api_coverage_rationale_641"
},
@@ -51122,7 +51131,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L775",
- "community": 39,
+ "community": 107,
"norm_label": "invalid date -> inner 400 caught by outer except -> 500.",
"id": "tests_test_stocks_api_coverage_rationale_775"
},
@@ -51131,7 +51140,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L823",
- "community": 39,
+ "community": 17,
"norm_label": "search.strip() == '' should still dedup (line 181).",
"id": "tests_test_stocks_api_coverage_rationale_823"
},
@@ -51167,7 +51176,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_api_coverage.py",
"source_location": "L892",
- "community": 17,
+ "community": 39,
"norm_label": "search with no index match falls back to string startswith.",
"id": "tests_test_stocks_api_coverage_rationale_892"
},
@@ -51185,7 +51194,7 @@
"file_type": "rationale",
"source_file": "tests/conftest.py",
"source_location": "L62",
- "community": 186,
+ "community": 527,
"norm_label": "testclient with all routers mounted \u2014 no lifespan (no db/service init). o",
"id": "tests_conftest_rationale_62"
},
@@ -51194,7 +51203,7 @@
"file_type": "rationale",
"source_file": "tests/conftest.py",
"source_location": "L61",
- "community": 186,
+ "community": 527,
"norm_label": "testclient with all routers mounted \u2014 no lifespan (no db/service init). o",
"id": "tests_conftest_rationale_61"
},
@@ -51203,7 +51212,7 @@
"file_type": "rationale",
"source_file": "tests/conftest.py",
"source_location": "L57",
- "community": 186,
+ "community": 527,
"norm_label": "testclient with all routers mounted \u2014 no lifespan (no db/service init). o",
"id": "tests_conftest_rationale_57"
},
@@ -51212,7 +51221,7 @@
"file_type": "rationale",
"source_file": "tests/conftest.py",
"source_location": "L49",
- "community": 186,
+ "community": 527,
"norm_label": "testclient with all routers mounted \u2014 no lifespan (no db/service init). o",
"id": "tests_conftest_rationale_49"
},
@@ -51581,7 +51590,7 @@
"file_type": "rationale",
"source_file": "main/utils/errors.py",
"source_location": "L67",
- "community": 120,
+ "community": 104,
"norm_label": "register exception handlers on the fastapi app. note: httpexception and r",
"id": "utils_errors_rationale_67"
},
@@ -51752,7 +51761,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_cache.py",
"source_location": "L135",
- "community": 502,
+ "community": 186,
"norm_label": "testqueryoptimization",
"id": "tests_test_stocks_cache_testqueryoptimization"
},
@@ -51761,7 +51770,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_cache.py",
"source_location": "L138",
- "community": 502,
+ "community": 186,
"norm_label": ".test_all_optimizations_present()",
"id": "tests_test_stocks_cache_testqueryoptimization_test_all_optimizations_present"
},
@@ -51770,7 +51779,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_cache.py",
"source_location": "L153",
- "community": 502,
+ "community": 186,
"norm_label": ".test_query_filter_uses_optimization()",
"id": "tests_test_stocks_cache_testqueryoptimization_test_query_filter_uses_optimization"
},
@@ -51842,7 +51851,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_cache.py",
"source_location": "L299",
- "community": 234,
+ "community": 502,
"norm_label": "testfilterbysearchterms",
"id": "tests_test_stocks_cache_testfilterbysearchterms"
},
@@ -51851,7 +51860,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_cache.py",
"source_location": "L302",
- "community": 234,
+ "community": 502,
"norm_label": ".test_filter_with_tickerindex()",
"id": "tests_test_stocks_cache_testfilterbysearchterms_test_filter_with_tickerindex"
},
@@ -51860,7 +51869,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_cache.py",
"source_location": "L308",
- "community": 490,
+ "community": 502,
"norm_label": "testqueryperformance",
"id": "tests_test_stocks_cache_testqueryperformance"
},
@@ -51869,7 +51878,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_cache.py",
"source_location": "L311",
- "community": 490,
+ "community": 502,
"norm_label": ".test_query_response_time_under_1_second()",
"id": "tests_test_stocks_cache_testqueryperformance_test_query_response_time_under_1_second"
},
@@ -52022,7 +52031,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_cache.py",
"source_location": "L136",
- "community": 502,
+ "community": 186,
"norm_label": "integration tests for all query optimizations",
"id": "tests_test_stocks_cache_rationale_136"
},
@@ -52031,7 +52040,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_cache.py",
"source_location": "L139",
- "community": 502,
+ "community": 186,
"norm_label": "all optimizations should be implemented",
"id": "tests_test_stocks_cache_rationale_139"
},
@@ -52040,7 +52049,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_cache.py",
"source_location": "L154",
- "community": 502,
+ "community": 186,
"norm_label": "query filter should use ticker index",
"id": "tests_test_stocks_cache_rationale_154"
},
@@ -52112,7 +52121,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_cache.py",
"source_location": "L300",
- "community": 234,
+ "community": 502,
"norm_label": "tests for optimized search filtering",
"id": "tests_test_stocks_cache_rationale_300"
},
@@ -52121,7 +52130,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_cache.py",
"source_location": "L303",
- "community": 234,
+ "community": 502,
"norm_label": "filter should use ticker index for o(1) lookup",
"id": "tests_test_stocks_cache_rationale_303"
},
@@ -52130,7 +52139,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_cache.py",
"source_location": "L309",
- "community": 490,
+ "community": 502,
"norm_label": "performance tests for query operations",
"id": "tests_test_stocks_cache_rationale_309"
},
@@ -52139,7 +52148,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_cache.py",
"source_location": "L312",
- "community": 490,
+ "community": 502,
"norm_label": "query should respond within 1 second",
"id": "tests_test_stocks_cache_rationale_312"
},
@@ -52310,7 +52319,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_cache.py",
"source_location": "L138",
- "community": 502,
+ "community": 186,
"norm_label": "integration tests for all query optimizations",
"id": "tests_test_stocks_cache_rationale_138"
},
@@ -52319,7 +52328,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_cache.py",
"source_location": "L141",
- "community": 502,
+ "community": 186,
"norm_label": "all optimizations should be implemented",
"id": "tests_test_stocks_cache_rationale_141"
},
@@ -52328,7 +52337,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_cache.py",
"source_location": "L156",
- "community": 502,
+ "community": 186,
"norm_label": "query filter should use ticker index",
"id": "tests_test_stocks_cache_rationale_156"
},
@@ -52400,7 +52409,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_cache.py",
"source_location": "L302",
- "community": 234,
+ "community": 502,
"norm_label": "tests for optimized search filtering",
"id": "tests_test_stocks_cache_rationale_302"
},
@@ -52409,7 +52418,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_cache.py",
"source_location": "L305",
- "community": 234,
+ "community": 502,
"norm_label": "filter should use ticker index for o(1) lookup",
"id": "tests_test_stocks_cache_rationale_305"
},
@@ -52418,7 +52427,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_cache.py",
"source_location": "L311",
- "community": 490,
+ "community": 502,
"norm_label": "performance tests for query operations",
"id": "tests_test_stocks_cache_rationale_311"
},
@@ -52427,7 +52436,7 @@
"file_type": "rationale",
"source_file": "tests/test_stocks_cache.py",
"source_location": "L314",
- "community": 490,
+ "community": 502,
"norm_label": "query should respond within 1 second",
"id": "tests_test_stocks_cache_rationale_314"
},
@@ -52499,7 +52508,7 @@
"file_type": "code",
"source_file": "tests/test_stocks_cache.py",
"source_location": "L304",
- "community": 234,
+ "community": 502,
"norm_label": ".test_filter_with_tickerindex()",
"id": "tests_test_stocks_cache_testfilterbysearchterms_test_filter_with_tickerIndex"
},
@@ -53376,7 +53385,7 @@
"label": "FastAPI",
"file_type": "rationale",
"source_file": "README.md",
- "community": 500,
+ "community": 181,
"norm_label": "fastapi",
"id": "fastapi"
},
@@ -53520,7 +53529,7 @@
"label": "Pytest Testing",
"file_type": "rationale",
"source_file": "pyproject.toml",
- "community": 132,
+ "community": 251,
"norm_label": "pytest testing",
"id": "pytest"
},
@@ -61020,6 +61029,16 @@
"source": "prometheus_compact_prometheuscompactor_compact",
"target": "prometheus_compact_prometheuscompactor_getepisodes"
},
+ {
+ "relation": "contains",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/mcp.py",
+ "source_location": "L10",
+ "weight": 1.0,
+ "source": "main_app_prometheus_mcp_py",
+ "target": "prometheus_mcp_ensurefastmcp",
+ "confidence_score": 1.0
+ },
{
"relation": "contains",
"confidence": "EXTRACTED",
@@ -61050,6 +61069,17 @@
"source": "main_app_prometheus_mcp_py",
"target": "prometheus_mcp_parseservers"
},
+ {
+ "relation": "calls",
+ "context": "call",
+ "confidence": "EXTRACTED",
+ "source_file": "main/app/prometheus/mcp.py",
+ "source_location": "L34",
+ "weight": 1.0,
+ "source": "prometheus_mcp_buildclient",
+ "target": "prometheus_mcp_ensurefastmcp",
+ "confidence_score": 1.0
+ },
{
"relation": "calls",
"context": "call",
@@ -134895,5 +134925,5 @@
"label": "User Authentication & Authorization"
}
],
- "built_at_commit": "4a1ef15c68d292a0f6cbe3dfdc45a05db7040ce9"
+ "built_at_commit": "0f03079f2fef4a78efd67aed61edd543b3bfc497"
}
\ No newline at end of file
diff --git a/graphify-out/manifest.json b/graphify-out/manifest.json
index 0bb1a24..7c74b94 100644
--- a/graphify-out/manifest.json
+++ b/graphify-out/manifest.json
@@ -230,7 +230,7 @@
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\app\\prometheus\\agent.py": {
- "mtime": 1788413348.756258,
+ "mtime": 1789246171.1370957,
"ast_hash": "76f1ef738f48ff9dcbba3fc576b14ae7",
"semantic_hash": ""
},
@@ -240,18 +240,18 @@
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\app\\prometheus\\compact.py": {
- "mtime": 1789245131.1614592,
- "ast_hash": "1a49b42d011265f51dcda7c141c00f2d",
+ "mtime": 1789246597.687021,
+ "ast_hash": "c02301d71deffbe964945a99e6eeee2b",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\app\\prometheus\\mcp.py": {
- "mtime": 1789243625.0874593,
- "ast_hash": "2021e3b2c6b686a64082babc83b1c6fc",
+ "mtime": 1789246733.6920986,
+ "ast_hash": "28dcd15b418641878fb794030d63a3ad",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\app\\prometheus\\memory.py": {
- "mtime": 1789244959.7005122,
- "ast_hash": "fa9f719664223148efd9e2386e65cdc2",
+ "mtime": 1789246519.473933,
+ "ast_hash": "1912a302f266300963231b4d648fe1f1",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\app\\prometheus\\sandbox.py": {
@@ -300,8 +300,8 @@
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\app\\stocks_api\\query.py": {
- "mtime": 1789245008.1815689,
- "ast_hash": "cd5cca2b11e289a0cc18bd65ea13dc54",
+ "mtime": 1789246171.1410954,
+ "ast_hash": "6e8bd7ff9b8b48282d2e2db917cfd2ca",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\app\\stocks_api\\sync_cache.py": {
@@ -385,8 +385,8 @@
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\service\\prometheus_service.py": {
- "mtime": 1789244762.3055532,
- "ast_hash": "25e09e25b1cb386a64f78f169a8515d1",
+ "mtime": 1789246843.710394,
+ "ast_hash": "3e14105613ccb9deb1c43d6e0e8502ff",
"semantic_hash": ""
},
"D:\\Repositories\\server\\main\\service\\scraper_service.py": {
diff --git a/main/app/prometheus/agent.py b/main/app/prometheus/agent.py
index 0578800..59e1549 100644
--- a/main/app/prometheus/agent.py
+++ b/main/app/prometheus/agent.py
@@ -260,6 +260,7 @@ async def streamMessage(self, query=None, sessionId=None, db=None, user=None, fi
if session and user:
try:
+
async def extract() -> None:
try:
await asyncio.to_thread(
diff --git a/main/app/stocks_api/query.py b/main/app/stocks_api/query.py
index 27f41b0..bfa185e 100644
--- a/main/app/stocks_api/query.py
+++ b/main/app/stocks_api/query.py
@@ -242,7 +242,7 @@ def queryFundamental(
except Exception as e:
logger.exception("Date parsing failed")
raise HTTPException(status_code=400, detail="Invalid date format. Use YYYY-MM-DD")
-
+
if not search or search.strip() == "":
df = df.drop_duplicates(subset=["TICKER"], keep="first")