- connection.established/revoked callbacks from OAuth routes and
connection management endpoints
- KnowledgeIngestionConsumer dispatches bootstrap job (established)
and synchronous purge (revoked)
- FileContentIndex: add connectionId + sourceKind columns
- SharePoint bootstrap with @odata.nextLink pagination and eTag-based
idempotency
- Outlook bootstrap treats messages as virtual documents with
cleanEmailBody for HTML/quote/signature stripping
- fix(rag): lower buildAgentContext minScore thresholds from
0.55/0.65/0.70 to 0.35 — previous values blocked all real matches
from text-embedding-3-small
- 24 new unit tests covering purge, consumer dispatch, email cleaning
and both bootstrap paths
API and persisted records use PowerOnModel system fields:
- sysCreatedAt, sysCreatedBy, sysModifiedAt, sysModifiedBy
Removed legacy JSON/DB field names:
- _createdAt, _createdBy, _modifiedAt, _modifiedBy
Frontend (frontend_nyla) and gateway call sites were updated accordingly.
Database:
- Bootstrap runs idempotent backfill (_migrateSystemFieldColumns) from old
underscore columns and selected business duplicates into sys* where sys* IS NULL.
- Re-run app bootstrap against each PostgreSQL database after deploy.
- Optional: DROP INDEX IF EXISTS "idx_invitation_createdby" if an old index remains;
new index: idx_invitation_syscreatedby on Invitation(sysCreatedBy).
Tests:
- RBAC integration tests aligned with current GROUP mandate filter and UserMandate-based
UserConnection GROUP clause; buildRbacWhereClause(..., mandateId=...) must be passed
explicitly (same as production request context).