feat(aosguard): CI failure alerting as one sealed verb #1093
No reviewers
Labels
No labels
burndown-2026-06
burndown-2026-08
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/advocate
role/director
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/science
role/sysadmin
state
ambient
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/agentic-os!1093
Loading…
Reference in a new issue
No description provided.
Delete branch "aos/claude/wt57-aosguard-telegram"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Kai's idea, and it is better than every option I put on infrastructure#850.
aosguard ops telegram alertposts a job's failure to the in-clustersignoz-telegrammapper. It takes no arguments. Every field is read from therunner's own
GITHUB_*environment.The point is deleting copies
Four implementations of this alert exist across the fleet, each drifting on its
own:
agentic-os- the localactions/telegram-alertcomposite actioninfrastructure-scripts/actions/alert-telegram.py, the rollout's sourcedeploy-scripts/alert-telegram.pyagentic-os-kai-scripts/ci/alert-telegram.pyThe program is embedded in the binary and the leaf is
sealed, followingforgejo-storage measure. No repository carries an alert program, and a callercannot turn a fixed POST into an arbitrary one.
Verified
Against a local capture server, so nothing was sent to Telegram:
ALERT_KIND=CDswitches the first line.alertis sealed: it forwards its pinnedcommand exactly and accepts no trailing arguments".
Availability, including where it does not work
Every workflow setting
container: agentic-os:releasealready has aosguard onPATH, which is 29 of the fleet's 31 alerting workflows. The other two are
deploy/reconcile.ymlanddeploy/compose-review-roles.yml, bothruns-on: deploy, which is adeploy:hostexecutor. Host-executor steps runin the runner pod rather than that image, so they have no aosguard. Those two
either keep a script or the runner pod gains the binary. Not decided here.
Sequencing
This lands the verb only. Consumers cannot call it until it ships in a released
image, so call-site moves and deleting the four implementations are the next
step, not this PR.
Depends on nothing.
infrastructure#852is independent and still worth landing:it fixes the message format and retires the Telegram secrets on the current
shape, which is what the two host-executor workflows keep using.
`aosguard ops telegram alert` posts a job's failure to the in-cluster signoz-telegram mapper. It takes no arguments: every field is read from the runner's own GITHUB_* environment. The point is deleting copies. Four implementations of this alert exist across the fleet, each drifting on its own: * agentic-os - the local actions/telegram-alert composite action * infrastructure - scripts/actions/alert-telegram.py, the rollout's source * deploy - scripts/alert-telegram.py * agentic-os-kai - scripts/ci/alert-telegram.py The program is embedded in the binary and the leaf is sealed, following `forgejo-storage measure`, so no repository carries an alert program and a caller cannot turn a fixed POST into an arbitrary one. Verified against a local capture server: $ aosguard ops telegram alert alert posted: 200 coilyco-bridge/deploy CI failing workflow: deploy-galaxy-gen run: https://forgejo.coilysiren.me/coilyco-bridge/deploy/actions/runs/4821 ALERT_KIND=CD switches the first line. A trailing argument is refused by the seal, and a shell metacharacter is refused by policy. Availability: every workflow setting `container: agentic-os:release` already has aosguard. Jobs on the `deploy:host` executor do not, because host-executor steps run in the runner pod rather than that image. That is two of the fleet's 31 alerting workflows, both in deploy. This lands the verb only. Consumers migrate after it ships in a released image, so call-site moves and deleting the four implementations come next. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Co-authored-by: Kai Siren <coilysiren@gmail.com> Co-authored-by: Claude <noreply@anthropic.com>