feat: Schlüssel und gemeinsamer Kern für Sprachnotizen (T7 L2 Tasks 5+6)
Task 5: Schlüsselbund-Zweck voice (VOICE_ENCRYPTION_KEY), AES-256-GCM- Hilfen für Text und Bytes mit AAD capture:<id>:<art>, voice-config (Modell, Tageslimit, Aufnahme, Whisper-Grösse) und anthropic-config (nie geloggt, nur worker/all), Startprüfung verlangt den Schlüssel in Produktion in jeder Rolle, rekey versiegelt offene Sprachnotizen neu (Audio einzeln gelesen, CAS mit Status), Secret-Vorlagen und ensure-secrets.sh ergänzt. Task 6: Text-Normalisierung und Bereinigung (Steuer- und Formatzeichen, Codepoint-Kürzung), Zitatprüfung mit Dezimalzahlen als ein Wort (Ruling 7), Felderliste passend zu CreateInspectionDto, versiegeltes Transkript mit Grenzen, Fachwörter und Skalen mit Paritätstests. Rollout: Ein Image mit diesem Stand startet in Produktion nur mit VOICE_ENCRYPTION_KEY in apicore-backend-secret (ARCHITECTURE Annahme 22). Gates: Backend tsc, eslint, 922 Unit-Tests, e2e 100 Suites / 1004 Tests. Refs #27 #28 Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
1 parent
2a4dc868d9
commit
9795f98006
27 files changed
+2212
-31
No files matched your search
@@ -0,0 +1,26 @@
|
||||
[
|
||||
{
|
||||
"field": "broodPattern",
|
||||
"storedOne": "lückenhaft",
|
||||
"storedFive": "geschlossen",
|
||||
"anchors": { "lückenhaft": 1, "mittel": 3, "geschlossen": 5 }
|
||||
},
|
||||
{
|
||||
"field": "swarmMood",
|
||||
"storedOne": "ruhig",
|
||||
"storedFive": "stark",
|
||||
"anchors": { "ruhig": 1, "mittel": 3, "stark": 5 }
|
||||
},
|
||||
{
|
||||
"field": "gentleness",
|
||||
"storedOne": "stechlustig",
|
||||
"storedFive": "sehr sanft",
|
||||
"anchors": { "stechlustig": 1, "normal": 3, "sehr sanft": 5 }
|
||||
},
|
||||
{
|
||||
"field": "combBehavior",
|
||||
"storedOne": "läuft weg",
|
||||
"storedFive": "sitzt ruhig",
|
||||
"anchors": { "läuft weg": 1, "mittel": 3, "sitzt ruhig": 5 }
|
||||
}
|
||||
]
|
||||
@@ -314,6 +314,8 @@ describe('rekey job (e2e)', () => {
|
||||
},
|
||||
},
|
||||
webhookSubscription: prisma.webhookSubscription,
|
||||
voiceCapture: prisma.voiceCapture,
|
||||
voiceCaptureAudio: prisma.voiceCaptureAudio,
|
||||
} as unknown as PrismaService;
|
||||
|
||||
const result = await new RekeyJob(racing).run([]);
|
||||
|
||||
Reference in new issue
Block a user