diff --git a/docs/product-technical-gap-baseline.md b/docs/product-technical-gap-baseline.md
index e65883463..3b5f19d85 100644
--- a/docs/product-technical-gap-baseline.md
+++ b/docs/product-technical-gap-baseline.md
@@ -21,6 +21,6 @@
- **Zotero Integration**: Papers and standards referenced by TEPP must be synced via Local Zotero API (http://localhost:23119/api/) and cited using APA 7th edition in docstrings.
- **Testing**: We need actual testing of Psychometrics (Fast-MLSIRM parameter calibration, RMSE of estimates, Fixed-Item Parameter Calibration, CAT) against synthetic/demo data.
- **Security & Compliance**: PII masking cannot break the system. Need SOC 2 and CSAP compliance alternatives to blind PII masking.
-- **LLM Orchestration**: Ensure ALL LLM calls route through `contextual-orchestrator` utilizing API keys (BYTEZ, NVIDIA, OPENROUTER, OPENAI) with auto model discovery and optimal reasoning effort allocation (Fugu/Conductor/TRINITY research).
+- **LLM Orchestration**: Partially resolved -- every one of `backend/app/main.py`'s 13 orchestrator client factories (`_keyman_extraction_client`, `_entity_relationship_client`, `_organization_name_resolution_client`, `_customer_hint_resolution_client`, `_corporate_hierarchy_inference_client`, `_post_summary_client`, `_adjudication_client`, `_post_structure_client`, `_post_chat_client`, `_commitment_extraction_client`, `_vision_client`, `_embedding_client`, `_post_evaluation_client`) routes through `settings.orchestrator_base_url`/`orchestrator_api_key` -- confirmed no hardcoded provider SDK, key, or endpoint (`OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `BYTEZ_API_KEY`, `NVIDIA_NIM_API_KEY`, `OPENROUTER_API_KEY`) appears anywhere in `lineageweave/`, `backend/`, or `scripts/`. Generative and VISION requests send `"mode": "auto"` plus a `reasoning_effort` value, delegating model selection and reasoning-depth allocation per call; the embedding client uses the orchestrator's dedicated embedding contract and correctly has no reasoning-depth field. Still open: exact-head upstream evidence that `contextual-orchestrator` discovers all configured provider credentials and applies its Fugu/Conductor/TRINITY policy. That evidence must be fixed in the upstream repository when absent; LineageWeave client routing alone does not prove it.
*This document is continuously updated by the hourly automated agent loop.*
diff --git a/frontend/src/App.test.tsx b/frontend/src/App.test.tsx
index 7462abd2c..9582ae69e 100644
--- a/frontend/src/App.test.tsx
+++ b/frontend/src/App.test.tsx
@@ -28,19 +28,25 @@ beforeEach(() => {
afterEach(() => {
vi.unstubAllGlobals();
+ window.sessionStorage.clear();
+ window.localStorage.clear();
});
describe("App, unauthenticated", () => {
it("shows a login button that starts the real OIDC redirect", async () => {
+ window.history.replaceState({}, "", "/?post=abc#details");
render(