56 Commits

Author SHA1 Message Date
jenkins
3b3529691e fix(hermes): avoid broken chat storage node 2026-08-08 23:33:21 -03:00
jenkins
639ac031a8 feat(hermes): strengthen isolated chat reasoning 2026-08-08 23:25:16 -03:00
jenkins
a35e2ce337 fix(hermes): allow slow worker prompt startup 2026-08-08 22:44:11 -03:00
jenkins
1a05d4a1e3 fix(hermes): detect worker prompt readiness 2026-08-08 22:38:14 -03:00
jenkins
9fab37b387 fix(hermes): settle Claude prompts in HERDR 2026-08-08 22:31:34 -03:00
jenkins
a9f687f6e7 fix(hermes): allow agent TUI proxy egress 2026-08-08 22:11:35 -03:00
jenkins
17baaa8a24 feat(hermes): expose persistent agent TUI 2026-08-08 22:05:39 -03:00
jenkins
5bb04b37c7 fix(hermes): restore isolated user features 2026-08-08 21:28:33 -03:00
jenkins
66eb0717ef fix(hermes): request supported OIDC scopes 2026-08-08 20:08:44 -03:00
jenkins
97e0113aa8 fix(hermes): exclude runtime-stalled worker 2026-08-08 19:23:58 -03:00
jenkins
d0e2668409 fix(hermes): use WebUI for control surfaces 2026-08-08 19:18:33 -03:00
jenkins
3250f6d9d4 fix(hermes): allow coordinator startup to finish 2026-08-08 19:05:17 -03:00
jenkins
62312cc4ce fix(hermes): run triage gateway as nonroot 2026-08-08 19:01:14 -03:00
jenkins
29d2d74079 fix(hermes): avoid unhealthy session nodes 2026-08-08 18:42:13 -03:00
jenkins
7ebc44596b fix(hermes): right-size coordinator requests 2026-08-08 18:34:52 -03:00
jenkins
249628a4fa fix(hermes): avoid storage-unready accelerators 2026-08-08 18:27:22 -03:00
jenkins
04b42b1208 fix(hermes): harden non-root startup 2026-08-08 18:17:30 -03:00
jenkins
c03bdb248f fix(hermes): retain oauth tokens for cookie refresh 2026-08-08 18:08:03 -03:00
jenkins
af84a11bb7 fix(hermes): use supported oauth proxy flags 2026-08-08 18:05:19 -03:00
jenkins
bb73efb285 feat(hermes): split chat agent and triage surfaces 2026-08-08 17:59:57 -03:00
jenkins
10a629d5a7 feat(ariadne): sweep seven projects, and stop advertising the wrong model
The sweep covered four projects because only four had a write allowlist.
ananke (Go, cmd/ and internal/), pegasus (Go backend, TS frontend) and
atlasbot (Python) all have SonarQube projects and mapped repositories; they
were excluded only for want of prefixes and suffixes, which are now set from
each repository's actual layout.

The per-sweep ceiling rises to seven, one per project. With rule-level dedupe
a project stops producing proposals once every rule it has is already under
review, so this is a ceiling rather than a rate - the backlog cannot become a
queue nobody drains.

The Hermes deployment annotation still advertised gpt-5.6-terra as primary.
The config has had claude-opus-5 as default and primary for some time, so the
annotation was telling operators the wrong thing about which model made a
decision.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 04:45:15 -03:00
jenkins
65ecbd9199 docs(hermes): drop demonstration framing from the agent workspace
START-HERE.md is visible in the Hermes dashboard, so its wording is part of
what an operator sees. Describing the runbook as a five-minute demonstration
frames the automation as a set piece rather than as something that runs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 14:26:13 -03:00
jenkins
18886c5177 fix(hermes): run the Vault agent before the pod's own init containers
The agent init container is appended by default, so init-config ran before
/vault/secrets existed and fell back to the Secret every time. The values were
identical, so the migration appeared to work while Vault was never actually
read.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 12:20:53 -03:00
jenkins
9965b34534 feat(hermes): take the Anthropic credential from Vault
The Claude subscription OAuth token was created as a manual kubectl Secret in
the interest of demo time, with migration to Vault agreed as follow-up. The
value now lives at kv/atlas/hermes/agent-tokens and is injected as a file.

The hermes role gains that path and binds the hermes-triage service account
the deployment actually runs as; it previously bound only hermes-vault. The
init container prefers the Vault file and falls back to the Secret, so this
can be rolled back by removing the annotations alone, and the Secret should be
deleted once Vault has been serving it for a while.

Vault was reachable all along without the operator credential: Ariadne already
holds a vault-admin Kubernetes auth role, which is how the value was written.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 12:14:52 -03:00
jenkins
c2c8a81c7f feat(hermes): switch the primary model to Claude Opus 5
The Codex weekly limit is close, so make anthropic/claude-opus-5 primary and
demote openai-codex to first fallback with the local gpt-oss:20b behind it.

The credential is a Claude subscription OAuth token, not an API key. The
anthropic provider resolves ANTHROPIC_API_KEY, then ANTHROPIC_TOKEN, then
CLAUDE_CODE_OAUTH_TOKEN, so the OAuth token must arrive under the last name
to be treated correctly. Marked optional so Hermes still starts and falls
back if the Secret is absent.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 05:00:09 -03:00
jenkins
11063daaaa feat(hermes-triage-demo): isolated demo surface + Jenkins job + Hermes key seeding
- New hermes-triage-demo namespace with fixture PVC and RBAC scoped to
  Jenkins agent Job creation only
- JCasC pipelineJob hermes-triage-demo: SEED_FAILURE-parameterized fixture
  check running as a Kubernetes Job in the demo namespace, emitting the
  incident ID to pod stdout (Fluent Bit -> OpenSearch kube-*) and JUnit to
  Jenkins
- Hermes init container can seed API_SERVER_KEY in the persistent .env
  from an optional hermes-api-server-key Secret (no-op until it exists)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 16:42:37 -03:00
jenkins
2e16a2981d hermes: expose operator docs in file root 2026-08-04 13:22:18 -03:00
jenkins
10d234e400 hermes: add operator mastery guide 2026-08-03 23:28:36 -03:00
jenkins
961be498fa docs(hermes): map custom service runtimes 2026-08-03 04:37:07 -03:00
jenkins
225f33df89 docs(hermes): publish Atlas triage proofs 2026-08-03 04:30:16 -03:00
jenkins
17ea531d80 fix(hermes): classify Veles as migration residue 2026-08-03 04:13:59 -03:00
jenkins
1d56aebaf7 feat(hermes): package Atlas skill instructions 2026-08-03 03:59:00 -03:00
jenkins
a00175b376 feat(hermes): add actionable Atlas triage skills 2026-08-03 03:58:37 -03:00
jenkins
67debe3351 fix(hermes): remove stale Veles proof 2026-08-02 19:04:14 -03:00
jenkins
f1f4deba85 feat(hermes): make cluster triage immediately usable 2026-08-02 17:26:58 -03:00
jenkins
b315e02821 fix(hermes): report consumer access denial 2026-08-02 17:00:40 -03:00
jenkins
723a789ddf fix(hermes): isolate consumer sessions 2026-08-02 16:46:21 -03:00
jenkins
5c55735c89 fix(hermes): prevent stale dashboard sockets 2026-08-02 15:53:30 -03:00
jenkins
24186416fd fix(hermes): stabilize operator sessions 2026-08-02 14:15:14 -03:00
jenkins
808d839039 docs(hermes): align training with Codex-first routing 2026-08-02 12:25:51 -03:00
jenkins
9e675fe4e1 ai(hermes): prefer Codex and trim default prompts 2026-08-02 08:54:04 -03:00
jenkins
c26dc3d1b7 docs(hermes): ground OpenClaw history in retained evidence 2026-08-02 04:12:07 -03:00
jenkins
934bf871c9 ai(hermes): include operator proof sprint 2026-08-02 04:01:40 -03:00
jenkins
b1ecfe96e4 ai(hermes): add operator guide and current GPU shares 2026-08-02 03:59:32 -03:00
jenkins
50dd87d476 ai(hermes): steer mastery labs to Codex 2026-08-02 03:22:13 -03:00
jenkins
f127ce421b docs(hermes): correct GPU ownership reference 2026-08-02 02:51:35 -03:00
jenkins
c87a4b5be5 ai(hermes): add operator mastery lab 2026-08-02 02:47:55 -03:00
jenkins
c4320b9718 ai(hermes): avoid unstable titan-18 placement 2026-08-02 02:35:39 -03:00
jenkins
5f4bdc6e7e ai(hermes): add isolated user chat instance 2026-08-02 02:31:01 -03:00
jenkins
b52663cea7 ai(hermes): harden Atlas triage evidence guardrails 2026-08-01 23:18:49 -03:00