{
  "schemaVersion": 1,
  "registerVersion": "2026-09-08.1",
  "evidenceCheckedOn": "2026-09-08",
  "productReviewDate": "2026-08-11",
  "targetTenetVersion": "1.1.127",
  "sourceCommit": "d169bd3885e3897fd97459d37588371ea0fd4490",
  "scope": "Tenet Edge on district-managed Chrome. Local automated checks do not establish signed-in vendor compatibility.",
  "controlKeys": ["managedAccess", "promptChecks", "districtGuidance", "textDlp", "files", "images", "voice", "responses"],
  "vendorRecords": [
    {"id":"V01","product":"ChatGPT","surface":"chatgpt.com direct chat","account":null,"testedOn":null,"tenetVersion":null,"evidenceId":null,"controls":{"managedAccess":"unverified","promptChecks":"unverified","districtGuidance":"unverified","textDlp":"unverified","files":"unverified","images":"unverified","voice":"unverified","responses":"unverified"}},
    {"id":"V02","product":"Claude","surface":"claude.ai direct chat","account":null,"testedOn":null,"tenetVersion":null,"evidenceId":null,"controls":{"managedAccess":"unverified","promptChecks":"unverified","districtGuidance":"unverified","textDlp":"unverified","files":"unverified","images":"unverified","voice":"unverified","responses":"unverified"}},
    {"id":"V03","product":"Gemini","surface":"gemini.google.com/app direct chat","account":null,"testedOn":null,"tenetVersion":null,"evidenceId":null,"controls":{"managedAccess":"unverified","promptChecks":"unverified","districtGuidance":"unverified","textDlp":"unverified","files":"unverified","images":"unverified","voice":"unverified","responses":"unverified"}},
    {"id":"V04","product":"Microsoft Copilot web","surface":"copilot.microsoft.com direct chat","account":null,"testedOn":null,"tenetVersion":null,"evidenceId":null,"controls":{"managedAccess":"unverified","promptChecks":"unverified","districtGuidance":"unverified","textDlp":"unverified","files":"unverified","images":"unverified","voice":"unverified","responses":"unverified"}},
    {"id":"V05","product":"Bing chat","surface":"www.bing.com chat; exact active route not recorded","account":null,"testedOn":null,"tenetVersion":null,"evidenceId":null,"controls":{"managedAccess":"unverified","promptChecks":"unverified","districtGuidance":"unverified","textDlp":"unverified","files":"unverified","images":"unverified","voice":"unverified","responses":"unverified"}},
    {"id":"V06","product":"Grok","surface":"grok.com direct chat","account":null,"testedOn":null,"tenetVersion":null,"evidenceId":null,"controls":{"managedAccess":"unverified","promptChecks":"unverified","districtGuidance":"unverified","textDlp":"unverified","files":"unverified","images":"unverified","voice":"unverified","responses":"unverified"}},
    {"id":"V07","product":"MagicSchool MagicStudent","surface":"student.magicschool.ai student room composer","account":null,"testedOn":null,"tenetVersion":null,"evidenceId":null,"controls":{"managedAccess":"unverified","promptChecks":"unverified","districtGuidance":"unverified","textDlp":"unverified","files":"unverified","images":"unverified","voice":"unverified","responses":"unverified"}},
    {"id":"V08","product":"MagicSchool Raina","surface":"app.magicschool.ai Raina educator chat; exact route not recorded","account":null,"testedOn":null,"tenetVersion":null,"evidenceId":null,"controls":{"managedAccess":"unverified","promptChecks":"unverified","districtGuidance":"unverified","textDlp":"unverified","files":"unverified","images":"unverified","voice":"unverified","responses":"unverified"}},
    {"id":"V09","product":"SchoolAI Dot","surface":"student.schoolai.com/dot/spaces student composer","account":null,"testedOn":null,"tenetVersion":null,"evidenceId":null,"controls":{"managedAccess":"unverified","promptChecks":"unverified","districtGuidance":"unverified","textDlp":"unverified","files":"unverified","images":"unverified","voice":"unverified","responses":"unverified"}},
    {"id":"V10","product":"Brisk Boost","surface":"app.briskteaching.com student Boost activity; exact route not recorded","account":null,"testedOn":null,"tenetVersion":null,"evidenceId":null,"controls":{"managedAccess":"unverified","promptChecks":"unverified","districtGuidance":"unverified","textDlp":"unverified","files":"unverified","images":"unverified","voice":"unverified","responses":"unverified"}}
  ],
  "localRecords": [
    {
      "id":"L01","testedOn":"2026-09-08","tenetVersion":"1.1.127","status":"limited",
      "surface":"Local plain-text file processor in a simulated browser runtime",
      "account":"Synthetic policy and roster fixtures; no signed-in vendor account",
      "result":"8/8 passed: clean text; email redaction and exact-output verification; refusal on unsupported or oversized input, missing runtime, span overflow, parser error, malformed roster, failed verification, or policy failure.",
      "limit":"Plain-text processor evidence only. Does not prove a vendor receives the protected file, or validate PDF, Office documents, image OCR, voice, or responses.",
      "testFile":"packages/tenet/src/core/tests/file-dlp-result-contract.test.mjs","passed":8,"failed":0,"skipped":0
    },
    {
      "id":"L02","testedOn":"2026-09-08","tenetVersion":"1.1.127","status":"limited",
      "surface":"Simulated file picker and drag/drop events; scanner outcomes are test doubles",
      "account":"Synthetic client runtime; no signed-in vendor account",
      "result":"7/7 passed: blocked drag/drop with picker guidance; notice deduplication; drag suppression; picker failure clears input; multi-file forwarding; one rejected file blocks the selection; malformed verification is rejected.",
      "limit":"Event-contract evidence only. Does not prove native vendor attachment handling, scanning accuracy, or outbound file bytes.",
      "testFile":"packages/tenet/src/core/tests/file-input-sanitizer-result-contract.test.mjs","passed":7,"failed":0,"skipped":0
    },
    {
      "id":"L03","testedOn":"2026-09-08","tenetVersion":"1.1.127","status":"limited",
      "surface":"Local sensitive-data decision engine in a simulated browser runtime",
      "account":"Synthetic student and teacher policy fixtures; no verified vendor account",
      "result":"17/17 passed: sensitive-record decisions; identity findings; rejection of caller-asserted account approval; policy validation; verified text transformation; refusal on residual identifiers and roster-matcher errors.",
      "limit":"Decision-engine evidence only. Does not establish classification accuracy on arbitrary content or delivery behavior in a signed-in vendor composer.",
      "testFile":"packages/tenet/src/core/tests/dlp-sensitive-decision-engine.test.mjs","passed":17,"failed":0,"skipped":0
    },
    {
      "id":"L04","testedOn":"2026-09-08","tenetVersion":"1.1.127","status":"limited",
      "surface":"Local teacher DLP policy resolver and source-route checks",
      "account":"Synthetic teacher policy fixtures; no verified teacher session",
      "result":"3/3 passed: block/redact/legacy-override selection; active product-specific policy precedence; prompt and upload source routes carry the selected mode and reason-code precedence.",
      "limit":"Resolver and source-route evidence only. Does not prove live teacher authorization, visible warnings, or vendor submission behavior.",
      "testFile":"packages/tenet/src/core/tests/teacher-dlp-mode-routing.test.mjs","passed":3,"failed":0,"skipped":0
    }
  ]
}
