refactor: remove speculation machinery#400
Merged
Merged
Conversation
behinddwalls
marked this pull request as ready for review
July 20, 2026 16:57
## Summary ### Why? The speculation-tree track (RFC, pluggable seams, tree/path entities, tree-driven pipeline) is being abandoned. The queue keeps the naive happy-path speculate controller — it assumes every in-flight build passes and treats batch.Dependencies + [batch.ID] as the single speculation chain — and this change removes everything the speculation project layered onto main around it, so any future speculation design can start from a clean slate. ### What? - Delete the speculation RFC (doc/rfc/submitqueue/speculation.md) and its doc/rfc/index.md entry. - Delete the speculation extension seams under submitqueue/extension/speculation/ (enumerator, dependencylimit, pathscorer, selector, selectionlimit, prioritizer, prioritizationlimit) with their impls, fakes, and mocks, plus their entries in the Makefile mocks target. - Delete the SpeculationTree / SpeculationPathBuild entities and their stores: contracts, MySQL impls, schema files, sqlmock unit tests, checked-in gomocks, the Storage interface getters, and the storage integration contract tests. - Remove the prioritize stage entirely — controller package, TopicKeyPrioritize, the queue-scoped DLQ re-driver (dlq/queue.go), entity.QueueID, and all orchestrator server wiring (topic row, DLQ row, prioritizerFactory, per-queue sticky prioritizer profile). The stage consumed speculation trees and had no purpose without them; nothing published to it yet. - Drop Build.SpeculationPathID from the entity, the build store column list, and the build schema — only tree-driven builds would have written it. - The speculate controller itself is untouched: main's version is still the naive one-path impl. ## Test Plan ✅ make build — clean. ✅ make test — 74/74 pass. ✅ bazel build //test/e2e/... //test/integration/... — compiles. ✅ make mocks / make gazelle / make fmt — regenerated, only expected churn (storage_mock.go loses the two speculation getters). ✅ make lint / check-tidy / check-gazelle — pass on the committed tree.
behinddwalls
force-pushed
the
preetam/int/remove-speculation
branch
from
July 20, 2026 17:02
b0c6156 to
9e0957f
Compare
actions/checkout released v4.4.0, moving the floating v4 tag off the commit our workflows pin (34e11487 = v4.3.1). zizmor's ref-version-mismatch audit now fails every workflow because the '# v4' comment no longer matches a tag pointing at the pinned SHA. Update the 13 pin comments to the exact tag v4.3.1; the pinned commit itself is unchanged. Verified locally with zizmor 1.25.2 (the version CI pins): no findings.
behinddwalls
temporarily deployed
to
stack-rebase
July 20, 2026 17:11 — with
GitHub Actions
Inactive
This was referenced Jul 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Why?
The speculation-tree track (RFC, pluggable seams, tree/path entities, tree-driven pipeline) is being abandoned. The queue keeps the naive happy-path speculate controller — it assumes every in-flight build passes and treats batch.Dependencies + [batch.ID] as the single speculation chain — and this change removes everything the speculation project layered onto main around it, so any future speculation design can start from a clean slate.
What?
Test Plan
✅ make build — clean. ✅ make test — 74/74 pass. ✅ bazel build //test/e2e/... //test/integration/... — compiles. ✅ make mocks / make gazelle / make fmt — regenerated, only expected churn (storage_mock.go loses the two speculation getters). ✅ make lint / check-tidy / check-gazelle — pass on the committed tree.
Issues