What's Changed
User Modules
- [Fullstack] Fix: maintainer cache invalidation (dependency keys) + subcategory delete cascade by @mrivas00 in #393
- [API] Fix: measurement-unit referenceCount excludes soft-deleted & superseded dependents (+ delete guard) by @mrivas00 in #400
- [Fullstack] Fix: cascade catalog soft-delete and block rename/re-parent of in-use profiling catalogs by @mrivas00 in #401
- [FRONT] Feat: optional comment on approving a submission by @mrivas00 in #409
- [Fullstack] Fix: clear 409 when a login email belongs to a different identity by @nivek0o0 in #432
- feat: chatbot foundation phase (v0) by @nicoalegria11 in #276
- [Fullstack] Feat: reduction-project DRAFT status & submit-for-recognition flow by @mrivas00 in #414
- [Fullstack] Feat: guided welcome home onboarding by @mrivas00 in #448
- fix(web): target in-flight assistant bubble by id in useChatStream by @nivek0o0 in #499
- fix(web): correct gender agreement in the RESTORE_ON_ACTIVE message by @nivek0o0 in #508
- fix(api): map concurrent position collisions to DimensionPositionAlreadyTakenError by @nivek0o0 in #519
- feat(web): expert-mode onboarding + session-agnostic completion by @mrivas00 in #526
General
- [Docs] Docs: clarify the country-agnostic principle (data + service ports) by @mrivas00 in #394
- [Fullstack] Feat: add provider-agnostic storage adapter (Azure Blob + MinIO) by @mrivas00 in #366
- [API] Feat: MinIO storage relay — serve presigned URLs through the API, keep MinIO internal by @mrivas00 in #406
- [Fullstack] Feat: generic OIDC authentication provider (replace MSAL) by @mrivas00 in #397
- [Docs] Docs: OpenSSF Best Practices badge self-assessments by @nivek0o0 in #413
- [Fullstack] Fix: remove transitive dependency vulnerabilities by @nivek0o0 in #412
- chore(deps): bump fastify-plugin from 5.1.0 to 6.0.0 by @dependabot[bot] in #429
- chore(deps): bump fastify-type-provider-zod from 6.1.0 to 7.0.0 by @dependabot[bot] in #431
- [Docs] Fix: streamline getting-started docs, fix stale references, add link-check CI by @nivek0o0 in #433
- [CI] Feat: add zizmor GitHub Actions static analysis gate by @nivek0o0 in #435
- chore(deps): bump the minor-and-patch group across 1 directory with 11 updates by @dependabot[bot] in #422
- [CI] Chore: bump all GitHub Actions and clear zizmor findings by @nivek0o0 in #440
- chore(deps-dev): bump @eslint/js from 9.39.4 to 10.0.1 by @dependabot[bot] in #430
- chore(deps): bump nginxinc/nginx-unprivileged from
ee7751ctodefdc1cin /apps/web by @dependabot[bot] in #419 - chore: ignore MUI Core major bumps in Dependabot until v9 upgrade by @nivek0o0 in #444
- [FRONT] Chore: bump MUI X packages (charts, data-grid, date-pickers) to v9 by @nivek0o0 in #442
- [Infra] Chore: bump Node runtime to 26-alpine (+ corepack & tsc-alias fixes) by @nivek0o0 in #441
- chore(deps): bump @fastify/swagger-ui from 5.2.6 to 6.0.0 by @dependabot[bot] in #445
- chore(deps): ignore eslint v10 major in dependabot (+ fix duplicate ignore key) by @nivek0o0 in #451
- [Infra] Chore: bump vitest to 4.1.10 via catalog and freeze eslint ecosystem majors by @nivek0o0 in #452
- [Infra] Chore: pin all external base images by version@digest by @nivek0o0 in #453
- [Infra] Chore: sync Dockerfile turbo pin to root + fix cooldown comment by @nivek0o0 in #455
- chore(deps): keep web nginx on stable branch, ignore mainline bumps by @nivek0o0 in #457
- chore: DPG readiness remediation (AGPL-3.0, governance, privacy, CI hardening) by @Nolski in #407
- chore(github): add issue/PR templates and SUPPORT.md by @nivek0o0 in #463
- ci: skip heavy jobs on docs-only PRs (deadlock-safe) by @nivek0o0 in #464
- test: per-file database isolation + parallel test files (prototype) by @nivek0o0 in #465
- docs(openssf): re-assess badge tiers after DPG readiness & public repo by @nivek0o0 in #469
- [Docs] Fix: drop stale AZURE_* auth vars from JWKS credentials note by @nivek0o0 in #470
- chore(github): add refactor issue template, extend label taxonomy, manage labels as code by @nivek0o0 in #471
- [CI] Chore: segment CI tests into base + per-provider storage legs by @mrivas00 in #468
- docs(change-workflow): document namespaced PR labels by @nivek0o0 in #479
- [DevX] Feat: opt-in per-worktree isolation for parallel git worktrees by @nivek0o0 in #478
- [Infra] Feat: add hardened Keycloak production stack (shared DB, unified docs) by @mrivas00 in #458
- fix(api): verify DB connectivity at startup with a real query by @nivek0o0 in #481
- chore(docker): bump node from
725aebatoe3bc686in /apps/web by @dependabot[bot] in #462 - chore(docker): bump node from
725aebatoe3bc686in /apps/api by @dependabot[bot] in #461 - chore(deps): bump @types/node from 26.0.1 to 26.1.0 by @dependabot[bot] in #459
- ci: add coverage gate, OpenSSF Scorecard, and Trivy image scanning by @nivek0o0 in #483
- fix(api): drop npm from runtime image to clear undici CVE-2026-12151 by @nivek0o0 in #484
- [Infra] Security: enforce HTTPS-only and TLS 1.2 on API App Service by @mrivas00 in #486
- infra(compose): add operator-invoked prod migrate/seed one-shot services by @nivek0o0 in #485
- fix(seed): require reachable object storage for the base seed by @nivek0o0 in #487
- chore(ci): bump lycheeverse/lychee-action from 2.8.0 to 2.9.0 by @dependabot[bot] in #491
- test(api): raise branch coverage to 80% and restore branch gate by @nivek0o0 in #494
- refactor(api): make @fastify/under-pressure thresholds env-configurable by @nivek0o0 in #495
- test(web): establish Vitest test convention and cover useChatStream by @nivek0o0 in #496
- test(web): add a global coverage floor and enforce it in CI by @nivek0o0 in #500
- docs: refresh system-architecture and add codebase-map by @nivek0o0 in #501
- test(web): cover the pure-function util layer and raise the coverage floor by @nivek0o0 in #507
- test(api): unit-test hard-to-reach modules; raise coverage gate to 90% by @nivek0o0 in #509
- test(web): cover access hooks and stores, raise the coverage floor by @nivek0o0 in #510
- test(web): cover the label/chip mappers, raise the coverage floor by @nivek0o0 in #513
- test(web): cover exporters, fuzzy search, file & role helpers; raise floor by @nivek0o0 in #516
- docs(web): reflect that apps/web is now unit-tested by @nivek0o0 in #517
- test(api): raise apps/api branch coverage to 90% and lift the gate by @nivek0o0 in #518
- chore(openspec): archive 3 completed changes into the live spec set by @nivek0o0 in #521
- docs(openspec): reconcile live specs with implementation and fix validation by @nivek0o0 in #522
- refactor(api): unify test coverage under one Vitest projects config by @mrivas00 in #515
- fix(api): isolate JWKS env in tests from ambient .envrc leak by @mrivas00 in #531
- refactor(scripts): standardize workspace scripts and add infra-ready test stubs by @mrivas00 in #530
New Contributors
Full Changelog: 1.5.0...1.6.0