feat(v3): Source Trust Weighting (Sprint 1 PR 2) #2

Merged
andre merged 1 commit from a1/sentinel-v3-trust into main 2026-06-12 19:50:45 +00:00
Owner

Summary

  • src/source-trust.js: Neues Modul — getWeight / getWeightedConsensus / updateWeightsFromFeedback / seedDefaultWeights / getWeightsForCustomer
  • src/db.js: Tabelle source_trust_weights (additive, safe on existing DBs) + getJobSnapshotsFlat()
  • src/feedback-handler.js: Lernschritt via updateWeightsFromFeedback nach jedem Feedback-Event (TRUE_POSITIVE/FALSE_POSITIVE)
  • src/verdict-emitter.js: Trust-gewichtete Konfidenz HIGH/MEDIUM/LOW auf Basis von ip+hostname-Konsens, Fallback auf mode-basiert wenn keine Snapshots vorhanden
  • src/app.js: GET /trust/:customerId (auth)
  • src/index.js: seedDefaultWeights() beim Start
  • test/source-trust.test.js: 16 neue Tests

Test plan

  • 219 Tests gesamt grün (npm test)
  • CRA: RFC-9A7CCDAD APPROVED, Score 0
  • GET /trust/:customerId gibt Gewichte zurück
  • Nach Feedback-Event handleFeedback(...): Log [source-trust] updated N weights
  • Verdict confidence ändert sich bei Quellen-Konflikt auf LOW wenn CMDB ≠ snmp_arp
## Summary - `src/source-trust.js`: Neues Modul — `getWeight` / `getWeightedConsensus` / `updateWeightsFromFeedback` / `seedDefaultWeights` / `getWeightsForCustomer` - `src/db.js`: Tabelle `source_trust_weights` (additive, safe on existing DBs) + `getJobSnapshotsFlat()` - `src/feedback-handler.js`: Lernschritt via `updateWeightsFromFeedback` nach jedem Feedback-Event (TRUE_POSITIVE/FALSE_POSITIVE) - `src/verdict-emitter.js`: Trust-gewichtete Konfidenz `HIGH`/`MEDIUM`/`LOW` auf Basis von `ip`+`hostname`-Konsens, Fallback auf mode-basiert wenn keine Snapshots vorhanden - `src/app.js`: `GET /trust/:customerId` (auth) - `src/index.js`: `seedDefaultWeights()` beim Start - `test/source-trust.test.js`: 16 neue Tests ## Test plan - [ ] 219 Tests gesamt grün (`npm test`) - [ ] CRA: RFC-9A7CCDAD APPROVED, Score 0 - [ ] `GET /trust/:customerId` gibt Gewichte zurück - [ ] Nach Feedback-Event `handleFeedback(...)`: Log `[source-trust] updated N weights` - [ ] Verdict `confidence` ändert sich bei Quellen-Konflikt auf `LOW` wenn CMDB ≠ snmp_arp
feat(v3): Source Trust Weighting (Sprint 1 PR 2)
Some checks failed
CI / test (pull_request) Failing after 599h52m4s
CI / test (push) Failing after 599h52m33s
d633934816
- src/source-trust.js: getWeight/getWeightedConsensus/updateWeightsFromFeedback/seedDefaultWeights
- src/db.js: Tabelle source_trust_weights (additive Migration) + getJobSnapshotsFlat()
- src/feedback-handler.js: Lernschritt bei jedem Feedback-Event
- src/verdict-emitter.js: trust-gewichtete Konfidenz HIGH/MEDIUM/LOW statt statisch mode-basiert
- src/app.js: GET /trust/:customerId (auth)
- src/index.js: seedDefaultWeights() beim Start
- test/source-trust.test.js: 16 neue Tests, 219 gesamt grün
- CRA: RFC-9A7CCDAD APPROVED

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
andre merged commit 0e085e4756 into main 2026-06-12 19:50:45 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
andre/ticketflow-sentinel!2
No description provided.