Files
Nexus/deploy/gate_log.jsonl
T
Nexus Agent 821cf12ade fix(terminal,alerts): quick-cmd enter on send and offline Telegram channel
Append CR when executing quick commands (fixes trim stripping saved \r) and
allow optional dedicated Telegram bot for server offline alerts only.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-13 01:45:55 +08:00

2090 lines
238 KiB
JSON

{"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"}
{"ts":"2026-06-07T19:45:16+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-settings-telegram-fix.md 37lines"}
{"ts":"2026-06-07T19:45:16+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-settings-telegram-fix.md"}
{"ts":"2026-06-07T19:45:16+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-07T19:45:16+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-07T19:45:16+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-07T19:45:16+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-07T19:45:16+08:00","date":"2026-06-07","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-07T19:45:16+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-07T19:45:16+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-07T19:45:16+08:00","date":"2026-06-07","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-07T20:16:43+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-ops-patrol-layer3-telegram.md 40lines"}
{"ts":"2026-06-07T20:16:43+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-settings-telegram-fix.md"}
{"ts":"2026-06-07T20:16:43+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-07T20:16:43+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-07T20:16:43+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-07T20:16:43+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-07T20:16:43+08:00","date":"2026-06-07","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-07T20:16:43+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-07T20:16:43+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-07T20:16:43+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-07T20:17:03+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-ops-patrol-layer3-telegram.md 40lines"}
{"ts":"2026-06-07T20:17:03+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-ops-patrol-layer3-telegram.md"}
{"ts":"2026-06-07T20:17:03+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-07T20:17:03+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-07T20:17:03+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-07T20:17:03+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-07T20:17:03+08:00","date":"2026-06-07","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-07T20:17:03+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-07T20:17:03+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-07T20:17:03+08:00","date":"2026-06-07","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-07T20:53:00+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-health-monitor-flock-fail-count-fix.md 21lines"}
{"ts":"2026-06-07T20:53:00+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-ops-patrol-layer3-telegram.md"}
{"ts":"2026-06-07T20:53:00+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-07T20:53:00+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-07T20:53:00+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-07T20:53:00+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-07T20:53:00+08:00","date":"2026-06-07","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-07T20:53:00+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-07T20:53:00+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-07T20:53:00+08:00","date":"2026-06-07","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-07T20:57:57+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-health-monitor-telegram-quote-strip.md 19lines"}
{"ts":"2026-06-07T20:57:57+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-ops-patrol-layer3-telegram.md"}
{"ts":"2026-06-07T20:57:57+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-07T20:57:57+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-07T20:57:57+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-07T20:57:57+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-07T20:57:57+08:00","date":"2026-06-07","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-07T20:57:57+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-07T20:57:57+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-07T20:57:57+08:00","date":"2026-06-07","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-07T21:00:46+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-telegram-chinese-detailed-messages.md 22lines"}
{"ts":"2026-06-07T21:00:46+08:00","date":"2026-06-07","gate":"audit","result":"BLOCK","detail":"missing sections"}
{"ts":"2026-06-07T21:00:46+08:00","date":"2026-06-07","gate":"test","result":"BLOCK","detail":"tests failed"}
{"ts":"2026-06-07T21:00:46+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-07T21:00:46+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-07T21:00:46+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-07T21:00:46+08:00","date":"2026-06-07","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-07T21:00:46+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-07T21:00:46+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-07T21:00:46+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"4/7"}
{"ts":"2026-06-07T21:01:04+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-telegram-chinese-detailed-messages.md 22lines"}
{"ts":"2026-06-07T21:01:04+08:00","date":"2026-06-07","gate":"audit","result":"BLOCK","detail":"missing sections"}
{"ts":"2026-06-07T21:01:04+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-07T21:01:04+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-07T21:01:04+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-07T21:01:04+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-07T21:01:04+08:00","date":"2026-06-07","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-07T21:01:04+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-07T21:01:04+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-07T21:01:04+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"5/7"}
{"ts":"2026-06-07T21:01:17+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-telegram-chinese-detailed-messages.md 22lines"}
{"ts":"2026-06-07T21:01:17+08:00","date":"2026-06-07","gate":"audit","result":"BLOCK","detail":"missing sections"}
{"ts":"2026-06-07T21:01:17+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-07T21:01:17+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-07T21:01:17+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-07T21:01:17+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-07T21:01:17+08:00","date":"2026-06-07","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-07T21:01:17+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-07T21:01:17+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-07T21:01:17+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-07T21:01:27+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-telegram-chinese-detailed-messages.md 22lines"}
{"ts":"2026-06-07T21:01:27+08:00","date":"2026-06-07","gate":"audit","result":"BLOCK","detail":"missing sections"}
{"ts":"2026-06-07T21:01:27+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-07T21:01:27+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-07T21:01:27+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-07T21:01:27+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-07T21:01:27+08:00","date":"2026-06-07","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-07T21:01:27+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-07T21:01:27+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-07T21:01:27+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-07T21:01:37+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-telegram-chinese-detailed-messages.md 22lines"}
{"ts":"2026-06-07T21:01:37+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-telegram-chinese-detailed-messages.md"}
{"ts":"2026-06-07T21:01:37+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-07T21:01:37+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-07T21:01:37+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-07T21:01:37+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-07T21:01:37+08:00","date":"2026-06-07","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-07T21:01:37+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-07T21:01:37+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-07T21:01:37+08:00","date":"2026-06-07","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-07T21:20:20+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-ssh-quick-add-hostkey-chinese-errors.md 34lines"}
{"ts":"2026-06-07T21:20:20+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-telegram-chinese-detailed-messages.md"}
{"ts":"2026-06-07T21:20:20+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-07T21:20:20+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-07T21:20:20+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-07T21:20:20+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-07T21:20:20+08:00","date":"2026-06-07","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-07T21:20:20+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-07T21:20:20+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-07T21:20:20+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-07T21:31:41+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-ssh-quick-add-hostkey-chinese-errors.md 34lines"}
{"ts":"2026-06-07T21:31:41+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-ssh-quick-add-hostkey-chinese-errors.md"}
{"ts":"2026-06-07T21:31:41+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-07T21:31:41+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-07T21:31:41+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-07T21:31:41+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-07T21:31:41+08:00","date":"2026-06-07","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-07T21:31:41+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-07T21:31:41+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-07T21:31:41+08:00","date":"2026-06-07","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-07T21:50:16+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-login-client-ip-forwarded.md 29lines"}
{"ts":"2026-06-07T21:50:16+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-login-client-ip-forwarded.md"}
{"ts":"2026-06-07T21:50:16+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-07T21:50:16+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-07T21:50:16+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-07T21:50:16+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-07T21:50:16+08:00","date":"2026-06-07","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-07T21:50:16+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-07T21:50:16+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-07T21:50:16+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-07T21:50:28+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-login-client-ip-forwarded.md 29lines"}
{"ts":"2026-06-07T21:50:28+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-login-client-ip-forwarded.md"}
{"ts":"2026-06-07T21:50:28+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-07T21:50:28+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-07T21:50:28+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-07T21:50:28+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-07T21:50:28+08:00","date":"2026-06-07","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-07T21:50:28+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-07T21:50:28+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-07T21:50:28+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-07T21:50:39+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-login-client-ip-forwarded.md 29lines"}
{"ts":"2026-06-07T21:50:39+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-login-client-ip-forwarded.md"}
{"ts":"2026-06-07T21:50:39+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-07T21:50:39+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-07T21:50:39+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-07T21:50:39+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-07T21:50:39+08:00","date":"2026-06-07","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-07T21:50:39+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-07T21:50:39+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-07T21:50:39+08:00","date":"2026-06-07","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-07T21:56:30+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-refresh-token-redis-mysql-dual-store.md 40lines"}
{"ts":"2026-06-07T21:56:30+08:00","date":"2026-06-07","gate":"audit","result":"BLOCK","detail":"missing sections"}
{"ts":"2026-06-07T21:56:30+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-07T21:56:30+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-07T21:56:30+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-07T21:56:30+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-07T21:56:30+08:00","date":"2026-06-07","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-07T21:56:30+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-07T21:56:30+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-07T21:56:30+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"5/7"}
{"ts":"2026-06-07T21:56:41+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-refresh-token-redis-mysql-dual-store.md 40lines"}
{"ts":"2026-06-07T21:56:41+08:00","date":"2026-06-07","gate":"audit","result":"BLOCK","detail":"missing sections"}
{"ts":"2026-06-07T21:56:41+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-07T21:56:41+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-07T21:56:41+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-07T21:56:41+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-07T21:56:41+08:00","date":"2026-06-07","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-07T21:56:41+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-07T21:56:41+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-07T21:56:41+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"5/7"}
{"ts":"2026-06-07T21:56:56+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-refresh-token-redis-mysql-dual-store.md 40lines"}
{"ts":"2026-06-07T21:56:56+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-refresh-token-redis-mysql-dual-store.md"}
{"ts":"2026-06-07T21:56:56+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-07T21:56:56+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-07T21:56:56+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-07T21:56:56+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-07T21:56:56+08:00","date":"2026-06-07","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-07T21:56:56+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-07T21:56:56+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-07T21:56:56+08:00","date":"2026-06-07","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-07T23:09:54+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-files-upload-form-field-fix.md 24lines"}
{"ts":"2026-06-07T23:09:54+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-refresh-token-redis-mysql-dual-store.md"}
{"ts":"2026-06-07T23:09:54+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-07T23:09:54+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-07T23:09:54+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-07T23:09:54+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-07T23:09:54+08:00","date":"2026-06-07","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-07T23:09:54+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-07T23:09:54+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-07T23:09:54+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-07T23:10:41+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-files-upload-form-field-fix.md 24lines"}
{"ts":"2026-06-07T23:10:41+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-files-upload-health-monitor-deploy.md"}
{"ts":"2026-06-07T23:10:41+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-07T23:10:41+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-07T23:10:41+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-07T23:10:41+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-07T23:10:41+08:00","date":"2026-06-07","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-07T23:10:41+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-07T23:10:41+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-07T23:10:41+08:00","date":"2026-06-07","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-07T23:10:50+08:00","date":"2026-06-07","gate":"changelog","result":"PASS","detail":"2026-06-07-files-upload-form-field-fix.md 24lines"}
{"ts":"2026-06-07T23:10:50+08:00","date":"2026-06-07","gate":"audit","result":"PASS","detail":"2026-06-07-files-upload-health-monitor-deploy.md"}
{"ts":"2026-06-07T23:10:50+08:00","date":"2026-06-07","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-07T23:10:50+08:00","date":"2026-06-07","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-07T23:10:50+08:00","date":"2026-06-07","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-07T23:10:50+08:00","date":"2026-06-07","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-07T23:10:50+08:00","date":"2026-06-07","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-07T23:10:50+08:00","date":"2026-06-07","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-07T23:10:50+08:00","date":"2026-06-07","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-07T23:10:50+08:00","date":"2026-06-07","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T07:38:32+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-servers-live-sort-fix.md 28lines"}
{"ts":"2026-06-08T07:38:32+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-servers-live-sort-fix.md"}
{"ts":"2026-06-08T07:38:32+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T07:38:32+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T07:38:32+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T07:38:32+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T07:38:32+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T07:38:32+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T07:38:32+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T07:38:32+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T07:54:01+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-servers-live-sort-fix.md 28lines"}
{"ts":"2026-06-08T07:54:01+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-servers-live-sort-fix.md"}
{"ts":"2026-06-08T07:54:01+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T07:54:01+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T07:54:01+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T07:54:01+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T07:54:01+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T07:54:01+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T07:54:01+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T07:54:01+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T07:54:43+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-login-gate-seamless-nav.md 42lines"}
{"ts":"2026-06-08T07:54:43+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-login-gate-seamless-nav.md"}
{"ts":"2026-06-08T07:54:43+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T07:54:43+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T07:54:43+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T07:54:43+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T07:54:43+08:00","date":"2026-06-08","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-08T07:54:43+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T07:54:43+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T07:54:43+08:00","date":"2026-06-08","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-08T07:54:52+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-login-gate-seamless-nav.md 42lines"}
{"ts":"2026-06-08T07:54:52+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-login-gate-seamless-nav.md"}
{"ts":"2026-06-08T07:54:52+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T07:54:52+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T07:54:52+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T07:54:52+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T07:54:52+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T07:54:52+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T07:54:52+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T07:54:52+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T09:31:41+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-credentials-merge-servers-page.md 28lines"}
{"ts":"2026-06-08T09:31:41+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-servers-batch-execution-records-credentials.md"}
{"ts":"2026-06-08T09:31:41+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T09:31:41+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T09:31:41+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T09:31:41+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T09:31:41+08:00","date":"2026-06-08","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-08T09:31:41+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T09:31:41+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T09:31:41+08:00","date":"2026-06-08","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-08T09:32:26+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-credentials-merge-servers-page.md 28lines"}
{"ts":"2026-06-08T09:32:26+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-servers-batch-execution-records-credentials.md"}
{"ts":"2026-06-08T09:32:26+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T09:32:26+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T09:32:26+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T09:32:26+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T09:32:26+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T09:32:26+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T09:32:26+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T09:32:26+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T09:40:48+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-schedule-cycle-picker.md 42lines"}
{"ts":"2026-06-08T09:40:48+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-schedule-cycle-picker.md"}
{"ts":"2026-06-08T09:40:48+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T09:40:48+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T09:40:48+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T09:40:48+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T09:40:48+08:00","date":"2026-06-08","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-08T09:40:48+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T09:40:48+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T09:40:48+08:00","date":"2026-06-08","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-08T09:45:05+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-schedule-cycle-picker.md 42lines"}
{"ts":"2026-06-08T09:45:05+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-schedule-cycle-picker.md"}
{"ts":"2026-06-08T09:45:05+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T09:45:05+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T09:45:05+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T09:45:05+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T09:45:05+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T09:45:05+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T09:45:05+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T09:45:05+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T10:30:55+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-schedule-cycle-time-merge.md 26lines"}
{"ts":"2026-06-08T10:30:55+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-gate7-diff-fix.md"}
{"ts":"2026-06-08T10:30:55+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T10:30:55+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T10:30:55+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T10:30:55+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T10:30:55+08:00","date":"2026-06-08","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-08T10:30:55+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T10:30:55+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T10:30:55+08:00","date":"2026-06-08","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-08T10:31:58+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-schedule-cycle-time-merge.md 26lines"}
{"ts":"2026-06-08T10:31:58+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-gate7-diff-fix.md"}
{"ts":"2026-06-08T10:31:58+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T10:31:58+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T10:31:58+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T10:31:58+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T10:31:58+08:00","date":"2026-06-08","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-08T10:31:58+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T10:31:58+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T10:31:58+08:00","date":"2026-06-08","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-08T10:32:55+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-schedule-cycle-time-merge.md 26lines"}
{"ts":"2026-06-08T10:32:55+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-schedule-form-deploy-batch.md"}
{"ts":"2026-06-08T10:32:55+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T10:32:55+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T10:32:55+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T10:32:55+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T10:32:55+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T10:32:55+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T10:32:55+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T10:32:55+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T11:15:19+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-schedule-cycle-time-merge.md 26lines"}
{"ts":"2026-06-08T11:15:19+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-schedule-form-deploy-batch.md"}
{"ts":"2026-06-08T11:15:19+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T11:15:19+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T11:15:19+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T11:15:19+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T11:15:19+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T11:15:19+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T11:15:19+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T11:15:19+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T11:48:30+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-schedule-cycle-day-label-once-ui.md 26lines"}
{"ts":"2026-06-08T11:48:30+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-schedule-form-deploy-batch.md"}
{"ts":"2026-06-08T11:48:30+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T11:48:30+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T11:48:30+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T11:48:30+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T11:48:30+08:00","date":"2026-06-08","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-08T11:48:30+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T11:48:30+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T11:48:30+08:00","date":"2026-06-08","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-08T11:49:26+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-schedule-cycle-day-label-once-ui.md 26lines"}
{"ts":"2026-06-08T11:49:26+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-schedule-cycle-day-label-once-ui.md"}
{"ts":"2026-06-08T11:49:26+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T11:49:26+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T11:49:26+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T11:49:26+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T11:49:26+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T11:49:26+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T11:49:26+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T11:49:26+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T11:56:37+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-script-exec-results-mediumtext.md 31lines"}
{"ts":"2026-06-08T11:56:37+08:00","date":"2026-06-08","gate":"audit","result":"BLOCK","detail":"missing sections"}
{"ts":"2026-06-08T11:56:37+08:00","date":"2026-06-08","gate":"test","result":"BLOCK","detail":"tests failed"}
{"ts":"2026-06-08T11:56:37+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T11:56:37+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T11:56:37+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T11:56:37+08:00","date":"2026-06-08","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-08T11:56:37+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T11:56:37+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T11:56:37+08:00","date":"2026-06-08","gate":"summary","result":"BLOCK","detail":"4/7"}
{"ts":"2026-06-08T11:56:55+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-script-exec-results-mediumtext.md 31lines"}
{"ts":"2026-06-08T11:56:55+08:00","date":"2026-06-08","gate":"audit","result":"BLOCK","detail":"missing sections"}
{"ts":"2026-06-08T11:56:55+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T11:56:55+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T11:56:55+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T11:56:55+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T11:56:55+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T11:56:55+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T11:56:55+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T11:56:55+08:00","date":"2026-06-08","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-08T11:57:05+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-script-exec-results-mediumtext.md 31lines"}
{"ts":"2026-06-08T11:57:05+08:00","date":"2026-06-08","gate":"audit","result":"BLOCK","detail":"missing sections"}
{"ts":"2026-06-08T11:57:05+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T11:57:05+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T11:57:05+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T11:57:05+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T11:57:05+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T11:57:05+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T11:57:05+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T11:57:05+08:00","date":"2026-06-08","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-08T11:57:20+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-script-exec-results-mediumtext.md 31lines"}
{"ts":"2026-06-08T11:57:20+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-script-exec-results-mediumtext.md"}
{"ts":"2026-06-08T11:57:20+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T11:57:20+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T11:57:20+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T11:57:20+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T11:57:20+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T11:57:20+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T11:57:20+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T11:57:20+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T12:09:00+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-webssh-classic-terminal-theme.md 24lines"}
{"ts":"2026-06-08T12:09:00+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-webssh-classic-terminal-theme.md"}
{"ts":"2026-06-08T12:09:00+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T12:09:00+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T12:09:00+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T12:09:00+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T12:09:00+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T12:09:00+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T12:09:00+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T12:09:00+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T12:14:47+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-terminal-quickbar-disconnect.md 18lines"}
{"ts":"2026-06-08T12:14:47+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-terminal-quickbar-disconnect.md"}
{"ts":"2026-06-08T12:14:47+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T12:14:47+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T12:14:47+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T12:14:47+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T12:14:47+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T12:14:47+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T12:14:47+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T12:14:47+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T12:33:55+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-webssh-xterm-ansi-output-fix.md 35lines"}
{"ts":"2026-06-08T12:33:55+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-terminal-quickbar-disconnect.md"}
{"ts":"2026-06-08T12:33:55+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T12:33:55+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T12:33:55+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T12:33:55+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T12:33:55+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T12:33:55+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T12:33:55+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T12:33:55+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T12:43:48+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-servers-unset-path-inline-detail.md 35lines"}
{"ts":"2026-06-08T12:43:48+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-webssh-xterm-ansi-output-fix.md"}
{"ts":"2026-06-08T12:43:48+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T12:43:48+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T12:43:48+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T12:43:48+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T12:43:48+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T12:43:48+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T12:43:48+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T12:43:48+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T12:47:12+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-terminal-cmdbar-monochrome.md 25lines"}
{"ts":"2026-06-08T12:47:12+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-servers-unset-path-inline-detail.md"}
{"ts":"2026-06-08T12:47:12+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T12:47:12+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T12:47:12+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T12:47:12+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T12:47:12+08:00","date":"2026-06-08","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-08T12:47:12+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T12:47:12+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T12:47:12+08:00","date":"2026-06-08","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-08T12:47:57+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-terminal-cmdbar-monochrome.md 25lines"}
{"ts":"2026-06-08T12:47:57+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-deploy-production-batch.md"}
{"ts":"2026-06-08T12:47:57+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T12:47:57+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T12:47:57+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T12:47:57+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T12:47:57+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T12:47:57+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T12:47:57+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T12:47:57+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T12:55:08+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-servers-unset-path-batch-parity.md 27lines"}
{"ts":"2026-06-08T12:55:08+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-servers-unset-path-batch-parity.md"}
{"ts":"2026-06-08T12:55:08+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T12:55:08+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T12:55:08+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T12:55:08+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T12:55:08+08:00","date":"2026-06-08","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-08T12:55:08+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T12:55:08+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T12:55:08+08:00","date":"2026-06-08","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-08T12:55:20+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-servers-unset-path-batch-parity.md 27lines"}
{"ts":"2026-06-08T12:55:20+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-servers-unset-path-batch-parity.md"}
{"ts":"2026-06-08T12:55:20+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T12:55:20+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T12:55:20+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T12:55:20+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T12:55:20+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T12:55:20+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T12:55:20+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T12:55:20+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T13:04:19+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-servers-inline-detail-expand-fix.md 28lines"}
{"ts":"2026-06-08T13:04:19+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-notify-toggle-inline-detail-deploy.md"}
{"ts":"2026-06-08T13:04:19+08:00","date":"2026-06-08","gate":"test","result":"BLOCK","detail":"tests failed"}
{"ts":"2026-06-08T13:04:19+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T13:04:19+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T13:04:19+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T13:04:19+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T13:04:19+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T13:04:19+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T13:04:19+08:00","date":"2026-06-08","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-08T13:04:52+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-servers-inline-detail-expand-fix.md 28lines"}
{"ts":"2026-06-08T13:04:52+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-notify-toggle-inline-detail-deploy.md"}
{"ts":"2026-06-08T13:04:52+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T13:04:52+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T13:04:52+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T13:04:52+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T13:04:52+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T13:04:52+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T13:04:52+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T13:04:52+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T13:13:05+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-dashboard-server-list-fix.md 27lines"}
{"ts":"2026-06-08T13:13:05+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-dashboard-server-list-fix.md"}
{"ts":"2026-06-08T13:13:05+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T13:13:05+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T13:13:05+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T13:13:05+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T13:13:05+08:00","date":"2026-06-08","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-08T13:13:05+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T13:13:05+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T13:13:05+08:00","date":"2026-06-08","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-08T13:13:34+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-dashboard-server-list-fix.md 27lines"}
{"ts":"2026-06-08T13:13:34+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-dashboard-server-list-fix.md"}
{"ts":"2026-06-08T13:13:34+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T13:13:34+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T13:13:34+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T13:13:34+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T13:13:34+08:00","date":"2026-06-08","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-08T13:13:34+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T13:13:34+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T13:13:34+08:00","date":"2026-06-08","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-08T13:13:43+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-dashboard-server-list-fix.md 27lines"}
{"ts":"2026-06-08T13:13:43+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-dashboard-server-list-fix.md"}
{"ts":"2026-06-08T13:13:43+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T13:13:43+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T13:13:43+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T13:13:43+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T13:13:43+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T13:13:43+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T13:13:43+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T13:13:43+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T13:22:42+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-notify-recovery-respects-resource-toggle.md 44lines"}
{"ts":"2026-06-08T13:22:42+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-dashboard-server-list-fix.md"}
{"ts":"2026-06-08T13:22:42+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T13:22:42+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T13:22:42+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T13:22:42+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T13:22:42+08:00","date":"2026-06-08","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-08T13:22:42+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T13:22:42+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T13:22:42+08:00","date":"2026-06-08","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-08T13:23:04+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-notify-recovery-respects-resource-toggle.md 44lines"}
{"ts":"2026-06-08T13:23:04+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-notify-recovery-resource-toggle-deploy.md"}
{"ts":"2026-06-08T13:23:04+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T13:23:04+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T13:23:04+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T13:23:04+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T13:23:04+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T13:23:04+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T13:23:04+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T13:23:04+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T13:45:16+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-server-inline-detail-contrast.md 22lines"}
{"ts":"2026-06-08T13:45:16+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-server-inline-detail-contrast-deploy.md"}
{"ts":"2026-06-08T13:45:16+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T13:45:16+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T13:45:16+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T13:45:16+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T13:45:16+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T13:45:16+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T13:45:16+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T13:45:16+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T14:09:53+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-unset-path-detect-selection-count.md 17lines"}
{"ts":"2026-06-08T14:09:53+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-unset-path-detect-selection-deploy.md"}
{"ts":"2026-06-08T14:09:53+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T14:09:53+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T14:09:53+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T14:09:53+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T14:09:53+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T14:09:53+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T14:09:53+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T14:09:53+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T14:36:00+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-unset-path-table-sort.md 25lines"}
{"ts":"2026-06-08T14:36:00+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-unset-path-table-sort-deploy.md"}
{"ts":"2026-06-08T14:36:00+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T14:36:00+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T14:36:00+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T14:36:00+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T14:36:00+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T14:36:00+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T14:36:00+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T14:36:00+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T14:50:10+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-settings-pool-size-string-payload.md 23lines"}
{"ts":"2026-06-08T14:50:10+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-settings-pool-size-deploy.md"}
{"ts":"2026-06-08T14:50:10+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T14:50:10+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T14:50:10+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T14:50:10+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T14:50:10+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T14:50:10+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T14:50:10+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T14:50:10+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T14:52:38+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-settings-form-validate-zh-errors.md 32lines"}
{"ts":"2026-06-08T14:52:38+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-settings-form-validate-zh-deploy.md"}
{"ts":"2026-06-08T14:52:38+08:00","date":"2026-06-08","gate":"test","result":"BLOCK","detail":"tests failed"}
{"ts":"2026-06-08T14:52:38+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T14:52:38+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T14:52:38+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T14:52:38+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T14:52:38+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T14:52:38+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T14:52:38+08:00","date":"2026-06-08","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-08T14:52:50+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-settings-form-validate-zh-errors.md 32lines"}
{"ts":"2026-06-08T14:52:50+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-settings-form-validate-zh-deploy.md"}
{"ts":"2026-06-08T14:52:50+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T14:52:50+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T14:52:50+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T14:52:50+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T14:52:50+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T14:52:50+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T14:52:50+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T14:52:50+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T15:06:35+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-server-ids-batch-max-2000.md 27lines"}
{"ts":"2026-06-08T15:06:35+08:00","date":"2026-06-08","gate":"audit","result":"BLOCK","detail":"missing sections"}
{"ts":"2026-06-08T15:06:35+08:00","date":"2026-06-08","gate":"test","result":"BLOCK","detail":"tests failed"}
{"ts":"2026-06-08T15:06:35+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T15:06:35+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T15:06:35+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T15:06:35+08:00","date":"2026-06-08","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-08T15:06:35+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T15:06:35+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T15:06:35+08:00","date":"2026-06-08","gate":"summary","result":"BLOCK","detail":"4/7"}
{"ts":"2026-06-08T15:06:42+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-server-ids-batch-max-2000.md 27lines"}
{"ts":"2026-06-08T15:06:42+08:00","date":"2026-06-08","gate":"audit","result":"BLOCK","detail":"missing sections"}
{"ts":"2026-06-08T15:06:42+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T15:06:42+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T15:06:42+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T15:06:42+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T15:06:42+08:00","date":"2026-06-08","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-08T15:06:42+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T15:06:42+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T15:06:42+08:00","date":"2026-06-08","gate":"summary","result":"BLOCK","detail":"5/7"}
{"ts":"2026-06-08T15:06:49+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-server-ids-batch-max-2000.md 27lines"}
{"ts":"2026-06-08T15:06:49+08:00","date":"2026-06-08","gate":"audit","result":"BLOCK","detail":"missing sections"}
{"ts":"2026-06-08T15:06:49+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T15:06:49+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T15:06:49+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T15:06:49+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T15:06:49+08:00","date":"2026-06-08","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-08T15:06:49+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T15:06:49+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T15:06:49+08:00","date":"2026-06-08","gate":"summary","result":"BLOCK","detail":"5/7"}
{"ts":"2026-06-08T15:08:03+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-server-ids-batch-max-2000.md 27lines"}
{"ts":"2026-06-08T15:08:03+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-server-ids-batch-max-deploy.md"}
{"ts":"2026-06-08T15:08:03+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T15:08:03+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T15:08:03+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T15:08:03+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T15:08:03+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T15:08:03+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T15:08:03+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T15:08:03+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T15:23:16+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-full-align-deploy.md 33lines"}
{"ts":"2026-06-08T15:23:16+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-full-align-deploy.md"}
{"ts":"2026-06-08T15:23:16+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T15:23:16+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T15:23:16+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T15:23:16+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T15:23:16+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T15:23:16+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T15:23:16+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T15:23:16+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T23:05:56+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-agent-401-stop-heartbeat.md 40lines"}
{"ts":"2026-06-08T23:05:56+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-agent-401-stop-heartbeat.md"}
{"ts":"2026-06-08T23:05:56+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T23:05:56+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T23:05:56+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T23:05:56+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T23:05:56+08:00","date":"2026-06-08","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-08T23:05:56+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T23:05:56+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T23:05:56+08:00","date":"2026-06-08","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-08T23:06:09+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-agent-401-stop-heartbeat.md 40lines"}
{"ts":"2026-06-08T23:06:09+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-agent-401-stop-heartbeat.md"}
{"ts":"2026-06-08T23:06:09+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T23:06:09+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T23:06:09+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T23:06:09+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T23:06:09+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T23:06:09+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T23:06:09+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T23:06:09+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T23:19:12+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-beijing-time-display-unified.md 40lines"}
{"ts":"2026-06-08T23:19:12+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-beijing-time-recovery-telegram.md"}
{"ts":"2026-06-08T23:19:12+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T23:19:12+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T23:19:12+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T23:19:12+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T23:19:12+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T23:19:12+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T23:19:12+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T23:19:12+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-08T23:28:37+08:00","date":"2026-06-08","gate":"changelog","result":"PASS","detail":"2026-06-08-servers-hide-csv-export.md 17lines"}
{"ts":"2026-06-08T23:28:37+08:00","date":"2026-06-08","gate":"audit","result":"PASS","detail":"2026-06-08-push-validation-servers-ui.md"}
{"ts":"2026-06-08T23:28:37+08:00","date":"2026-06-08","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-08T23:28:37+08:00","date":"2026-06-08","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-08T23:28:37+08:00","date":"2026-06-08","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-08T23:28:37+08:00","date":"2026-06-08","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-08T23:28:37+08:00","date":"2026-06-08","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-08T23:28:37+08:00","date":"2026-06-08","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-08T23:28:37+08:00","date":"2026-06-08","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-08T23:28:37+08:00","date":"2026-06-08","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T01:33:28+08:00","date":"2026-06-09","gate":"changelog","result":"BLOCK","detail":"file not found"}
{"ts":"2026-06-09T01:33:28+08:00","date":"2026-06-09","gate":"audit","result":"BLOCK","detail":"file not found"}
{"ts":"2026-06-09T01:33:28+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T01:33:28+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T01:33:28+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T01:33:28+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T01:33:28+08:00","date":"2026-06-09","gate":"review","result":"BLOCK","detail":"no audit file"}
{"ts":"2026-06-09T01:33:28+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T01:33:28+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T01:33:28+08:00","date":"2026-06-09","gate":"summary","result":"BLOCK","detail":"4/7"}
{"ts":"2026-06-09T01:34:25+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-full-site-testing-delivery.md 54lines"}
{"ts":"2026-06-09T01:34:25+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-full-site-testing-delivery.md"}
{"ts":"2026-06-09T01:34:25+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T01:34:25+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T01:34:25+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T01:34:25+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T01:34:25+08:00","date":"2026-06-09","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-09T01:34:25+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T01:34:25+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T01:34:25+08:00","date":"2026-06-09","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-09T01:34:51+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-full-site-testing-delivery.md 54lines"}
{"ts":"2026-06-09T01:34:51+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-full-site-testing-delivery.md"}
{"ts":"2026-06-09T01:34:51+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T01:34:51+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T01:34:51+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T01:34:51+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T01:34:51+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T01:34:51+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T01:34:51+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T01:34:51+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T02:12:43+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-full-site-testing-delivery.md 58lines"}
{"ts":"2026-06-09T02:12:43+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-full-site-testing-delivery.md"}
{"ts":"2026-06-09T02:12:43+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T02:12:43+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T02:12:43+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T02:12:43+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T02:12:43+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T02:12:43+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T02:12:43+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T02:12:43+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T02:38:20+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-full-site-testing-delivery.md 58lines"}
{"ts":"2026-06-09T02:38:20+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-full-site-testing-delivery.md"}
{"ts":"2026-06-09T02:38:20+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T02:38:20+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T02:38:20+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T02:38:20+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T02:38:20+08:00","date":"2026-06-09","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-09T02:38:20+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T02:38:20+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T02:38:20+08:00","date":"2026-06-09","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-09T02:47:41+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-alerts-schedule-fixes-deploy.md 33lines"}
{"ts":"2026-06-09T02:47:41+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-alerts-schedule-fixes-deploy.md"}
{"ts":"2026-06-09T02:47:41+08:00","date":"2026-06-09","gate":"test","result":"BLOCK","detail":"tests failed"}
{"ts":"2026-06-09T02:47:41+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T02:47:41+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T02:47:41+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T02:47:41+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T02:47:41+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T02:47:41+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T02:47:41+08:00","date":"2026-06-09","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-09T02:48:05+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-alerts-schedule-fixes-deploy.md 33lines"}
{"ts":"2026-06-09T02:48:05+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-alerts-schedule-fixes-deploy.md"}
{"ts":"2026-06-09T02:48:05+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T02:48:05+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T02:48:05+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T02:48:05+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T02:48:05+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T02:48:05+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T02:48:05+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T02:48:05+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T05:30:22+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-operator-timezone-beijing.md 37lines"}
{"ts":"2026-06-09T05:30:22+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-operator-timezone-beijing.md"}
{"ts":"2026-06-09T05:30:22+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T05:30:22+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T05:30:22+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T05:30:22+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T05:30:22+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T05:30:22+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T05:30:22+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T05:30:22+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T05:48:44+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-timezone-followups-ws-install-dates.md 38lines"}
{"ts":"2026-06-09T05:48:44+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-operator-timezone-beijing.md"}
{"ts":"2026-06-09T05:48:44+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T05:48:44+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T05:48:44+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T05:48:44+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T05:48:44+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T05:48:44+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T05:48:44+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T05:48:44+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T05:51:32+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-timezone-followups-ws-install-dates.md 38lines"}
{"ts":"2026-06-09T05:51:32+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-operator-timezone-beijing.md"}
{"ts":"2026-06-09T05:51:32+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T05:51:32+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T05:51:32+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T05:51:32+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T05:51:32+08:00","date":"2026-06-09","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-09T05:51:32+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T05:51:32+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T05:51:32+08:00","date":"2026-06-09","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-09T05:51:56+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-timezone-followups-ws-install-dates.md 38lines"}
{"ts":"2026-06-09T05:51:56+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-operator-timezone-beijing.md"}
{"ts":"2026-06-09T05:51:56+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T05:51:56+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T05:51:56+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T05:51:56+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T05:51:56+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T05:51:56+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T05:51:56+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T05:51:56+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T06:05:50+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-continuation-wave0-d01.md 36lines"}
{"ts":"2026-06-09T06:05:50+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-operator-timezone-beijing.md"}
{"ts":"2026-06-09T06:05:50+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T06:05:50+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T06:05:50+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T06:05:50+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T06:05:50+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T06:05:50+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T06:05:50+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T06:05:50+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T07:11:50+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-continuation-wave0-d01.md 36lines"}
{"ts":"2026-06-09T07:11:50+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-operator-timezone-beijing.md"}
{"ts":"2026-06-09T07:11:50+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T07:11:50+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T07:11:50+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T07:11:50+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T07:11:50+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T07:11:50+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T07:11:50+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T07:11:50+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T07:12:15+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-continuation-wave0-d01.md 36lines"}
{"ts":"2026-06-09T07:12:15+08:00","date":"2026-06-09","gate":"audit","result":"BLOCK","detail":"missing sections"}
{"ts":"2026-06-09T07:12:15+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T07:12:15+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T07:12:15+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T07:12:15+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T07:12:15+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T07:12:15+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T07:12:15+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T07:12:15+08:00","date":"2026-06-09","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-09T07:12:24+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-continuation-wave0-d01.md 36lines"}
{"ts":"2026-06-09T07:12:24+08:00","date":"2026-06-09","gate":"audit","result":"BLOCK","detail":"missing sections"}
{"ts":"2026-06-09T07:12:24+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T07:12:24+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T07:12:24+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T07:12:24+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T07:12:24+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T07:12:24+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T07:12:38+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-continuation-wave0-d01.md 36lines"}
{"ts":"2026-06-09T07:12:38+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-continuation-wave0-d01.md"}
{"ts":"2026-06-09T07:12:38+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T07:12:38+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T07:12:38+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T07:12:38+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T07:12:38+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T07:12:38+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T07:12:38+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T07:12:38+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T07:24:30+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-dashboard-24h-fleet-metrics.md 36lines"}
{"ts":"2026-06-09T07:24:30+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-dashboard-24h-fleet-metrics.md"}
{"ts":"2026-06-09T07:24:30+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T07:24:30+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T07:24:30+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T07:24:30+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T07:24:30+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T07:24:30+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T07:24:30+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T07:24:30+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T08:53:33+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-service-valueerror-zh.md 40lines"}
{"ts":"2026-06-09T08:53:33+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-dashboard-24h-fleet-metrics.md"}
{"ts":"2026-06-09T08:53:33+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T08:53:33+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T08:53:33+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T08:53:33+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T08:53:33+08:00","date":"2026-06-09","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-09T08:53:33+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T08:53:33+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T08:53:33+08:00","date":"2026-06-09","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-09T08:54:41+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-service-valueerror-zh.md 40lines"}
{"ts":"2026-06-09T08:54:41+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-service-valueerror-zh.md"}
{"ts":"2026-06-09T08:54:41+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T08:54:41+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T08:54:41+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T08:54:41+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T08:54:41+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T08:54:41+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T08:54:41+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T08:54:41+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T09:00:17+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-ssh-key-preset-list-fix.md 29lines"}
{"ts":"2026-06-09T09:00:17+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-ssh-key-preset-list-fix.md"}
{"ts":"2026-06-09T09:00:17+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T09:00:17+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T09:00:17+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T09:00:17+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T09:00:17+08:00","date":"2026-06-09","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-09T09:00:17+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T09:00:17+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T09:00:17+08:00","date":"2026-06-09","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-09T09:00:31+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-ssh-key-preset-list-fix.md 29lines"}
{"ts":"2026-06-09T09:00:31+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-ssh-key-preset-list-fix.md"}
{"ts":"2026-06-09T09:00:31+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T09:00:31+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T09:00:31+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T09:00:31+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T09:00:31+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T09:00:31+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T09:00:31+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T09:00:31+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T09:05:13+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-ssh-key-preset-list-fix.md 34lines"}
{"ts":"2026-06-09T09:05:13+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-ssh-key-preset-list-fix.md"}
{"ts":"2026-06-09T09:05:13+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T09:05:13+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T09:05:13+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T09:05:13+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T09:05:13+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T09:05:13+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T09:05:13+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T09:05:13+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T09:26:52+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-agent-diagnose-ui-button.md 29lines"}
{"ts":"2026-06-09T09:26:52+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-agent-diagnose-ui-button.md"}
{"ts":"2026-06-09T09:26:52+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T09:26:52+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T09:26:52+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T09:26:52+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T09:26:52+08:00","date":"2026-06-09","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-09T09:26:52+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T09:26:52+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T09:26:52+08:00","date":"2026-06-09","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-09T09:27:10+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-agent-diagnose-ui-button.md 29lines"}
{"ts":"2026-06-09T09:27:10+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-agent-diagnose-ui-button.md"}
{"ts":"2026-06-09T09:27:10+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T09:27:10+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T09:27:10+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T09:27:10+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T09:27:10+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T09:27:10+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T09:27:10+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T09:27:10+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T09:43:01+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-servers-stat-card-filter.md 21lines"}
{"ts":"2026-06-09T09:43:01+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-servers-stat-card-filter.md"}
{"ts":"2026-06-09T09:43:01+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T09:43:01+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T09:43:01+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T09:43:01+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T09:43:01+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T09:43:01+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T09:43:01+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T09:43:01+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T09:50:39+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-offline-count-accuracy.md 22lines"}
{"ts":"2026-06-09T09:50:39+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-offline-count-accuracy.md"}
{"ts":"2026-06-09T09:50:39+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T09:50:39+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T09:50:39+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T09:50:39+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T09:50:39+08:00","date":"2026-06-09","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-09T09:50:39+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T09:50:39+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T09:50:39+08:00","date":"2026-06-09","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-09T09:50:53+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-offline-count-accuracy.md 22lines"}
{"ts":"2026-06-09T09:50:53+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-offline-count-accuracy.md"}
{"ts":"2026-06-09T09:50:53+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T09:50:53+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T09:50:53+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T09:50:53+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T09:50:53+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T09:50:53+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T09:50:53+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T09:50:53+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T09:59:23+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-offline-count-accuracy.md 22lines"}
{"ts":"2026-06-09T09:59:23+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-offline-count-accuracy.md"}
{"ts":"2026-06-09T09:59:23+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T09:59:23+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T09:59:23+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T09:59:23+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T09:59:23+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T09:59:23+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T09:59:23+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T09:59:23+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T16:05:29+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-fleet-trend-interaction.md 26lines"}
{"ts":"2026-06-09T16:05:29+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-offline-count-accuracy.md"}
{"ts":"2026-06-09T16:05:29+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T16:05:29+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T16:05:29+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T16:05:29+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T16:05:29+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T16:05:29+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T16:05:29+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T16:05:29+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T16:12:39+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-fleet-trend-interaction.md 28lines"}
{"ts":"2026-06-09T16:12:39+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-offline-count-accuracy.md"}
{"ts":"2026-06-09T16:12:39+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T16:12:39+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T16:12:39+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T16:12:39+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T16:12:39+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T16:12:39+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T16:12:39+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T16:12:39+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T16:21:57+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-fleet-trend-interaction.md 29lines"}
{"ts":"2026-06-09T16:21:57+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-offline-count-accuracy.md"}
{"ts":"2026-06-09T16:21:57+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T16:21:57+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T16:21:57+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T16:21:57+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T16:21:57+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T16:21:57+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T16:21:57+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T16:21:57+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T16:26:36+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-dashboard-stat-cards-align.md 27lines"}
{"ts":"2026-06-09T16:26:36+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-offline-count-accuracy.md"}
{"ts":"2026-06-09T16:26:36+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T16:26:36+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T16:26:36+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T16:26:36+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T16:26:36+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T16:26:36+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T16:26:36+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T16:26:36+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T16:35:19+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-fleet-trend-alerts.md 29lines"}
{"ts":"2026-06-09T16:35:19+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-offline-count-accuracy.md"}
{"ts":"2026-06-09T16:35:19+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T16:35:19+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T16:35:19+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T16:35:19+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T16:35:19+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T16:35:19+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T16:35:19+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T16:35:19+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T16:39:28+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-fleet-trend-alerts.md 29lines"}
{"ts":"2026-06-09T16:39:28+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-offline-count-accuracy.md"}
{"ts":"2026-06-09T16:39:28+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T16:39:28+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T16:39:28+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T16:39:28+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T16:39:28+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T16:39:28+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T16:39:28+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T16:39:28+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T17:15:41+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-fleet-trend-alerts.md 29lines"}
{"ts":"2026-06-09T17:15:41+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-offline-count-accuracy.md"}
{"ts":"2026-06-09T17:15:41+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T17:15:41+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T17:15:41+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T17:15:41+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T17:15:41+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T17:15:41+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T17:15:41+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T17:15:41+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T17:32:41+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-fleet-trend-alerts.md 29lines"}
{"ts":"2026-06-09T17:32:41+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-offline-count-accuracy.md"}
{"ts":"2026-06-09T17:32:41+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T17:32:41+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T17:32:41+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T17:32:41+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T17:32:41+08:00","date":"2026-06-09","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-09T17:32:41+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T17:32:41+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T17:32:41+08:00","date":"2026-06-09","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-09T17:32:58+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-fleet-trend-alerts.md 29lines"}
{"ts":"2026-06-09T17:32:58+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-server-offline-alert-deploy.md"}
{"ts":"2026-06-09T17:32:58+08:00","date":"2026-06-09","gate":"test","result":"BLOCK","detail":"tests failed"}
{"ts":"2026-06-09T17:32:58+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T17:32:58+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T17:32:58+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T17:32:58+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T17:32:58+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T17:32:58+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T17:32:58+08:00","date":"2026-06-09","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-09T17:33:11+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-fleet-trend-alerts.md 29lines"}
{"ts":"2026-06-09T17:33:11+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-server-offline-alert-deploy.md"}
{"ts":"2026-06-09T17:33:11+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T17:33:11+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T17:33:11+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T17:33:11+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T17:33:11+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T17:33:11+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T17:33:11+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T17:33:11+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T18:01:58+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-fleet-trend-remove-csv.md 24lines"}
{"ts":"2026-06-09T18:01:58+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-fleet-trend-remove-csv.md"}
{"ts":"2026-06-09T18:01:58+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T18:01:58+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T18:01:58+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T18:01:58+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T18:01:58+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T18:01:58+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T18:01:58+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T18:01:58+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T20:41:40+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-server-list-name-subtitle.md 28lines"}
{"ts":"2026-06-09T20:41:40+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-server-list-name-subtitle.md"}
{"ts":"2026-06-09T20:41:40+08:00","date":"2026-06-09","gate":"test","result":"BLOCK","detail":"tests failed"}
{"ts":"2026-06-09T20:41:40+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T20:41:40+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T20:41:40+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T20:41:40+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T20:41:40+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T20:41:40+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T20:41:40+08:00","date":"2026-06-09","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-09T20:41:47+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-server-list-name-subtitle.md 28lines"}
{"ts":"2026-06-09T20:41:47+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-server-list-name-subtitle.md"}
{"ts":"2026-06-09T20:41:47+08:00","date":"2026-06-09","gate":"test","result":"BLOCK","detail":"tests failed"}
{"ts":"2026-06-09T21:40:46+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-server-list-expand-metrics.md 35lines"}
{"ts":"2026-06-09T21:40:46+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-fleet-trend-remove-csv.md"}
{"ts":"2026-06-09T21:40:46+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T21:40:46+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T21:40:46+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T21:40:46+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T21:40:46+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T21:40:46+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T21:40:46+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T21:40:46+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T21:56:48+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-telegram-alert-public-ip.md 29lines"}
{"ts":"2026-06-09T21:56:48+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-fleet-trend-remove-csv.md"}
{"ts":"2026-06-09T21:56:48+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T21:56:48+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T21:56:48+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T21:56:48+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T21:56:48+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T21:56:48+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T21:56:48+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T21:56:48+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-09T22:02:29+08:00","date":"2026-06-09","gate":"changelog","result":"PASS","detail":"2026-06-09-telegram-alert-public-ip.md 29lines"}
{"ts":"2026-06-09T22:02:29+08:00","date":"2026-06-09","gate":"audit","result":"PASS","detail":"2026-06-09-fleet-trend-remove-csv.md"}
{"ts":"2026-06-09T22:02:29+08:00","date":"2026-06-09","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-09T22:02:29+08:00","date":"2026-06-09","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-09T22:02:29+08:00","date":"2026-06-09","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-09T22:02:29+08:00","date":"2026-06-09","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-09T22:02:29+08:00","date":"2026-06-09","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-09T22:02:29+08:00","date":"2026-06-09","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-09T22:02:29+08:00","date":"2026-06-09","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-09T22:02:29+08:00","date":"2026-06-09","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-10T01:08:13+08:00","date":"2026-06-10","gate":"changelog","result":"BLOCK","detail":"file not found"}
{"ts":"2026-06-10T01:08:13+08:00","date":"2026-06-10","gate":"audit","result":"BLOCK","detail":"file not found"}
{"ts":"2026-06-10T01:08:13+08:00","date":"2026-06-10","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-10T01:08:13+08:00","date":"2026-06-10","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-10T01:08:13+08:00","date":"2026-06-10","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-10T01:08:13+08:00","date":"2026-06-10","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-10T01:08:13+08:00","date":"2026-06-10","gate":"review","result":"BLOCK","detail":"no audit file"}
{"ts":"2026-06-10T01:08:13+08:00","date":"2026-06-10","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-10T01:08:13+08:00","date":"2026-06-10","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-10T01:08:13+08:00","date":"2026-06-10","gate":"summary","result":"BLOCK","detail":"4/7"}
{"ts":"2026-06-10T01:26:50+08:00","date":"2026-06-10","gate":"changelog","result":"PASS","detail":"2026-06-10-rdp-browser-guacd.md 42lines"}
{"ts":"2026-06-10T01:26:50+08:00","date":"2026-06-10","gate":"audit","result":"PASS","detail":"2026-06-10-rdp-browser-guacd.md"}
{"ts":"2026-06-10T01:26:50+08:00","date":"2026-06-10","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-10T01:26:50+08:00","date":"2026-06-10","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-10T01:26:50+08:00","date":"2026-06-10","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-10T01:26:50+08:00","date":"2026-06-10","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-10T01:26:50+08:00","date":"2026-06-10","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-10T01:26:50+08:00","date":"2026-06-10","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-10T01:26:50+08:00","date":"2026-06-10","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-10T01:26:50+08:00","date":"2026-06-10","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-10T01:30:56+08:00","date":"2026-06-10","gate":"changelog","result":"PASS","detail":"2026-06-10-push-success-sound.md 26lines"}
{"ts":"2026-06-10T01:30:56+08:00","date":"2026-06-10","gate":"audit","result":"PASS","detail":"2026-06-10-rdp-browser-guacd.md"}
{"ts":"2026-06-10T01:30:56+08:00","date":"2026-06-10","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-10T01:30:56+08:00","date":"2026-06-10","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-10T01:30:56+08:00","date":"2026-06-10","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-10T01:30:56+08:00","date":"2026-06-10","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-10T01:30:56+08:00","date":"2026-06-10","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-10T01:30:56+08:00","date":"2026-06-10","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-10T01:30:56+08:00","date":"2026-06-10","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-10T01:30:56+08:00","date":"2026-06-10","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-10T01:38:03+08:00","date":"2026-06-10","gate":"changelog","result":"PASS","detail":"2026-06-10-push-success-sound.md 26lines"}
{"ts":"2026-06-10T01:38:03+08:00","date":"2026-06-10","gate":"audit","result":"PASS","detail":"2026-06-10-rdp-browser-guacd.md"}
{"ts":"2026-06-10T01:38:03+08:00","date":"2026-06-10","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-10T01:38:03+08:00","date":"2026-06-10","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-10T01:38:03+08:00","date":"2026-06-10","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-10T01:38:03+08:00","date":"2026-06-10","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-10T01:38:03+08:00","date":"2026-06-10","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-10T01:38:03+08:00","date":"2026-06-10","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-10T01:38:03+08:00","date":"2026-06-10","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-10T01:38:03+08:00","date":"2026-06-10","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-10T20:57:52+08:00","date":"2026-06-10","gate":"changelog","result":"PASS","detail":"2026-06-10-rdp-hosts-standalone.md 32lines"}
{"ts":"2026-06-10T20:57:52+08:00","date":"2026-06-10","gate":"audit","result":"PASS","detail":"2026-06-10-rdp-browser-guacd.md"}
{"ts":"2026-06-10T20:57:52+08:00","date":"2026-06-10","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-10T20:57:52+08:00","date":"2026-06-10","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-10T20:57:52+08:00","date":"2026-06-10","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-10T20:57:52+08:00","date":"2026-06-10","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-10T20:57:52+08:00","date":"2026-06-10","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-10T20:57:52+08:00","date":"2026-06-10","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-10T20:57:52+08:00","date":"2026-06-10","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-10T20:57:52+08:00","date":"2026-06-10","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-10T20:58:56+08:00","date":"2026-06-10","gate":"changelog","result":"PASS","detail":"2026-06-10-rdp-hosts-standalone.md 32lines"}
{"ts":"2026-06-10T20:58:56+08:00","date":"2026-06-10","gate":"audit","result":"PASS","detail":"2026-06-10-rdp-hosts-standalone.md"}
{"ts":"2026-06-10T20:58:56+08:00","date":"2026-06-10","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-10T20:58:56+08:00","date":"2026-06-10","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-10T20:58:56+08:00","date":"2026-06-10","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-10T20:58:56+08:00","date":"2026-06-10","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-10T20:58:56+08:00","date":"2026-06-10","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-10T20:58:56+08:00","date":"2026-06-10","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-10T20:58:56+08:00","date":"2026-06-10","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-10T20:58:56+08:00","date":"2026-06-10","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-10T20:59:12+08:00","date":"2026-06-10","gate":"changelog","result":"PASS","detail":"2026-06-10-rdp-hosts-standalone.md 32lines"}
{"ts":"2026-06-10T20:59:12+08:00","date":"2026-06-10","gate":"audit","result":"PASS","detail":"2026-06-10-rdp-hosts-standalone.md"}
{"ts":"2026-06-10T20:59:12+08:00","date":"2026-06-10","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-10T20:59:12+08:00","date":"2026-06-10","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-10T20:59:12+08:00","date":"2026-06-10","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-10T20:59:12+08:00","date":"2026-06-10","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-10T20:59:12+08:00","date":"2026-06-10","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-10T20:59:12+08:00","date":"2026-06-10","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-10T20:59:12+08:00","date":"2026-06-10","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-10T20:59:12+08:00","date":"2026-06-10","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-10T21:18:32+08:00","date":"2026-06-10","gate":"changelog","result":"PASS","detail":"2026-06-10-rdp-hosts-standalone.md 36lines"}
{"ts":"2026-06-10T21:18:32+08:00","date":"2026-06-10","gate":"audit","result":"PASS","detail":"2026-06-10-rdp-hosts-standalone.md"}
{"ts":"2026-06-10T21:18:32+08:00","date":"2026-06-10","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-10T21:18:32+08:00","date":"2026-06-10","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-10T21:18:32+08:00","date":"2026-06-10","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-10T21:18:32+08:00","date":"2026-06-10","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-10T21:18:32+08:00","date":"2026-06-10","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-10T21:18:32+08:00","date":"2026-06-10","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-10T21:18:32+08:00","date":"2026-06-10","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-10T21:18:32+08:00","date":"2026-06-10","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-10T21:28:00+08:00","date":"2026-06-10","gate":"changelog","result":"PASS","detail":"2026-06-10-rdp-guacd-handshake-fix.md 30lines"}
{"ts":"2026-06-10T21:28:00+08:00","date":"2026-06-10","gate":"audit","result":"PASS","detail":"2026-06-10-rdp-hosts-standalone.md"}
{"ts":"2026-06-10T21:28:00+08:00","date":"2026-06-10","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-10T21:28:00+08:00","date":"2026-06-10","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-10T21:28:00+08:00","date":"2026-06-10","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-10T21:28:00+08:00","date":"2026-06-10","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-10T21:28:00+08:00","date":"2026-06-10","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-10T21:28:00+08:00","date":"2026-06-10","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-10T21:28:00+08:00","date":"2026-06-10","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-10T21:28:00+08:00","date":"2026-06-10","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-10T23:21:27+08:00","date":"2026-06-10","gate":"changelog","result":"PASS","detail":"2026-06-10-rdp-feature-removal.md 48lines"}
{"ts":"2026-06-10T23:21:27+08:00","date":"2026-06-10","gate":"audit","result":"PASS","detail":"2026-06-10-rdp-hosts-standalone.md"}
{"ts":"2026-06-10T23:21:27+08:00","date":"2026-06-10","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-10T23:21:27+08:00","date":"2026-06-10","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-10T23:21:27+08:00","date":"2026-06-10","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-10T23:21:27+08:00","date":"2026-06-10","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-10T23:21:27+08:00","date":"2026-06-10","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-10T23:21:27+08:00","date":"2026-06-10","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-10T23:21:27+08:00","date":"2026-06-10","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-10T23:21:27+08:00","date":"2026-06-10","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-10T23:23:19+08:00","date":"2026-06-10","gate":"changelog","result":"PASS","detail":"2026-06-10-rdp-feature-removal.md 48lines"}
{"ts":"2026-06-10T23:23:19+08:00","date":"2026-06-10","gate":"audit","result":"PASS","detail":"2026-06-10-rdp-feature-removal.md"}
{"ts":"2026-06-10T23:23:19+08:00","date":"2026-06-10","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-10T23:23:19+08:00","date":"2026-06-10","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-10T23:23:19+08:00","date":"2026-06-10","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-10T23:23:19+08:00","date":"2026-06-10","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-10T23:23:19+08:00","date":"2026-06-10","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-10T23:23:19+08:00","date":"2026-06-10","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-10T23:23:19+08:00","date":"2026-06-10","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-10T23:23:19+08:00","date":"2026-06-10","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-10T23:23:34+08:00","date":"2026-06-10","gate":"changelog","result":"PASS","detail":"2026-06-10-rdp-feature-removal.md 48lines"}
{"ts":"2026-06-10T23:23:34+08:00","date":"2026-06-10","gate":"audit","result":"PASS","detail":"2026-06-10-rdp-feature-removal.md"}
{"ts":"2026-06-10T23:23:34+08:00","date":"2026-06-10","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-10T23:23:34+08:00","date":"2026-06-10","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-10T23:23:34+08:00","date":"2026-06-10","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-10T23:23:34+08:00","date":"2026-06-10","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-10T23:23:34+08:00","date":"2026-06-10","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-10T23:23:34+08:00","date":"2026-06-10","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-10T23:23:34+08:00","date":"2026-06-10","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-10T23:23:34+08:00","date":"2026-06-10","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-11T17:47:02+08:00","date":"2026-06-11","gate":"changelog","result":"PASS","detail":"2026-06-11-servers-search-history.md 44lines"}
{"ts":"2026-06-11T17:47:02+08:00","date":"2026-06-11","gate":"audit","result":"BLOCK","detail":"file not found"}
{"ts":"2026-06-11T17:47:02+08:00","date":"2026-06-11","gate":"test","result":"BLOCK","detail":"tests failed"}
{"ts":"2026-06-11T17:47:02+08:00","date":"2026-06-11","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-11T17:47:02+08:00","date":"2026-06-11","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-11T17:47:02+08:00","date":"2026-06-11","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-11T17:47:02+08:00","date":"2026-06-11","gate":"review","result":"BLOCK","detail":"no audit file"}
{"ts":"2026-06-11T17:47:02+08:00","date":"2026-06-11","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-11T17:47:02+08:00","date":"2026-06-11","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-11T17:47:02+08:00","date":"2026-06-11","gate":"summary","result":"BLOCK","detail":"4/7"}
{"ts":"2026-06-11T17:47:40+08:00","date":"2026-06-11","gate":"changelog","result":"PASS","detail":"2026-06-11-servers-search-history.md 44lines"}
{"ts":"2026-06-11T17:47:40+08:00","date":"2026-06-11","gate":"audit","result":"PASS","detail":"2026-06-11-servers-search-history.md"}
{"ts":"2026-06-11T17:47:40+08:00","date":"2026-06-11","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-11T17:47:40+08:00","date":"2026-06-11","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-11T17:47:40+08:00","date":"2026-06-11","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-11T17:47:40+08:00","date":"2026-06-11","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-11T17:47:40+08:00","date":"2026-06-11","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-11T17:47:40+08:00","date":"2026-06-11","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-11T17:47:40+08:00","date":"2026-06-11","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-11T17:47:40+08:00","date":"2026-06-11","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-11T17:54:51+08:00","date":"2026-06-11","gate":"changelog","result":"PASS","detail":"2026-06-11-servers-search-manual-trigger.md 28lines"}
{"ts":"2026-06-11T17:54:51+08:00","date":"2026-06-11","gate":"audit","result":"PASS","detail":"2026-06-11-servers-search-manual-trigger.md"}
{"ts":"2026-06-11T17:54:51+08:00","date":"2026-06-11","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-11T17:54:51+08:00","date":"2026-06-11","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-11T17:54:51+08:00","date":"2026-06-11","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-11T17:54:51+08:00","date":"2026-06-11","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-11T17:54:51+08:00","date":"2026-06-11","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-11T17:54:51+08:00","date":"2026-06-11","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-11T17:54:51+08:00","date":"2026-06-11","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-11T17:54:51+08:00","date":"2026-06-11","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-11T18:12:57+08:00","date":"2026-06-11","gate":"changelog","result":"PASS","detail":"2026-06-11-files-chmod-not-effective-fix.md 32lines"}
{"ts":"2026-06-11T18:12:57+08:00","date":"2026-06-11","gate":"audit","result":"PASS","detail":"2026-06-11-files-chmod-not-effective-fix.md"}
{"ts":"2026-06-11T18:12:57+08:00","date":"2026-06-11","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-11T18:12:57+08:00","date":"2026-06-11","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-11T18:12:57+08:00","date":"2026-06-11","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-11T18:12:57+08:00","date":"2026-06-11","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-11T18:12:57+08:00","date":"2026-06-11","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-11T18:12:57+08:00","date":"2026-06-11","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-11T18:12:57+08:00","date":"2026-06-11","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-11T18:12:57+08:00","date":"2026-06-11","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-11T18:23:41+08:00","date":"2026-06-11","gate":"changelog","result":"PASS","detail":"2026-06-11-files-upload-www-permissions.md 39lines"}
{"ts":"2026-06-11T18:23:41+08:00","date":"2026-06-11","gate":"audit","result":"PASS","detail":"2026-06-11-files-chmod-not-effective-fix.md"}
{"ts":"2026-06-11T18:23:41+08:00","date":"2026-06-11","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-11T18:23:41+08:00","date":"2026-06-11","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-11T18:23:41+08:00","date":"2026-06-11","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-11T18:23:41+08:00","date":"2026-06-11","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-11T18:23:41+08:00","date":"2026-06-11","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-11T18:23:41+08:00","date":"2026-06-11","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-11T18:23:41+08:00","date":"2026-06-11","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-11T18:23:41+08:00","date":"2026-06-11","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-11T18:24:13+08:00","date":"2026-06-11","gate":"changelog","result":"PASS","detail":"2026-06-11-files-upload-www-permissions.md 39lines"}
{"ts":"2026-06-11T18:24:13+08:00","date":"2026-06-11","gate":"audit","result":"PASS","detail":"2026-06-11-files-upload-www-permissions.md"}
{"ts":"2026-06-11T18:24:13+08:00","date":"2026-06-11","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-11T18:24:13+08:00","date":"2026-06-11","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-11T18:24:13+08:00","date":"2026-06-11","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-11T18:24:13+08:00","date":"2026-06-11","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-11T18:24:13+08:00","date":"2026-06-11","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-11T18:24:13+08:00","date":"2026-06-11","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-11T18:24:13+08:00","date":"2026-06-11","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-11T18:24:13+08:00","date":"2026-06-11","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-11T18:30:51+08:00","date":"2026-06-11","gate":"changelog","result":"PASS","detail":"2026-06-11-embedded-browser.md 38lines"}
{"ts":"2026-06-11T18:30:51+08:00","date":"2026-06-11","gate":"audit","result":"PASS","detail":"2026-06-11-embedded-browser.md"}
{"ts":"2026-06-11T18:30:51+08:00","date":"2026-06-11","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-11T18:30:51+08:00","date":"2026-06-11","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-11T18:30:51+08:00","date":"2026-06-11","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-11T18:30:51+08:00","date":"2026-06-11","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-11T18:30:51+08:00","date":"2026-06-11","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-11T18:30:51+08:00","date":"2026-06-11","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-11T18:30:51+08:00","date":"2026-06-11","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-11T18:30:51+08:00","date":"2026-06-11","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-11T20:11:04+08:00","date":"2026-06-11","gate":"changelog","result":"PASS","detail":"2026-06-11-global-floating-browser.md 41lines"}
{"ts":"2026-06-11T20:11:04+08:00","date":"2026-06-11","gate":"audit","result":"BLOCK","detail":"missing sections"}
{"ts":"2026-06-11T20:11:04+08:00","date":"2026-06-11","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-11T20:11:04+08:00","date":"2026-06-11","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-11T20:11:04+08:00","date":"2026-06-11","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-11T20:11:04+08:00","date":"2026-06-11","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-11T20:11:04+08:00","date":"2026-06-11","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-11T20:11:04+08:00","date":"2026-06-11","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-11T20:11:04+08:00","date":"2026-06-11","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-11T20:11:04+08:00","date":"2026-06-11","gate":"summary","result":"BLOCK","detail":"5/7"}
{"ts":"2026-06-11T20:11:24+08:00","date":"2026-06-11","gate":"changelog","result":"PASS","detail":"2026-06-11-global-floating-browser.md 41lines"}
{"ts":"2026-06-11T20:11:24+08:00","date":"2026-06-11","gate":"audit","result":"PASS","detail":"2026-06-11-global-floating-browser.md"}
{"ts":"2026-06-11T20:11:24+08:00","date":"2026-06-11","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-11T20:11:24+08:00","date":"2026-06-11","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-11T20:11:24+08:00","date":"2026-06-11","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-11T20:11:24+08:00","date":"2026-06-11","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-11T20:11:24+08:00","date":"2026-06-11","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-11T20:11:24+08:00","date":"2026-06-11","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-11T20:11:24+08:00","date":"2026-06-11","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-11T20:11:24+08:00","date":"2026-06-11","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-11T20:15:48+08:00","date":"2026-06-11","gate":"changelog","result":"PASS","detail":"2026-06-11-global-floating-browser.md 47lines"}
{"ts":"2026-06-11T20:15:48+08:00","date":"2026-06-11","gate":"audit","result":"PASS","detail":"2026-06-11-global-floating-browser.md"}
{"ts":"2026-06-11T20:15:48+08:00","date":"2026-06-11","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-11T20:15:48+08:00","date":"2026-06-11","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-11T20:15:48+08:00","date":"2026-06-11","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-11T20:15:48+08:00","date":"2026-06-11","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-11T20:15:48+08:00","date":"2026-06-11","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-11T20:15:48+08:00","date":"2026-06-11","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-11T20:15:48+08:00","date":"2026-06-11","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-11T20:15:48+08:00","date":"2026-06-11","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-11T20:19:51+08:00","date":"2026-06-11","gate":"changelog","result":"PASS","detail":"2026-06-11-global-floating-browser.md 48lines"}
{"ts":"2026-06-11T20:19:51+08:00","date":"2026-06-11","gate":"audit","result":"PASS","detail":"2026-06-11-global-floating-browser.md"}
{"ts":"2026-06-11T20:19:51+08:00","date":"2026-06-11","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-11T20:19:51+08:00","date":"2026-06-11","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-11T20:19:51+08:00","date":"2026-06-11","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-11T20:19:51+08:00","date":"2026-06-11","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-11T20:19:51+08:00","date":"2026-06-11","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-11T20:19:51+08:00","date":"2026-06-11","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-11T20:19:51+08:00","date":"2026-06-11","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-11T20:19:51+08:00","date":"2026-06-11","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-11T20:20:04+08:00","date":"2026-06-11","gate":"changelog","result":"PASS","detail":"2026-06-11-global-floating-browser.md 48lines"}
{"ts":"2026-06-11T20:20:04+08:00","date":"2026-06-11","gate":"audit","result":"PASS","detail":"2026-06-11-global-floating-browser.md"}
{"ts":"2026-06-11T20:20:04+08:00","date":"2026-06-11","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-11T20:20:04+08:00","date":"2026-06-11","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-11T20:20:04+08:00","date":"2026-06-11","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-11T20:20:04+08:00","date":"2026-06-11","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-11T20:20:04+08:00","date":"2026-06-11","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-11T20:20:04+08:00","date":"2026-06-11","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-11T20:20:04+08:00","date":"2026-06-11","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-11T20:20:04+08:00","date":"2026-06-11","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-11T23:20:24+08:00","date":"2026-06-11","gate":"changelog","result":"PASS","detail":"2026-06-11-rsync-push-sudo-elevation.md 43lines"}
{"ts":"2026-06-11T23:20:24+08:00","date":"2026-06-11","gate":"audit","result":"PASS","detail":"2026-06-11-rsync-push-sudo-elevation.md"}
{"ts":"2026-06-11T23:20:24+08:00","date":"2026-06-11","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-11T23:20:24+08:00","date":"2026-06-11","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-11T23:20:24+08:00","date":"2026-06-11","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-11T23:20:24+08:00","date":"2026-06-11","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-11T23:20:24+08:00","date":"2026-06-11","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-11T23:20:24+08:00","date":"2026-06-11","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-11T23:20:24+08:00","date":"2026-06-11","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-11T23:20:24+08:00","date":"2026-06-11","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-11T23:43:11+08:00","date":"2026-06-11","gate":"changelog","result":"PASS","detail":"2026-06-11-push-default-wwwroot.md 41lines"}
{"ts":"2026-06-11T23:43:11+08:00","date":"2026-06-11","gate":"audit","result":"PASS","detail":"2026-06-11-rsync-push-sudo-elevation.md"}
{"ts":"2026-06-11T23:43:11+08:00","date":"2026-06-11","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-11T23:43:11+08:00","date":"2026-06-11","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-11T23:43:11+08:00","date":"2026-06-11","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-11T23:43:11+08:00","date":"2026-06-11","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-11T23:43:11+08:00","date":"2026-06-11","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-11T23:43:11+08:00","date":"2026-06-11","gate":"shell_eol","result":"BLOCK","detail":"CR in tracked sh"}
{"ts":"2026-06-11T23:43:11+08:00","date":"2026-06-11","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-11T23:43:11+08:00","date":"2026-06-11","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-11T23:45:44+08:00","date":"2026-06-11","gate":"changelog","result":"PASS","detail":"2026-06-11-push-default-wwwroot.md 41lines"}
{"ts":"2026-06-11T23:45:44+08:00","date":"2026-06-11","gate":"audit","result":"PASS","detail":"2026-06-11-push-default-wwwroot.md"}
{"ts":"2026-06-11T23:45:44+08:00","date":"2026-06-11","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-11T23:45:44+08:00","date":"2026-06-11","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-11T23:45:44+08:00","date":"2026-06-11","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-11T23:45:44+08:00","date":"2026-06-11","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-11T23:45:44+08:00","date":"2026-06-11","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-11T23:45:44+08:00","date":"2026-06-11","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-11T23:45:44+08:00","date":"2026-06-11","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-11T23:45:44+08:00","date":"2026-06-11","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-12T00:18:55+08:00","date":"2026-06-12","gate":"changelog","result":"BLOCK","detail":"file not found"}
{"ts":"2026-06-12T00:18:55+08:00","date":"2026-06-12","gate":"audit","result":"BLOCK","detail":"file not found"}
{"ts":"2026-06-12T00:18:55+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T00:18:55+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T00:18:55+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T00:18:55+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T00:18:55+08:00","date":"2026-06-12","gate":"review","result":"BLOCK","detail":"no audit file"}
{"ts":"2026-06-12T00:18:55+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T00:18:55+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T00:18:55+08:00","date":"2026-06-12","gate":"summary","result":"BLOCK","detail":"4/7"}
{"ts":"2026-06-12T00:19:19+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-server-onboarding-automation.md 25lines"}
{"ts":"2026-06-12T00:19:19+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-server-onboarding-automation.md"}
{"ts":"2026-06-12T00:19:19+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T00:19:19+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T00:19:19+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T00:19:19+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T00:19:19+08:00","date":"2026-06-12","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-12T00:19:19+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T00:19:19+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T00:19:19+08:00","date":"2026-06-12","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-12T00:19:31+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-server-onboarding-automation.md 25lines"}
{"ts":"2026-06-12T00:19:31+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-server-onboarding-automation.md"}
{"ts":"2026-06-12T00:19:31+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T00:19:31+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T00:19:31+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T00:19:31+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T00:19:31+08:00","date":"2026-06-12","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-12T00:19:31+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T00:19:31+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T00:19:31+08:00","date":"2026-06-12","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-12T01:44:02+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-server-onboarding-automation.md 25lines"}
{"ts":"2026-06-12T01:44:02+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-server-onboarding-automation.md"}
{"ts":"2026-06-12T01:44:02+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T01:44:02+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T01:44:02+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T01:44:02+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T01:44:02+08:00","date":"2026-06-12","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-12T01:44:02+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T01:44:02+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T01:44:02+08:00","date":"2026-06-12","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-12T01:44:24+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-server-onboarding-automation.md 25lines"}
{"ts":"2026-06-12T01:44:24+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-remove-browser-push-ui.md"}
{"ts":"2026-06-12T01:44:24+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T01:44:24+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T01:44:24+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T01:44:24+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T01:44:24+08:00","date":"2026-06-12","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-12T01:44:24+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T01:44:24+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T01:44:24+08:00","date":"2026-06-12","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-12T01:47:53+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-terminal-server-rail-search-history.md 34lines"}
{"ts":"2026-06-12T01:47:53+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-terminal-server-rail-search-history.md"}
{"ts":"2026-06-12T01:47:53+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T01:47:53+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T01:47:53+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T01:47:53+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T01:47:53+08:00","date":"2026-06-12","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-12T01:47:53+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T01:47:53+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T01:47:53+08:00","date":"2026-06-12","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-12T01:51:46+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-push-remove-name-copy.md 29lines"}
{"ts":"2026-06-12T01:51:46+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-push-remove-name-copy.md"}
{"ts":"2026-06-12T01:51:46+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T01:51:46+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T01:51:46+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T01:51:46+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T01:51:46+08:00","date":"2026-06-12","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-12T01:51:46+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T01:51:46+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T01:51:46+08:00","date":"2026-06-12","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-12T01:58:39+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-terminal-search-center-empty-state.md 31lines"}
{"ts":"2026-06-12T01:58:39+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-push-terminal-ui.md"}
{"ts":"2026-06-12T01:58:39+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T01:58:39+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T01:58:39+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T01:58:39+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T01:58:39+08:00","date":"2026-06-12","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-12T01:58:39+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T01:58:39+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T01:58:39+08:00","date":"2026-06-12","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-12T02:03:52+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-search-history-isolated-scopes.md 35lines"}
{"ts":"2026-06-12T02:03:52+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-search-history-isolated-scopes.md"}
{"ts":"2026-06-12T02:03:52+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T02:03:52+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T02:03:52+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T02:03:52+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T02:03:52+08:00","date":"2026-06-12","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-12T02:03:52+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T02:03:52+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T02:03:52+08:00","date":"2026-06-12","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-12T02:55:32+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-server-watch-slots.md 54lines"}
{"ts":"2026-06-12T02:55:32+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-server-watch-slots.md"}
{"ts":"2026-06-12T02:55:32+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T02:55:32+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T02:55:32+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T02:55:32+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T02:55:32+08:00","date":"2026-06-12","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-12T02:55:32+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T02:55:32+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T02:55:32+08:00","date":"2026-06-12","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-12T02:56:25+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-server-watch-slots.md 54lines"}
{"ts":"2026-06-12T02:56:25+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-server-watch-slots.md"}
{"ts":"2026-06-12T02:56:25+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T02:56:25+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T02:56:25+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T02:56:25+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T02:56:25+08:00","date":"2026-06-12","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-12T02:56:25+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T02:56:25+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T02:56:25+08:00","date":"2026-06-12","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-12T02:56:43+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-server-watch-slots.md 54lines"}
{"ts":"2026-06-12T02:56:43+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-server-watch-slots.md"}
{"ts":"2026-06-12T02:56:43+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T02:56:43+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T02:56:43+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T02:56:43+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T02:56:43+08:00","date":"2026-06-12","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-12T02:56:43+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T02:56:43+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T02:56:43+08:00","date":"2026-06-12","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-12T03:08:34+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-server-watch-slots.md 54lines"}
{"ts":"2026-06-12T03:08:34+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-server-watch-slots.md"}
{"ts":"2026-06-12T03:08:34+08:00","date":"2026-06-12","gate":"test","result":"BLOCK","detail":"tests failed"}
{"ts":"2026-06-12T03:08:34+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T03:08:34+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T03:08:34+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T03:08:34+08:00","date":"2026-06-12","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-12T03:08:34+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T03:08:34+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T03:08:34+08:00","date":"2026-06-12","gate":"summary","result":"BLOCK","detail":"5/7"}
{"ts":"2026-06-12T03:10:05+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-server-watch-slots.md 54lines"}
{"ts":"2026-06-12T03:10:05+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-files-watch-ui-fixes.md"}
{"ts":"2026-06-12T03:10:05+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T03:10:05+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T03:10:05+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T03:10:05+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T03:10:05+08:00","date":"2026-06-12","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-12T03:10:05+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T03:10:05+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T03:10:05+08:00","date":"2026-06-12","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-12T03:12:19+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-server-watch-slots.md 54lines"}
{"ts":"2026-06-12T03:12:19+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-files-watch-ui-fixes.md"}
{"ts":"2026-06-12T03:12:19+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T03:12:19+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T03:12:19+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T03:12:19+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T03:12:19+08:00","date":"2026-06-12","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-12T03:12:19+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T03:12:19+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T03:12:19+08:00","date":"2026-06-12","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-12T03:40:50+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-server-agent-action-hint.md 33lines"}
{"ts":"2026-06-12T03:40:50+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-files-watch-ui-fixes.md"}
{"ts":"2026-06-12T03:40:50+08:00","date":"2026-06-12","gate":"test","result":"BLOCK","detail":"tests failed"}
{"ts":"2026-06-12T03:40:50+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T03:40:50+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T03:40:50+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T03:40:50+08:00","date":"2026-06-12","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-12T03:40:50+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T03:40:50+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T03:40:50+08:00","date":"2026-06-12","gate":"summary","result":"BLOCK","detail":"5/7"}
{"ts":"2026-06-12T03:41:07+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-server-agent-action-hint.md 33lines"}
{"ts":"2026-06-12T03:41:07+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-files-watch-ui-fixes.md"}
{"ts":"2026-06-12T03:41:07+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T03:41:07+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T03:41:07+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T03:41:07+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T03:41:07+08:00","date":"2026-06-12","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-12T03:41:07+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T03:41:07+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T03:41:07+08:00","date":"2026-06-12","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-12T03:42:10+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-server-agent-action-hint.md 33lines"}
{"ts":"2026-06-12T03:42:10+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-files-watch-ui-fixes.md"}
{"ts":"2026-06-12T03:42:10+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T03:42:10+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T03:42:10+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T03:42:10+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T03:42:10+08:00","date":"2026-06-12","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-12T03:42:10+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T03:42:10+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T03:42:10+08:00","date":"2026-06-12","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-12T03:48:00+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-watch-ttl-expiry-race-fix.md 35lines"}
{"ts":"2026-06-12T03:48:00+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-watch-slot-monitoring-deploy.md"}
{"ts":"2026-06-12T03:48:00+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T03:48:00+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T03:48:00+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T03:48:00+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T03:48:00+08:00","date":"2026-06-12","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-12T03:48:00+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T03:48:00+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T03:48:00+08:00","date":"2026-06-12","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-12T04:04:48+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-watch-install-psutil-ssh.md 40lines"}
{"ts":"2026-06-12T04:04:48+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-watch-install-psutil-ssh.md"}
{"ts":"2026-06-12T04:04:48+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T04:04:48+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T04:04:48+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T04:04:48+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T04:04:48+08:00","date":"2026-06-12","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-12T04:04:48+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T04:04:48+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T04:04:48+08:00","date":"2026-06-12","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-12T04:04:59+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-watch-install-psutil-ssh.md 40lines"}
{"ts":"2026-06-12T04:04:59+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-watch-install-psutil-ssh.md"}
{"ts":"2026-06-12T04:04:59+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T04:04:59+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T04:04:59+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T04:04:59+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T04:04:59+08:00","date":"2026-06-12","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-12T04:04:59+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T04:04:59+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T04:04:59+08:00","date":"2026-06-12","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-12T04:09:10+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-psutil-install-sudo-fix.md 19lines"}
{"ts":"2026-06-12T04:09:10+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-psutil-install-sudo-fix.md"}
{"ts":"2026-06-12T04:09:10+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T04:09:10+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T04:09:10+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T04:09:10+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T04:09:10+08:00","date":"2026-06-12","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-12T04:09:10+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T04:09:10+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T04:09:10+08:00","date":"2026-06-12","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-12T04:16:46+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-audit-log-server-target-name.md 18lines"}
{"ts":"2026-06-12T04:16:46+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-audit-log-server-target-name.md"}
{"ts":"2026-06-12T04:16:46+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T04:16:46+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T04:16:46+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T04:16:46+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T04:16:46+08:00","date":"2026-06-12","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-12T04:16:46+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T04:16:46+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T04:16:46+08:00","date":"2026-06-12","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-12T04:21:16+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-watch-slot-hover-border.md 15lines"}
{"ts":"2026-06-12T04:21:16+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-audit-log-server-target-name.md"}
{"ts":"2026-06-12T04:21:16+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T04:21:16+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T04:21:16+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T04:21:16+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T04:21:16+08:00","date":"2026-06-12","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-12T04:21:16+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T04:21:16+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T04:21:16+08:00","date":"2026-06-12","gate":"summary","result":"BLOCK","detail":"6/7"}
{"ts":"2026-06-12T04:21:28+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-watch-slot-hover-border.md 15lines"}
{"ts":"2026-06-12T04:21:28+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-watch-slot-hover-border.md"}
{"ts":"2026-06-12T04:21:28+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T04:21:28+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T04:21:28+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T04:21:28+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T04:21:28+08:00","date":"2026-06-12","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-12T04:21:28+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T04:21:28+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T04:21:28+08:00","date":"2026-06-12","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-12T04:32:30+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-watch-slot-ttl-metrics-ui.md 43lines"}
{"ts":"2026-06-12T04:32:30+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-watch-slot-hover-border.md"}
{"ts":"2026-06-12T04:32:30+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T04:32:30+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T04:32:30+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T04:32:30+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T04:32:30+08:00","date":"2026-06-12","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-12T04:32:30+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T04:32:30+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T04:32:30+08:00","date":"2026-06-12","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-12T06:49:23+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-browser-top-appbar.md 19lines"}
{"ts":"2026-06-12T06:49:23+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-audit-log-server-target-name.md"}
{"ts":"2026-06-12T06:49:23+08:00","date":"2026-06-12","gate":"test","result":"BLOCK","detail":"tests failed"}
{"ts":"2026-06-12T06:49:23+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T06:49:23+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T06:49:23+08:00","date":"2026-06-12","gate":"security","result":"BLOCK","detail":"3 HIGH findings"}
{"ts":"2026-06-12T06:49:23+08:00","date":"2026-06-12","gate":"review","result":"BLOCK","detail":"audit missing changed files"}
{"ts":"2026-06-12T06:49:23+08:00","date":"2026-06-12","gate":"shell_eol","result":"BLOCK","detail":"CR in tracked sh"}
{"ts":"2026-06-12T06:49:23+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T06:49:23+08:00","date":"2026-06-12","gate":"summary","result":"BLOCK","detail":"4/7"}
{"ts":"2026-06-12T06:50:36+08:00","date":"2026-06-12","gate":"changelog","result":"PASS","detail":"2026-06-12-browser-top-appbar.md 19lines"}
{"ts":"2026-06-12T06:50:36+08:00","date":"2026-06-12","gate":"audit","result":"PASS","detail":"2026-06-12-remote-browser-worker.md"}
{"ts":"2026-06-12T06:50:36+08:00","date":"2026-06-12","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-12T06:50:36+08:00","date":"2026-06-12","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-12T06:50:36+08:00","date":"2026-06-12","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-12T06:50:36+08:00","date":"2026-06-12","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-12T06:50:36+08:00","date":"2026-06-12","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-12T06:50:36+08:00","date":"2026-06-12","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-12T06:50:36+08:00","date":"2026-06-12","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-12T06:50:36+08:00","date":"2026-06-12","gate":"summary","result":"PASS","detail":"7/7"}
{"ts":"2026-06-13T01:43:01+08:00","date":"2026-06-13","gate":"changelog","result":"PASS","detail":"2026-06-13-offline-alert-telegram-split.md 37lines"}
{"ts":"2026-06-13T01:43:01+08:00","date":"2026-06-13","gate":"audit","result":"BLOCK","detail":"file not found"}
{"ts":"2026-06-13T01:43:01+08:00","date":"2026-06-13","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-13T01:43:01+08:00","date":"2026-06-13","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-13T01:43:01+08:00","date":"2026-06-13","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-13T01:43:01+08:00","date":"2026-06-13","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-13T01:43:01+08:00","date":"2026-06-13","gate":"review","result":"BLOCK","detail":"no audit file"}
{"ts":"2026-06-13T01:43:01+08:00","date":"2026-06-13","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-13T01:43:01+08:00","date":"2026-06-13","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-13T01:43:01+08:00","date":"2026-06-13","gate":"summary","result":"BLOCK","detail":"5/7"}
{"ts":"2026-06-13T01:45:17+08:00","date":"2026-06-13","gate":"changelog","result":"PASS","detail":"2026-06-13-offline-alert-telegram-split.md 37lines"}
{"ts":"2026-06-13T01:45:17+08:00","date":"2026-06-13","gate":"audit","result":"PASS","detail":"2026-06-13-offline-quick-cmd-telegram.md"}
{"ts":"2026-06-13T01:45:17+08:00","date":"2026-06-13","gate":"test","result":"PASS","detail":"all passed"}
{"ts":"2026-06-13T01:45:17+08:00","date":"2026-06-13","gate":"lint","result":"PASS","detail":"0 violations"}
{"ts":"2026-06-13T01:45:17+08:00","date":"2026-06-13","gate":"import","result":"PASS","detail":"ok"}
{"ts":"2026-06-13T01:45:17+08:00","date":"2026-06-13","gate":"security","result":"PASS","detail":"0 HIGH"}
{"ts":"2026-06-13T01:45:17+08:00","date":"2026-06-13","gate":"review","result":"PASS","detail":"audit covers changes"}
{"ts":"2026-06-13T01:45:17+08:00","date":"2026-06-13","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"}
{"ts":"2026-06-13T01:45:17+08:00","date":"2026-06-13","gate":"text_eol","result":"PASS","detail":"git index LF"}
{"ts":"2026-06-13T01:45:17+08:00","date":"2026-06-13","gate":"summary","result":"PASS","detail":"7/7"}