{"ts":"2026-06-01T19:52:28+08:00","date":"2026-06-01","gate":"changelog","result":"PASS","detail":"2026-06-01-asyncssh-sftp-api-fix.md 25lines"} {"ts":"2026-06-01T19:52:28+08:00","date":"2026-06-01","gate":"audit","result":"PASS","detail":"2026-06-01-bug-audit.md"} {"ts":"2026-06-01T19:52:28+08:00","date":"2026-06-01","gate":"test","result":"BLOCK","detail":"tests failed"} {"ts":"2026-06-01T19:52:28+08:00","date":"2026-06-01","gate":"lint","result":"SKIP","detail":"ruff not installed"} {"ts":"2026-06-01T19:52:28+08:00","date":"2026-06-01","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-01T19:52:28+08:00","date":"2026-06-01","gate":"security","result":"SKIP","detail":"bandit not installed"} {"ts":"2026-06-01T19:52:28+08:00","date":"2026-06-01","gate":"review","result":"BLOCK","detail":"audit missing changed files"} {"ts":"2026-06-01T19:52:28+08:00","date":"2026-06-01","gate":"summary","result":"BLOCK","detail":"5/7"} {"ts":"2026-06-04T01:02:50+08:00","date":"2026-06-04","gate":"changelog","result":"PASS","detail":"2026-06-04-encoding-ubuntu-phase1.md 32lines"} {"ts":"2026-06-04T01:02:50+08:00","date":"2026-06-04","gate":"audit","result":"BLOCK","detail":"missing sections"} {"ts":"2026-06-04T01:02:50+08:00","date":"2026-06-04","gate":"test","result":"BLOCK","detail":"tests failed"} {"ts":"2026-06-04T01:02:50+08:00","date":"2026-06-04","gate":"lint","result":"SKIP","detail":"ruff not installed"} {"ts":"2026-06-04T01:02:50+08:00","date":"2026-06-04","gate":"import","result":"BLOCK","detail":"import/syntax error"} {"ts":"2026-06-04T01:02:50+08:00","date":"2026-06-04","gate":"security","result":"SKIP","detail":"bandit not installed"} {"ts":"2026-06-04T01:02:50+08:00","date":"2026-06-04","gate":"review","result":"BLOCK","detail":"audit missing changed files"} {"ts":"2026-06-04T01:02:50+08:00","date":"2026-06-04","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-04T01:02:50+08:00","date":"2026-06-04","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-04T01:02:50+08:00","date":"2026-06-04","gate":"summary","result":"BLOCK","detail":"3/7"} {"ts":"2026-06-04T13:12:37+08:00","date":"2026-06-04","gate":"changelog","result":"PASS","detail":"2026-06-04-production-deploy.md 36lines"} {"ts":"2026-06-04T13:12:37+08:00","date":"2026-06-04","gate":"audit","result":"PASS","detail":"2026-06-04-production-deploy.md"} {"ts":"2026-06-04T13:12:37+08:00","date":"2026-06-04","gate":"test","result":"BLOCK","detail":"tests failed"} {"ts":"2026-06-04T13:12:37+08:00","date":"2026-06-04","gate":"lint","result":"SKIP","detail":"ruff not installed"} {"ts":"2026-06-04T13:12:37+08:00","date":"2026-06-04","gate":"import","result":"BLOCK","detail":"import/syntax error"} {"ts":"2026-06-04T13:12:37+08:00","date":"2026-06-04","gate":"security","result":"SKIP","detail":"bandit not installed"} {"ts":"2026-06-04T13:12:37+08:00","date":"2026-06-04","gate":"review","result":"BLOCK","detail":"audit missing changed files"} {"ts":"2026-06-04T13:12:37+08:00","date":"2026-06-04","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-04T13:12:37+08:00","date":"2026-06-04","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-04T13:12:37+08:00","date":"2026-06-04","gate":"summary","result":"BLOCK","detail":"4/7"} {"ts":"2026-06-04T13:12:52+08:00","date":"2026-06-04","gate":"changelog","result":"PASS","detail":"2026-06-04-production-deploy.md 36lines"} {"ts":"2026-06-04T13:12:52+08:00","date":"2026-06-04","gate":"audit","result":"PASS","detail":"2026-06-04-production-deploy.md"} {"ts":"2026-06-04T13:12:52+08:00","date":"2026-06-04","gate":"test","result":"BLOCK","detail":"tests failed"} {"ts":"2026-06-04T13:12:52+08:00","date":"2026-06-04","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-04T13:12:52+08:00","date":"2026-06-04","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-04T13:12:52+08:00","date":"2026-06-04","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-04T13:12:52+08:00","date":"2026-06-04","gate":"review","result":"PASS","detail":"audit covers changes"} {"ts":"2026-06-04T13:12:52+08:00","date":"2026-06-04","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-04T13:12:52+08:00","date":"2026-06-04","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-04T13:12:52+08:00","date":"2026-06-04","gate":"summary","result":"BLOCK","detail":"6/7"} {"ts":"2026-06-04T13:27:18+08:00","date":"2026-06-04","gate":"changelog","result":"PASS","detail":"2026-06-04-production-deploy.md 36lines"} {"ts":"2026-06-04T13:27:18+08:00","date":"2026-06-04","gate":"audit","result":"PASS","detail":"2026-06-04-production-deploy.md"} {"ts":"2026-06-04T13:27:18+08:00","date":"2026-06-04","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-04T13:27:18+08:00","date":"2026-06-04","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-04T13:27:18+08:00","date":"2026-06-04","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-04T13:27:18+08:00","date":"2026-06-04","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-04T13:27:18+08:00","date":"2026-06-04","gate":"review","result":"PASS","detail":"audit covers changes"} {"ts":"2026-06-04T13:27:18+08:00","date":"2026-06-04","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-04T13:27:18+08:00","date":"2026-06-04","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-04T13:27:18+08:00","date":"2026-06-04","gate":"summary","result":"PASS","detail":"7/7"} {"ts":"2026-06-04T13:29:40+08:00","date":"2026-06-04","gate":"changelog","result":"PASS","detail":"2026-06-04-production-deploy.md 36lines"} {"ts":"2026-06-04T13:29:40+08:00","date":"2026-06-04","gate":"audit","result":"PASS","detail":"2026-06-04-production-deploy.md"} {"ts":"2026-06-04T13:29:40+08:00","date":"2026-06-04","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-04T13:29:40+08:00","date":"2026-06-04","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-04T13:29:40+08:00","date":"2026-06-04","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-04T13:29:40+08:00","date":"2026-06-04","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-04T13:29:40+08:00","date":"2026-06-04","gate":"review","result":"PASS","detail":"audit covers changes"} {"ts":"2026-06-04T13:29:40+08:00","date":"2026-06-04","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-04T13:29:40+08:00","date":"2026-06-04","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-04T13:29:40+08:00","date":"2026-06-04","gate":"summary","result":"PASS","detail":"7/7"} {"ts":"2026-06-04T14:08:04+08:00","date":"2026-06-04","gate":"changelog","result":"PASS","detail":"2026-06-04-production-deploy.md 36lines"} {"ts":"2026-06-04T14:08:04+08:00","date":"2026-06-04","gate":"audit","result":"PASS","detail":"2026-06-04-production-deploy.md"} {"ts":"2026-06-04T14:08:04+08:00","date":"2026-06-04","gate":"test","result":"BLOCK","detail":"tests failed"} {"ts":"2026-06-04T14:08:04+08:00","date":"2026-06-04","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-04T14:08:04+08:00","date":"2026-06-04","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-04T14:08:04+08:00","date":"2026-06-04","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-04T14:08:04+08:00","date":"2026-06-04","gate":"review","result":"BLOCK","detail":"audit missing changed files"} {"ts":"2026-06-04T14:08:04+08:00","date":"2026-06-04","gate":"shell_eol","result":"BLOCK","detail":"CR in tracked sh"} {"ts":"2026-06-04T14:08:04+08:00","date":"2026-06-04","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-04T14:08:04+08:00","date":"2026-06-04","gate":"summary","result":"BLOCK","detail":"5/7"} {"ts":"2026-06-04T15:56:02+08:00","date":"2026-06-04","gate":"changelog","result":"PASS","detail":"2026-06-04-risk-acceptance-single-operator.md 32lines"} {"ts":"2026-06-04T15:56:02+08:00","date":"2026-06-04","gate":"audit","result":"PASS","detail":"2026-06-04-code-review-p1-p2-batch3.md"} {"ts":"2026-06-04T15:56:02+08:00","date":"2026-06-04","gate":"test","result":"BLOCK","detail":"tests failed"} {"ts":"2026-06-04T15:56:02+08:00","date":"2026-06-04","gate":"lint","result":"SKIP","detail":"ruff not installed"} {"ts":"2026-06-04T15:56:02+08:00","date":"2026-06-04","gate":"import","result":"BLOCK","detail":"import/syntax error"} {"ts":"2026-06-04T15:56:02+08:00","date":"2026-06-04","gate":"security","result":"SKIP","detail":"bandit not installed"} {"ts":"2026-06-04T15:56:02+08:00","date":"2026-06-04","gate":"review","result":"BLOCK","detail":"audit missing changed files"} {"ts":"2026-06-04T15:56:02+08:00","date":"2026-06-04","gate":"shell_eol","result":"BLOCK","detail":"CR in tracked sh"} {"ts":"2026-06-04T15:56:02+08:00","date":"2026-06-04","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-04T15:56:02+08:00","date":"2026-06-04","gate":"summary","result":"BLOCK","detail":"4/7"} {"ts":"2026-06-04T15:58:11+08:00","date":"2026-06-04","gate":"changelog","result":"PASS","detail":"2026-06-04-risk-acceptance-single-operator.md 32lines"} {"ts":"2026-06-04T15:58:11+08:00","date":"2026-06-04","gate":"audit","result":"PASS","detail":"2026-06-04-code-review-production-deploy.md"} {"ts":"2026-06-04T15:58:11+08:00","date":"2026-06-04","gate":"test","result":"BLOCK","detail":"tests failed"} {"ts":"2026-06-04T15:58:11+08:00","date":"2026-06-04","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-04T15:58:11+08:00","date":"2026-06-04","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-04T15:58:11+08:00","date":"2026-06-04","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-04T15:58:11+08:00","date":"2026-06-04","gate":"review","result":"BLOCK","detail":"audit missing changed files"} {"ts":"2026-06-04T15:58:11+08:00","date":"2026-06-04","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-04T15:58:11+08:00","date":"2026-06-04","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-04T15:58:11+08:00","date":"2026-06-04","gate":"summary","result":"BLOCK","detail":"5/7"} {"ts":"2026-06-04T16:00:07+08:00","date":"2026-06-04","gate":"changelog","result":"PASS","detail":"2026-06-04-risk-acceptance-single-operator.md 32lines"} {"ts":"2026-06-04T16:00:07+08:00","date":"2026-06-04","gate":"audit","result":"PASS","detail":"2026-06-04-code-review-production-deploy.md"} {"ts":"2026-06-04T16:00:07+08:00","date":"2026-06-04","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-04T16:00:07+08:00","date":"2026-06-04","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-04T16:00:07+08:00","date":"2026-06-04","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-04T16:00:07+08:00","date":"2026-06-04","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-04T16:00:07+08:00","date":"2026-06-04","gate":"review","result":"BLOCK","detail":"audit missing changed files"} {"ts":"2026-06-04T16:00:07+08:00","date":"2026-06-04","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-04T16:00:07+08:00","date":"2026-06-04","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-04T16:00:07+08:00","date":"2026-06-04","gate":"summary","result":"BLOCK","detail":"6/7"} {"ts":"2026-06-04T17:20:14+08:00","date":"2026-06-04","gate":"changelog","result":"PASS","detail":"2026-06-04-audit-wave-d8-phase1-closure.md 27lines"} {"ts":"2026-06-04T17:20:14+08:00","date":"2026-06-04","gate":"audit","result":"PASS","detail":"2026-06-04-code-review-production-deploy.md"} {"ts":"2026-06-04T17:20:14+08:00","date":"2026-06-04","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-04T17:20:14+08:00","date":"2026-06-04","gate":"lint","result":"SKIP","detail":"ruff not installed"} {"ts":"2026-06-04T17:20:14+08:00","date":"2026-06-04","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-04T17:20:14+08:00","date":"2026-06-04","gate":"security","result":"SKIP","detail":"bandit not installed"} {"ts":"2026-06-04T17:20:14+08:00","date":"2026-06-04","gate":"review","result":"BLOCK","detail":"audit missing changed files"} {"ts":"2026-06-04T17:20:14+08:00","date":"2026-06-04","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-04T17:20:14+08:00","date":"2026-06-04","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-04T17:20:14+08:00","date":"2026-06-04","gate":"summary","result":"BLOCK","detail":"6/7"} {"ts":"2026-06-04T19:09:52+08:00","date":"2026-06-04","gate":"changelog","result":"PASS","detail":"2026-06-04-l4-local-playwright-pass.md 35lines"} {"ts":"2026-06-04T19:09:52+08:00","date":"2026-06-04","gate":"audit","result":"PASS","detail":"2026-06-04-code-review-production-deploy.md"} {"ts":"2026-06-04T19:09:52+08:00","date":"2026-06-04","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-04T19:09:52+08:00","date":"2026-06-04","gate":"lint","result":"SKIP","detail":"ruff not installed"} {"ts":"2026-06-04T19:09:52+08:00","date":"2026-06-04","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-04T19:09:52+08:00","date":"2026-06-04","gate":"security","result":"SKIP","detail":"bandit not installed"} {"ts":"2026-06-04T19:09:52+08:00","date":"2026-06-04","gate":"review","result":"BLOCK","detail":"audit missing changed files"} {"ts":"2026-06-04T19:09:52+08:00","date":"2026-06-04","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-04T19:09:52+08:00","date":"2026-06-04","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-04T19:09:52+08:00","date":"2026-06-04","gate":"summary","result":"BLOCK","detail":"6/7"} {"ts":"2026-06-04T19:30:22+08:00","date":"2026-06-04","gate":"changelog","result":"PASS","detail":"2026-06-04-audit-phase2-p2-7-9-closure.md 33lines"} {"ts":"2026-06-04T19:30:22+08:00","date":"2026-06-04","gate":"audit","result":"PASS","detail":"2026-06-04-plugin-audit-gate7-closure.md"} {"ts":"2026-06-04T19:30:22+08:00","date":"2026-06-04","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-04T19:30:22+08:00","date":"2026-06-04","gate":"lint","result":"SKIP","detail":"ruff not installed"} {"ts":"2026-06-04T19:30:22+08:00","date":"2026-06-04","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-04T19:30:22+08:00","date":"2026-06-04","gate":"security","result":"SKIP","detail":"bandit not installed"} {"ts":"2026-06-04T19:30:22+08:00","date":"2026-06-04","gate":"review","result":"PASS","detail":"audit covers changes"} {"ts":"2026-06-04T19:30:22+08:00","date":"2026-06-04","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-04T19:30:22+08:00","date":"2026-06-04","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-04T19:30:22+08:00","date":"2026-06-04","gate":"summary","result":"PASS","detail":"7/7"} {"ts":"2026-06-04T19:34:06+08:00","date":"2026-06-04","gate":"changelog","result":"PASS","detail":"2026-06-04-audit-frontend-14p-batch-deep.md 37lines"} {"ts":"2026-06-04T19:34:06+08:00","date":"2026-06-04","gate":"audit","result":"PASS","detail":"2026-06-04-plugin-audit-gate7-closure.md"} {"ts":"2026-06-04T19:34:06+08:00","date":"2026-06-04","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-04T19:34:06+08:00","date":"2026-06-04","gate":"lint","result":"SKIP","detail":"ruff not installed"} {"ts":"2026-06-04T19:34:06+08:00","date":"2026-06-04","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-04T19:34:06+08:00","date":"2026-06-04","gate":"security","result":"SKIP","detail":"bandit not installed"} {"ts":"2026-06-04T19:34:06+08:00","date":"2026-06-04","gate":"review","result":"PASS","detail":"audit covers changes"} {"ts":"2026-06-04T19:34:06+08:00","date":"2026-06-04","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-04T19:34:06+08:00","date":"2026-06-04","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-04T19:34:06+08:00","date":"2026-06-04","gate":"summary","result":"PASS","detail":"7/7"} {"ts":"2026-06-04T19:35:26+08:00","date":"2026-06-04","gate":"changelog","result":"PASS","detail":"2026-06-04-audit-plugin-run-final.md 30lines"} {"ts":"2026-06-04T19:35:26+08:00","date":"2026-06-04","gate":"audit","result":"PASS","detail":"2026-06-04-plugin-audit-gate7-closure.md"} {"ts":"2026-06-04T19:35:26+08:00","date":"2026-06-04","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-04T19:35:26+08:00","date":"2026-06-04","gate":"lint","result":"SKIP","detail":"ruff not installed"} {"ts":"2026-06-04T19:35:26+08:00","date":"2026-06-04","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-04T19:35:26+08:00","date":"2026-06-04","gate":"security","result":"SKIP","detail":"bandit not installed"} {"ts":"2026-06-04T19:35:26+08:00","date":"2026-06-04","gate":"review","result":"PASS","detail":"audit covers changes"} {"ts":"2026-06-04T19:35:26+08:00","date":"2026-06-04","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-04T19:35:26+08:00","date":"2026-06-04","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-04T19:35:26+08:00","date":"2026-06-04","gate":"summary","result":"PASS","detail":"7/7"} {"ts":"2026-06-04T19:58:01+08:00","date":"2026-06-04","gate":"changelog","result":"PASS","detail":"2026-06-04-docs-consolidation.md 37lines"} {"ts":"2026-06-04T19:58:01+08:00","date":"2026-06-04","gate":"audit","result":"PASS","detail":"2026-06-04-docs-consolidation.md"} {"ts":"2026-06-04T19:58:01+08:00","date":"2026-06-04","gate":"test","result":"BLOCK","detail":"tests failed"} {"ts":"2026-06-04T19:58:01+08:00","date":"2026-06-04","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-04T19:58:01+08:00","date":"2026-06-04","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-04T19:58:01+08:00","date":"2026-06-04","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-04T19:58:01+08:00","date":"2026-06-04","gate":"review","result":"BLOCK","detail":"audit missing changed files"} {"ts":"2026-06-04T19:58:01+08:00","date":"2026-06-04","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-04T19:58:01+08:00","date":"2026-06-04","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-04T19:58:01+08:00","date":"2026-06-04","gate":"summary","result":"BLOCK","detail":"5/7"} {"ts":"2026-06-04T23:47:38+08:00","date":"2026-06-04","gate":"changelog","result":"PASS","detail":"2026-06-04-audit-phase2-p2-6-sync-engine-full.md 32lines"} {"ts":"2026-06-04T23:47:38+08:00","date":"2026-06-04","gate":"audit","result":"PASS","detail":"2026-06-04-docs-consolidation.md"} {"ts":"2026-06-04T23:47:38+08:00","date":"2026-06-04","gate":"test","result":"BLOCK","detail":"tests failed"} {"ts":"2026-06-04T23:47:38+08:00","date":"2026-06-04","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-04T23:47:38+08:00","date":"2026-06-04","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-04T23:47:38+08:00","date":"2026-06-04","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-04T23:47:38+08:00","date":"2026-06-04","gate":"review","result":"BLOCK","detail":"audit missing changed files"} {"ts":"2026-06-04T23:47:38+08:00","date":"2026-06-04","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-04T23:47:38+08:00","date":"2026-06-04","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-04T23:47:38+08:00","date":"2026-06-04","gate":"summary","result":"BLOCK","detail":"5/7"} {"ts":"2026-06-07T01:44:38+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-install-locked-404.md 34lines"} {"ts":"2026-06-07T01:44:38+08:00","date":"2026-06-07","gate":"audit","result":"BLOCK","detail":"file not found"} {"ts":"2026-06-07T01:44:38+08:00","date":"2026-06-07","gate":"test","result":"BLOCK","detail":"tests failed"} {"ts":"2026-06-07T01:44:38+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T01:44:38+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T01:44:38+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T01:44:38+08:00","date":"2026-06-07","gate":"review","result":"BLOCK","detail":"no audit file"} {"ts":"2026-06-07T01:44:38+08:00","date":"2026-06-07","gate":"shell_eol","result":"BLOCK","detail":"CR in tracked sh"} {"ts":"2026-06-07T01:44:38+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T01:44:38+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"4/7"} {"ts":"2026-06-07T03:16:37+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-agent-per-server-key-enforced.md 47lines"} {"ts":"2026-06-07T03:16:37+08:00","date":"2026-06-07","gate":"audit","result":"BLOCK","detail":"file not found"} {"ts":"2026-06-07T03:16:37+08:00","date":"2026-06-07","gate":"test","result":"BLOCK","detail":"tests failed"} {"ts":"2026-06-07T03:16:37+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T03:16:37+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T03:16:37+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T03:16:37+08:00","date":"2026-06-07","gate":"review","result":"BLOCK","detail":"no audit file"} {"ts":"2026-06-07T03:16:37+08:00","date":"2026-06-07","gate":"shell_eol","result":"BLOCK","detail":"CR in tracked sh"} {"ts":"2026-06-07T03:16:37+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T03:16:37+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"4/7"} {"ts":"2026-06-07T03:17:09+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-agent-per-server-key-enforced.md 47lines"} {"ts":"2026-06-07T03:17:09+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-bl06-agent-per-server-key.md"} {"ts":"2026-06-07T03:17:09+08:00","date":"2026-06-07","gate":"test","result":"BLOCK","detail":"tests failed"} {"ts":"2026-06-07T03:17:09+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T03:17:09+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T03:17:09+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T03:17:09+08:00","date":"2026-06-07","gate":"review","result":"BLOCK","detail":"audit missing changed files"} {"ts":"2026-06-07T03:17:09+08:00","date":"2026-06-07","gate":"shell_eol","result":"BLOCK","detail":"CR in tracked sh"} {"ts":"2026-06-07T03:17:09+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T03:17:09+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"5/7"} {"ts":"2026-06-07T12:01:55+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-code-review-followups.md 29lines"} {"ts":"2026-06-07T12:01:55+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-bl06-agent-per-server-key.md"} {"ts":"2026-06-07T12:01:55+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-07T12:01:55+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T12:01:55+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T12:01:55+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T12:01:55+08:00","date":"2026-06-07","gate":"review","result":"BLOCK","detail":"audit missing changed files"} {"ts":"2026-06-07T12:01:55+08:00","date":"2026-06-07","gate":"shell_eol","result":"BLOCK","detail":"CR in tracked sh"} {"ts":"2026-06-07T12:01:55+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T12:01:55+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"6/7"} {"ts":"2026-06-07T12:02:39+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-code-review-followups.md 42lines"} {"ts":"2026-06-07T12:02:39+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-code-review-followups.md"} {"ts":"2026-06-07T12:02:39+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-07T12:02:39+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T12:02:39+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T12:02:39+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T12:02:39+08:00","date":"2026-06-07","gate":"review","result":"BLOCK","detail":"audit missing changed files"} {"ts":"2026-06-07T12:02:39+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-07T12:02:39+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T12:02:39+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"6/7"} {"ts":"2026-06-07T12:02:49+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-code-review-followups.md 42lines"} {"ts":"2026-06-07T12:02:49+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-code-review-followups.md"} {"ts":"2026-06-07T12:02:49+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-07T12:02:49+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T12:02:49+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T12:02:49+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T12:02:49+08:00","date":"2026-06-07","gate":"review","result":"PASS","detail":"audit covers changes"} {"ts":"2026-06-07T12:02:49+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-07T12:02:49+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T12:02:49+08:00","date":"2026-06-07","gate":"summary","result":"PASS","detail":"7/7"} {"ts":"2026-06-07T12:32:11+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-code-review-followups.md 42lines"} {"ts":"2026-06-07T12:32:11+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-code-review-followups.md"} {"ts":"2026-06-07T12:32:11+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-07T12:32:11+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T12:32:11+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T12:32:11+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T12:32:11+08:00","date":"2026-06-07","gate":"review","result":"PASS","detail":"audit covers changes"} {"ts":"2026-06-07T12:32:11+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-07T12:32:11+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T12:32:11+08:00","date":"2026-06-07","gate":"summary","result":"PASS","detail":"7/7"} {"ts":"2026-06-07T12:35:38+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-deploy-ssh-secrets.md 29lines"} {"ts":"2026-06-07T12:35:38+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-code-review-followups.md"} {"ts":"2026-06-07T12:35:38+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-07T12:35:38+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T12:35:38+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T12:35:38+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T12:35:38+08:00","date":"2026-06-07","gate":"review","result":"BLOCK","detail":"audit missing changed files"} {"ts":"2026-06-07T12:35:38+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-07T12:35:38+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T12:35:38+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"6/7"} {"ts":"2026-06-07T12:35:53+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-deploy-ssh-secrets.md 29lines"} {"ts":"2026-06-07T12:35:53+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-code-review-followups.md"} {"ts":"2026-06-07T12:35:53+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-07T12:35:53+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T12:35:53+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T12:35:53+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T12:35:53+08:00","date":"2026-06-07","gate":"review","result":"PASS","detail":"audit covers changes"} {"ts":"2026-06-07T12:35:53+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-07T12:35:53+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T12:35:53+08:00","date":"2026-06-07","gate":"summary","result":"PASS","detail":"7/7"} {"ts":"2026-06-07T17:25:18+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-probe-curl-parse-fix.md 35lines"} {"ts":"2026-06-07T17:25:18+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-code-review-followups.md"} {"ts":"2026-06-07T17:25:18+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-07T17:25:18+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T17:25:18+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T17:25:18+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T17:25:18+08:00","date":"2026-06-07","gate":"review","result":"PASS","detail":"audit covers changes"} {"ts":"2026-06-07T17:25:18+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-07T17:25:18+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T17:25:18+08:00","date":"2026-06-07","gate":"summary","result":"PASS","detail":"7/7"} {"ts":"2026-06-07T18:05:19+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-probe-curl-parse-fix.md 39lines"} {"ts":"2026-06-07T18:05:19+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-code-review-followups.md"} {"ts":"2026-06-07T18:05:19+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-07T18:05:19+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T18:05:19+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T18:05:19+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T18:05:19+08:00","date":"2026-06-07","gate":"review","result":"PASS","detail":"audit covers changes"} {"ts":"2026-06-07T18:05:19+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-07T18:05:19+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T18:05:19+08:00","date":"2026-06-07","gate":"summary","result":"PASS","detail":"7/7"} {"ts":"2026-06-07T19:29:17+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-settings-telegram-detect-chat-id.md 29lines"} {"ts":"2026-06-07T19:29:17+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-code-review-followups.md"} {"ts":"2026-06-07T19:29:17+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-07T19:29:17+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T19:29:17+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T19:29:17+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T19:29:17+08:00","date":"2026-06-07","gate":"review","result":"BLOCK","detail":"audit missing changed files"} {"ts":"2026-06-07T19:29:17+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-07T19:29:17+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T19:29:17+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"6/7"} {"ts":"2026-06-07T19:29:31+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-settings-telegram-detect-chat-id.md 29lines"} {"ts":"2026-06-07T19:29:31+08:00","date":"2026-06-07","gate":"audit","result":"BLOCK","detail":"missing sections"} {"ts":"2026-06-07T19:29:31+08:00","date":"2026-06-07","gate":"test","result":"BLOCK","detail":"tests failed"} {"ts":"2026-06-07T19:29:31+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T19:29:31+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T19:29:31+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T19:29:31+08:00","date":"2026-06-07","gate":"review","result":"BLOCK","detail":"audit missing changed files"} {"ts":"2026-06-07T19:29:31+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-07T19:29:31+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T19:29:31+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"4/7"} {"ts":"2026-06-07T19:29:59+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-settings-telegram-detect-chat-id.md 29lines"} {"ts":"2026-06-07T19:29:59+08:00","date":"2026-06-07","gate":"audit","result":"BLOCK","detail":"missing sections"} {"ts":"2026-06-07T19:29:59+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-07T19:29:59+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T19:29:59+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T19:29:59+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T19:29:59+08:00","date":"2026-06-07","gate":"review","result":"BLOCK","detail":"audit missing changed files"} {"ts":"2026-06-07T19:29:59+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-07T19:29:59+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T19:29:59+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"5/7"} {"ts":"2026-06-07T19:30:41+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-settings-telegram-detect-chat-id.md 29lines"} {"ts":"2026-06-07T19:30:41+08:00","date":"2026-06-07","gate":"audit","result":"BLOCK","detail":"missing sections"} {"ts":"2026-06-07T19:30:41+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-07T19:30:41+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T19:30:41+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T19:30:41+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T19:30:41+08:00","date":"2026-06-07","gate":"review","result":"PASS","detail":"audit covers changes"} {"ts":"2026-06-07T19:30:41+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-07T19:30:41+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T19:30:41+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"6/7"} {"ts":"2026-06-07T19:30:49+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-settings-telegram-detect-chat-id.md 29lines"} {"ts":"2026-06-07T19:30:49+08:00","date":"2026-06-07","gate":"audit","result":"BLOCK","detail":"missing sections"} {"ts":"2026-06-07T19:30:49+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-07T19:30:49+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T19:30:49+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T19:30:49+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T19:30:49+08:00","date":"2026-06-07","gate":"review","result":"PASS","detail":"audit covers changes"} {"ts":"2026-06-07T19:30:49+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-07T19:30:49+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T19:30:49+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"6/7"} {"ts":"2026-06-07T19:31:03+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-settings-telegram-detect-chat-id.md 29lines"} {"ts":"2026-06-07T19:31:03+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-settings-telegram-detect-chat-id.md"} {"ts":"2026-06-07T19:31:03+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-07T19:31:03+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T19:31:03+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T19:31:03+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T19:31:03+08:00","date":"2026-06-07","gate":"review","result":"PASS","detail":"audit covers changes"} {"ts":"2026-06-07T19:31:03+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-07T19:31:03+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T19:31:03+08:00","date":"2026-06-07","gate":"summary","result":"PASS","detail":"7/7"} {"ts":"2026-06-07T19:33:34+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-settings-ip-allowlist-subscription.md 27lines"} {"ts":"2026-06-07T19:33:34+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-settings-ip-allowlist-subscription.md"} {"ts":"2026-06-07T19:33:34+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-07T19:33:34+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T19:33:34+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T19:33:34+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T19:33:34+08:00","date":"2026-06-07","gate":"review","result":"BLOCK","detail":"audit missing changed files"} {"ts":"2026-06-07T19:33:34+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-07T19:33:34+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T19:33:34+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"6/7"} {"ts":"2026-06-07T19:33:45+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-settings-ip-allowlist-subscription.md 27lines"} {"ts":"2026-06-07T19:33:45+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-settings-ip-allowlist-subscription.md"} {"ts":"2026-06-07T19:33:45+08:00","date":"2026-06-07","gate":"test","result":"BLOCK","detail":"tests failed"} {"ts":"2026-06-07T19:33:45+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T19:33:45+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T19:33:45+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T19:33:45+08:00","date":"2026-06-07","gate":"review","result":"BLOCK","detail":"audit missing changed files"} {"ts":"2026-06-07T19:33:45+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-07T19:33:45+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T19:33:45+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"5/7"} {"ts":"2026-06-07T19:34:00+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-settings-ip-allowlist-subscription.md 27lines"} {"ts":"2026-06-07T19:34:00+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-settings-ip-allowlist-subscription.md"} {"ts":"2026-06-07T19:34:00+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-07T19:34:00+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T19:34:00+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T19:34:00+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T19:34:00+08:00","date":"2026-06-07","gate":"review","result":"BLOCK","detail":"audit missing changed files"} {"ts":"2026-06-07T19:34:00+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-07T19:34:00+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T19:34:00+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"6/7"} {"ts":"2026-06-07T19:34:14+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-settings-ip-allowlist-subscription.md 27lines"} {"ts":"2026-06-07T19:34:14+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-settings-ip-allowlist-subscription.md"} {"ts":"2026-06-07T19:34:14+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-07T19:34:14+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T19:34:14+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T19:34:14+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T19:34:14+08:00","date":"2026-06-07","gate":"review","result":"PASS","detail":"audit covers changes"} {"ts":"2026-06-07T19:34:14+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-07T19:34:14+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T19:34:14+08:00","date":"2026-06-07","gate":"summary","result":"PASS","detail":"7/7"} {"ts":"2026-06-07T19:44:37+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-settings-telegram-fix.md 37lines"} {"ts":"2026-06-07T19:44:37+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-settings-telegram-fix.md"} {"ts":"2026-06-07T19:44:37+08:00","date":"2026-06-07","gate":"test","result":"BLOCK","detail":"tests failed"} {"ts":"2026-06-07T19:44:37+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T19:44:37+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T19:44:37+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T19:44:37+08:00","date":"2026-06-07","gate":"review","result":"PASS","detail":"audit covers changes"} {"ts":"2026-06-07T19:44:37+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-07T19:44:37+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T19:44:37+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"6/7"} {"ts":"2026-06-07T19:44:50+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-settings-telegram-fix.md 37lines"} {"ts":"2026-06-07T19:44:50+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-settings-telegram-fix.md"} {"ts":"2026-06-07T19:44:50+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"} {"ts":"2026-06-07T19:44:50+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"} {"ts":"2026-06-07T19:44:50+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"} {"ts":"2026-06-07T19:44:50+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"} {"ts":"2026-06-07T19:44:50+08:00","date":"2026-06-07","gate":"review","result":"PASS","detail":"audit covers changes"} {"ts":"2026-06-07T19:44:50+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-07T19:44:50+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-07T19:44:50+08:00","date":"2026-06-07","gate":"summary","result":"PASS","detail":"7/7"}