{"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"}