Commit graph

15 commits

Author SHA1 Message Date
Ida
93cb6939dc feat: frontend consent integration 2026-04-29 14:39:40 +02:00
Ida
6a5ff1ff7c feat(rag): P1 user-connection hooks + retrieval threshold fix
- 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
2026-04-29 14:39:40 +02:00
Ida
dff3d41845 fix(rag): stable ingestion idempotency across re-extractions (AC4)
Re-indexing the same file always triggered a full embedding run —
ingestion.skipped.duplicate never fired. Two independent causes:

1. _computeIngestionHash included contentObjectId in its payload, but
   extractors generate fresh uuid4() per run, making the hash a
   per-run nonce. Now hashed over (contentType, data) in extractor
   order — stable across re-extractions, sensitive to content,
   ordering, and type changes.
2. _autoIndexFile upserted the fresh pre-scan FileContentIndex before
   requestIngestion's duplicate check, wiping structure._ingestion
   and status=indexed from the prior run. The pre-upsert now merges
   the existing _ingestion metadata and preserves the indexed status.

Verified end-to-end: second PATCH /scope on an already-indexed file
logs  and returns in ~2s
with zero embedding API calls.

Adds test_ingestion_hash_stability.py (5 cases).
2026-04-29 14:39:40 +02:00
Ida
9d82d3d353 P0: injection facade 2026-04-29 14:39:40 +02:00
ValueOn AG
24f0c3e2eb cleanup internal marked exports 2026-04-26 08:31:35 +02:00
ValueOn AG
4dfc0afd06 fixed language logic items 2026-04-11 19:44:58 +02:00
ValueOn AG
e0a09ae6b1 streamlined neutralization flow 2026-03-30 00:14:57 +02:00
ValueOn AG
7e88005721 unified failsafe neutralization architecture 2026-03-29 21:55:09 +02:00
ValueOn AG
3ac25a269a streamlined billing incl ai and storage budget 2026-03-29 12:18:58 +02:00
ValueOn AG
75484c0f73 BREAKING CHANGE
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).
2026-03-28 18:12:37 +01:00
ValueOn AG
efe540b4f9 fixing round 1 2026-03-28 16:59:01 +01:00
ValueOn AG
8b161ed410 unified data - step 1 2026-03-24 14:16:46 +01:00
ValueOn AG
8cf31077a6 fixed global RAG and admin consent msft 2026-03-22 01:20:44 +01:00
ValueOn AG
4e843761a9 Cleaned backend and enhanced ai call failover modes 2026-03-17 22:51:05 +01:00
ValueOn AG
7fe6f9bc97 new ai agent 2026-03-15 23:38:21 +01:00