Repository navigation
Features
- feat(study-data): stratified win statistics and Table 14.2.3 for the device study (#3690)
- feat(study-data): device ADaM with ADQS and a per-study ADHCE hierarchy (#3689)
- feat(study-data): device VSFS scores in SDTM QS, tabulated through the domain list (#3686)
- feat(study-data): device deaths and adjudicated CE events in SDTM DS and CE (#3683)
- feat(study-data): randomise the device study by ratio and strata (#3678)
- feat(study-data): derive the actual arm from exposure, with not-dosed and unplanned scenarios (#3674)
- feat(study-data): add SDTM SE and CO from the trial elements and comments form (#3665)
- feat(study-data): SDTM RELREC linking AE records to concomitant treatment (#3659)
- feat(clinical-standards): add the USDM v4 classes Protocol Studio needs (#3663)
- feat(a11y): useOptionalAnnouncer returns null outside a provider (#3476) (#3657)
- feat(crf): add the AE seriousness criteria to CRF Studio's CDASH catalog (#3649)
- feat(trial-and-error): generate PlayCabinet controls from the hand key map (#3653)
- feat(retro-labyrinth): save at room boundaries and offer Resume on Launch (#3633)
- feat(retro-labyrinth): add the versioned run save module (#3626)
Fixes
- fix(crf): restore what the #3684 boundary checks wrongly refused (#3687)
- fix(study-data): give an unplanned treatment received its own TLF column (#3680)
- fix(platform): take each DEMO-301 subject's site from DM.SITEID (#3675)
- fix(dx): generate prisma client in pretypecheck and support windows in test-staged (#3669)
- fix(deps): patch glob and minimatch for GHSA-3g3m-2fjr-6pw4 and GHSA-g3hv-75wg-m249 (#3670)
- fix(study-data): clamp small-n net benefit confidence limits to [-1, 1] (#3419) (#3654)
- fix(study-data): carry SITEID and COUNTRY into ADSL (#3651)
- fix(study-data): download a package whose data breaks a non-extensible codelist (#3648)
- fix(setup): validate provider values before saving (#3647)
- fix(neuro): keep NeuroRecon viewer toolbars inside 320 to 393 px screens (#3632)
- fix(proof): fit the Proof Canvas tab strip and toolbar buttons on phones (#3630)
- fix(hooks): cover staged Vitest ESM configuration (#3631)
- fix(study): reject missing CLI option values before writing (#3624)
- fix(study): reject malformed nested workspace envelopes (#3623)
- fix(boundaries): hold root lib files to package entry points (#3622)
- fix(crf): stop describing simulated signatures as cryptographic (#3621)
- fix(cache): stop caching case-study fallbacks after database errors (#3620)
- fix(setup): recover missing Prisma client (#3605)
- fix(build): skip TypeDoc on Vercel and replace both heap flag spellings (#3129)
Other changes
- refactor(arcade): move game manuals into lib/arcade/manuals with re-export (#3487) (#3695)
- ci(mutation): shard the weekly study data run by layer, and give game engines room (#3694)
- ci(governance): skip structural issues in Issue Hygiene (#3693)
- ci(study-data): report the required CDISC CORE check on every pull request (#3692)
- docs(study-data): win ratio method note in the ADRG (#3691)
- test(crf): property tests and branch coverage for the CRF diff, upgrade and USDM adapter (#3688)
- chore(deps): add a monthly re-audit of the npm overrides (#3685)
- refactor(crf): check the nine JSON-to-type boundaries instead of casting (#3684)
- chore(deps): drop the fast-glob to tinyglobby swap (#3682)
- dx(hooks): leave the recorded CORE findings check to npm test and CI (#3679)
- chore(deps): drop eight stale npm overrides and scope the rest (#3681)
- refactor(crf): typed diffFields for the study baseline diff (#3677)
- refactor(content): case-study entries in per-study modules, old file kept as a re-export (#3488) (#3668)
- ci(study-data): name the refresh when main's recorded CORE findings go stale (#3666)
- docs(agents): link the project skills into .claude/skills and record which tool reads which folder (#3500) (#3662)
- refactor(audit): move license-policy and security-audit-ignore into config (#3178) (#3661)
- chore(hooks): one mount-state hook for error boundaries (#3478) (#3660)
- refactor(utils): replace local formatBytes and clamp copies with lib/utils (#3480) (#3658)
- refactor(arcade): group achievement definitions by game under lib/arcade/achievements (#3489) (#3656)
- refactor(proof): move proof-utils behind lib/proof public index (#3491) (#3655)
- refactor(meme-vault): extract useMemeVaultSession from MemeVaultClient (#3645)
- refactor(for-better-or-bulk): extract a session hook from ForBetterOrBulkGame.tsx (#3644)
- refactor(patty): extract usePattySession from PattyDriveThruGame.tsx (#3643)
- refactor(quasi-perfect): extract useQuasiSession from QuasiPerfectPuzzler.tsx (#3642)
- refactor(duck): extract useDuckSession from WorkingWithDuck.tsx (#3641)
- refactor(trial-and-error): extract useTrialAndErrorSession and its events (#3639)
- refactor(monkey-c): extract useMonkeyCSession from GarminWatchSimulator.tsx (#3638)
- refactor(study-director): extract the desk and office session hooks (#3636)
- test(e2e): wait for Study Director's dialogs to take focus before Escape (#3640)
- refactor(clinical-chaos): extract useClinicalChaosSession from ClinicalTrialChaos.tsx (#3635)
- test(e2e): poll for the Daily Protocol hand in Trial & Error (#3637)
- test(e2e): seed the Retro Labyrinth walk and wait for a route (#3634)
- refactor(laser-loon): extract useLaserLoonSession from LaserLoon.tsx (#3629)
- test(study-data): ConformancePanel and pipeline client tests (#3628)
- test(study-data): Define viewer, KM figure and roving grid tests (#3627)
- refactor(api): wrap the media and webhook route handlers in the route wrapper (#3625)
- Guide backup and release readiness (#3606)
- docs(governance): retire the deleted project boards (#3604)
- chore(study-data): make the CDISC Library sync dispatch-only (#3599)
- docs(governance): roadmap plan and project 19 setup (#3600)
- ci(release): let an operator run the weekly train past a release hold (#3206)
- dx(guard): point cloud sessions to dx/ branches (#3193)
- docs(issues): add issue governance doc, task form and hygiene check (#3184)
- refactor(protocol-drift): one pure chip placement search (part of #2471) (#3170)
- dx: move the mutation-testing configs into config/stryker/ (#3134)
- docs: move root working documents into docs/ (#3133)
- ci(build): build under Vercel's 2-core, 8 GB limits in CI and the train (#3132)
- dx(docs): stop committing the generated TypeDoc reference (#3131)
Commit: a32dd8da309e1316f8a8ef8a1dd66bbe094f72e8
Full changelog: v1.1.0...v1.2.0