481 Commits

Author SHA1 Message Date
flux-bot
028e182d8a chore(hermes): promote validated image release
Some checks failed
Tests / Declarative: Post Actions failed: 39, skipped: 89, passed: 3968
2026-09-14 06:59:45 +00:00
jenkins
990a83d34b fix(hermes): scroll dashboard conversation history in the TUI 2026-09-14 00:09:43 -05:00
jenkins
e07cbdfce8 hermes: recover confirmation for the published Soteria task 2026-09-13 20:41:00 -05:00
jenkins
73618ca8f8 hermes: accept verified Forgejo draft update acknowledgments 2026-09-13 20:32:12 -05:00
jenkins
33e6f84a64 hermes: publish self-contained Git packs through the SCM broker 2026-09-13 20:07:11 -05:00
jenkins
82cc28b383 hermes: enforce native provider availability for manual assignments
Some checks failed
Tests / Declarative: Post Actions failed: 42, skipped: 89, passed: 3938
2026-09-13 19:26:44 -05:00
jenkins
18f5cfdbb5 hermes: mount the Go installer into execution worker init 2026-09-13 19:19:34 -05:00
jenkins
0a51ffe4a7 hermes: resume failed PR publications with trusted bounded retries 2026-09-13 19:11:35 -05:00
jenkins
3cdcb2a2df hermes: equip workers with verified Go tools before accepting work 2026-09-13 18:48:04 -05:00
jenkins
d66af9dbd4 hermes: deploy verified release and roll broker code by content 2026-09-13 18:44:33 -05:00
jenkins
6cfeff74d6 hermes: classify mediator conflicts as publication rejections 2026-09-13 18:37:56 -05:00
jenkins
00b8780345 hermes: normalize preserved titles and report retry conflicts 2026-09-13 18:30:05 -05:00
jenkins
cac4c206cd hermes: bound publication titles by UTF-8 bytes 2026-09-13 18:17:39 -05:00
jenkins
3231e1af07 hermes: recover structured provider completion records 2026-09-13 18:09:47 -05:00
jenkins
9cc49dedeb hermes: sign recovery attestations for the target worker 2026-09-13 18:07:04 -05:00
jenkins
743014ca33 hermes: pin the legacy publication terminal outcome 2026-09-13 18:01:18 -05:00
jenkins
37bd860a47 hermes: recognize retained blocked publication runs 2026-09-13 17:59:26 -05:00
jenkins
bf2a1ab528 hermes: resume preserved PR publications without model retries 2026-09-13 17:54:54 -05:00
jenkins
36209965b4 hermes: clarify routine implementation routing effort 2026-09-13 17:04:34 -05:00
jenkins
8f2359b635 hermes: preserve legacy provider session directories 2026-09-13 16:52:44 -05:00
jenkins
13c3891996 hermes: align classifier examples with capability routes 2026-09-13 16:52:44 -05:00
jenkins
bd5f261402 hermes: use native task links throughout PR follow-ups 2026-09-13 16:42:49 -05:00
jenkins
38a794c2a9 hermes: resolve PR follow-ups from their trusted root 2026-09-13 16:27:01 -05:00
jenkins
4d7087d394 hermes: move chat tenants off the failing node runtime 2026-09-13 16:23:55 -05:00
jenkins
13a7dbab46 hermes: reserve PR follow-ups for mediated workers 2026-09-13 16:15:50 -05:00
jenkins
74d8485f6a hermes: isolate PR state and recover the Soteria board 2026-09-13 15:46:39 -05:00
jenkins
e040102121 hermes: route by capability and continue existing pull requests 2026-09-13 15:04:01 -05:00
jenkins
46f9995fe5 hermes: roll out the resumed transcript patch 2026-09-13 14:27:29 -05:00
jenkins
17d70759e0 hermes: show recorded tool activity in resumed chats 2026-09-13 14:25:25 -05:00
jenkins
364d1b3503 hermes: recover interrupted provider CLI installs 2026-09-13 14:11:40 -05:00
jenkins
0192ef8ee8 hermes: mount routing catalog for execution workers 2026-09-13 14:02:20 -05:00
jenkins
969febe7e4 hermes: keep chat on verified worker hosts 2026-09-13 02:29:44 -05:00
jenkins
69022366ff hermes: avoid stalled titan-04 for chat tenants 2026-09-13 02:06:08 -05:00
jenkins
d141b33a7d hermes: resolve difficulty routes from live model catalogs 2026-09-13 01:48:05 -05:00
jenkins
2ab737f8f8 fix(hermes): hide the worker overlay on dashboard pages 2026-09-12 22:37:23 -05:00
jenkins
8d1302765f gitea: migrate sources to titan/atlas-iac 2026-09-01 20:43:50 -03:00
jenkins
391a7f2f1f hermes(agent): make titan-22 the strong primary home
Now that both the agent image (a68d1c4d, via the kustomize images: override)
and the hux sidecar (build-39) are multi-arch with amd64 leaves, move the worker
onto the amd64 accelerator titan-22:
- Add an OR'd nodeSelectorTerm for amd64 + node-role.kubernetes.io/accelerator +
  hostname titan-22, with NO worker=true requirement. Keep the arm64 pi-fleet
  term as an OR'd fallback so the worker is never stranded.
- Strong primary preference: hostname=titan-22 at weight 100 (scheduler max),
  pi-fleet rpi5 nudge lowered to 50, so hermes actually lives on titan-22.
- Tolerate node-role.kubernetes.io/accelerator=true:NoSchedule (harmless where
  absent) and the soft atlas.bstein.dev/media-primary:PreferNoSchedule that
  titan-22 currently carries, so the weight-100 preference is not offset and
  placement is deterministic.

Completes the titan-22 effort the flip branches missed; the earlier branches
never repointed to multi-arch images, which is why the worker never landed here.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BvMSXH8VH2tMWXanb8SJdf
2026-08-25 20:17:28 -03:00
flux-bot
6c35930f0b chore(hermes): promote validated image release 2026-08-25 23:05:30 +00:00
jenkins
db446c9244 monitoring(ai): alert before Claude quota auth expires 2026-08-25 19:16:01 -03:00
jenkins
e7d6759140 fix(hermes-agent): reinstall codex when this arch's native dep is missing
The arch-specific CLI stamp assumed the shared node_modules keeps both arches'
codex native deps, but a sibling-arch npm install removes this arch's binary from
the shared volume. So after running on the other arch, the stamp exists yet the
native codex dep is gone -> configure-agent-clients fails -> churn. Gate the
install on the current arch's native codex package being present, so it self-heals.
2026-08-25 18:23:13 -03:00
jenkins
70002aeff7 Revert "Reapply "hermes(agent): make titan-22 the strong primary home (no worker label)""
This reverts commit 9e4fbf4e0df364230588749f80710a8369a3108f.
2026-08-25 17:49:44 -03:00
jenkins
a01eac5059 Revert "Reapply "hermes(agent): also tolerate titan-22's media-primary taint (flip applied pre-classification)""
This reverts commit 2e38422478b0d569441176431f104faae0dd1703.
2026-08-25 17:49:44 -03:00
jenkins
2e38422478 Reapply "hermes(agent): also tolerate titan-22's media-primary taint (flip applied pre-classification)"
Some checks failed
Tests / Declarative: Post Actions failed: 49, skipped: 81, passed: 3753
This reverts commit 1c495a6e2c0a525b9e16608b16bc09c645e3c337.
2026-08-25 17:40:36 -03:00
jenkins
9e4fbf4e0d Reapply "hermes(agent): make titan-22 the strong primary home (no worker label)"
This reverts commit f8628e6ee0d2c33d287ec9086ff5328d982e88c3.
2026-08-25 17:40:36 -03:00
jenkins
12a6d2c4f5 hermes(agent): make runtime tooling install architecture-aware
The hermes-agent installs its CLI toolchain at runtime into the shared
/opt/data/tools Longhorn volume, but every download hardcoded arm64. On
the amd64 node titan-22 that left configure-agent-clients failing with
"Missing optional dependency @openai/codex-linux-x64" and the operator
toolchain fetching arm64 binaries, so the pod churned.

Detect the running node's arch (uname -m; fail closed on anything but
aarch64/x86_64) and resolve every asset per-arch:

- install-agent-tools init script (agent-deployment.yaml): ttyd and
  kubectl download the arch-correct asset with the arch-correct sha256
  (real ttyd 1.7.7 x86_64 and kubectl v1.33.3 amd64 checksums added; the
  arm64 ones kept). The npm CLI stamp is now arch-specific
  (.cli-versions-<vers>-${arch}) so a fresh arch re-runs npm install and
  pulls its own native optional deps; npm keeps both arches' packages.

- install_agent_tools.sh: flux/helm/kustomize/jq/yq/gh/vault/sops/age/
  k9s/terraform/go URLs, tarball subdirs (helm linux-${arch}, gh dir),
  and checksums are all arch-resolved with both arches pinned. Stamps
  and the Go tree are arch-specific, and an active-arch marker forces a
  republish of the single-arch ${bin} binaries when the pod moves
  between arches on the shared volume. Single fetch/verify helper kept.

Tests updated to assert the arch-aware form (both arches' Go checksums,
${dl_arch} templating) instead of the arm64-only literal.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BvMSXH8VH2tMWXanb8SJdf
2026-08-25 17:37:57 -03:00
jenkins
f8628e6ee0 Revert "hermes(agent): make titan-22 the strong primary home (no worker label)"
This reverts commit 2de52ec3e2e42696ae411482cb16f27ff1f5d273.
2026-08-25 16:54:04 -03:00
jenkins
1c495a6e2c Revert "hermes(agent): also tolerate titan-22's media-primary taint (flip applied pre-classification)"
This reverts commit aa5898f9e33b371451c94af803cda1e0ed714591.
2026-08-25 16:54:04 -03:00
jenkins
aa5898f9e3 hermes(agent): also tolerate titan-22's media-primary taint (flip applied pre-classification)
Applying the titan-22 flip ahead of the full accelerator classification, so
titan-22 still carries its soft media-primary taint. Tolerate it too so the
strong titan-22 preference isn't penalised. Harmless once media-primary is gone.
2026-08-25 16:43:32 -03:00
jenkins
5631366c4e hermes(agent): make titan-22 the strong primary home (no worker label)
APPLY ONLY AFTER the multi-arch hermes-agent image is built + validated
(both arch leaves + promoted index). Supersedes the earlier titan-22
flip on feature/hermes-agent-multiarch (dfa50b75), which required
worker=true and tolerated the old media-primary taint.

Rewrites the runtime node affinity so hermes-agent runs on titan-22:
- Adds a second, OR'd nodeSelectorTerm matching amd64 + hostname
  titan-22 + node-role.kubernetes.io/accelerator=true. It does NOT
  require node-role.kubernetes.io/worker (titan-22 is no longer a
  generic worker).
- Keeps the arm64 pi-fleet term untouched as an OR'd fallback so the
  worker is never stranded if titan-22 is unavailable.
- Makes titan-22 the STRONG/primary preference: a hostname=titan-22
  preference at weight 100 (the scheduler maximum) outranks the pi-fleet
  rpi5 nudge, lowered to weight 50, so hermes actually lives on titan-22.
- Tolerates node-role.kubernetes.io/accelerator=true:NoSchedule so it
  can consider titan-22; this does not change jellyfin's media-core
  priority or preemption.

Updates test_hermes_agent_layout.py to the two-term topology, the
[100, 50] preference weights, the titan-22 primary preference, the
absence of a worker requirement on the titan-22 term, and the toleration.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BvMSXH8VH2tMWXanb8SJdf
2026-08-25 16:43:32 -03:00
flux-bot
aae22ea798 chore(hermes): promote validated image release 2026-08-25 19:28:55 +00:00