diff --git a/docs/product-technical-gap-baseline.md b/docs/product-technical-gap-baseline.md index e65883463..053edac61 100644 --- a/docs/product-technical-gap-baseline.md +++ b/docs/product-technical-gap-baseline.md @@ -19,7 +19,7 @@ ## 3. General Architecture Gaps - **DB Architecture**: Ensure PostgreSQL is strictly used (no file DBs), 3rd normal form is maintained, and Hot Partitions are handled. DB locks must be managed (or use read/write replicas). - **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. +- **Testing**: (Partially resolved -- FIPC) `tests/test_fast_mlsirm_fipc_recovery.py` now exists, exercising the actual production functions (`fit_polytomous`, `score_polytomous`, `cat_simulate_polytomous`) for Fixed-Item Parameter Calibration against synthetic data with known ground truth. It simulates a two-period design matching `period_report.py`'s own documented rationale ("Independent refits would re-center each week at 0 and hide real movement") and proves the claim directly -- FIPC-scoring period 2 on period 1's fixed item bank recovers a deliberate period-2 mean shift (~0.37 detected vs. ~0.43 true), while an independent free refit of the identical period-2 data re-centers to ~0.01, erasing the shift entirely. Not a placebo comparison; the test asserts both outcomes. The remaining three recovery tests this entry asked for -- GRM (`tests/test_fast_mlsirm_grm_recovery.py`, #451), GPCM (`_gpcm_recovery.py`, #452), and CAT (`_cat_recovery.py`, #453) -- are on separate open PRs, not yet in this tree; once all three land this entry is (Resolved). - **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). diff --git a/frontend/src/App.test.tsx b/frontend/src/App.test.tsx index 7462abd2c..70eb27590 100644 --- a/frontend/src/App.test.tsx +++ b/frontend/src/App.test.tsx @@ -41,6 +41,9 @@ describe("App, unauthenticated", () => { state: expect.objectContaining({ returnUrl: expect.stringMatching(/^\//) }), }), ); + // Persisted as a fallback in case the OIDC state round-trip is dropped + // (see oidcReturnUrl.ts's restoreOidcReturnUrl, consumed in main.tsx). + expect(window.sessionStorage.getItem("lineageweave.oidc.returnUrl")).toMatch(/^\//); }); }); diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 6fba0dd41..1b5b351ab 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -4610,7 +4610,8 @@ export default function App({ showLabPanels = false }: { showLabPanels?: boolean
- {destination === "admin" ? : null}