5074 Commits

Author SHA1 Message Date
jenkins
7c95d5ca57 monitoring(testing): keep quality rollups current 2026-08-07 20:02:13 -03:00
flux-bot
feb25d27e3 chore(bstein-dev-home): automated image update
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 143
2026-08-07 21:42:21 +00:00
flux-bot
854b1d05ca chore(bstein-dev-home): automated image update 2026-08-07 21:41:18 +00:00
flux-bot
3f3f5f9248 chore(cassandra): automated image update
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 143
2026-08-07 18:10:50 +00:00
flux-bot
2cbace8e3e chore(cassandra): automated image update 2026-08-07 18:06:44 +00:00
flux-bot
d8f8e44e62 chore(cassandra): automated image update
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 143
2026-08-07 18:02:48 +00:00
flux-bot
78e24f4ec8 chore(cassandra): automated image update 2026-08-07 17:59:54 +00:00
flux-bot
f6b883ffa7 chore(maintenance): automated image update
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 143
2026-08-07 17:16:38 +00:00
flux-bot
03b1c2757f chore(cassandra): automated image update
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 143
2026-08-07 17:04:39 +00:00
flux-bot
6199391835 chore(cassandra): automated image update 2026-08-07 17:00:38 +00:00
flux-bot
209dbb9446 chore(cassandra): automated image update 2026-08-07 16:56:47 +00:00
flux-bot
0867920ac8 chore(cassandra): automated image update 2026-08-07 16:56:38 +00:00
flux-bot
c43fb50b20 chore(maintenance): automated image update
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 143
2026-08-07 13:41:09 +00:00
flux-bot
5f5c08b4b8 chore(maintenance): automated image update 2026-08-07 13:41:01 +00:00
flux-bot
b95307c465 chore(maintenance): automated image update 2026-08-07 13:39:01 +00:00
flux-bot
384a9f4e89 chore(cassandra): automated image update 2026-08-07 13:37:16 +00:00
flux-bot
55f1cb4b82 chore(maintenance): automated image update 2026-08-07 13:37:05 +00:00
flux-bot
61df3ffa7d chore(cassandra): automated image update 2026-08-07 13:34:00 +00:00
flux-bot
f8ff55968f chore(cassandra): automated image update
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 143
2026-08-07 13:29:11 +00:00
flux-bot
c1c1fab9f9 chore(cassandra): automated image update 2026-08-07 13:28:58 +00:00
flux-bot
0d495453aa chore(cassandra): automated image update
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 143
2026-08-07 12:33:50 +00:00
flux-bot
7acf80596c chore(cassandra): automated image update 2026-08-07 12:29:46 +00:00
flux-bot
a1889843af chore(cassandra): automated image update
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 143
2026-08-07 12:25:57 +00:00
flux-bot
040e94b28b chore(cassandra): automated image update 2026-08-07 12:25:47 +00:00
flux-bot
ed989566a5 chore(cassandra): automated image update
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 143
2026-08-07 11:18:36 +00:00
flux-bot
5f8cd6c533 chore(cassandra): automated image update 2026-08-07 11:15:32 +00:00
flux-bot
c44b0ac021 chore(cassandra): automated image update 2026-08-07 11:11:34 +00:00
flux-bot
57c913e5e3 chore(cassandra): automated image update
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 143
2026-08-07 11:10:44 +00:00
Brad Stein
334fefff6c Add SCM poll trigger to cassandra Jenkins job
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 143
The cassandra pipelineJob had no trigger, so Gitea's notifyCommit
webhook found no matching job and pushes only built when started
manually. Poll every 5 minutes like lesavka/typhon so pushes build
within one poll cycle and the webhook race disappears.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-07 06:52:27 -03:00
flux-bot
e3b19fe751 chore(maintenance): automated image update
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 142
2026-08-07 08:32:54 +00:00
flux-bot
b27e6c9dbc chore(maintenance): automated image update
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 142
2026-08-07 08:11:31 +00:00
jenkins
100abc9dd5 feat(ariadne): turn on suggested fixes for unpatchable findings
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 142
Most of the SonarQube backlog is refactors too diffuse for an anchored patch,
so without this the majority of what static analysis knows never reaches a
maintainer. Deduped on the rule like the pull requests, so one root cause
yields one issue.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 05:00:25 -03:00
jenkins
d0cc188a25 feat(ariadne): sweep seven projects, and stop advertising the wrong model
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 142
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
62697bbb9e fix(demo): follow one incident, and never show another service's run
Two bugs, both visible in a single demo transcript.

The stage memory was one shared set cleared whenever the incident changed. A
ten-minute window routinely holds two incidents - the build just pushed and
the one before it - so they wiped each other's progress and every stage
reprinted on every poll, forever. Memory is now per incident, and the monitor
follows one incident at a time: --incident pins an exact id, --filter matches
a substring, and otherwise the newest wins, which is what someone who just
triggered a build wants.

Worse: the diagnosis panel read the newest diagnosis in the whole table, not
the one for the incident on screen. During a code-demo run it displayed
ananke/249 - a different service, a different failure - directly beneath the
heading naming this incident. Showing an unrelated answer is worse than
showing nothing, because nothing about it looks wrong.

It is now scoped to the incident and reads both event types, since the code
path records a code_proposal rather than a diagnosis - which is why nothing
matched and the fallback took over. There is no fallback any more: an incident
with no recorded run says so.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 04:43:04 -03:00
flux-bot
5090cd85b5 chore(cassandra): automated image update
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 142
2026-08-07 06:29:55 +00:00
flux-bot
6c50df9177 chore(cassandra): automated image update
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 142
2026-08-07 06:25:56 +00:00
flux-bot
4af3253b60 chore(cassandra): automated image update 2026-08-07 06:22:13 +00:00
flux-bot
92f1339b38 chore(cassandra): automated image update 2026-08-07 06:21:58 +00:00
flux-bot
bc8ecc895b chore(maintenance): automated image update
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 142
2026-08-07 05:15:42 +00:00
flux-bot
308db59706 chore(cassandra): automated image update
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 142
2026-08-07 05:03:24 +00:00
flux-bot
f4959d5cf0 chore(cassandra): automated image update 2026-08-07 05:03:16 +00:00
flux-bot
4877c79ed3 chore(maintenance): automated image update
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 142
2026-08-07 04:54:17 +00:00
jenkins
bd6c0678d8 feat(demo): provoke the triage tick instead of waiting a minute for it
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 142
Both demos went quiet for up to a minute between the build turning red and
the monitor reacting, because Ariadne's tick is on cron. The scripts now run
that tick immediately over the pod's own loopback - nothing exposed outside
the cluster - and print what it saw, so the pause becomes a visible step
rather than dead air.

Falls back to silence rather than failure: if the request does not land the
scheduler still picks the build up within the minute, which is exactly the
old behaviour.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 01:44:03 -03:00
jenkins
8899b76d07 fix(demo): stop waiting ten seconds to notice a finished build
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 142
wait_for_build slept before its first poll, so a build that had already
finished still bought a full interval of silence. On stage that reads as the
script having missed the result - the build goes red in Jenkins and the
terminal sits there. Polling first and sleeping after removes it entirely: a
finished build now returns in under a second, measured.

The interval drops from ten seconds to three for the same reason. The wait is
dead air in front of an audience and a Jenkins status read is cheap. The
budget is now expressed in seconds rather than poll counts, so shortening the
interval does not silently shorten the timeout.

This is only the script's own latency. Ariadne's autotriage cron is * * * * *,
so an incident still takes up to a minute to appear after a build fails, and
no amount of polling here changes that.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 01:08:24 -03:00
jenkins
3946ec8eed feat(demo): show the seeded change before pushing it
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 142
The run tab said a defect was seeded and then moved on. The audience had to
take on trust both that a change was made and that the diagnosis Hermes
produced two minutes later actually matched it. Printing the diff first closes
that gap: they watch the wrong line go in, then watch a model find the same
line without being told where it is.

Placed before the commit rather than after the push because this is the only
moment in the demo where a human changes any code, and it is worth being seen
as such. The short sha follows the push so the commit on screen can be matched
to the one Jenkins builds.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 00:59:21 -03:00
flux-bot
cdef6cee4b chore(maintenance): automated image update 2026-08-07 03:52:04 +00:00
flux-bot
0206ef0424 chore(maintenance): automated image update 2026-08-07 03:41:56 +00:00
flux-bot
0a62993518 chore(maintenance): automated image update
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 142
2026-08-07 03:25:49 +00:00
flux-bot
0622b0fdea chore(maintenance): automated image update
Some checks failed
Tests / Declarative: Post Actions failed: 2, passed: 142
2026-08-07 03:16:02 +00:00
jenkins
bab620fb61 feat(ariadne): sweep four services, and link proposals to the finding
Only one pull request appeared because the sweep was scoped to one project at
one proposal per hour - a throttle I set deliberately while nothing had ever
run, not a limit of the mechanism. It has now run, so it widens to every
project whose job also has a write allowlist: ariadne, metis, soteria and
bstein-dev-home. The rest are left out because without allowed prefixes
nothing is patchable, and a sweep would spend a SonarQube call to discover it
has nowhere to write.

Still one proposal per project per hour. The backlog is 139 findings on
Ariadne alone; the constraint that matters is how many pull requests a person
will actually read, not how many the mechanism could open.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 00:06:33 -03:00