5620 Commits

Author SHA1 Message Date
Hermes Agent
f997171b55 jenkins: rank the controller above its own build agents
The Jenkins controller and the ephemeral build agents it schedules both ran
at priority 0. Because the controller Deployment uses the Recreate strategy,
any JCasC change tears the controller down before its replacement is
scheduled, and while the eligible node pool is saturated that freed slot can
be taken by one of the controller's own pending agents.

That is what happened on 2026-08-23. Merging #48 changed
services/jenkins/configmap-jcasc.yaml, which rolled the hashed
jenkins-jcasc-revision ConfigMap and so rolled the Deployment. At 12:19:57Z
the old controller pod was deleted; at 12:19:59Z the build agent
typhon-133-1pmgb, pending since 11:42:15Z, took the freed capacity on
titan-11, and the new controller pod has been Pending ever since. The
scheduler cannot resolve it because every candidate victim is also priority
0: "No preemption victims found for incoming pod". The agent cannot exit on
its own either, since its jnlp container just loops on "Connection refused"
against the controller that cannot start. It is a self-deadlock, not a
transient capacity dip.

Give the controller a jenkins-core class (500) so it outranks its agents and
can preempt one when it has nowhere else to go, and mark the JCasC default
agent template jenkins-agent (50, preemptionPolicy: Never) so agents never
preempt anything themselves. Values follow the existing *-core/*-sim classes.

The controller-side class is what breaks the deadlock: agents declared inline
by a Jenkinsfile podTemplate, like typhon-133, do not inherit the JCasC
default template, so only the controller's own priority covers every agent.

PriorityClasses ship in infrastructure/modules/base via the core
Kustomization, so jenkins now dependsOn core, matching cassandra and veles.
Verified no dependency cycle: core itself has no dependsOn.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 13:12:40 +00:00
jenkins
a019ecd556 monitoring(ai): compare provider quota windows 2026-08-23 09:48:25 -03:00
ced9a24cd9 Merge pull request 'Hermes WebUI release lane v2' (#48) from feature/t_8cbe6a55-hermes-webui-release-v2 into main
Reviewed-on: atlas/titan-iac#48
Reviewed-by: bstein <bstein@noreply.scm.bstein.dev>
2026-08-23 12:19:10 +00:00
58e1a29b2b Merge branch 'main' into feature/t_8cbe6a55-hermes-webui-release-v2
Some checks failed
Tests / Declarative: Post Actions failed: 39, skipped: 19, passed: 2782
2026-08-23 12:18:58 +00:00
flux-bot
51515932fc chore(bstein-dev-home): automated image update 2026-08-23 09:58:39 +00:00
flux-bot
1eaaf57abd chore(bstein-dev-home): automated image update 2026-08-23 09:57:02 +00:00
jenkins
fe7832efaf hermes: retain dual-provider quota health
Some checks failed
Tests / Declarative: Post Actions failed: 39, skipped: 19, passed: 2757
2026-08-23 02:52:42 -03:00
Hermes Agent
083005e44f fix: verify served Hermes PWA identity 2026-08-23 04:42:08 +00:00
Hermes Agent
99a9de936b fix: verify WebUI OCI source revision 2026-08-23 03:52:03 +00:00
Hermes Agent
735a2b240d Add reviewed Hermes WebUI release lane 2026-08-23 03:52:03 +00:00
jenkins
81b3e6b992 hermes: expose Claude remaining quota 2026-08-23 00:42:39 -03:00
jenkins
d036062519 hermes: stabilize AI quota collection 2026-08-23 00:14:58 -03:00
jenkins
3da6a10174 hermes: remove provider-biased auto fallbacks 2026-08-22 23:54:40 -03:00
jenkins
a7e09f9719 monitoring(ai): measure Claude routed usage 2026-08-22 23:38:40 -03:00
jenkins
69ad76bebc hermes: keep distributed workers on Claude 2026-08-22 23:02:15 -03:00
flux-bot
5136a0026e chore(maintenance): automated image update 2026-08-23 01:59:50 +00:00
flux-bot
42a86687c4 chore(maintenance): automated image update 2026-08-23 01:58:38 +00:00
flux-bot
049c39b339 chore(maintenance): automated image update 2026-08-23 01:54:50 +00:00
jenkins
8acb99d100 hermes: make Claude setup-token access durable 2026-08-22 22:52:28 -03:00
flux-bot
5e0b0d9cd6 chore(maintenance): automated image update 2026-08-23 01:49:36 +00:00
jenkins
b8294f8e90 longhorn: reduce Jellyfin policy churn 2026-08-22 22:18:03 -03:00
jenkins
eec373dd56 jellyfin: run media service on titan-22 2026-08-22 22:10:46 -03:00
jenkins
5430c9ac01 jellyfin: prepare titan-22 media host 2026-08-22 22:06:39 -03:00
jenkins
76fe550871 node(titan-22): remove completed canaries 2026-08-22 21:22:33 -03:00
jenkins
21264a71c8 node(titan-22): return worker to service 2026-08-22 21:21:03 -03:00
jenkins
091a787fc7 node(titan-22): persist Realtek firmware 2026-08-22 20:55:47 -03:00
jenkins
074f988731 node(titan-22): migrate k3s to USB ethernet 2026-08-22 20:42:51 -03:00
jenkins
db0cb86ca6 hermes: stabilize Claude access health probes 2026-08-22 18:07:58 -03:00
jenkins
9bffc077e8 hermes: avoid recursive home ownership rollout
Some checks failed
Tests / Declarative: Post Actions failed: 40, skipped: 19, passed: 2746
2026-08-22 17:38:42 -03:00
jenkins
bd50a7e4ad hermes: persist Claude subscription access 2026-08-22 17:32:30 -03:00
jenkins
9bf41dc0de hermes: decouple node maintenance health 2026-08-22 16:39:44 -03:00
jenkins
fd42e892f7 hermes: avoid flapping worker node 2026-08-22 16:17:33 -03:00
jenkins
fdf53b264b hermes: fit owner pod on healthy workers 2026-08-22 15:55:30 -03:00
jenkins
45a7a4dded platform: right-size Vault sidecar requests 2026-08-22 15:48:41 -03:00
jenkins
46a44241c1 hermes: reclaim healthy worker capacity 2026-08-22 15:42:56 -03:00
jenkins
8a8df5ee4f hermes: add stateful accelerator fallback 2026-08-22 15:32:21 -03:00
jenkins
9b7adc3826 mailu: allow Dovecot storage failover 2026-08-22 15:09:54 -03:00
jenkins
41658393a4 mailu: remount Dovecot storage after lock failure 2026-08-22 14:50:16 -03:00
flux-bot
a48322c5ee chore(maintenance): automated image update 2026-08-22 14:00:17 +00:00
flux-bot
821e27e845 chore(maintenance): automated image update 2026-08-22 13:54:16 +00:00
flux-bot
121daf9145 chore(maintenance): automated image update
Some checks failed
Tests / Declarative: Post Actions failed: 45, skipped: 19, passed: 2738
2026-08-22 01:54:06 +00:00
flux-bot
c19e9d77bf chore(maintenance): automated image update 2026-08-22 01:54:00 +00:00
flux-bot
5826c6054d chore(maintenance): automated image update 2026-08-22 01:49:59 +00:00
flux-bot
69f9ec99f2 chore(maintenance): automated image update 2026-08-22 01:43:57 +00:00
66c1c11d06 Merge pull request 'Rename the owner agent host to worker.bstein.dev (supersedes #41)' (#42) from feature/hermes-domain-rename-agent-worker-v2 into main
Reviewed-on: atlas/titan-iac#42
Reviewed-by: bstein <bstein@noreply.scm.bstein.dev>
2026-08-21 23:16:04 +00:00
ed98278981 Merge branch 'main' into feature/hermes-domain-rename-agent-worker-v2
Some checks failed
Tests / Declarative: Post Actions failed: 40, skipped: 19, passed: 2743
2026-08-21 23:15:16 +00:00
4c9f48cbbc Merge pull request 'docs(hermes): add multi-user chat capacity assessment' (#45) from hermes/t_65356568-multiuser-capacity-assessment into main
Reviewed-on: atlas/titan-iac#45
Reviewed-by: bstein <bstein@noreply.scm.bstein.dev>
2026-08-21 23:14:47 +00:00
8ce45159de Merge branch 'main' into hermes/t_65356568-multiuser-capacity-assessment
Some checks failed
Tests / Declarative: Post Actions failed: 41, skipped: 19, passed: 2740
2026-08-21 23:14:33 +00:00
0841681a06 Merge pull request 'fix(hermes): cli-auto capacity failover uses automatic Switchyard reclassification' (#32) from fix/cli-auto-failover-effort into main
Reviewed-on: atlas/titan-iac#32
Reviewed-by: bstein <bstein@noreply.scm.bstein.dev>
2026-08-21 23:13:08 +00:00
77905ff1db Merge branch 'main' into fix/cli-auto-failover-effort
Some checks failed
Tests / Declarative: Post Actions failed: 40, skipped: 19, passed: 2737
2026-08-21 23:12:12 +00:00