seon f8e0aa9122 feat: alert dedupe, proposal state API, HITL mirrors API approvals, Jev recovering reads the alert condition
第 4 回キャンペーン(2026-10-08)の 3 つの穴を塞ぐ。
- ハーネス: 同じアラート名が ALERT_DEDUPE_S(既定 300 秒)以内に再着したら
  /diagnose を送らず note(dedupe) に記録する。Grafana は Pod ごとに 1 件ずつ
  出し 30 秒後にグループを再送するため、1 障害が診断 4 件・提案 4 件になっていた。
  全件 resolved になれば窓をリセットする。
- ハーネス: GET /proposals/{token} で承認・実行状態を返す。
- hitl: 60 秒ごとに未決の提案をハーネスへ照会し、API で承認された件は
  メッセージを「ハーネス API で承認」に書き換えてタイマーを外す。期限切れ処理の
  直前にも同じ照会を行う。
- AI: Jev 選別の now に alert_condition_now / alert_condition_clear /
  recovered_now を追加し、recovering は recovered_now を読む。SLO に触れない
  障害(replay 停止、メモリ圧迫)で 0.98 を返していた。now の p95 と 5xx 比率に
  route フィルタを付け、判定と同じ式にそろえる。
2026-10-09 08:33:41 +09:00
2026-09-24 01:32:06 +09:00
2026-09-23 23:35:10 +09:00

selfheal-lab-apps

Application sources for the self-healing verification lab (VM + container mixed environment). Infrastructure: seon-labs/selfheal-lab-terraform. Runtime configuration (compose, manifests): selfheal-lab/selfheal-lab-gitops. This repository is public and contains no secrets.

Directory Runs on Image
legacy-api/ GCP MIG instances (docker compose) Artifact Registry asia-northeast1-docker.pkg.dev/cms-d-414903/selfheal/legacy-api:<git sha>
demo-app/ AWS Kubernetes (Argo CD, namespace demo) Public Artifact Registry asia-northeast1-docker.pkg.dev/cms-d-414903/selfheal-public/demo-api:<git sha> (anonymous pull; kubeadm nodes have no cloud credentials)
harness/ GCP harness VM (docker compose) Public Artifact Registry selfheal-public/harness:<git sha>
ai/ GCP AI VM (docker compose): cmd/agent (diagnosis, experiment design 6.2-6.4) and cmd/hitl (Discord approval bot, 6.5-6.6) Public Artifact Registry selfheal-public/ai-agent:<git sha>, selfheal-public/ai-hitl:<git sha> (gcloud builds submit ai --config ai/cloudbuild.yaml --substitutions=_TAG=<git sha>)

Build (Cloud Build, from the repository root):

gcloud builds submit legacy-api --project cms-d-414903 --tag asia-northeast1-docker.pkg.dev/cms-d-414903/selfheal/legacy-api:$(git rev-parse --short HEAD)
S
Description
Self-healing lab application sources (legacy-api for the VM layer, demo-app for Kubernetes). Public, no secrets.
Readme
68 MiB
0 Stars 1 Watchers 0 Forks
Languages
Go 99.2%
Dockerfile 0.8%