bringing up nodes... bringing up nodes... ........................................................................ [ 0%] ........................................................................ [ 0%] ........................................................................ [ 0%] ........................................................................ [ 1%] ........................................................................ [ 1%] ........................................................................ [ 1%] ........................................................................ [ 1%] ........................................................................ [ 2%] ........................................................................ [ 2%] ........................................................................ [ 2%] ........................................................................ [ 2%] ........................................................................ [ 3%] ........................................................................ [ 3%] ........................................................................ [ 3%] ........................................................................ [ 3%] ........................................................................ [ 4%] ........................................................................ [ 4%] ........................................................................ [ 4%] ........................................................................ [ 4%] ...............................F.F...................................... [ 5%] ........................................................................ [ 5%] ........................................................................ [ 5%] ........................................................................ [ 6%] ........................................................................ [ 6%] ........................................................................ [ 6%] ........................................................................ [ 6%] ........................................................................ [ 7%] ........................................................................ [ 7%] ........................................................................ [ 7%] ........................................................................ [ 7%] ........................................................................ [ 8%] ........................................................................ [ 8%] ........................................................................ [ 8%] ........................................................................ [ 8%] ........................................................................ [ 9%] ........................................................................ [ 9%] ........................................................................ [ 9%] ........................................................................ [ 9%] ........................................................................ [ 10%] ........................................................................ [ 10%] ........................................................................ [ 10%] ........................................................................ [ 10%] ........................................................................ [ 11%] ........................................................................ [ 11%] ........................................................................ [ 11%] ........................................................................ [ 12%] ........................................................................ [ 12%] ........................................................................ [ 12%] ........................................................................ [ 12%] ........................................................................ [ 13%] ........................................................................ [ 13%] ........................................................................ [ 13%] ........................................................................ [ 13%] ........................................................................ [ 14%] ........................................................................ [ 14%] ........................................................................ [ 14%] ........................................................................ [ 14%] ........................................................................ [ 15%] ........................................................................ [ 15%] ........................................................................ [ 15%] ........................................................................ [ 15%] ........................................................................ [ 16%] ........................................................................ [ 16%] ........................................................................ [ 16%] ........................................................................ [ 16%] ........................................................................ [ 17%] ........................................................................ [ 17%] ........................................................................ [ 17%] ........................................................................ [ 18%] ........................................................................ [ 18%] ........................................................................ [ 18%] ........................................................................ [ 18%] ........................................................................ [ 19%] ........................................................................ [ 19%] ........................................................................ [ 19%] ........................................................................ [ 19%] ........................................................................ [ 20%] ........................................................................ [ 20%] ........................................................................ [ 20%] ........................................................................ [ 20%] ........................................................................ [ 21%] ........................................................................ [ 21%] ........................................................................ [ 21%] ........................................................................ [ 21%] ........................................................................ [ 22%] ........................................................................ [ 22%] ........................................................................ [ 22%] ........................................................................ [ 22%] ........................................................................ [ 23%] ........................................................................ [ 23%] ........................................................................ [ 23%] ........................................................................ [ 24%] ........................................................................ [ 24%] ........................................................................ [ 24%] ........................................................................ [ 24%] ........................................................................ [ 25%] ........................................................................ [ 25%] ........................................................................ [ 25%] ........................................................................ [ 25%] ........................................................................ [ 26%] ........................................................................ [ 26%] ........................................................................ [ 26%] ........................................................................ [ 26%] ........................................................................ [ 27%] ........................................................................ [ 27%] ........................................................................ [ 27%] ........................................................................ [ 27%] ........................................................................ [ 28%] ........................................................................ [ 28%] ........................................................................ [ 28%] ........................................................................ [ 28%] ........................................................................ [ 29%] ........................................................................ [ 29%] ........................................................................ [ 29%] ........................................................................ [ 30%] ........................................................................ [ 30%] ........................................................................ [ 30%] ........................................................................ [ 30%] ........................................................................ [ 31%] ........................................................................ [ 31%] ........................................................................ [ 31%] ........................................................................ [ 31%] ........................................................................ [ 32%] ........................................................................ [ 32%] ........................................................................ [ 32%] ........................................................................ [ 32%] ........................................................................ [ 33%] ........................................................................ [ 33%] ........................................................................ [ 33%] ........................................................................ [ 33%] ........................................................................ [ 34%] ........................................................................ [ 34%] ........................................................................ [ 34%] ........................................................................ [ 34%] ........................................................................ [ 35%] ........................................................................ [ 35%] ........................................................................ [ 35%] .....................s.................................................. [ 36%] ........................................................................ [ 36%] ........................................................................ [ 36%] ........................................................................ [ 36%] ........................................................................ [ 37%] ........................................................................ [ 37%] ........................................................................ [ 37%] ........................................................................ [ 37%] ........................................................................ [ 38%] ........................................................................ [ 38%] ........................................................................ [ 38%] ........................................................................ [ 38%] ........................................................................ [ 39%] ........................................................................ [ 39%] ........................................................................ [ 39%] ........................................................................ [ 39%] ........................................................................ [ 40%] ........................................................................ [ 40%] ........................................................................ [ 40%] ........................................................................ [ 40%] ........................................................................ [ 41%] ........................................................................ [ 41%] ........................................................................ [ 41%] ........................................................................ [ 42%] ........................................................................ [ 42%] ........................................................................ [ 42%] ........................................................................ [ 42%] ........................................................................ [ 43%] ........................................................................ [ 43%] ........................................................................ [ 43%] ........................................................................ [ 43%] ........................................................................ [ 44%] ........................................................................ [ 44%] ........................................................................ [ 44%] ........................................................................ [ 44%] ........................................................................ [ 45%] ........................................................................ [ 45%] ........................................................................ [ 45%] ........................................................................ [ 45%] ........................................................................ [ 46%] ........................................................................ [ 46%] ........................................................................ [ 46%] ........................................................................ [ 46%] ........................................................................ [ 47%] ........................................................................ [ 47%] ........................................................................ [ 47%] ........................................................................ [ 48%] ........................................................................ [ 48%] ........................................................................ [ 48%] ........................................................................ [ 48%] ........................................................................ [ 49%] ........................................................................ [ 49%] ........................................................................ [ 49%] ........................................................................ [ 49%] ........................................................................ [ 50%] ........................................................................ [ 50%] ........................................................................ [ 50%] ........................................................................ [ 50%] ........................................................................ [ 51%] ........................................................................ [ 51%] ........................................................................ [ 51%] ........................................................................ [ 51%] ........................................................................ [ 52%] ........................................................................ [ 52%] ........................................................................ [ 52%] ........................................................................ [ 52%] ........................................................................ [ 53%] ........................................................................ [ 53%] ........................................................................ [ 53%] ........................................................................ [ 54%] ........................................................................ [ 54%] ........................................................................ [ 54%] ........................................................................ [ 54%] ........................................................................ [ 55%] ........................................................................ [ 55%] ........................................................................ [ 55%] ........................................................................ [ 55%] ........................................................................ [ 56%] ........................................................................ [ 56%] ........................................................................ [ 56%] ........................................................................ [ 56%] ........................................................................ [ 57%] ........................................................................ [ 57%] ........................................................................ [ 57%] ........................................................................ [ 57%] ........................................................................ [ 58%] ........................................................................ [ 58%] ........................................................................ [ 58%] ........................................................................ [ 58%] ........................................................................ [ 59%] ........................................................................ [ 59%] ........................................................................ [ 59%] ........................................................................ [ 60%] ........................................................................ [ 60%] ........................................................................ [ 60%] ........................................................................ [ 60%] ........................................................................ [ 61%] ........................................................................ [ 61%] ........................................................................ [ 61%] ........................................................................ [ 61%] ........................................................................ [ 62%] ........................................................................ [ 62%] ...........................................F............................ [ 62%] ........................................................................ [ 62%] ........................................................................ [ 63%] ........................................................................ [ 63%] ........................................................................ [ 63%] ........................................................................ [ 63%] ........................................................................ [ 64%] ........................................................................ [ 64%] ........................................................................ [ 64%] ........................................................................ [ 64%] ........................................................................ [ 65%] ........................................................................ [ 65%] ........................................................................ [ 65%] ........................................................................ [ 66%] ........................................................................ [ 66%] ........................................................................ [ 66%] ........................................................................ [ 66%] ........................................................................ [ 67%] ........................................................................ [ 67%] ........................................................................ [ 67%] ..........................s............................................. [ 67%] ........................................................................ [ 68%] ........................................................................ [ 68%] ........................................................................ [ 68%] ........................................................................ [ 68%] ........................................................................ [ 69%] ........................................................................ [ 69%] ........................................................................ [ 69%] ........................................................................ [ 69%] ........................................................................ [ 70%] ........................................................................ [ 70%] ........................................................................ [ 70%] ........................................................................ [ 70%] ........................................................................ [ 71%] ........................................................................ [ 71%] ........................................................................ [ 71%] ......F................................................................. [ 72%] ........................................................................ [ 72%] ..............F......................................................... [ 72%] ........................................................................ [ 72%] ........................................................................ [ 73%] ........................................................................ [ 73%] ........................................................................ [ 73%] ........................................................................ [ 73%] ........................................................................ [ 74%] ........................................................................ [ 74%] ........................................................................ [ 74%] ........................................................................ [ 74%] ........................................................................ [ 75%] ........................................................................ [ 75%] ........................................................................ [ 75%] .......F................................................................ [ 75%] ........................................................................ [ 76%] ........................................................................ [ 76%] ........................................................................ [ 76%] ........................................................................ [ 77%] ........................................................................ [ 77%] ........................................................................ [ 77%] ........................................................................ [ 77%] ....................................................................F... [ 78%] ........................................................................ [ 78%] ........................................................................ [ 78%] ........................................................................ [ 78%] ...............................F....F...............................FF.. [ 79%] ........................................................................ [ 79%] ........................................................................ [ 79%] ........................................................................ [ 79%] ........................................................................ [ 80%] ........................................................................ [ 80%] ........................................................................ [ 80%] ........................................................................ [ 80%] ........................................................................ [ 81%] ........................................................................ [ 81%] ........................................................................ [ 81%] ........................................................................ [ 81%] ........................................................................ [ 82%] ........................................................................ [ 82%] ........................................................................ [ 82%] ........................................................................ [ 83%] ........................................................................ [ 83%] ........................................................................ [ 83%] ........................................................................ [ 83%] ........................................................................ [ 84%] ........................................................................ [ 84%] ........................................................................ [ 84%] ........................................................................ [ 84%] ........................................................................ [ 85%] ........................................................................ [ 85%] ........................................................................ [ 85%] ........................................................................ [ 85%] ........................................................................ [ 86%] ........................................................................ [ 86%] ........................................................................ [ 86%] ........................................................................ [ 86%] ...................ss.ssssssssssss...................................... [ 87%] ........................................................................ [ 87%] ........................................................................ [ 87%] ........................................................................ [ 87%] ........................................................................ [ 88%] ........................................................................ [ 88%] ........................................................................ [ 88%] ........................................................................ [ 89%] .......................................ss..s............................ [ 89%] .......................................FF.........F.F............F...F.. [ 89%] ...........F...................................F.......F................ [ 89%] ........................................................................ [ 90%] .............................................................F.......... [ 90%] .............F............................................F..F..F....... [ 90%] ....................F....F...F.......................................... [ 90%] ......................................................F................. [ 91%] ........................................................................ [ 91%] ........................................................................ [ 91%] .........FFFFF.......................................................s.. [ 91%] ........................................................................ [ 92%] ........................................................................ [ 92%] ........................................................................ [ 92%] ...............................F....F................................... [ 92%] ........................................................................ [ 93%] ........................................................................ [ 93%] ........................................................................ [ 93%] ........................................................................ [ 93%] ........................................................................ [ 94%] ........................................................................ [ 94%] ........................................................................ [ 94%] ........................................................................ [ 95%] ........................................................................ [ 95%] ........................................................................ [ 95%] ........................................................................ [ 95%] ........................................................................ [ 96%] ........................................................................ [ 96%] ........................................................................ [ 96%] ................................................FF...................... [ 96%] ........................................................................ [ 97%] ........................................................................ [ 97%] ...........................................................F............ [ 97%] ........................................................................ [ 97%] ........................................................................ [ 98%] ..................................................................s..... [ 98%] ................................FF...FF...F.F........................... [ 98%] ........................................................................ [ 98%] ........................................................................ [ 99%] ........................................................................ [ 99%] ........................................................................ [ 99%] ...................................FF.........F......................... [ 99%] ........ [100%] =================================== FAILURES =================================== _ test_non_ct_questions_do_not_escalate[how is onboarding performing this month] _ [gw6] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_c2_run_rate_sar_semantics.py:273: in test_non_ct_questions_do_not_escalate assert r.ct_only is False, question E AssertionError: how is onboarding performing this month E assert True is False E + where True = PlanRouting(fan_out=True, ct_concepts=('realized CT breakdown',), ct_concept_notes=(), ct_only=True, unavailable_concepts=(), unavailable_reason=None, conflict_message=None, ct_cohort_anchor=False).ct_only _________ test_non_ct_questions_do_not_escalate[new signups by month] __________ [gw6] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_c2_run_rate_sar_semantics.py:273: in test_non_ct_questions_do_not_escalate assert r.ct_only is False, question E AssertionError: new signups by month E assert True is False E + where True = PlanRouting(fan_out=True, ct_concepts=('realized CT breakdown',), ct_concept_notes=(), ct_only=True, unavailable_concepts=(), unavailable_reason=None, conflict_message=None, ct_cohort_anchor=False).ct_only _______ test_bi_query_router_injects_llm_sql_generator_on_runtime_paths ________ [gw0] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_rt011_bi_sql_llm_runtime.py:971: in test_bi_query_router_injects_llm_sql_generator_on_runtime_paths await bi_query_module.execute_query( src/institutional_kb/api/routers/bi_query.py:11810: in execute_query result = await execute_query_entrypoint( src/institutional_kb/services/bi_query_entrypoint.py:81: in execute_query_entrypoint request = authorize_query_request(conn, request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_query_entrypoint.py:44: in authorize_query_request context = BiSecurityService(conn).require_query_permission(request.user_id, workspace) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:207: in require_query_permission ctx = self.require_bi_access(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:178: in require_bi_access ctx = self.get_security_context(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:136: in get_security_context data_vault = self.get_data_vault_for_workspace(workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:77: in get_data_vault_for_workspace cursor = self._conn.execute( E sqlite3.OperationalError: no such table: vaults ________ test_eval_gate2b_differential_scorer_detects_selection_ignored ________ [gw5] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_eval_oracle_playwright_harness.py:278: in test_eval_gate2b_differential_scorer_detects_selection_ignored subprocess.run(["node", "-e", script], cwd=ROOT, check=True) ../../.local/share/mise/installs/python/3.12.13/lib/python3.12/subprocess.py:571: in run raise CalledProcessError(retcode, process.args, E subprocess.CalledProcessError: Command '['node', '-e', "\nconst oracle = require('./tests/eval/gate2a_branch_oracle.json');\nconst {\n defaultGate2bContrastPairs,\n gate2bObservation,\n scoreGate2bDifferential,\n} = require('./tests/eval/lib/gate2b');\nconst pairs = defaultGate2bContrastPairs(oracle);\nif (pairs.length !== 8) throw new Error(`expected 8 contrast pairs, got ${pairs.length}`);\nconst pair = pairs[0];\nconst byCombo = new Map(oracle.branch_oracle.map((entry) => [entry.combo, entry]));\nconst leftEntry = byCombo.get(pair.left_combo);\nconst rightEntry = byCombo.get(pair.right_combo);\nconst tableFor = (entry) => ({\n columns: ['Clarification branch', 'Branch value GBP'],\n rows: [[entry.expected.branch_label, String(entry.expected.branch_value_gbp)]],\n});\nconst left = gate2bObservation({\n caseId: oracle.case_id,\n combo: pair.left_combo,\n asOfDate: oracle.as_of_date,\n table: tableFor(leftEntry),\n sourceChips: ['CT Ledger'],\n});\nconst right = gate2bObservation({\n caseId: oracle.case_id,\n combo: pair.right_combo,\n asOfDate: oracle.as_of_date,\n table: tableFor(rightEntry),\n sourceChips: ['Gold / Pipedrive'],\n});\nconst ok = scoreGate2bDifferential({ observations: [left, right], contrastPairs: [pair] });\nif (!ok.passes) throw new Error(JSON.stringify(ok.checks));\nconst ignoredRight = gate2bObservation({\n caseId: oracle.case_id,\n combo: pair.right_combo,\n asOfDate: oracle.as_of_date,\n table: tableFor(leftEntry),\n sourceChips: ['CT Ledger'],\n});\nconst ignored = scoreGate2bDifferential({ observations: [left, ignoredRight], contrastPairs: [pair] });\nif (ignored.passes) throw new Error('selection-ignored contrast unexpectedly passed');\nconst selectionIgnored = ignored.checks.find((check) => (\n check.check_id === 'selection_ignored' && !check.passed\n));\nif (!selectionIgnored || !selectionIgnored.detail.includes('selection ignored')) {\n throw new Error(JSON.stringify(ignored.checks));\n}\n"]' returned non-zero exit status 1. ----------------------------- Captured stderr call ----------------------------- [eval]:9 if (pairs.length !== 8) throw new Error(`expected 8 contrast pairs, got ${pairs.length}`); ^ Error: expected 8 contrast pairs, got 0 at [eval]:9:31 at runScriptInThisContext (node:internal/vm:209:10) at node:internal/process/execution:446:12 at [eval]-wrapper:6:24 at runScriptInContext (node:internal/process/execution:444:60) at evalFunction (node:internal/process/execution:279:30) at evalTypeScript (node:internal/process/execution:291:3) at node:internal/main/eval_string:74:3 Node.js v22.22.3 __ test_eval_gate2b_quarantined_combo_does_not_block_remaining_browser_track ___ [gw5] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_eval_oracle_playwright_harness.py:943: in test_eval_gate2b_quarantined_combo_does_not_block_remaining_browser_track subprocess.run(["node", "-e", script], cwd=ROOT, check=True) ../../.local/share/mise/installs/python/3.12.13/lib/python3.12/subprocess.py:571: in run raise CalledProcessError(retcode, process.args, E subprocess.CalledProcessError: Command '['node', '-e', "\nconst oracle = require('./tests/eval/gate2a_branch_oracle.json');\nconst {\n defaultGate2bContrastPairs,\n scoreGate2bDifferential,\n} = require('./tests/eval/lib/gate2b');\n\nconst pair = defaultGate2bContrastPairs(oracle)[0];\nconst quarantinedKey = `${pair.case_id}::${pair.left_combo}::${pair.as_of_date}`;\nconst score = scoreGate2bDifferential({\n observations: [],\n contrastPairs: [pair],\n quarantinedKeys: [quarantinedKey],\n});\nif (!score.passes) throw new Error(`quarantined pair should not fail: ${JSON.stringify(score)}`);\nif (score.compared_pairs !== 0) throw new Error(`quarantined pair should not count as compared: ${JSON.stringify(score)}`);\nif (!score.checks.find((check) => check.check_id === 'contrast_pair_quarantined' && check.passed)) {\n throw new Error(`missing quarantine check: ${JSON.stringify(score)}`);\n}\n\nconst unquarantined = scoreGate2bDifferential({\n observations: [],\n contrastPairs: [pair],\n quarantinedKeys: [],\n});\nif (unquarantined.passes) throw new Error('unquarantined missing pair should still fail');\n"]' returned non-zero exit status 1. ----------------------------- Captured stderr call ----------------------------- [eval]:9 const quarantinedKey = `${pair.case_id}::${pair.left_combo}::${pair.as_of_date}`; ^ TypeError: Cannot read properties of undefined (reading 'case_id') at [eval]:9:32 at runScriptInThisContext (node:internal/vm:209:10) at node:internal/process/execution:446:12 at [eval]-wrapper:6:24 at runScriptInContext (node:internal/process/execution:444:60) at evalFunction (node:internal/process/execution:279:30) at evalTypeScript (node:internal/process/execution:291:3) at node:internal/main/eval_string:74:3 Node.js v22.22.3 ___________ test_create_path_propagates_intake_brief_into_first_turn ___________ [gw1] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_bi_intake_endpoints.py:606: in test_create_path_propagates_intake_brief_into_first_turn response = client.post( .venv/lib/python3.12/site-packages/starlette/testclient.py:546: in post return super().post( .venv/lib/python3.12/site-packages/httpx/_client.py:1144: in post return self.request( .venv/lib/python3.12/site-packages/starlette/testclient.py:445: in request return super().request( .venv/lib/python3.12/site-packages/httpx/_client.py:825: in request return self.send(request, auth=auth, follow_redirects=follow_redirects) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .venv/lib/python3.12/site-packages/httpx/_client.py:914: in send response = self._send_handling_auth( .venv/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth response = self._send_handling_redirects( .venv/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects response = self._send_single_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .venv/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request response = transport.handle_request(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .venv/lib/python3.12/site-packages/starlette/testclient.py:348: in handle_request raise exc .venv/lib/python3.12/site-packages/starlette/testclient.py:345: in handle_request portal.call(self.app, scope, receive, send) /home/stevan/dev/lore-pinned/.venv/lib/python3.12/site-packages/anyio/from_thread.py:334: in call ??? ../../.local/share/mise/installs/python/3.12.13/lib/python3.12/concurrent/futures/_base.py:456: in result return self.__get_result() ^^^^^^^^^^^^^^^^^^^ ../../.local/share/mise/installs/python/3.12.13/lib/python3.12/concurrent/futures/_base.py:401: in __get_result raise self._exception /home/stevan/dev/lore-pinned/.venv/lib/python3.12/site-packages/anyio/from_thread.py:259: in _call_func ??? src/institutional_kb/api/pinned_reports_asgi.py:118: in __call__ await self._app(scope, receive, send) .venv/lib/python3.12/site-packages/fastapi/applications.py:1159: in __call__ await super().__call__(scope, receive, send) .venv/lib/python3.12/site-packages/starlette/applications.py:90: in __call__ await self.middleware_stack(scope, receive, send) .venv/lib/python3.12/site-packages/starlette/middleware/errors.py:186: in __call__ raise exc .venv/lib/python3.12/site-packages/starlette/middleware/errors.py:164: in __call__ await self.app(scope, receive, _send) .venv/lib/python3.12/site-packages/starlette/middleware/exceptions.py:63: in __call__ await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) .venv/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app raise exc .venv/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app await app(scope, receive, sender) .venv/lib/python3.12/site-packages/fastapi/middleware/asyncexitstack.py:18: in __call__ await self.app(scope, receive, send) .venv/lib/python3.12/site-packages/starlette/routing.py:660: in __call__ await self.middleware_stack(scope, receive, send) .venv/lib/python3.12/site-packages/starlette/routing.py:680: in app await route.handle(scope, receive, send) .venv/lib/python3.12/site-packages/starlette/routing.py:276: in handle await self.app(scope, receive, send) .venv/lib/python3.12/site-packages/fastapi/routing.py:134: in app await wrap_app_handling_exceptions(app, request)(scope, receive, send) .venv/lib/python3.12/site-packages/starlette/_exception_handler.py:53: in wrapped_app raise exc .venv/lib/python3.12/site-packages/starlette/_exception_handler.py:42: in wrapped_app await app(scope, receive, sender) .venv/lib/python3.12/site-packages/fastapi/routing.py:120: in app response = await f(request) ^^^^^^^^^^^^^^^^ .venv/lib/python3.12/site-packages/fastapi/routing.py:674: in app raw_response = await run_endpoint_function( .venv/lib/python3.12/site-packages/fastapi/routing.py:330: in run_endpoint_function return await run_in_threadpool(dependant.call, **values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .venv/lib/python3.12/site-packages/starlette/concurrency.py:32: in run_in_threadpool return await anyio.to_thread.run_sync(func) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /home/stevan/dev/lore-pinned/.venv/lib/python3.12/site-packages/anyio/to_thread.py:63: in run_sync ??? /home/stevan/dev/lore-pinned/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2518: in run_sync_in_worker_thread ??? /home/stevan/dev/lore-pinned/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:1002: in run ??? src/institutional_kb/api/routers/bi_query.py:9505: in create_bi_conversation job, created = _dispatch_turn_job( ^^^^^^^^^^^^ E TypeError: cannot unpack non-iterable UUID object _______ test_run_bi_query_for_thread_preserves_the_real_service_contract _______ [gw2] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_compose_bi_execution.py:259: in test_run_bi_query_for_thread_preserves_the_real_service_contract request = requests[0] ^^^^^^^^^^^ E IndexError: list index out of range ------------------------------ Captured log call ------------------------------- WARNING institutional_kb.services.compose_bi_execution:compose_bi_execution.py:491 CUX-025 @bi request failed for vault d0f988bc-53a0-45f6-b60d-c905204314df: no such table: bi_database_connections ____________ test_refine_span_founder_scenario_stores_single_marker ____________ [gw2] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_span_refine_marker_splice.py:317: in test_refine_span_founder_scenario_stores_single_marker assert ( E AssertionError: assert 'Why our marketplace model secures a keener rate for your business' in ['01. The cost of the old way', '02. Why our marketplace model secures a keener rate for your business', '03. Proof in client results', '04. Scale and operational trust', '05. Next steps to benchmark rates'] E + where ['01. The cost of the old way', '02. Why our marketplace model secures a keener rate for your business', '03. Proof in client results', '04. Scale and operational trust', '05. Next steps to benchmark rates'] = SlideElement(kind='bullets', text='', items=['01. The cost of the old way', '02. Why our marketplace model secures a k...4. Scale and operational trust', '05. Next steps to benchmark rates'], image_need='', image_key='', data_source_tag='').items ________________ test_parser_leaves_plain_numbered_items_alone _________________ [gw2] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_span_refine_marker_splice.py:385: in test_parser_leaves_plain_numbered_items_alone assert elements == [SlideElement(kind="bullets", items=["First", "Second"])] E AssertionError: assert [SlideElement...ource_tag='')] == [SlideElement...ource_tag='')] E E At index 0 diff: SlideElement(kind='bullets', text='', items=['01. First', '02. Second'], image_need='', image_key='', data_source_tag='') != SlideElement(kind='bullets', text='', items=['First', 'Second'], image_need='', image_key='', data_source_tag='') E Use -v to get more diff __ TestBiInvariants.test_inv_csf3_005_bi_paths_share_pinned_connection_helper __ [gw2] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_architectural_invariants.py:210: in test_inv_csf3_005_bi_paths_share_pinned_connection_helper assert "_db_host_validator" in helper_src E AssertionError: assert '_db_host_validator' in ' @contextmanager\n def _open_pg_connection(\n self,\n *,\n config: ConnectionConfig,\n ... user_id=user_id,\n vault_id=vault_id,\n ) as pg_conn:\n yield pg_conn\n' __ TestBiInvariants.test_inv_csf2_002_bi_wildcard_over_restricted_is_blocked ___ [gw2] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_architectural_invariants.py:219: in test_inv_csf2_002_bi_wildcard_over_restricted_is_blocked assert "BLOCKED_WILDCARD" in module_src E assert 'BLOCKED_WILDCARD' in '"""SQL validation layer for BI module.\n\nComprehensive SQL validation enforcing INV-BI-001 (no mutations).\nThis is ...",\n message=f"Exclude \'{pred_str}\' from \'{spec_name}\' should be negated",\n )\n' _ TestFloorManifest.test_partner_manifest_declares_the_five_required_brief_fields _ [gw4] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_content_deck_templates_b.py:395: in test_partner_manifest_declares_the_five_required_brief_fields assert template.floor_manifest == TemplateFloorManifest( E AssertionError: assert TemplateFloor...eer partner']) == TemplateFloor...eer partner']) E E Use -v to get more diff ______________ test_needs_human_floor_fact_blocks_naming_the_slot ______________ [gw1] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_compose_floor_preflight.py:268: in test_needs_human_floor_fact_blocks_naming_the_slot assert [(f["kind"], f["item"]) for f in detail["missing"]] == [ E AssertionError: assert [('canon-fact..., 'pillar_3')] == [('canon-fact...tory_status')] E E Left contains 3 more items, first extra item: ('canon-fact', 'scale_proof') E Use -v to get more diff _____ TestFloorManifest.test_one_pager_manifest_enumerates_the_exact_floor _____ [gw4] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_content_deck_templates_b.py:415: in test_one_pager_manifest_enumerates_the_exact_floor assert template.floor_manifest == TemplateFloorManifest( E AssertionError: assert TemplateFloor...=['E. Proof']) == TemplateFloor...=['E. Proof']) E E Use -v to get more diff ________________________ test_none_in_floor_slot_blocks ________________________ [gw1] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_compose_floor_preflight.py:297: in test_none_in_floor_slot_blocks assert [(f["kind"], f["item"]) for f in detail["missing"]] == [ E AssertionError: assert [('canon-fact..., 'pillar_3')] == [('canon-fact...y_one_liner')] E E At index 0 diff: ('canon-fact', 'scale_proof') != ('canon-fact', 'company_one_liner') E Left contains 3 more items, first extra item: ('canon-fact', 'company_one_liner') E Use -v to get more diff ________ TestFloorManifest.test_manifest_surfaces_on_the_templates_api _________ [gw4] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_content_deck_templates_b.py:441: in test_manifest_surfaces_on_the_templates_api assert manifest["required_brief_fields"] == [ E AssertionError: assert [] == ['partner_typ...ayment_terms'] E E Right contains 5 more items, first extra item: 'partner_type' E Use -v to get more diff __________ test_missing_partner_client_pain_blocks_partner_affiliate ___________ [gw1] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_compose_floor_preflight.py:326: in test_missing_partner_client_pain_blocks_partner_affiliate assert [(f["kind"], f["item"]) for f in detail["missing"]] == [ E AssertionError: assert [('canon-fact..., 'pillar_3')] == [('brief-fiel...client_pain')] E E At index 0 diff: ('canon-fact', 'scale_proof') != ('brief-field', 'partner_client_pain') E Left contains 2 more items, first extra item: ('canon-fact', 'pillar_2') E Use -v to get more diff _________________ test_zero_chunks_on_floor_proof_slot_blocks __________________ [gw1] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_compose_floor_preflight.py:351: in test_zero_chunks_on_floor_proof_slot_blocks assert [(f["kind"], f["item"]) for f in detail["missing"]] == [ E AssertionError: assert [('canon-fact..., 'E. Proof')] == [('proof-retr..., 'E. Proof')] E E At index 0 diff: ('canon-fact', 'scale_proof') != ('proof-retrieval', 'E. Proof') E Left contains 3 more items, first extra item: ('canon-fact', 'pillar_2') E Use -v to get more diff ______________________ test_all_clear_proceeds_and_drafts ______________________ [gw1] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_compose_floor_preflight.py:383: in test_all_clear_proceeds_and_drafts assert response.status_code == 201 E assert 422 == 201 E + where 422 = .status_code _________ test_three_failures_aggregate_into_one_422_with_zero_drafts __________ [gw1] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_compose_floor_preflight.py:423: in test_three_failures_aggregate_into_one_422_with_zero_drafts assert [(f["kind"], f["item"]) for f in detail["missing"]] == [ E AssertionError: assert [('canon-fact..., 'E. Proof')] == [('brief-fiel..., 'E. Proof')] E E At index 0 diff: ('canon-fact', 'regulatory_status') != ('brief-field', 'cta') E Left contains 2 more items, first extra item: ('canon-fact', 'pillar_3') E Use -v to get more diff __________________ test_too_few_pillars_blocks_as_canon_fact ___________________ [gw1] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_compose_floor_preflight.py:455: in test_too_few_pillars_blocks_as_canon_fact assert [(f["kind"], f["item"]) for f in detail["missing"]] == [ E AssertionError: assert [('canon-fact..., 'pillar_3')] == [('canon-fact', 'pillars')] E E At index 0 diff: ('canon-fact', 'scale_proof') != ('canon-fact', 'pillars') E Left contains 3 more items, first extra item: ('canon-fact', 'pillar_1') E Use -v to get more diff ______________ test_one_pager_manifest_enumerates_the_exact_floor ______________ [gw1] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_compose_floor_preflight.py:467: in test_one_pager_manifest_enumerates_the_exact_floor assert template.floor_manifest == TemplateFloorManifest( E AssertionError: assert TemplateFloor...=['E. Proof']) == TemplateFloor...=['E. Proof']) E E Use -v to get more diff ___________ test_facebook_scalar_count_dispatches_federated_ct_only ____________ [gw0] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_bi_single_shot_federated_routing.py:279: in test_facebook_scalar_count_dispatches_federated_ct_only response = await _post_query( tests/test_bi_single_shot_federated_routing.py:264: in _post_query return await execute_query( src/institutional_kb/api/routers/bi_query.py:11810: in execute_query result = await execute_query_entrypoint( src/institutional_kb/services/bi_query_entrypoint.py:81: in execute_query_entrypoint request = authorize_query_request(conn, request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_query_entrypoint.py:44: in authorize_query_request context = BiSecurityService(conn).require_query_permission(request.user_id, workspace) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:207: in require_query_permission ctx = self.require_bi_access(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:178: in require_bi_access ctx = self.get_security_context(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:136: in get_security_context data_vault = self.get_data_vault_for_workspace(workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:77: in get_data_vault_for_workspace cursor = self._conn.execute( E sqlite3.OperationalError: no such table: vaults ___________ test_non_floor_zero_count_slot_warns_but_does_not_block ____________ [gw1] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_compose_floor_preflight.py:511: in test_non_floor_zero_count_slot_warns_but_does_not_block assert response.status_code == 201 E assert 422 == 201 E + where 422 = .status_code ------------------------------ Captured log call ------------------------------- WARNING institutional_kb.api.routers.compose:compose.py:7557 No matching vault sources for: B. Problem — these sections are drafted from the briefing instructions without citations. ______________ test_scope_guard_block_becomes_error_turn_not_500 _______________ [gw0] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_bi_single_shot_federated_routing.py:336: in test_scope_guard_block_becomes_error_turn_not_500 response = await _post_query( tests/test_bi_single_shot_federated_routing.py:264: in _post_query return await execute_query( src/institutional_kb/api/routers/bi_query.py:11810: in execute_query result = await execute_query_entrypoint( src/institutional_kb/services/bi_query_entrypoint.py:81: in execute_query_entrypoint request = authorize_query_request(conn, request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_query_entrypoint.py:44: in authorize_query_request context = BiSecurityService(conn).require_query_permission(request.user_id, workspace) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:207: in require_query_permission ctx = self.require_bi_access(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:178: in require_bi_access ctx = self.get_security_context(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:136: in get_security_context data_vault = self.get_data_vault_for_workspace(workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:77: in get_data_vault_for_workspace cursor = self._conn.execute( E sqlite3.OperationalError: no such table: vaults ____________ test_ct_only_leg_generation_carries_umbrella_directive ____________ [gw0] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_bi_single_shot_federated_routing.py:352: in test_ct_only_leg_generation_carries_umbrella_directive await _post_query(single_shot_env, FACEBOOK_QUESTION) tests/test_bi_single_shot_federated_routing.py:264: in _post_query return await execute_query( src/institutional_kb/api/routers/bi_query.py:11810: in execute_query result = await execute_query_entrypoint( src/institutional_kb/services/bi_query_entrypoint.py:81: in execute_query_entrypoint request = authorize_query_request(conn, request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_query_entrypoint.py:44: in authorize_query_request context = BiSecurityService(conn).require_query_permission(request.user_id, workspace) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:207: in require_query_permission ctx = self.require_bi_access(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:178: in require_bi_access ctx = self.get_security_context(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:136: in get_security_context data_vault = self.get_data_vault_for_workspace(workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:77: in get_data_vault_for_workspace cursor = self._conn.execute( E sqlite3.OperationalError: no such table: vaults _______________ test_gold_only_question_keeps_todays_exact_path ________________ [gw0] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_bi_single_shot_federated_routing.py:364: in test_gold_only_question_keeps_todays_exact_path response = await _post_query(single_shot_env, GOLD_ONLY_QUESTION) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_bi_single_shot_federated_routing.py:264: in _post_query return await execute_query( src/institutional_kb/api/routers/bi_query.py:11810: in execute_query result = await execute_query_entrypoint( src/institutional_kb/services/bi_query_entrypoint.py:81: in execute_query_entrypoint request = authorize_query_request(conn, request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_query_entrypoint.py:44: in authorize_query_request context = BiSecurityService(conn).require_query_permission(request.user_id, workspace) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:207: in require_query_permission ctx = self.require_bi_access(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:178: in require_bi_access ctx = self.get_security_context(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:136: in get_security_context data_vault = self.get_data_vault_for_workspace(workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:77: in get_data_vault_for_workspace cursor = self._conn.execute( E sqlite3.OperationalError: no such table: vaults ______________ test_federation_unavailable_falls_through_to_gold _______________ [gw0] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_bi_single_shot_federated_routing.py:383: in test_federation_unavailable_falls_through_to_gold response = await _post_query(single_shot_env, FACEBOOK_QUESTION) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_bi_single_shot_federated_routing.py:264: in _post_query return await execute_query( src/institutional_kb/api/routers/bi_query.py:11810: in execute_query result = await execute_query_entrypoint( src/institutional_kb/services/bi_query_entrypoint.py:81: in execute_query_entrypoint request = authorize_query_request(conn, request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_query_entrypoint.py:44: in authorize_query_request context = BiSecurityService(conn).require_query_permission(request.user_id, workspace) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:207: in require_query_permission ctx = self.require_bi_access(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:178: in require_bi_access ctx = self.get_security_context(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:136: in get_security_context data_vault = self.get_data_vault_for_workspace(workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:77: in get_data_vault_for_workspace cursor = self._conn.execute( E sqlite3.OperationalError: no such table: vaults _______________ test_both_flavors_pass_the_live_validation_gate ________________ [gw2] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_pd_aggregate_member_drill.py:171: in test_both_flavors_pass_the_live_validation_gate assert result.is_valid, (anchor, [e.message for e in result.errors]) E AssertionError: ("SELECT d.id AS deal_id, d.title, COALESCE(c.client_name, pe.name, p.name) AS client_prospect, d.owner_name, d.stage_...able not in allowlist: ct.client_360 (INV-BI-002)', 'Table not in allowlist: pipedrive.persons_enriched (INV-BI-002)']) E assert False E + where False = SQLValidationResult(sql="SELECT d.id AS deal_id, d.title AS deal_title, COALESCE(pe_m.name, d.title) AS client, d.owne...stage_name', 'status', 'lost_time', 'currency', 'owner_name', 'ct_id', 'name', 'user_id', 'title', 'id', 'person_id'})).is_valid ________ test_founder_question_dispatches_ct_leg_and_records_provenance ________ [gw7] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_compose_bi_federated_routing.py:264: in test_founder_question_dispatches_ct_leg_and_records_provenance assert result.ok is True, result.error E AssertionError: OperationalError: no such table: bi_database_connections E assert False is True E + where False = ComposeBiResult(query='how many refer and earn users have referred people in the last 12 months, show the top 10 with ...or: no such table: bi_database_connections', connection_id=None, workspace_id=None, bi_query_id=None, bi_trace_id=None).ok ------------------------------ Captured log call ------------------------------- WARNING institutional_kb.services.compose_bi_execution:compose_bi_execution.py:491 CUX-025 @bi request failed for vault 18b82912-8b6c-4062-93c5-1e63462c3010: no such table: bi_database_connections _____________ test_ct_leg_generation_carries_the_guard_directives ______________ [gw7] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_compose_bi_federated_routing.py:291: in test_ct_leg_generation_carries_the_guard_directives assert result.ok is True, result.error E AssertionError: OperationalError: no such table: bi_database_connections E assert False is True E + where False = ComposeBiResult(query='how many refer and earn users have referred people in the last 12 months, show the top 10 with ...or: no such table: bi_database_connections', connection_id=None, workspace_id=None, bi_query_id=None, bi_trace_id=None).ok ------------------------------ Captured log call ------------------------------- WARNING institutional_kb.services.compose_bi_execution:compose_bi_execution.py:491 CUX-025 @bi request failed for vault 5ab72fe6-7508-4786-8e5c-24c76449e62b: no such table: bi_database_connections __________________ test_gold_resident_question_stays_on_gold ___________________ [gw7] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_compose_bi_federated_routing.py:309: in test_gold_resident_question_stays_on_gold assert result.ok is True, result.error E AssertionError: OperationalError: no such table: bi_database_connections E assert False is True E + where False = ComposeBiResult(query='what is the total pipeline value?', source_key='probe-key', ok=False, data_source_id=None, data...or: no such table: bi_database_connections', connection_id=None, workspace_id=None, bi_query_id=None, bi_trace_id=None).ok ------------------------------ Captured log call ------------------------------- WARNING institutional_kb.services.compose_bi_execution:compose_bi_execution.py:491 CUX-025 @bi request failed for vault 658ad1f5-c512-4517-bbac-9d6760768eb6: no such table: bi_database_connections ________________ test_no_federation_home_keeps_legacy_behavior _________________ [gw7] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_compose_bi_federated_routing.py:334: in test_no_federation_home_keeps_legacy_behavior assert result.ok is True, result.error E AssertionError: OperationalError: no such table: bi_database_connections E assert False is True E + where False = ComposeBiResult(query='how many refer and earn users have referred people in the last 12 months, show the top 10 with ...or: no such table: bi_database_connections', connection_id=None, workspace_id=None, bi_query_id=None, bi_trace_id=None).ok ------------------------------ Captured log call ------------------------------- WARNING institutional_kb.services.compose_bi_execution:compose_bi_execution.py:491 CUX-025 @bi request failed for vault 3112e50b-1bf2-477a-80a4-a3397275c25a: no such table: bi_database_connections ___________________ test_ct_leg_permission_denial_fails_loud ___________________ [gw7] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_compose_bi_federated_routing.py:363: in test_ct_leg_permission_denial_fails_loud assert result.error.startswith("permission:") E AssertionError: assert False E + where False = ('permission:') E + where = 'OperationalError: no such table: bi_database_connections'.startswith E + where 'OperationalError: no such table: bi_database_connections' = ComposeBiResult(query='how many refer and earn users have referred people in the last 12 months, show the top 10 with ...or: no such table: bi_database_connections', connection_id=None, workspace_id=None, bi_query_id=None, bi_trace_id=None).error ------------------------------ Captured log call ------------------------------- WARNING institutional_kb.services.compose_bi_execution:compose_bi_execution.py:491 CUX-025 @bi request failed for vault b81e1657-f86c-41d0-b251-e13f70ca2499: no such table: bi_database_connections __ test_legacy_adapters_cover_all_five_eval_collections_with_verified_counts ___ [gw4] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_bench_adapters.py:41: in test_legacy_adapters_cover_all_five_eval_collections_with_verified_counts assert Counter(case.source_suite for case in cases) == EXPECTED_LEGACY_COUNTS E AssertionError: assert Counter({'rou...idelity': 11}) == {'federation_...ter': 28, ...} E E Omitting 4 identical items, use -vv to show E Differing items: E {'federation_routing': 20} != {'federation_routing': 19} E Use -v to get more diff ____ test_load_cases_merges_legacy_adapters_and_yaml_with_unique_stable_ids ____ [gw4] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_bench_adapters.py:69: in test_load_cases_merges_legacy_adapters_and_yaml_with_unique_stable_ids assert len(cases) == 95 + len(yaml_cases) E AssertionError: assert 151 == (95 + 55) E + where 151 = len([GoldenCase(case_id='insight:clean_top5_affiliates', area='insight', nl_query='top 5 affiliates by revenue in 2025', t...t', legacy_key='desc_amount_sample_min', hand_verified_at=None, verification_source=None, verification_note=None), ...]) E + and 55 = len((GoldenCase(case_id='business_queries:sar_avg_daily_run_rate_25th_to_month_end', area='business_queries', nl_query='Wh... fix. Numeric floor is needs_review until CIL-006 operator verification populates row_count_min/compare_column.'), ...)) __ test_trend_query_missing_or_stale_rollup_falls_back_to_live_compute[None] ___ [gw6] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_bic010_bi_metric_rollups.py:368: in test_trend_query_missing_or_stale_rollup_falls_back_to_live_compute assert result.status == "success" E AssertionError: assert 'error' == 'success' E E - success E + error ------------------------------ Captured log call ------------------------------- WARNING institutional_kb.services.bi_query_execution_service:bi_query_execution_service.py:3696 No cost estimate available: BI metadata DB or encryption key missing WARNING institutional_kb.services.bi_query_execution_service:bi_query_execution_service.py:1779 No cost estimate available — applying conservative defaults (LIMIT 10000, statement_timeout from connection config) ERROR institutional_kb.services.bi_query_execution_service:bi_query_execution_service.py:1953 SQL execution failed: replace() should be called on dataclass instances Traceback (most recent call last): File "/home/stevan/dev/lore/src/institutional_kb/services/bi_query_execution_service.py", line 1899, in _execute_query_impl self._validate_final_sql(final_sql, validation_context) File "/home/stevan/dev/lore/src/institutional_kb/services/bi_query_execution_service.py", line 3514, in _validate_final_sql checked = validate_sql(sql, replace(context, max_limit=MAX_ROWS_HARD_CAP + 1)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/stevan/.local/share/mise/installs/python/3.12.13/lib/python3.12/dataclasses.py", line 1559, in replace raise TypeError("replace() should be called on dataclass instances") TypeError: replace() should be called on dataclass instances _ test_trend_query_missing_or_stale_rollup_falls_back_to_live_compute[computed_at1] _ [gw6] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_bic010_bi_metric_rollups.py:368: in test_trend_query_missing_or_stale_rollup_falls_back_to_live_compute assert result.status == "success" E AssertionError: assert 'error' == 'success' E E - success E + error ------------------------------ Captured log call ------------------------------- WARNING institutional_kb.services.bi_query_execution_service:bi_query_execution_service.py:3696 No cost estimate available: BI metadata DB or encryption key missing WARNING institutional_kb.services.bi_query_execution_service:bi_query_execution_service.py:1779 No cost estimate available — applying conservative defaults (LIMIT 10000, statement_timeout from connection config) ERROR institutional_kb.services.bi_query_execution_service:bi_query_execution_service.py:1953 SQL execution failed: replace() should be called on dataclass instances Traceback (most recent call last): File "/home/stevan/dev/lore/src/institutional_kb/services/bi_query_execution_service.py", line 1899, in _execute_query_impl self._validate_final_sql(final_sql, validation_context) File "/home/stevan/dev/lore/src/institutional_kb/services/bi_query_execution_service.py", line 3514, in _validate_final_sql checked = validate_sql(sql, replace(context, max_limit=MAX_ROWS_HARD_CAP + 1)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/stevan/.local/share/mise/installs/python/3.12.13/lib/python3.12/dataclasses.py", line 1559, in replace raise TypeError("replace() should be called on dataclass instances") TypeError: replace() should be called on dataclass instances _____________ test_default_corpus_covers_all_required_golden_keys ______________ [gw5] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_bi_paraphrase_eval_cli.py:41: in test_default_corpus_covers_all_required_golden_keys assert expected_keys <= set(by_key) E AssertionError: assert {'frg01_pd_lo...mission', ...} <= {'frg01_pd_lo...mission', ...} E E Extra items in the left set: E 'gap02_attribution_by_source_should_federate' ______________ test_approved_sql_executes_without_llm_generation _______________ [gw1] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_bi_confirm_fast_path.py:178: in test_approved_sql_executes_without_llm_generation assert result.status == "success", ( E AssertionError: The generated query couldn't be validated. This might be due to security restrictions or invalid SQL. E assert 'error' == 'success' E E - success E + error ____________ test_high_cost_approved_query_runs_instead_of_blocking ____________ [gw1] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_bi_confirm_fast_path.py:227: in test_high_cost_approved_query_runs_instead_of_blocking assert result.status == "success", ( E AssertionError: The generated query couldn't be validated. This might be due to security restrictions or invalid SQL. E assert 'error' == 'success' E E - success E + error _____________ test_interactive_query_returns_422_needs_passphrase ______________ [gw1] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_bi_query_ssh_secret_handling.py:126: in test_interactive_query_returns_422_needs_passphrase await bi_query_module.execute_query( src/institutional_kb/api/routers/bi_query.py:11810: in execute_query result = await execute_query_entrypoint( src/institutional_kb/services/bi_query_entrypoint.py:81: in execute_query_entrypoint request = authorize_query_request(conn, request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_query_entrypoint.py:44: in authorize_query_request context = BiSecurityService(conn).require_query_permission(request.user_id, workspace) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:207: in require_query_permission ctx = self.require_bi_access(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:178: in require_bi_access ctx = self.get_security_context(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:136: in get_security_context data_vault = self.get_data_vault_for_workspace(workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:77: in get_data_vault_for_workspace cursor = self._conn.execute( E sqlite3.OperationalError: no such table: vaults _____________ test_noninteractive_query_degrades_needs_passphrase ______________ [gw1] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_bi_query_ssh_secret_handling.py:168: in test_noninteractive_query_degrades_needs_passphrase response = await bi_query_module.execute_query( src/institutional_kb/api/routers/bi_query.py:11810: in execute_query result = await execute_query_entrypoint( src/institutional_kb/services/bi_query_entrypoint.py:81: in execute_query_entrypoint request = authorize_query_request(conn, request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_query_entrypoint.py:44: in authorize_query_request context = BiSecurityService(conn).require_query_permission(request.user_id, workspace) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:207: in require_query_permission ctx = self.require_bi_access(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:178: in require_bi_access ctx = self.get_security_context(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:136: in get_security_context data_vault = self.get_data_vault_for_workspace(workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:77: in get_data_vault_for_workspace cursor = self._conn.execute( E sqlite3.OperationalError: no such table: vaults ___ test_validation_error_returns_http_400_with_explicit_column_remediation ____ [gw1] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_bi_query_ssh_secret_handling.py:209: in test_validation_error_returns_http_400_with_explicit_column_remediation await bi_query_module.execute_query( src/institutional_kb/api/routers/bi_query.py:11810: in execute_query result = await execute_query_entrypoint( src/institutional_kb/services/bi_query_entrypoint.py:81: in execute_query_entrypoint request = authorize_query_request(conn, request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_query_entrypoint.py:44: in authorize_query_request context = BiSecurityService(conn).require_query_permission(request.user_id, workspace) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:207: in require_query_permission ctx = self.require_bi_access(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:178: in require_bi_access ctx = self.get_security_context(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:136: in get_security_context data_vault = self.get_data_vault_for_workspace(workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:77: in get_data_vault_for_workspace cursor = self._conn.execute( E sqlite3.OperationalError: no such table: vaults _______________ test_cost_gate_unavailable_ssh_returns_http_503 ________________ [gw1] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_bi_query_ssh_secret_handling.py:253: in test_cost_gate_unavailable_ssh_returns_http_503 await bi_query_module.execute_query( src/institutional_kb/api/routers/bi_query.py:11810: in execute_query result = await execute_query_entrypoint( src/institutional_kb/services/bi_query_entrypoint.py:81: in execute_query_entrypoint request = authorize_query_request(conn, request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_query_entrypoint.py:44: in authorize_query_request context = BiSecurityService(conn).require_query_permission(request.user_id, workspace) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:207: in require_query_permission ctx = self.require_bi_access(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:178: in require_bi_access ctx = self.get_security_context(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:136: in get_security_context data_vault = self.get_data_vault_for_workspace(workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:77: in get_data_vault_for_workspace cursor = self._conn.execute( E sqlite3.OperationalError: no such table: vaults ________ test_bi_query_runtime_paths_inject_shared_definition_resolver _________ [gw2] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_rt010_bi_query_definition_resolver_runtime.py:185: in test_bi_query_runtime_paths_inject_shared_definition_resolver query_response = await bi_query_module.execute_query( src/institutional_kb/api/routers/bi_query.py:11810: in execute_query result = await execute_query_entrypoint( src/institutional_kb/services/bi_query_entrypoint.py:81: in execute_query_entrypoint request = authorize_query_request(conn, request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_query_entrypoint.py:44: in authorize_query_request context = BiSecurityService(conn).require_query_permission(request.user_id, workspace) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:207: in require_query_permission ctx = self.require_bi_access(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:178: in require_bi_access ctx = self.get_security_context(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:136: in get_security_context data_vault = self.get_data_vault_for_workspace(workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:77: in get_data_vault_for_workspace cursor = self._conn.execute( E sqlite3.OperationalError: no such table: vaults __________ test_bi_query_runtime_resolver_empty_match_still_succeeds ___________ [gw2] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_rt010_bi_query_definition_resolver_runtime.py:267: in test_bi_query_runtime_resolver_empty_match_still_succeeds response = await bi_query_module.execute_query( src/institutional_kb/api/routers/bi_query.py:11810: in execute_query result = await execute_query_entrypoint( src/institutional_kb/services/bi_query_entrypoint.py:81: in execute_query_entrypoint request = authorize_query_request(conn, request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_query_entrypoint.py:44: in authorize_query_request context = BiSecurityService(conn).require_query_permission(request.user_id, workspace) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:207: in require_query_permission ctx = self.require_bi_access(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:178: in require_bi_access ctx = self.get_security_context(user_id, workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:136: in get_security_context data_vault = self.get_data_vault_for_workspace(workspace_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ src/institutional_kb/services/bi_security_service.py:77: in get_data_vault_for_workspace cursor = self._conn.execute( E sqlite3.OperationalError: no such table: vaults _________ test_in_flight_query_reports_tunnel_lost_when_owner_revoked __________ [gw4] linux -- Python 3.12.13 /home/stevan/dev/lore/.venv/bin/python tests/test_bi_ssh_revocation_e2e.py:536: in test_in_flight_query_reports_tunnel_lost_when_owner_revoked assert cursor.fetch_started.wait(timeout=3.0) E assert False E + where False = wait(timeout=3.0) E + where wait = .wait E + where = .fetch_started ------------------------------ Captured log call ------------------------------- WARNING institutional_kb.services.bi_query_execution_service:bi_query_execution_service.py:1779 No cost estimate available — applying conservative defaults (LIMIT 10000, statement_timeout from connection config) ERROR institutional_kb.services.bi_query_execution_service:bi_query_execution_service.py:1953 SQL execution failed: replace() should be called on dataclass instances Traceback (most recent call last): File "/home/stevan/dev/lore/src/institutional_kb/services/bi_query_execution_service.py", line 1899, in _execute_query_impl self._validate_final_sql(final_sql, validation_context) File "/home/stevan/dev/lore/src/institutional_kb/services/bi_query_execution_service.py", line 3514, in _validate_final_sql checked = validate_sql(sql, replace(context, max_limit=MAX_ROWS_HARD_CAP + 1)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/stevan/.local/share/mise/installs/python/3.12.13/lib/python3.12/dataclasses.py", line 1559, in replace raise TypeError("replace() should be called on dataclass instances") TypeError: replace() should be called on dataclass instances =============================== warnings summary =============================== .venv/lib/python3.12/site-packages/pydantic/main.py:250: 64 warnings tests/test_content_composer.py: 20 warnings tests/test_slide_population.py: 2 warnings tests/test_incident_api_auth.py: 183 warnings tests/test_bi_binding_refine_postpass.py: 34 warnings tests/test_retrieval_filter.py: 124 warnings tests/test_home_admin_health.py: 2 warnings tests/test_confidence_explanation.py: 6 warnings tests/test_incident_playbook.py: 28 warnings tests/test_compose_bi_promotion.py: 40 warnings tests/test_pipedrive_retrieval_surface.py: 8 warnings tests/test_section_retrieval.py: 92 warnings tests/test_content_brief.py: 16 warnings tests/test_slack_query_orchestrator.py: 10 warnings tests/test_bi_token_canonicalization.py: 16 warnings tests/test_front_oauth.py: 3 warnings tests/test_front_inbox_tag_models.py: 100 warnings tests/test_trust_dashboard.py: 4 warnings tests/test_gdrive_sync.py: 27 warnings tests/test_composition_thread.py: 50 warnings tests/test_sync_orchestrator.py: 31 warnings tests/test_notion_sync.py: 20 warnings tests/test_operator_enforcement.py: 3 warnings tests/test_incident.py: 17 warnings tests/test_front_router.py: 4 warnings tests/test_front_security.py: 1 warning tests/test_source_policy.py: 18 warnings tests/test_pipeline.py: 40 warnings tests/test_trust_calibration.py: 36 warnings tests/test_content_template.py: 2 warnings tests/test_front_contact_sync.py: 3 warnings tests/test_compose_bi_execution.py: 8 warnings tests/test_span_refine_marker_splice.py: 4 warnings tests/test_architectural_invariants.py: 10 warnings tests/test_staleness_alert.py: 26 warnings tests/test_sec2_003_multivault_pii.py: 30 warnings tests/test_content_deck_templates_b.py: 4 warnings tests/integration/test_sync_e2e.py: 4 warnings tests/test_compose_retrieval_steering.py: 20 warnings tests/test_compose_bi_federated_routing.py: 10 warnings tests/test_compose_critic.py: 20 warnings tests/test_blueprint_artifact_writer.py: 16 warnings tests/test_csf3_regressions.py: 4 warnings tests/test_compose_attachment_scoping.py: 2 warnings tests/test_composition_retrieval_record.py: 10 warnings tests/test_wordpress_sync.py: 4 warnings tests/test_archive_dedupe.py: 6 warnings tests/test_compose_blueprint_profile_wiring.py: 4 warnings tests/test_compose_bi_name_splice.py: 8 warnings tests/test_compose_bi_federation_resolution.py: 8 warnings tests/test_blueprint_to_template.py: 8 warnings tests/test_gate_green_generation.py: 16 warnings tests/test_skl006_skill_security.py: 2 warnings tests/test_blueprint_generation.py: 8 warnings tests/test_blueprint_save_template.py: 8 warnings /home/stevan/dev/lore/.venv/lib/python3.12/site-packages/pydantic/main.py:250: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) .venv/lib/python3.12/site-packages/fastmcp/server/auth/providers/jwt.py:10 .venv/lib/python3.12/site-packages/fastmcp/server/auth/providers/jwt.py:10 .venv/lib/python3.12/site-packages/fastmcp/server/auth/providers/jwt.py:10 .venv/lib/python3.12/site-packages/fastmcp/server/auth/providers/jwt.py:10 .venv/lib/python3.12/site-packages/fastmcp/server/auth/providers/jwt.py:10 .venv/lib/python3.12/site-packages/fastmcp/server/auth/providers/jwt.py:10 .venv/lib/python3.12/site-packages/fastmcp/server/auth/providers/jwt.py:10 .venv/lib/python3.12/site-packages/fastmcp/server/auth/providers/jwt.py:10 /home/stevan/dev/lore/.venv/lib/python3.12/site-packages/fastmcp/server/auth/providers/jwt.py:10: AuthlibDeprecationWarning: authlib.jose module is deprecated, please use joserfc instead. It will be compatible before version 2.0.0. from authlib.jose import JsonWebKey, JsonWebToken tests/test_front_ownership_drift.py::TestTimezoneHandling::test_handles_naive_datetime /home/stevan/dev/lore/tests/test_front_ownership_drift.py:691: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). naive_dt = datetime.utcnow() - timedelta(hours=2) # noqa: DTZ003 tests/test_retrieval_filter.py::TestAccessLevelFilterBehaviour::test_viewer_editor_cannot_see_restricted[viewer] /home/stevan/dev/lore/tests/test_retrieval_filter.py:1054: UserWarning: Payload indexes have no effect in the local Qdrant. Please use server Qdrant if you need payload indexes. qdrant_client.create_payload_index( tests/test_front_thread_summary.py: 10 warnings /home/stevan/dev/lore/src/institutional_kb/services/front_thread_summary.py:192: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). created_at=datetime.utcnow() tests/test_front_thread_summary.py: 32 warnings /home/stevan/dev/lore/tests/test_front_thread_summary.py:144: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). now = datetime.utcnow() tests/test_front_thread_summary.py::TestFrontThreadSummaryService::test_get_thread_summary_with_internal_notes tests/test_front_thread_summary.py::TestFrontThreadSummaryService::test_get_thread_summary_with_internal_notes /home/stevan/dev/lore/tests/test_front_thread_summary.py:188: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). now = datetime.utcnow() tests/test_front_thread_summary.py::TestFrontThreadSummaryService::test_list_thread_summaries_multiple /home/stevan/dev/lore/tests/test_front_thread_summary.py:519: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). now = datetime.utcnow() tests/test_front_thread_summary.py::TestFrontThreadSummaryService::test_list_thread_summaries_sort_recent_first /home/stevan/dev/lore/tests/test_front_thread_summary.py:617: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). now = datetime.utcnow() tests/test_auth.py::TestTamperedToken::test_token_signed_with_wrong_secret /home/stevan/dev/lore/.venv/lib/python3.12/site-packages/jwt/api_jwt.py:147: InsecureKeyLengthWarning: The HMAC key is 12 bytes long, which is below the minimum recommended length of 32 bytes for SHA256. See RFC 7518 Section 3.2. return self._jws.encode( tests/test_confidence_explanation.py::TestFormatTimeAgo::test_handles_naive_datetime /home/stevan/dev/lore/tests/test_confidence_explanation.py:78: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). naive_dt = datetime.utcnow() - timedelta(hours=2) tests/test_incident_playbook.py::TestPlaybookService::test_start_playbook tests/test_incident_playbook.py::TestPlaybookService::test_complete_step tests/test_incident_playbook.py::TestPlaybookService::test_skip_step tests/test_incident_playbook.py::TestPlaybookService::test_cannot_skip_critical_step tests/test_incident_playbook.py::TestPlaybookService::test_get_progress tests/test_incident_playbook.py::TestPlaybookService::test_get_active_progress tests/test_incident_playbook.py::TestPlaybookService::test_abandon_playbook tests/test_incident_playbook.py::TestPlaybookProgressTracking::test_step_completions_tracked tests/test_incident_playbook.py::TestAcceptanceCriteria::test_checkbox_progress_tracking /home/stevan/dev/lore/src/institutional_kb/services/incident_playbook_service.py:147: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). progress.step_completions[first_step.step_id].started_at = datetime.utcnow() tests/test_incident_playbook.py::TestPlaybookService::test_complete_step tests/test_incident_playbook.py::TestPlaybookProgressTracking::test_step_completions_tracked tests/test_incident_playbook.py::TestAcceptanceCriteria::test_checkbox_progress_tracking /home/stevan/dev/lore/src/institutional_kb/services/incident_playbook_service.py:208: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). completion.completed_at = datetime.utcnow() tests/test_incident_playbook.py::TestPlaybookService::test_complete_step tests/test_incident_playbook.py::TestPlaybookProgressTracking::test_step_completions_tracked tests/test_incident_playbook.py::TestAcceptanceCriteria::test_checkbox_progress_tracking /home/stevan/dev/lore/src/institutional_kb/services/incident_playbook_service.py:215: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). progress.last_activity_at = datetime.utcnow() tests/test_incident_playbook.py::TestPlaybookService::test_complete_step tests/test_incident_playbook.py::TestPlaybookProgressTracking::test_step_completions_tracked tests/test_incident_playbook.py::TestAcceptanceCriteria::test_checkbox_progress_tracking /home/stevan/dev/lore/src/institutional_kb/services/incident_playbook_service.py:230: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). progress.step_completions[next_step_id].started_at = datetime.utcnow() tests/test_incident_playbook.py::TestPlaybookService::test_skip_step /home/stevan/dev/lore/src/institutional_kb/services/incident_playbook_service.py:314: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). completion.completed_at = datetime.utcnow() tests/test_incident_playbook.py::TestPlaybookService::test_skip_step /home/stevan/dev/lore/src/institutional_kb/services/incident_playbook_service.py:319: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). progress.last_activity_at = datetime.utcnow() tests/test_incident_playbook.py::TestPlaybookService::test_skip_step /home/stevan/dev/lore/src/institutional_kb/services/incident_playbook_service.py:332: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). progress.step_completions[next_step_id].started_at = datetime.utcnow() tests/test_incident_playbook.py::TestPlaybookService::test_abandon_playbook /home/stevan/dev/lore/src/institutional_kb/services/incident_playbook_service.py:404: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). progress.completed_at = datetime.utcnow() tests/test_bi_result_feedback.py::test_patch_rejects_raw_operator_context_and_spec /home/stevan/dev/lore/tests/test_bi_result_feedback.py:1357: DeprecationWarning: 'HTTP_422_UNPROCESSABLE_ENTITY' is deprecated. Use 'HTTP_422_UNPROCESSABLE_CONTENT' instead. fb.update_feedback( tests/test_entity_search_confidence_filter.py: 14 warnings /home/stevan/dev/lore/tests/test_entity_search_confidence_filter.py:107: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). now = datetime.utcnow().isoformat() tests/test_entity_search_confidence_filter.py::TestVaultConfiguration::test_set_and_get_vault_config tests/test_entity_search_confidence_filter.py::TestVaultConfiguration::test_vault_config_applied_to_search tests/test_entity_search_confidence_filter.py::TestVaultConfiguration::test_vault_disallows_include_suggested tests/test_entity_search_confidence_filter.py::TestVaultConfiguration::test_delete_vault_config tests/test_entity_search_confidence_filter.py::TestVaultConfiguration::test_get_all_vault_configs tests/test_entity_search_confidence_filter.py::TestVaultConfiguration::test_get_all_vault_configs tests/test_entity_search_confidence_filter.py::TestVaultConfiguration::test_get_all_vault_configs /home/stevan/dev/lore/src/institutional_kb/services/entity_search_confidence_filter.py:495: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). now = datetime.utcnow().isoformat() tests/test_front_inbox_tag_models.py::TestFrontInbox::test_create_inbox_with_all_fields tests/test_front_inbox_tag_models.py::TestFrontInbox::test_display_name_with_address tests/test_front_inbox_tag_models.py::TestFrontInbox::test_vault_isolation_field /home/stevan/dev/lore/tests/test_front_inbox_tag_models.py:58: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). synced_at=datetime.utcnow(), tests/test_front_inbox_tag_models.py::TestFrontInbox::test_create_inbox_minimal_fields /home/stevan/dev/lore/tests/test_front_inbox_tag_models.py:167: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). synced_at=datetime.utcnow(), tests/test_front_inbox_tag_models.py::TestFrontInbox::test_display_name_without_address /home/stevan/dev/lore/tests/test_front_inbox_tag_models.py:185: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). synced_at=datetime.utcnow(), tests/test_front_inbox_tag_models.py::TestFrontInbox::test_inbox_type_field /home/stevan/dev/lore/tests/test_front_inbox_tag_models.py:200: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). synced_at=datetime.utcnow(), tests/test_front_inbox_tag_models.py::TestFrontTag::test_create_tag_with_all_fields tests/test_front_inbox_tag_models.py::TestFrontTag::test_display_color_red tests/test_front_inbox_tag_models.py::TestFrontTag::test_vault_isolation_field /home/stevan/dev/lore/tests/test_front_inbox_tag_models.py:71: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). synced_at=datetime.utcnow(), tests/test_front_inbox_tag_models.py::TestFrontTag::test_create_tag_minimal_fields /home/stevan/dev/lore/tests/test_front_inbox_tag_models.py:259: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). synced_at=datetime.utcnow(), tests/test_front_inbox_tag_models.py::TestFrontTag::test_display_color_blue /home/stevan/dev/lore/tests/test_front_inbox_tag_models.py:275: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). synced_at=datetime.utcnow(), tests/test_front_inbox_tag_models.py::TestFrontTag::test_display_color_default_gray /home/stevan/dev/lore/tests/test_front_inbox_tag_models.py:285: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). synced_at=datetime.utcnow(), tests/test_front_inbox_tag_models.py::TestFrontTag::test_display_color_unknown_passthrough /home/stevan/dev/lore/tests/test_front_inbox_tag_models.py:296: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). synced_at=datetime.utcnow(), tests/test_front_inbox_tag_models.py::TestFilterInboxesByIds::test_filter_existing_ids tests/test_front_inbox_tag_models.py::TestFilterInboxesByIds::test_filter_nonexistent_ids tests/test_front_inbox_tag_models.py::TestFilterInboxesByIds::test_filter_empty_ids tests/test_front_inbox_tag_models.py::TestFilterPrivateInboxes::test_exclude_private_by_default tests/test_front_inbox_tag_models.py::TestFilterPrivateInboxes::test_include_private_when_requested tests/test_front_inbox_tag_models.py::TestGetInboxNames::test_returns_id_to_name_mapping /home/stevan/dev/lore/tests/test_front_inbox_tag_models.py:77: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). now = datetime.utcnow() tests/test_front_inbox_tag_models.py::TestFilterTagsByIds::test_filter_existing_ids tests/test_front_inbox_tag_models.py::TestFilterTagsByIds::test_filter_nonexistent_ids tests/test_front_inbox_tag_models.py::TestFilterPrivateTags::test_exclude_private_by_default tests/test_front_inbox_tag_models.py::TestFilterPrivateTags::test_include_private_when_requested tests/test_front_inbox_tag_models.py::TestGetTagNames::test_returns_id_to_name_mapping tests/test_front_inbox_tag_models.py::TestGetTagColors::test_returns_id_to_color_mapping /home/stevan/dev/lore/tests/test_front_inbox_tag_models.py:113: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). now = datetime.utcnow() tests/test_public_snapshot_share.py::test_unredacted_mint_requires_a_password tests/test_public_snapshot_share.py::test_unredacted_mint_refuses_weak_and_common_passwords tests/test_public_snapshot_share.py::test_unredacted_mint_refuses_weak_and_common_passwords tests/test_public_snapshot_share.py::test_unredacted_mint_refuses_weak_and_common_passwords /home/stevan/dev/lore/src/institutional_kb/api/routers/bi_share.py:918: DeprecationWarning: 'HTTP_422_UNPROCESSABLE_ENTITY' is deprecated. Use 'HTTP_422_UNPROCESSABLE_CONTENT' instead. raise _unredacted_password_too_weak(verdict.reasons) tests/test_public_snapshot_share.py::test_mint_binds_the_named_turn_and_guards_the_rest tests/test_compose_refine_thread.py::test_span_refine_out_of_range_offsets_returns_422 tests/test_compose_refine_thread.py::test_span_refine_stale_section_returns_422 /home/stevan/dev/lore-pinned/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:1002: DeprecationWarning: 'HTTP_422_UNPROCESSABLE_ENTITY' is deprecated. Use 'HTTP_422_UNPROCESSABLE_CONTENT' instead. tests/test_front_conversation_sync.py: 15 warnings /home/stevan/dev/lore/tests/test_front_conversation_sync.py:66: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). expires_at=datetime.utcnow() + timedelta(hours=1), tests/test_front_conversation_sync.py: 15 warnings /home/stevan/dev/lore/tests/test_front_conversation_sync.py:68: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). connected_at=datetime.utcnow(), tests/test_front_conversation_sync.py::TestFrontConversationSyncEngine::test_sync_incremental /home/stevan/dev/lore/tests/test_front_conversation_sync.py:592: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). updated_after = datetime.utcnow() - timedelta(hours=1) tests/test_incident.py::TestIncidentReport::test_report_to_markdown /home/stevan/dev/lore/tests/test_incident.py:184: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). started_at=datetime.utcnow() - timedelta(hours=2), tests/test_incident.py::TestIncidentReport::test_report_to_markdown /home/stevan/dev/lore/tests/test_incident.py:185: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). resolved_at=datetime.utcnow(), tests/test_incident.py::TestIncidentSummary::test_summary_creation /home/stevan/dev/lore/tests/test_incident.py:267: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). started_at=datetime.utcnow(), tests/test_incident.py::TestOP014AcceptanceCriteria::test_ac3_timeline_with_timestamps /home/stevan/dev/lore/tests/test_incident.py:316: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). occurred_at=datetime.utcnow(), tests/test_progressive_reveal.py: 16 warnings /home/stevan/dev/lore/src/institutional_kb/discovery/progressive_reveal.py:317: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). now = datetime.utcnow() tests/test_progressive_reveal.py::TestExperienceStageCalculation::test_explorer_stage_threshold /home/stevan/dev/lore/tests/test_progressive_reveal.py:49: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). account_created_at=datetime.utcnow() - timedelta(days=2), tests/test_progressive_reveal.py::TestExperienceStageCalculation::test_practitioner_stage_threshold /home/stevan/dev/lore/tests/test_progressive_reveal.py:65: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). account_created_at=datetime.utcnow() - timedelta(days=10), tests/test_progressive_reveal.py::TestExperienceStageCalculation::test_expert_stage_threshold /home/stevan/dev/lore/tests/test_progressive_reveal.py:81: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). account_created_at=datetime.utcnow() - timedelta(days=30), tests/test_progressive_reveal.py::TestExperienceStageCalculation::test_power_user_stage_threshold /home/stevan/dev/lore/tests/test_progressive_reveal.py:97: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). account_created_at=datetime.utcnow() - timedelta(days=90), tests/test_progressive_reveal.py::TestExperienceStageCalculation::test_partial_threshold_remains_lower /home/stevan/dev/lore/tests/test_progressive_reveal.py:113: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). account_created_at=datetime.utcnow() - timedelta(days=10), tests/test_progressive_reveal.py::TestProgressiveRevealEvaluation::test_evaluate_reveal_basic /home/stevan/dev/lore/tests/test_progressive_reveal.py:169: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). account_created_at=datetime.utcnow() - timedelta(days=3), tests/test_progressive_reveal.py::TestProgressiveRevealEvaluation::test_evaluate_reveal_basic tests/test_progressive_reveal.py::TestProgressiveRevealEvaluation::test_evaluate_reveal_newly_revealed tests/test_progressive_reveal.py::TestProgressiveRevealEvaluation::test_evaluate_reveal_tooltips_generated tests/test_progressive_reveal.py::TestDiscoveredFeatures::test_tooltip_not_shown_twice tests/test_progressive_reveal.py::TestUserStateReset::test_reset_clears_shown_tooltips /home/stevan/dev/lore/src/institutional_kb/discovery/progressive_reveal.py:466: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). state.last_stage_change = datetime.utcnow() tests/test_progressive_reveal.py::TestProgressiveRevealEvaluation::test_evaluate_reveal_basic tests/test_progressive_reveal.py::TestProgressiveRevealEvaluation::test_evaluate_reveal_newly_revealed tests/test_progressive_reveal.py::TestProgressiveRevealEvaluation::test_evaluate_reveal_newly_revealed tests/test_progressive_reveal.py::TestProgressiveRevealEvaluation::test_evaluate_reveal_tooltips_generated tests/test_progressive_reveal.py::TestProgressiveRevealEvaluation::test_evaluate_reveal_tooltips_generated tests/test_progressive_reveal.py::TestDiscoveredFeatures::test_discovered_features_always_available tests/test_progressive_reveal.py::TestDiscoveredFeatures::test_tooltip_not_shown_twice tests/test_progressive_reveal.py::TestProgressToNextStage::test_progress_calculation_basic tests/test_progressive_reveal.py::TestUserStateReset::test_reset_clears_shown_tooltips /home/stevan/dev/lore/src/institutional_kb/discovery/progressive_reveal.py:387: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). now = datetime.utcnow() tests/test_progressive_reveal.py::TestProgressiveRevealEvaluation::test_evaluate_reveal_newly_revealed /home/stevan/dev/lore/tests/test_progressive_reveal.py:199: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). account_created_at=datetime.utcnow() - timedelta(days=2), tests/test_progressive_reveal.py::TestProgressiveRevealEvaluation::test_evaluate_reveal_tooltips_generated /home/stevan/dev/lore/tests/test_progressive_reveal.py:226: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). account_created_at=datetime.utcnow() - timedelta(days=2), tests/test_progressive_reveal.py::TestDiscoveredFeatures::test_tooltip_not_shown_twice /home/stevan/dev/lore/tests/test_progressive_reveal.py:293: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). account_created_at=datetime.utcnow() - timedelta(days=2), tests/test_progressive_reveal.py::TestFeatureAvailability::test_is_feature_available_at_stage /home/stevan/dev/lore/tests/test_progressive_reveal.py:319: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). account_created_at=datetime.utcnow() - timedelta(days=10), tests/test_progressive_reveal.py::TestProgressToNextStage::test_progress_at_max_stage /home/stevan/dev/lore/tests/test_progressive_reveal.py:400: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). account_created_at=datetime.utcnow() - timedelta(days=365), tests/test_progressive_reveal.py::TestUserStateReset::test_reset_clears_shown_tooltips /home/stevan/dev/lore/tests/test_progressive_reveal.py:488: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). account_created_at=datetime.utcnow() - timedelta(days=2), tests/test_background_matching_job.py::TestBackgroundMatchingJobService::test_run_matching_job_empty_vault tests/test_background_matching_job.py::TestBackgroundMatchingJobService::test_run_matching_job_with_records tests/test_background_matching_job.py::TestBackgroundMatchingJobService::test_should_run_job_after_completion tests/test_background_matching_job.py::TestBackgroundMatchingJobService::test_get_last_job_run tests/test_background_matching_job.py::TestConvenienceFunctions::test_run_background_matching /home/stevan/dev/lore/src/institutional_kb/services/background_matching_job.py:249: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). started_at = datetime.utcnow() tests/test_background_matching_job.py::TestBackgroundMatchingJobService::test_run_matching_job_empty_vault tests/test_background_matching_job.py::TestBackgroundMatchingJobService::test_run_matching_job_with_records tests/test_background_matching_job.py::TestBackgroundMatchingJobService::test_should_run_job_after_completion tests/test_background_matching_job.py::TestBackgroundMatchingJobService::test_get_last_job_run tests/test_background_matching_job.py::TestRecordFetching::test_fetch_pipedrive_persons tests/test_background_matching_job.py::TestRecordFetching::test_fetch_old_records_excluded tests/test_background_matching_job.py::TestConvenienceFunctions::test_run_background_matching /home/stevan/dev/lore/src/institutional_kb/services/background_matching_job.py:473: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). cutoff = datetime.utcnow() - timedelta(hours=lookback_hours) tests/test_background_matching_job.py::TestBackgroundMatchingJobService::test_run_matching_job_empty_vault tests/test_background_matching_job.py::TestBackgroundMatchingJobService::test_run_matching_job_with_records tests/test_background_matching_job.py::TestBackgroundMatchingJobService::test_should_run_job_after_completion tests/test_background_matching_job.py::TestBackgroundMatchingJobService::test_get_last_job_run tests/test_background_matching_job.py::TestConvenienceFunctions::test_run_background_matching /home/stevan/dev/lore/src/institutional_kb/services/background_matching_job.py:574: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). cutoff = datetime.utcnow() - timedelta(hours=lookback_hours) tests/test_background_matching_job.py::TestBackgroundMatchingJobService::test_run_matching_job_empty_vault tests/test_background_matching_job.py::TestBackgroundMatchingJobService::test_run_matching_job_with_records tests/test_background_matching_job.py::TestBackgroundMatchingJobService::test_should_run_job_after_completion tests/test_background_matching_job.py::TestBackgroundMatchingJobService::test_get_last_job_run tests/test_background_matching_job.py::TestConvenienceFunctions::test_run_background_matching /home/stevan/dev/lore/src/institutional_kb/services/background_matching_job.py:306: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). result.completed_at = datetime.utcnow() tests/test_background_matching_job.py::TestBackgroundMatchingJobService::test_run_matching_job_with_records /home/stevan/dev/lore/tests/test_background_matching_job.py:275: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). now = datetime.utcnow().isoformat() tests/test_background_matching_job.py::TestBackgroundMatchingJobService::test_should_run_job_after_completion tests/test_background_matching_job.py::TestBackgroundMatchingJobService::test_should_run_job_after_schedule_passed /home/stevan/dev/lore/src/institutional_kb/services/background_matching_job.py:1064: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). time_since_last = datetime.utcnow() - last_run.completed_at tests/test_background_matching_job.py::TestBackgroundMatchingJobService::test_should_run_job_after_schedule_passed /home/stevan/dev/lore/tests/test_background_matching_job.py:328: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). old_time = (datetime.utcnow() - timedelta(hours=25)).isoformat() tests/test_background_matching_job.py::TestRecordFetching::test_fetch_pipedrive_persons /home/stevan/dev/lore/tests/test_background_matching_job.py:371: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). now = datetime.utcnow().isoformat() tests/test_background_matching_job.py::TestRecordFetching::test_fetch_old_records_excluded /home/stevan/dev/lore/tests/test_background_matching_job.py:396: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). old_time = (datetime.utcnow() - timedelta(hours=48)).isoformat() tests/test_background_matching_job.py::TestNotifications::test_store_notification tests/test_background_matching_job.py::TestNotifications::test_notification_callback tests/test_background_matching_job.py::TestMatchNotification::test_default_values :13: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). tests/test_background_matching_job.py::TestConvenienceFunctions::test_get_pending_notifications /home/stevan/dev/lore/tests/test_background_matching_job.py:586: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). (str(notification_id), str(setup_vault), datetime.utcnow().isoformat()), tests/test_background_matching_job.py::TestConvenienceFunctions::test_mark_notification_read /home/stevan/dev/lore/tests/test_background_matching_job.py:629: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). (str(notification_id), str(setup_vault), datetime.utcnow().isoformat()), tests/test_background_matching_job.py::TestJobRunRecord::test_default_values /home/stevan/dev/lore/tests/test_background_matching_job.py:689: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). started_at=datetime.utcnow(), tests/test_source_policy.py::TestChunkMetadataSourcePolicy::test_defaults /home/stevan/dev/lore/tests/test_source_policy.py:132: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). valid_from=datetime.utcnow(), tests/test_source_policy.py::TestChunkMetadataSourcePolicy::test_defaults /home/stevan/dev/lore/tests/test_source_policy.py:138: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). source_last_modified=datetime.utcnow(), tests/test_source_policy.py::TestChunkMetadataSourcePolicy::test_explicit_external_safe /home/stevan/dev/lore/tests/test_source_policy.py:161: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). valid_from=datetime.utcnow(), tests/test_source_policy.py::TestChunkMetadataSourcePolicy::test_explicit_external_safe /home/stevan/dev/lore/tests/test_source_policy.py:167: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). source_last_modified=datetime.utcnow(), tests/test_source_policy.py::TestRetrievalFilterSourcePolicy::test_exclude_stale_filter tests/test_source_policy.py::TestRetrievalFilterSourcePolicy::test_combined_filters /home/stevan/dev/lore/src/institutional_kb/vector_store/retrieval_filter.py:363: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). today_str = datetime.utcnow().strftime("%Y-%m-%d") tests/test_source_policy.py::TestApplySourcePolicyDefaults::test_default_stays_internal tests/test_source_policy.py::TestApplySourcePolicyDefaults::test_gdrive_shared_folder tests/test_source_policy.py::TestApplySourcePolicyDefaults::test_gdrive_public_folder tests/test_source_policy.py::TestApplySourcePolicyDefaults::test_gdrive_internal_folder tests/test_source_policy.py::TestApplySourcePolicyDefaults::test_notion_public_tag tests/test_source_policy.py::TestApplySourcePolicyDefaults::test_notion_private_page tests/test_source_policy.py::TestApplySourcePolicyDefaults::test_explicit_override_preserved tests/test_source_policy.py::TestApplySourcePolicyDefaults::test_explicit_external_safe_fixes_policy tests/test_source_policy.py::TestApplySourcePolicyDefaults::test_pipedrive_stays_internal /home/stevan/dev/lore/tests/test_source_policy.py:97: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). source_last_modified=datetime.utcnow(), tests/test_source_freshness_repository.py::TestCreate::test_create_with_sync_data /home/stevan/dev/lore/tests/test_source_freshness_repository.py:125: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). now = datetime.utcnow() tests/test_source_freshness_repository.py::TestGetVaultFreshnessStatus::test_vault_freshness_fresh_when_all_fresh /home/stevan/dev/lore/tests/test_source_freshness_repository.py:260: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). now = datetime.utcnow() tests/test_source_freshness_repository.py::TestGetVaultFreshnessStatus::test_vault_freshness_stale_when_any_stale /home/stevan/dev/lore/tests/test_source_freshness_repository.py:287: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). now = datetime.utcnow() tests/test_source_freshness_repository.py::TestGetVaultFreshnessStatus::test_vault_freshness_aging_when_worst_is_aging /home/stevan/dev/lore/tests/test_source_freshness_repository.py:316: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). now = datetime.utcnow() tests/test_trust_calibration.py::TestTrustCalibrationService::test_get_default_analysis_period /home/stevan/dev/lore/src/institutional_kb/services/trust_calibration.py:473: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). end = datetime.utcnow() tests/test_session_consent_repository.py::TestConsentIsActive::test_consent_is_active_when_not_revoked /home/stevan/dev/lore/tests/test_session_consent_repository.py:278: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). granted_at=datetime.utcnow(), tests/test_session_consent_repository.py::TestConsentIsActive::test_consent_not_active_when_revoked /home/stevan/dev/lore/tests/test_session_consent_repository.py:288: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). granted_at=datetime.utcnow(), tests/test_session_consent_repository.py::TestConsentIsActive::test_consent_not_active_when_revoked /home/stevan/dev/lore/tests/test_session_consent_repository.py:289: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). revoked_at=datetime.utcnow(), tests/test_session_consent_repository.py::TestConsentIsActive::test_consent_not_active_when_expired /home/stevan/dev/lore/tests/test_session_consent_repository.py:299: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). granted_at=datetime.utcnow() - timedelta(hours=2), tests/test_session_consent_repository.py::TestConsentIsActive::test_consent_not_active_when_expired /home/stevan/dev/lore/tests/test_session_consent_repository.py:300: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). expires_at=datetime.utcnow() - timedelta(hours=1), # Expired tests/test_session_consent_repository.py::TestConsentIsActive::test_consent_not_active_when_expired /home/stevan/dev/lore/src/institutional_kb/models/session_consent.py:38: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). if self.expires_at is not None and datetime.utcnow() > self.expires_at: tests/test_post_deploy_verify.py: 7 warnings tests/test_flakiness_triage.py: 5 warnings /home/stevan/dev/lore/.venv/lib/python3.12/site-packages/jwt/api_jwt.py:147: InsecureKeyLengthWarning: The HMAC key is 11 bytes long, which is below the minimum recommended length of 32 bytes for SHA256. See RFC 7518 Section 3.2. return self._jws.encode( tests/test_welcome_api.py::TestSkipPurpose::test_skip_marks_welcome_complete tests/test_welcome_api.py::TestSkipPurpose::test_skip_uses_default_recommendations /home/stevan/dev/lore/src/institutional_kb/discovery/progressive_reveal.py:669: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). state.last_stage_change = datetime.utcnow() tests/test_compose_attachment_endpoint.py::test_upload_returns_source_key_and_chunk_count tests/test_attachment_page_manifest.py::test_compose_pdf_upload_persists_manifest_from_original_bytes /home/stevan/dev/lore/src/institutional_kb/vector_store/qdrant_client.py:106: UserWarning: Payload indexes have no effect in the local Qdrant. Please use server Qdrant if you need payload indexes. client.create_payload_index( tests/test_bm25_integration.py::TestBM25RankingIntegration::test_document_with_more_term_matches_ranks_higher /home/stevan/dev/lore/tests/test_bm25_integration.py:66: UserWarning: Payload indexes have no effect in the local Qdrant. Please use server Qdrant if you need payload indexes. qdrant_client.create_payload_index( tests/test_granola_search.py::test_hybrid_search_fuses_bm25_and_semantic_hits_with_rrf tests/test_granola_indexer.py::test_init_granola_meetings_collection_creates_collection_if_missing /home/stevan/dev/lore/src/institutional_kb/integrations/granola/indexer.py:331: UserWarning: Payload indexes have no effect in the local Qdrant. Please use server Qdrant if you need payload indexes. client.create_payload_index( -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/test_c2_run_rate_sar_semantics.py::test_non_ct_questions_do_not_escalate[how is onboarding performing this month] FAILED tests/test_c2_run_rate_sar_semantics.py::test_non_ct_questions_do_not_escalate[new signups by month] FAILED tests/test_rt011_bi_sql_llm_runtime.py::test_bi_query_router_injects_llm_sql_generator_on_runtime_paths FAILED tests/test_eval_oracle_playwright_harness.py::test_eval_gate2b_differential_scorer_detects_selection_ignored FAILED tests/test_eval_oracle_playwright_harness.py::test_eval_gate2b_quarantined_combo_does_not_block_remaining_browser_track FAILED tests/test_bi_intake_endpoints.py::test_create_path_propagates_intake_brief_into_first_turn FAILED tests/test_compose_bi_execution.py::test_run_bi_query_for_thread_preserves_the_real_service_contract FAILED tests/test_span_refine_marker_splice.py::test_refine_span_founder_scenario_stores_single_marker FAILED tests/test_span_refine_marker_splice.py::test_parser_leaves_plain_numbered_items_alone FAILED tests/test_architectural_invariants.py::TestBiInvariants::test_inv_csf3_005_bi_paths_share_pinned_connection_helper FAILED tests/test_architectural_invariants.py::TestBiInvariants::test_inv_csf2_002_bi_wildcard_over_restricted_is_blocked FAILED tests/test_content_deck_templates_b.py::TestFloorManifest::test_partner_manifest_declares_the_five_required_brief_fields FAILED tests/test_compose_floor_preflight.py::test_needs_human_floor_fact_blocks_naming_the_slot FAILED tests/test_content_deck_templates_b.py::TestFloorManifest::test_one_pager_manifest_enumerates_the_exact_floor FAILED tests/test_compose_floor_preflight.py::test_none_in_floor_slot_blocks FAILED tests/test_content_deck_templates_b.py::TestFloorManifest::test_manifest_surfaces_on_the_templates_api FAILED tests/test_compose_floor_preflight.py::test_missing_partner_client_pain_blocks_partner_affiliate FAILED tests/test_compose_floor_preflight.py::test_zero_chunks_on_floor_proof_slot_blocks FAILED tests/test_compose_floor_preflight.py::test_all_clear_proceeds_and_drafts FAILED tests/test_compose_floor_preflight.py::test_three_failures_aggregate_into_one_422_with_zero_drafts FAILED tests/test_compose_floor_preflight.py::test_too_few_pillars_blocks_as_canon_fact FAILED tests/test_compose_floor_preflight.py::test_one_pager_manifest_enumerates_the_exact_floor FAILED tests/test_bi_single_shot_federated_routing.py::test_facebook_scalar_count_dispatches_federated_ct_only FAILED tests/test_compose_floor_preflight.py::test_non_floor_zero_count_slot_warns_but_does_not_block FAILED tests/test_bi_single_shot_federated_routing.py::test_scope_guard_block_becomes_error_turn_not_500 FAILED tests/test_bi_single_shot_federated_routing.py::test_ct_only_leg_generation_carries_umbrella_directive FAILED tests/test_bi_single_shot_federated_routing.py::test_gold_only_question_keeps_todays_exact_path FAILED tests/test_bi_single_shot_federated_routing.py::test_federation_unavailable_falls_through_to_gold FAILED tests/test_pd_aggregate_member_drill.py::test_both_flavors_pass_the_live_validation_gate FAILED tests/test_compose_bi_federated_routing.py::test_founder_question_dispatches_ct_leg_and_records_provenance FAILED tests/test_compose_bi_federated_routing.py::test_ct_leg_generation_carries_the_guard_directives FAILED tests/test_compose_bi_federated_routing.py::test_gold_resident_question_stays_on_gold FAILED tests/test_compose_bi_federated_routing.py::test_no_federation_home_keeps_legacy_behavior FAILED tests/test_compose_bi_federated_routing.py::test_ct_leg_permission_denial_fails_loud FAILED tests/test_bench_adapters.py::test_legacy_adapters_cover_all_five_eval_collections_with_verified_counts FAILED tests/test_bench_adapters.py::test_load_cases_merges_legacy_adapters_and_yaml_with_unique_stable_ids FAILED tests/test_bic010_bi_metric_rollups.py::test_trend_query_missing_or_stale_rollup_falls_back_to_live_compute[None] FAILED tests/test_bic010_bi_metric_rollups.py::test_trend_query_missing_or_stale_rollup_falls_back_to_live_compute[computed_at1] FAILED tests/test_bi_paraphrase_eval_cli.py::test_default_corpus_covers_all_required_golden_keys FAILED tests/test_bi_confirm_fast_path.py::test_approved_sql_executes_without_llm_generation FAILED tests/test_bi_confirm_fast_path.py::test_high_cost_approved_query_runs_instead_of_blocking FAILED tests/test_bi_query_ssh_secret_handling.py::test_interactive_query_returns_422_needs_passphrase FAILED tests/test_bi_query_ssh_secret_handling.py::test_noninteractive_query_degrades_needs_passphrase FAILED tests/test_bi_query_ssh_secret_handling.py::test_validation_error_returns_http_400_with_explicit_column_remediation FAILED tests/test_bi_query_ssh_secret_handling.py::test_cost_gate_unavailable_ssh_returns_http_503 FAILED tests/test_rt010_bi_query_definition_resolver_runtime.py::test_bi_query_runtime_paths_inject_shared_definition_resolver FAILED tests/test_rt010_bi_query_definition_resolver_runtime.py::test_bi_query_runtime_resolver_empty_match_still_succeeds FAILED tests/test_bi_ssh_revocation_e2e.py::test_in_flight_query_reports_tunnel_lost_when_owner_revoked 48 failed, 27515 passed, 21 skipped, 1534 warnings in 649.13s (0:10:49)