{
  "audit": "actual-source deterministic scan-interruption audit",
  "repository": "/private/tmp/410-scan-audit-20260922/latest-876bd88",
  "head": "876bd88b8ae523794ba04c197c6478601116ab98",
  "working_tree_clean": true,
  "repository_unchanged_during_audit": true,
  "source_sha256": {
    "app/src/main/java/com/cpt/zhct/weighting/activity/HomeActivity.java": "20cc1064c0045998523f5e82534a7d829ac02b166b427f3820823174a3ed3ab7",
    "app/src/main/java/com/cpt/zhct/weighting/antiescape/AlarmType.java": "5777e51726e4fbc52df471a38d8b05a638a28b0dac728c54736e8d7b9606ae76",
    "app/src/main/java/com/cpt/zhct/weighting/antiescape/TrayRemovalConfirmationCountConfig.java": "21212093890922a08ae04ba9f9f21a021e6be5b3ca775a257e91aa8f36a2a0db",
    "app/src/main/java/com/cpt/zhct/weighting/antiescape/TrayRemovalConfirmationCountPolicy.java": "3b7e45f8f406472726520fcb82d0b0cb3611d7140c36f9422f1ee83796fdbe3d",
    "app/src/main/java/com/cpt/zhct/weighting/antiescape/UnlockCodePolicy.java": "70f52d5e187de618e9ac81d89c1594d29c6ae46d317c9c15af32d98f87fe3c30",
    "app/src/main/java/com/cpt/zhct/weighting/hardware/YoukateHardwareManager.java": "67d407e6ef858c22e4349aca0918fed6fb5608efb3f5ade170e4858e5282505d",
    "app/src/main/java/com/cpt/zhct/weighting/utils/Constants.java": "29401f6b6668159a92808c9f9c0a38890630aae9c4ad2d1562a2c1e9f7562f14"
  },
  "extracted_method_sha256": {
    "private void handleYoukateScanCode(String scanCode)": "a59bcaa2e231ec763aa8bc2db0828297c2b9903b060e66317e4d3de2f1563c5c",
    "private void handleEmptyScanCode()": "56320415e6ae3d1c95ae82d54700240409a2fc57753fb585beab869350a275e9",
    "private String cleanScanCode(String code)": "64d852de557264eb0552f3cc67f0c64bd8375b608126a6c696f7ab786f83acaa"
  },
  "test_assets_sha256": {
    "run_audit.py": "4c9245c5613b429e5a6679a37abd94c3b23bdc429185c17a906fa398fa32650f",
    "flow-template.java.txt": "8b8ee678074a5e538e0fe43189407eae048a1713b7744ff88e9b92ada5d34120",
    "boundary-stubs.json": "1f3acf1e2fdf212e25e5171aa38837445b725a59a29bc474cb79400d68ab25e3"
  },
  "javac": "/Users/jack/Library/Java/JavaVirtualMachines/openjdk-17.0.2/Contents/Home/bin/javac",
  "result_count": 17,
  "results": [
    "PASS Actual config: upgraded installation without stored key becomes 3",
    "PASS Actual config: fresh installation uses current declared default",
    "PASS Actual config: saved 3 preserved",
    "PASS Actual config: above-current-maximum value repaired to current default",
    "PASS Actual extracted flow: 7 consecutive empty callbacks end exactly once",
    "PASS Actual extracted flow: same ordinary valid code clears empty counter",
    "PASS Actual extracted methods: three nonempty short codes become empty and trigger removal",
    "PASS Actual extracted cleaner: CRLF appended to six digits is rejected before cleaning (PC681 parser normally trims ends first)",
    "PASS Actual extracted normal-flow branch: ignored admin code does not reset empty count",
    "PASS Actual extracted flow: 3 callbacks without delays end (duration_us=3)",
    "PASS Actual extracted routing: a different valid code directly starts recognition without removal callback",
    "PASS Actual methods: N=3 empty callbacks end session; immediate same-code recovery starts new recognition; replay_us=1372",
    "PASS Actual methods: N=7 empty callbacks end session; immediate same-code recovery starts new recognition; replay_us=18",
    "PASS Actual methods: N=12 empty callbacks end session; immediate same-code recovery starts new recognition; replay_us=12",
    "PASS Actual methods: N=15 empty callbacks end session; immediate same-code recovery starts new recognition; replay_us=17",
    "PASS Actual methods: N=30 empty callbacks end session; immediate same-code recovery starts new recognition; replay_us=24",
    "PASS Actual methods: same code returning before N=12 cancels pending empty count without ending"
  ],
  "boundary": "No native SDK, Android lifecycle, UI transactions, database, network, serial port or hardware executed. PASS reproduces current behavior; it does not assert product correctness. Business source copies and class files were temporary and removed."
}
