Repository navigation
Commit dcfcdc4
feat(echidnabot): pinned sync from hyperpolymath/echidnabot + drift gate [mass-delete-ok] (#586)
## Summary
Owner decision (2026-10-05): standalone `hyperpolymath/echidnabot` is
canon. `bots/echidnabot/` is now a **pinned sync** of it, with a CI
drift check, instead of a hand-maintained fork.
- `bots/echidnabot/FLEET-SYNC.json` pins
`hyperpolymath/echidnabot@bf2c0ff` (upstream `main` head at time of
writing). Only the crate surface is vendored; upstream
docs/packaging/wiki stay upstream (`bots/` slots are thin, CLAUDE.md
invariant 6).
- `scripts/sync-vendored-bot.sh` (`--check` / `--sync [--rev SHA]`) +
`scripts/tests/sync-vendored-bot.sh` (21 offline assertions, planted
controls: edited file, extra file, mode change, non-canonical lock,
short/error-body rev, side-branch rev, empty include).
- `.github/workflows/vendored-bot-drift.yml`: runs on PRs, pushes to
`main`, weekly; reports how far upstream is ahead of the pin.
- Dependabot no longer watches `/bots/echidnabot`, so the copy is never
bumped independently. `dependabot.yml` converted to KYAML (D280,
non-workflow YAML). This also repairs an `ignore:` block that was
mis-nested under the github-actions `groups` key.
- `CANONICAL_SOURCE.adoc` rewritten. It lists the six fleet-only files
that the switch drops (recoverable from `8a4f983`).
`tests/webhook_e2e_test.rs` should be promoted upstream.
- `actions.lock` resynced with `gh actions-lock`. On `main`, `--no-fix`
reported an unused `codeql-action@1c5b675` entry. `codeql.yml` now names
`v4.38.2`, which is the SHA it already ran (`2892aa5`), so CodeQL
behaviour is unchanged.
- `shared-context/findings` cleanup:
- Repointed the dangling `echidna/latest.json`.
- Dropped three byte-identical duplicate echidna scans and two zero-byte
non-marker files. The `.processed` markers are kept.
- Dropped three misfiled root `hypatia-echidnabot-*` files: an error
log, a log-prefixed partial and a bare array, all superseded by
`findings/echidnabot/`.
- `echidnabot/latest.json` is now the symlink that `submit-finding.sh`
writes.
- `scripts/enroll-hypatia-fleet.sh`: discovery now covers the star-list
layout (depth 1–3). At depth 1 it found 3 of 406 clones under
`hyper-repos/`. New `tests/enroll-discovery-test.sh` with a depth-1
planted control, wired into `e2e.yml`.
`[mass-delete-ok]`: 65 tracked files are deliberately removed, mostly
upstream-only docs/packaging dropped from the vendored slot. All of them
remain in history.
## Verification (local)
- `bash scripts/tests/sync-vendored-bot.sh` → 21 passed, 0 failed
- `bash scripts/sync-vendored-bot.sh echidnabot --check` → matches, 75
entries
- `bash tests/enroll-discovery-test.sh` → ok (incl. planted control)
- `gh actions-lock --no-fix` → clean
- `kyaml-format.sh --check .github/dependabot.yml` → clean
- `docstring-scan.sh --staged --check` → 18/18 documented
Not covered by this PR: per-repo `FLEET-ENROLLMENT.a2ml` directives live
in the target repos, and those repos' own PRs carry them.
## CI follow-ups in this PR
- `Dispatch path and outcome contracts` (required, red on `main` since
#571): the test now asserts the quarantine on the production runner and
runs the path/outcome contracts through a test-only seam copy, with
planted controls. Closes #587.
- `GSBot build, tests and dependency security` (required, red on
`main`): `bots/gsbot` rustls 0.23.40 → 0.23.45 for RUSTSEC-2026-0285;
`cargo deny ... check advisories` is clean locally.
- `governance / Validate Hypatia Baseline` and `Hypatia`: the four new
findings are in vendored upstream echidnabot code, which the drift gate
forbids editing here. They are baselined with `tracking_issue` and
`expires_at`.
## Deferred red checks (AGENTS.md §5c item 3)
- `Hypatia`: deferred to #588 (vendored echidnabot findings must be
fixed upstream; baselined here).
- `governance / Validate Hypatia Baseline`: deferred to #588.
- `scorecard / Run Scorecard PR`: deferred to #589 (pre-existing on
`main`; reconciler fails on `casket-pages.yml`, which this PR does not
touch).
- `Codeac analyze results`: deferred to #590 (pre-existing on `main`;
external service cannot analyse the repo).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>1 parent 8a4f983 commit dcfcdc4
159 files changed
Lines changed: 13927 additions & 22778 deletions
File tree
- .github
- workflows
- bots
- echidnabot
- .cargo
- LICENSES
- benches
- contracts
- docs
- content
- templates
- echidna
- examples
- fuzz
- fuzz_targets
- hooks
- migrations
- packaging
- arch
- aur
- chocolatey
- debian
- flatpak
- macports
- rpm
- scoop
- winget
- proofs
- coq
- lean
- test_fixtures
- scripts
- src
- abi
- adapters
- api
- dispatcher
- executor
- feedback
- fleet
- modes
- scheduler
- store
- trust
- tests
- fixtures/manifest
- regressions
- wiki
- gsbot
- docs
- scripts
- tests
- tests
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | | - | |
| 51 | + | |
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
| |||
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
| 64 | + | |
| 65 | + | |
64 | 66 | | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | 67 | | |
71 | 68 | | |
72 | 69 | | |
| |||
144 | 141 | | |
145 | 142 | | |
146 | 143 | | |
147 | | - | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
152 | | - | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
157 | 144 | | |
158 | 145 | | |
159 | 146 | | |
160 | 147 | | |
161 | 148 | | |
162 | | - | |
163 | | - | |
164 | | - | |
165 | | - | |
166 | | - | |
167 | | - | |
168 | | - | |
169 | | - | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
170 | 152 | | |
171 | 153 | | |
172 | | - | |
173 | | - | |
174 | | - | |
175 | | - | |
176 | | - | |
177 | 154 | | |
178 | 155 | | |
179 | 156 | | |
| |||
221 | 198 | | |
222 | 199 | | |
223 | 200 | | |
224 | | - | |
225 | | - | |
226 | | - | |
227 | | - | |
228 | | - | |
229 | 201 | | |
230 | 202 | | |
231 | 203 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | | - | |
| 51 | + | |
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
57 | | - | |
| 57 | + | |
58 | 58 | | |
59 | 59 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| 29 | + | |
| 30 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
1 | 2 | | |
2 | 3 | | |
3 | 4 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
50 | | - | |
51 | 49 | | |
52 | 50 | | |
53 | 51 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
0 commit comments