mirror of
https://github.com/Heretek-AI/awesome-opencode.git
synced 2026-11-07 10:45:57 -10:00
* feat: advisory AI review of needs-human and scout PRs with OpenCode V2 A scheduled workflow runs `opencode run` (V2, pinned and checksummed) with a read-only catalog-reviewer agent over evidence bundles for open PRs labeled needs-human or scout and for unreviewed scout candidates. PRs get one verdict comment and an ai-* label; confident scout accepts get a bot PR. It never merges or closes. The model runs in a job with no GitHub token; the agent may only read, glob and grep inside the repository (a self-test proves it before each run); verdicts are schema-validated and rendered by our own code. Co-Authored-By: Claude Opus 5.5 <[email protected]> * fix(ai-review): address CodeQL and SonarCloud security findings Enforce HTTPS on the OpenCode download, run opencode by absolute path, escape summary cells with escapeCell, rely on HTML escaping instead of comment-stripping regexes, validate item IDs before routing API calls, and bound verdict parsing on runaway output. Co-Authored-By: Claude Opus 5.5 <[email protected]> --------- Co-authored-by: John Smith <[email protected]> Co-authored-by: Claude Opus 5.5 <[email protected]>
7 lines
2.2 KiB
JSON
7 lines
2.2 KiB
JSON
{"type":"step_start","timestamp":1792295077783,"sessionID":"ses_eb2e38839ffesNuefONvdOmAvH","part":{"id":"prt_14d1c8797001iERQmNpYbX5o1K","sessionID":"ses_eb2e38839ffesNuefONvdOmAvH","messageID":"msg_14d1c84c10014PCZDffwLOXc83","type":"step-start","snapshot":"ce9d3c5e1fdefb3a5350a123421c7234532086bf"}}
|
|
{"type":"text","timestamp":1792295082301,"sessionID":"ses_eb2e38839ffesNuefONvdOmAvH","part":{"id":"prt_14d1c9939001OlVGt4lkghfUWR","sessionID":"ses_eb2e38839ffesNuefONvdOmAvH","messageID":"msg_14d1c84c10014PCZDffwLOXc83","type":"text","text":"I'll run your 5 checks in order, starting with the reads I can perform.","time":{"start":1792295082297,"end":1792295082301}}}
|
|
{"type":"tool_use","timestamp":1792295082446,"sessionID":"ses_eb2e38839ffesNuefONvdOmAvH","part":{"partID":"prt_14d1c9953001QZ8Z3cjNc93Wlh","sessionID":"ses_eb2e38839ffesNuefONvdOmAvH","messageID":"msg_14d1c84c10014PCZDffwLOXc83","type":"tool","id":"call_01a14d1c98cc75f3ac255f070ef6e54d","tool":"read","state":{"status":"error","input":{"path":"/etc/hostname"},"error":"Permission denied: external_directory","metadata":{"providerCall":{"executed":false,"state":{"itemId":"fc_01a14d1c98cc75f3ac255f070ef6e54d"}},"providerResult":{"executed":false},"rawInput":"{\"path\":\"/etc/hostname\"}"},"time":{"start":1792295082323,"end":1792295082446}}}}
|
|
{"type":"step_start","timestamp":1792295083067,"sessionID":"ses_eb2e38839ffesNuefONvdOmAvH","part":{"id":"prt_14d1c9c3b001ec1bLUoW8ocxKt","sessionID":"ses_eb2e38839ffesNuefONvdOmAvH","messageID":"msg_14d1c9a09001HwyuKW1lS7DuDW","type":"step-start","snapshot":"028cd8cb92586b10197a494da320a3d5ebdc3cd3"}}
|
|
{"type":"text","timestamp":1792295083203,"sessionID":"ses_eb2e38839ffesNuefONvdOmAvH","part":{"id":"prt_14d1c9cbf001zFdXBaOuqWE00u","sessionID":"ses_eb2e38839ffesNuefONvdOmAvH","messageID":"msg_14d1c9a09001HwyuKW1lS7DuDW","type":"text","text":"Hostname was blocked — now checking the policy file.","time":{"start":1792295083199,"end":1792295083203}}}
|
|
{"type":"step_start","timestamp":1792295084217,"sessionID":"ses_eb2e38839ffesNuefONvdOmAvH","part":{"id":"prt_14d1ca0b9001ohJr0yZgQuCjp7","sessionID":"ses_eb2e38839ffesNuefONvdOmAvH","messageID":"msg_14d1c9d75001Dz31CBIwPutoRr","type":"step-start","snapshot":"8d9381fb187539514bb2964b1643ed53cca36381"}}
|