1046 Commits

Author SHA1 Message Date
flux-bot
e205eaf8fa chore(maintenance): automated image update
Some checks failed
Tests / Declarative: Post Actions testing.tests.test_repo_structure.test_knowledge_service_mirror_matches_source failed
2026-08-06 17:17:37 +00:00
flux-bot
7a0d30005e chore(maintenance): automated image update
Some checks failed
Tests / Declarative: Post Actions testing.tests.test_repo_structure.test_knowledge_service_mirror_matches_source failed
2026-08-06 16:18:37 +00:00
jenkins
8b930632ca feat(ariadne): widen code and issue coverage, cap open proposals at 64
ananke, pegasus and atlasbot were triaged but mapped to no repository, so
their failures could produce neither an issue nor a pull request. All three
exist on main and are non-empty. data-prepper is deliberately absent: it has
no repository under bstein.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 13:10:20 -03:00
flux-bot
ddb8561cc0 chore(maintenance): automated image update
Some checks failed
Tests / Declarative: Post Actions testing.tests.test_repo_structure.test_knowledge_service_mirror_matches_source failed
2026-08-06 15:51:58 +00:00
flux-bot
378169597c chore(maintenance): automated image update 2026-08-06 15:42:00 +00:00
jenkins
32de26e4a5 feat(ariadne): map bstein-dev-home to its own log namespace
Some checks failed
Tests / Declarative: Post Actions testing.tests.test_repo_structure.test_knowledge_service_mirror_matches_source failed
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 12:33:19 -03:00
flux-bot
53ab15cb20 chore(maintenance): automated image update
Some checks failed
Tests / Declarative: Post Actions testing.tests.test_repo_structure.test_knowledge_service_mirror_matches_source failed
2026-08-06 14:11:41 +00:00
flux-bot
0d2ca9ed15 chore(maintenance): automated image update
Some checks failed
Tests / Declarative: Post Actions testing.tests.test_repo_structure.test_knowledge_service_mirror_matches_source failed
2026-08-06 13:47:28 +00:00
flux-bot
4e4f4fe8a4 chore(maintenance): automated image update 2026-08-06 13:46:29 +00:00
flux-bot
5eb9f7811c chore(maintenance): automated image update 2026-08-06 13:44:28 +00:00
flux-bot
4dcdf666dc chore(maintenance): automated image update
Some checks failed
Tests / Declarative: Post Actions testing.tests.test_repo_structure.test_knowledge_service_mirror_matches_source failed
2026-08-06 13:39:24 +00:00
flux-bot
e0563d93e8 chore(maintenance): automated image update
Some checks failed
Tests / Declarative: Post Actions testing.tests.test_repo_structure.test_knowledge_service_mirror_matches_source failed
2026-08-06 10:37:52 +00:00
flux-bot
086fd52eca chore(maintenance): automated image update 2026-08-06 09:48:13 +00:00
jenkins
8b0afb672b fix(ariadne): let the pod finish booting before liveness judges it
The earlier probe fix addressed slow /health responses under load, but the
restarts continued with a different signature: connection refused rather than
timeout, meaning the app was not listening yet. Ariadne runs migrations and
builds its cron schedule before binding, which can outlast what liveness
allows from initialDelaySeconds, so the kubelet kept restarting a pod that
was merely still starting.

Add a startupProbe granting up to five minutes to come up, after which
liveness takes over unchanged. This is the case startupProbe exists for.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 06:16:09 -03:00
flux-bot
59565b4cda chore(maintenance): automated image update 2026-08-06 09:11:55 +00:00
flux-bot
e1a1922b70 chore(maintenance): automated image update
Some checks failed
Tests / Declarative: Post Actions testing.tests.test_repo_structure.test_knowledge_service_mirror_matches_source failed
2026-08-06 08:55:38 +00:00
flux-bot
3a503b7a82 chore(maintenance): automated image update 2026-08-06 08:22:34 +00:00
jenkins
3461a4e99d fix(ariadne): stop the kubelet killing a healthy triage pod
The liveness probe used the default timeoutSeconds of 1. The auto-triage tick
runs every minute and spends most of it waiting on Jenkins, OpenSearch, Gitea
and Hermes, so against a 500m CPU limit /health occasionally answers in over a
second. Three of those and the container is killed, dropping triage ticks for
the length of a restart. Observed 11 times in 139 minutes, with the pod
sitting 1/2 Ready and restarting repeatedly.

Give both probes a 5s timeout and let liveness tolerate five failures, so a
busy tick is no longer mistaken for a hung process.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 05:20:35 -03:00
flux-bot
aff0f9b18a chore(maintenance): automated image update 2026-08-06 04:47:42 +00:00
flux-bot
f44ed2f953 chore(maintenance): automated image update 2026-08-06 04:33:02 +00:00
flux-bot
e305350dc6 chore(maintenance): automated image update 2026-08-06 04:10:10 +00:00
flux-bot
67839af124 chore(maintenance): automated image update 2026-08-06 03:11:10 +00:00
flux-bot
9aca7cd52b chore(maintenance): automated image update 2026-08-06 03:09:11 +00:00
flux-bot
57691698ed chore(maintenance): automated image update 2026-08-06 03:07:10 +00:00
flux-bot
160636197c chore(maintenance): automated image update 2026-08-06 03:02:09 +00:00
flux-bot
f400c0116e chore(maintenance): automated image update 2026-08-06 02:25:00 +00:00
jenkins
15eec62162 feat(ariadne): allowlist the transient-infra retry action
The classification->action registry already mapped transient_infra_failure to
retry_transient_infra, but the action allowlist held only repair_demo_fixture,
so that route always died at the action_not_allowlisted gate. Add the action
and state the registry explicitly rather than relying on the code default.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 23:17:32 -03:00
flux-bot
77b6bfcdf4 chore(maintenance): automated image update 2026-08-06 02:10:50 +00:00
flux-bot
7cb266b5f1 chore(maintenance): automated image update 2026-08-06 01:49:38 +00:00
flux-bot
32eb26f17e chore(maintenance): automated image update 2026-08-06 00:39:46 +00:00
jenkins
84e9849e46 feat(hermes-triage): real-repo patch proposals + Alertmanager email escalation
- Ariadne: per-repo code config for metis, lesavka, soteria,
  bstein-dev-home and ariadne, each with its own base branch, source path
  prefixes and file suffixes so a proposal can only touch that repo's
  source tree
- Alertmanager: the only receiver was an empty "default", so every alert
  fired into a void. HermesTriageHumanRequired now routes to an email
  receiver via Mailu's in-cluster local-domain relay, with resolved
  notices; scoped to service=hermes-triage so nothing else mails yet.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 21:30:34 -03:00
flux-bot
a2aa9e7f67 chore(maintenance): automated image update 2026-08-06 00:15:26 +00:00
jenkins
f0c224e5f9 docs(hermes-triage): delivery record + enable Gitea issue filing config
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 21:01:50 -03:00
flux-bot
ba28379818 chore(maintenance): automated image update 2026-08-05 23:52:50 +00:00
jenkins
620f5b83d2 feat(hermes-triage): enable real-service triage across homegrown Jenkins jobs
Adds ariadne, lesavka, soteria, metis, ananke, pegasus, atlasbot,
bstein-dev-home and data-prepper to the autotriage allowlist. These get
detection, evidence, Hermes diagnosis and human-required escalation only:
no allowlisted repair action applies to them, so nothing is mutated.

Verified on lesavka #582 with the new console failure-region evidence:
classification coverage_quality_gate_failure, confidence 0.93, first
failed gate coverage (previously undetermined).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 20:31:44 -03:00
flux-bot
fdb2e8c411 chore(maintenance): automated image update 2026-08-05 23:28:21 +00:00
flux-bot
029779724c chore(maintenance): automated image update 2026-08-05 22:29:05 +00:00
jenkins
b4a45f1382 feat(hermes-code): demo repo Jenkins job + Ariadne code-path configuration
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 19:19:05 -03:00
jenkins
9b379daf00 revert(hermes-triage): restore action allowlist after alert rehearsal
Rehearsal confirmed: emptied allowlist -> incident 14 human_required
(action_not_allowlisted) -> HermesTriageHumanRequired FIRING in vmalert and
active in Alertmanager.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 19:03:28 -03:00
jenkins
888819153c test(hermes-triage): temporarily empty action allowlist for alert-lifecycle rehearsal
Reverted immediately after the rehearsal confirms HermesTriageHumanRequired
fires and self-clears.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 18:51:58 -03:00
flux-bot
aa36b06b2b chore(maintenance): automated image update 2026-08-05 21:31:02 +00:00
jenkins
49aab8da32 feat(hermes-triage): enable autoremediation for the demo loop
Observe-mode rehearsal passed: incident hermes-triage-demo/9 diagnosed
correctly (0.99 confidence, known_demo_fixture_failure) and stopped only
at this kill switch. Scope stays: allowlisted job, one allowlisted
action, one action per incident, isolated namespace.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 17:56:46 -03:00
flux-bot
f32980f606 chore(maintenance): automated image update 2026-08-05 20:52:22 +00:00
flux-bot
2068f3caba chore(maintenance): automated image update 2026-08-05 20:32:12 +00:00
flux-bot
3cffe30993 chore(maintenance): automated image update 2026-08-05 20:19:10 +00:00
jenkins
363adedd75 feat(hermes-triage): human-required alert rule + Ariadne autotriage config
- vmalert: hermes-triage.yaml alert group (HermesTriageHumanRequired on
  ariadne_hermes_triage_incident{status="human_required"}, 1m interval),
  wire Alertmanager notifier into vmalert-atlas-availability
- Ariadne deployment: hermes autotriage env (observe mode: autotriage on,
  autoremediation OFF), 1m schedule, allowlist hermes-triage-demo only,
  HERMES_API_KEY from optional hermes-api-server-key Secret
2026-08-05 16:51:48 -03:00
jenkins
f4097c6e59 Merge origin/main into layout migration
Reconciles the services layout migration with ~991 upstream commits:
- Remote content wins for cassandra/cassandra-auth, monitoring dashboards,
  vmalert availability rules, veles, vault auth script, dashboard render
  script and tests (request-v4 availability definition)
- Layout paths win for structure: keycloak/bstein-dev-home job dirs use
  bootstrap-jobs/validation-jobs; cassandra realm jobs live in
  cassandra-auth (removed keycloak duplicates)
- Union: applications CR list gains hermes-chat and cassandra
  image-automation
- Fixed post-migration paths in dashboard test module loader and
  hermes-access job header

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 16:26:36 -03:00
jenkins
0da9e4c82d refactor: restructure services layout, retire oceanus, add aether scaffolding
- Move flat service manifests into structured subdirs (apps/, bootstrap-jobs/,
  repair-jobs/, migration-jobs/, validation-jobs/, node-ops/, networking/)
- Retire oneoffs/ directories across services
- Remove oceanus cluster and its host roles; add aether cluster + terraform scaffolding
- Reorganize scripts/ into ops/, render/, sync/, manual-tests/
- Add Makefile with render/validate/test/flux targets and repo-structure tests
- Update flux-system application CRs to the new paths
- Add hermes-automated-triage-24h-plan knowledge doc (+ comms mirror)
- Refresh knowledge catalogs, dashboards, vmalert rules, quality contract

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 16:21:36 -03:00
flux-bot
456be51feb chore(maintenance): automated image update 2026-08-05 17:15:26 +00:00
flux-bot
e0f62ee0a2 chore(maintenance): automated image update 2026-08-05 05:15:46 +00:00