You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
test(conformance): un-skip the Ready-gated idempotency corpus (runtime fixed)
The runtime blockers (#68 → #89) are fixed in #90: the operator runs the upstream
s6 hermes-agent image with `gateway run` + the OpenAI API server and probes
HTTPGet /health. The agent image has been republished FROM upstream and the
fixtures are bumped to ghcr.io/paperclipinc/hermes-agent:v0.16.0 (the new runtime,
verified: /init entrypoint, HERMES_HOME=/opt/data, multi-arch).
Un-skip the 9 #68-gated idempotency corpus entries; the conformance suite now
exercises real Ready + reconcile-idempotency against the published image. The
ollama-webterminal-tailscale entry stays skipped — it still needs a live
ephemeral Tailscale auth key (unrelated; #64).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: test/conformance/idempotency_test.go
+17-30Lines changed: 17 additions & 30 deletions
Original file line number
Diff line number
Diff line change
@@ -14,44 +14,31 @@ import (
14
14
// more times. After each requeue we assert the resourceFingerprint is unchanged
15
15
// (generation + resourceVersion must not move). This catches lesson #437
16
16
// regressions: a reconciler that always re-writes owned objects will fail here.
17
-
// The Ready-gated corpus stays skipped only until the agent image is republished.
18
-
//
19
-
// The runtime blockers that previously made Ready unreachable are FIXED in the
20
-
// operator code (PR #90, issue #89): the operator now runs the upstream s6
21
-
// hermes-agent image with `gateway run` + the OpenAI API server, probes
22
-
// HTTPGet /health, and injects a placeholder LLM provider so the gateway comes
23
-
// up without live calls (validated end-to-end on kind — an instance reaches
24
-
// Ready=True). The old failure modes are gone: no one-shot `hermes-agent run`,
25
-
// no TCPSocket :8443 with nothing listening, no LLM-credential requirement just
26
-
// to start, no missing modules (the upstream image ships everything incl. a
27
-
// browser).
28
-
//
29
-
// The one thing the conformance suite still needs is the *published* image to BE
30
-
// that upstream-based runtime: these fixtures pin
31
-
// `ghcr.io/paperclipinc/hermes-agent:v2026.5.29.2`, which only ships the new
32
-
// runtime after the FROM-upstream Dockerfile (PR #90) is merged and that tag is
33
-
// republished. Un-skip in the follow-up once the image is republished.
34
-
// (waitForInstanceReady dumps pod diagnostics on timeout if anything regresses.)
35
-
constidempotencyReadyBlockedSkip="runtime fixed in #90 (upstream s6 image + gateway run + /health, validated on kind); un-skip once ghcr.io/paperclipinc/hermes-agent:v2026.5.29.2 is republished FROM upstream"
17
+
// The Ready-gated corpus now runs. The runtime blockers (#68 → #89) are fixed in
18
+
// #90: the operator runs the upstream s6 hermes-agent image with `gateway run` +
19
+
// the OpenAI API server, probes HTTPGet /health, and injects a placeholder LLM
20
+
// provider so the gateway comes up without live calls. The fixtures pin
21
+
// `ghcr.io/paperclipinc/hermes-agent:v0.16.0`, which is the upstream-based
22
+
// runtime. Validated end-to-end on kind (an instance reaches Ready=True).
23
+
// waitForInstanceReady dumps pod diagnostics on timeout if anything regresses.
36
24
37
25
varidempotencyCorpus= []struct {
38
26
labelstring
39
27
fixturestring
40
28
// skip, when non-empty, skips this corpus entry with the given reason.
41
29
// Used for fixtures that cannot reach Ready in CI for reasons unrelated to
42
-
// operator idempotency (e.g. they require live external credentials, or are
43
-
// blocked by an out-of-scope operator bug).
30
+
// operator idempotency (e.g. they require live external credentials).
0 commit comments