Replace deleted central-ops reusable workflow with local CI#26
Conversation
- .gitignore: exclude build artifacts (/bin, /loadsim, /otelcontext) - graphrag: canonicalize investigation cooldown key (lower + trim) so "Orders" / "orders " / "ORDERS" share a bucket; otherwise trivial casing differences would bypass the cooldown guard - graphrag: consolidate time.Now() calls in PersistInvestigation to a single now := time.Now() at the top - graphrag/refresh.go: spell out the cooldown-prune cutoff's dependency on RefreshEvery to keep future tuning honest - storage: delete dead verifyP99Index helper and math import in metrics_p99_test.go Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The reusable workflow at RandomCodeSpace/central-ops/.github/workflows /reusable-pipeline.yml@main returns 404 (repo deleted), which has been silently failing CI for multiple commits. Runs the same gates locally: go build, go vet, go test -race, and a build-tag compile-check for the loadsim simulator. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4dda1f47f1
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| // bypassing the cooldown guard. | ||
| func cooldownKey(triggerService, rootService, rootOperation string) string { | ||
| norm := func(s string) string { return strings.ToLower(strings.TrimSpace(s)) } | ||
| return norm(triggerService) + "|" + norm(rootService) + "|" + norm(rootOperation) |
There was a problem hiding this comment.
Stop lowercasing root_operation in cooldown key
cooldownKey now normalizes rootOperation with strings.ToLower, which merges operations that differ only by case into the same cooldown bucket. OpenTelemetry span/operation names are free-form and can be case-sensitive (for example /Users vs /users), so this can suppress a distinct investigation for up to the cooldown window and hide a real incident. The service-name normalization makes sense, but applying it to operation names changes the suppression semantics.
Useful? React with 👍 / 👎.



Summary
CI has been red for several commits because `.github/workflows/ci.yml` references `RandomCodeSpace/central-ops/.github/workflows/reusable-pipeline.yml@main`, which returns 404 (repo deleted).
Replaces with a minimal local pipeline on `ubuntu-latest`:
Uses `go-version-file: go.mod` to stay in sync with the declared toolchain, `cache: true` for module cache, `CGO_ENABLED=1` for race detector.
Test plan