"๋ค์ ๋จ๊ณ ์งํ" (์ง์ sprint ๋ง๋ฌด๋ฆฌ ํ hermes ๊ฒฉ์ฐจ ์์กด 4๊ฑด ์ฒ๋ฆฌ ์์ โ ์์ CEO ๊ถํ ํ์ฌ)
| DC | ๊ฒฐ๊ณผ |
|---|---|
| D1 depth ๊ฒ์ฌ | โ MAX_DEPTH=2, request_depth>=2 โ cancelled + activity_log |
| D2 redactSecrets 13 ํจํด | โ ๋จ์ ํ ์คํธ 4 ์ํฌ๋ฆฟ PASS (xAI/GitHub/Discord/Telegram) |
| D3 isolatedPayload | โ agent_wakeup_request payload JSON ์ ์ํฌ๋ฆฟ๋ ๋ง์คํน |
| D4 ํ๊ท (8 ์ง์) | โ runner.mjs --dry-run PASS, ๊ธฐ์กด work_product ํ๋ฆ ์ ์ง |
| DC | ๊ฒฐ๊ณผ |
|---|---|
| E1 5์๋ฒ sha ๋์ผ | โ 7f50f0558229c156... |
| E2 clean install | โ npm install lodash@4.17.21 โ exit 0 |
| E3 malware block | โ @ctrl/tinycolor@4.1.1 โ exit 2 + JSON BLOCKED ๋ฉ์์ง |
| E4 dry-run | โ JSON ์ถ๋ ฅ + exit 0 (์ค install X) |
| DC | ๊ฒฐ๊ณผ |
|---|---|
| F1 ์๋ชป HMAC 401 | โ HTTP 401 + invalid_signature |
| F2 ping (์ ํ HMAC) | โ 200 + result=ok |
| F3 issues.opened โ paperclip issues INSERT | โ paperclip_issue_id=e6b76031-... |
| F4 SECRET ๋ฏธ์ค์ 503 | โ ์ฝ๋ inspect (line 3257) |
| F5 github_webhook_events ๋ก๊ทธ | โ 2 row ๋์ (ping + issues) |
/opt/star365-hq/agent-runner/isolation.mjs (64 LOC, 13 ์ํฌ๋ฆฟ ํจํด + depth gate)/opt/star365-hq/agent-runner/runner.mjs (3 hook point, ๋ฐฑ์
.bak-isolation-20260507)/opt/star365-hq/scripts/safe-install.sh (76 LOC, 5์๋ฒ sha ๋์ผ)/opt/star365-ceo/server.mjs (+170 LOC, ๋ฐฑ์
.bak-webhook-20260507)github_webhook_events ํ
์ด๋ธ (10 ์ปฌ๋ผ, 2 ์ธ๋ฑ์ค)/etc/star365-worker.env์ GITHUB_WEBHOOK_SECRET + DISCORD_WEBHOOK_URL ์ถ๊ฐhermes-style ์ฝ๋ ์ถ๊ฐ ์ import { createHmac } from 'crypto' ๋ผ์ธ์ ์ฝ๋ ์ค๊ฐ์ ๋ . ESM์ hoisting์ด์ง๋ง ๋ค๋ฅธ ๊ณณ์์ ์ด๋ฏธ import crypto_sprintI from "node:crypto" ์ ์ธ๋์ด ์์ด ์ฌ์ฉ ์ named import๊ฐ ์ถฉ๋. ํด๊ฒฐ: crypto_sprintI.createHmac() ํํ๋ก ๊ธฐ์กด ํจํด ์ฌ์ฌ์ฉ.
app.use(express.json()) ๊ธ๋ก๋ฒ ๋ฑ๋ก ํ์ express.raw() ๋ผ์ฐํธ ๋ฏธ๋ค์จ์ด ์ถ๊ฐํ๋ฉด body ์ด๋ฏธ parsed โ HMAC ๊ฒ์ฆ ๋ถ๊ฐ๋ฅ. ํด๊ฒฐ: URL ๋ถ๊ธฐ ๋ฏธ๋ค์จ์ด โ webhook URL๋ง raw ํต๊ณผ, ๋๋จธ์ง๋ json.
GitHub webhook push ์ด๋ฒคํธ ์ฒ๋ฆฌ์์ paperclip โ kahan:4001 ํธ์ถํ๋๋ UFW ๋ฃฐ ๋ถ์ฌ๋ก timeout. UFW ์ ์ฑ ๋ณ๊ฒฝ ๊ธ์ง(๋ณด์ ๋ฃฐ). ํด๊ฒฐ: paperclip ์์ฒด env์ TELEGRAM_BOT_TOKEN + DISCORD_WEBHOOK_URL ํ์ฉ, paperclip์์ ์ง์ ์ก์ . mco-bot ์ฐํ.
| ํญ๋ชฉ | ๋์ | Phase | ๋น๊ณ |
|---|---|---|---|
| OSV malware check | โ ์๋ฃ | 2 | 5์๋ฒ + install wrapper (Phase 5) |
| ์์ฐ์ด cron | โ ์๋ฃ | 3 | UI + cascade fallback |
| Discord ๋ฉํฐ์ฑ๋ | โ ์๋ฃ | 4 | mco-bot ํตํฉ + paperclip ์ง์ ์ก์ |
| GitHub webhook | โ ์๋ฃ | 5 | issues/push/ping/PR ๋ผ์ฐํ |
| Subagent ๊ฒฉ๋ฆฌ | โ ์๋ฃ | 5 | depth ๊ฐ๋ + redaction |
| OSV install hook | โ ์๋ฃ | 5 | safe-install.sh 5์๋ฒ |
| OpenAI ํธํ API server | ๐ต ๋ณด๋ฅ | (Phase 6) | gateway ํต์งธ ๊ฒํ ํ์ |
| ์๋ skill ์์ฑ | ๐ข ์์ | ๋ณด๋ฅ | /learn ์ถฉ๋ถ |
https://ceo.star365.site/api/github/webhook + secret ์ค์ (์ฌ์ฉ์ ๊ฒฐ์ )