Skip to content
This repository was archived by the owner on Sep 17, 2026. It is now read-only.

Drop the last two per-service .github directories - #24

Merged
Peeja merged 1 commit into
mainfrom
claude/prune-inert-github
Sep 17, 2026
Merged

Peeja merged 1 commit into
mainfrom
claude/prune-inert-github

Conversation

@Peeja

@Peeja Peeja commented Sep 17, 2026

Copy link
Copy Markdown

⏭️ Safe to merge without waiting for CI — all of it

Refreshed on every push. Checks are not required yet, so this is advice, not a gate.

21 deletions, all under forgectl/.github/ and indexing-service/.github/. No file added or modified.

$ grep -rn "forgectl/\.github\|indexing-service/\.github\|go-test-config\|dependabot-auto-merge" \
    --include='*.yml' --include='*.yaml' --include='*.sh' --include='*.go' --include='*.json' --include=Makefile .
(no output)
check why this diff cannot reach it
ci (guards + 13 unit) The guards walk find . -name 'Dockerfile*' and find . -name go.mod; every deleted file is .yml, .yaml, .json or CODEOWNERS. No Go package is touched.
images ×8 Builds from Dockerfiles; none deleted.
itest, e2e Neither reads any deleted path, and no Go or compose file changed.

GitHub itself is the strongest evidence: it reads workflows, dependabot.yml and CODEOWNERS only at the repository root, which is why none of these 21 files has ever run here.

What this costs if it's wrong: the checks still run; we just don't wait. If an ignored check goes red after merge, main is red.


7321ee6a pruned these for the original seven services. forgectl (#12) and indexing-service (#10) arrived afterwards and nothing looked again, so 21 files across two directories survived.

None of them has ever run. But they describe a per-repo release and deploy flow that does not apply here — which is exactly what someone reads and believes while building Phase 1.

Deleted rather than kept as reference

indexing-service's releaser.yml, tagpush.yml, release-binaries.yml, release-check.yml, publish-ghcr.yml, deploy.yml and terraform.yml are the closest thing we have to a worked example of the release flow Phase 1 must build. A stale copy in the tree is still worse than a pointer: they are one git show away in this repository's history, and they still live in the polyrepo.

⚠️ Found while checking, and it is not cosmetic

forgectl is the only service with genuinely scheduled workflows.

workflow schedule runs
metrics-payments.yaml every 30 min forgectl metrics payments --payer … --otlp-endpoint …
metrics-faults.yaml every 12 h forgectl metrics faults …

Both against environment: mainnet, pushing to an OTLP endpoint.

They still run today, in fil-forge/forgectl, because that repository still exists — the copies removed here never did. So nothing stops on merge. But archiving fil-forge/forgectl stops mainnet fault and payment metrics, silently, and reproducing them here needs a mainnet environment and two secrets configured on this repository. That's a person's job and it should be sequenced with the archival, not after.

Written up properly in MONOREPO_TODO.md (separate PR) and on the wiki rather than left in a commit message.

No equivalent hazard among the seven pruned earlier — I checked every file 7321ee6a deleted, and the only schedule: keys in them were dependabot intervals.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CGAGAib517Ae1kg8SCdcEt


Generated by Claude Code

7321ee6 pruned these for the original seven services. forgectl (#12) and
indexing-service (#10) arrived afterwards and nothing looked again, so 21 files
across two directories survived. GitHub reads workflows, dependabot config and
CODEOWNERS only at the repository root, so none of them has ever run here --
but they describe a per-repo release and deploy flow that does not apply, which
is exactly what someone reads and believes while building Phase 1.

Deleted rather than kept as reference: indexing-service's releaser.yml,
tagpush.yml, release-binaries.yml, release-check.yml, publish-ghcr.yml,
deploy.yml and terraform.yml are the closest thing we have to a worked example
of the release flow Phase 1 must build, but a stale copy in the tree is worse
than a pointer. They are one `git show` away here, and still live in the
polyrepo.

**Found while checking, and it is not cosmetic: forgectl is the only service
with genuine scheduled workflows.** metrics-faults.yaml (every 12 hours) and
metrics-payments.yaml (every 30 minutes) run `forgectl metrics faults` and
`forgectl metrics payments` against `environment: mainnet`, pushing to an OTLP
endpoint. They still run today, in fil-forge/forgectl, because that repository
still exists -- the copies removed here never did. So nothing stops right now,
but **archiving fil-forge/forgectl stops mainnet fault and payment metrics**
unless the monorepo picks them up first, and doing that needs a mainnet
environment and two secrets configured here, which is a person's job.

Recorded in MONOREPO_TODO.md and on the wiki rather than left in this message.
No equivalent hazard among the seven pruned earlier: the only `schedule:` keys
in those were dependabot intervals, checked across every file 7321ee6 deleted.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CGAGAib517Ae1kg8SCdcEt
Peeja pushed a commit that referenced this pull request Sep 17, 2026
…deadline

#23 re-homes the CI wall-clock measurement that would otherwise live only on
closed #21, plus two findings from reading main: Phase 1 has no release.yml to
use, and tags are gated on the rename because a submodule tag must sit in the
repository its module path names. #24 removes the last two per-service .github
directories. #25 layer-caches the image builds in itest and e2e while images.yml
stays cold as the canary -- the only one of the five open PRs that can fail.

The hazard is on Needs Human Work because it needs a person: forgectl's
metrics-payments and metrics-faults run against environment: mainnet every 30
minutes and 12 hours, pushing to an OTLP endpoint from repository secrets. They
run in the polyrepo today. Archiving fil-forge/forgectl stops them silently, and
reproducing them here needs an environment and secrets configured on this
repository.

Also records what was deliberately not attempted pre-rename and why: the release
workflow (unverifiable until tags can be cut, and an unrunnable workflow is the
silent-green shape this repo keeps deleting), compat.yml (needs published images
to test against), the tag scheme (long-lived, hard to reverse, a recommendation
rather than an agent's decision), and building the Dockerfile.release files
(goreleaser-shaped, they need the release flow first).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CGAGAib517Ae1kg8SCdcEt
@Peeja
Peeja merged commit 144b316 into main Sep 17, 2026
22 checks passed
@Peeja
Peeja deleted the claude/prune-inert-github branch September 17, 2026 16:47
Peeja pushed a commit that referenced this pull request Sep 17, 2026
TestUploadAndRetrieve/filesystem has failed 2 of 40 e2e runs, and both are the
same shape: compose up reports a dependency unhealthy, a different container
each time (upload-1 on run 160, plc-1 on run 182), always the filesystem
permutation and never s3. plc-1's log says connect ECONNREFUSED to its postgres,
one restart, then the healthcheck deadline. That is a startup race, not a broken
image.

Run 160 is on main at ff2f794, two and a half hours before any of today's
branches existed, which is what rules #25 out -- it changes how images are built,
so the red looked exactly like a regression until the main failure was found.
The two permutations are t.Parallel(), so ~40 containers start on one runner at
once; both observed failures being filesystem is suggestive of something
systematic, but two data points is not proof.

One re-run queued on #25, the single re-run allowed for establishing that a
failure is not the PR's. The honest fix is compose healthcheck ordering, not a
retry.

Also: main is 144b316 -- Petra merged #22, #23 and #24 while this was running.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CGAGAib517Ae1kg8SCdcEt
Peeja pushed a commit that referenced this pull request Sep 17, 2026
Petra merged #20, #17, #22, #19, #23 and #24; main is 144b316 and the open
list is #25 and #26. Dropped the merged rows from both tables rather than
letting them accumulate.

#25's e2e red turned out to be the pre-existing filesystem flake, and the one
re-run that cleared it was warm -- so it produced the measurement as well as the
green: 8 images in 23s against a 7m34s baseline, and the e2e job from 13m10s to
5m29s. #26 puts that in MONOREPO_TODO.md with the caveats attached rather than
the headline alone.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CGAGAib517Ae1kg8SCdcEt
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants