Skip to content

feat(entity): speculation path and run entities - #444

Merged
behinddwalls merged 1 commit into
mainfrom
preetam/speculation-entities
Jul 29, 2026
Merged

feat(entity): speculation path and run entities#444
behinddwalls merged 1 commit into
mainfrom
preetam/speculation-entities

Conversation

@behinddwalls

@behinddwalls behinddwalls commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

Add the speculation domain model in submitqueue/entity/speculation.go: SpeculationPath (keyed by a content hash), DependencyBet/DependencyBetType, SpeculationPathStatus, SpeculationPathEntry, and SpeculationPathSet, plus the run vocabulary PathAction/Speculation/CandidatePath. Enums are string-valued with empty-string sentinels; the path's ID is a SHA-256 over the head and its ordered bets, computed on each call. Covered by table tests.

Also aligns the speculation RFC with the implemented design: field names match the entities (Head, Batch, string enums), the Generator opens over the batches alone and enumerates the whole path space, terminal-path suppression moves to the Allocator (the piece that reconciles candidates against the path sets by ID), and the stale depth-bound language is removed — lazy generation removed the 2^n cost the bound existed to cap.

No storage, no wiring, and no serialization helpers — queue payloads get their own contract types when a message needs one. These are the entities the speculation extension and controller build on.

Stack

  1. @ feat(entity): speculation path and run entities #444
  2. feat(speculation): speculator extension contract #445
  3. feat(speculation): generator contract and bestfirst impl #446
  4. feat(speculation): allocator contract and sticky impl #450
  5. feat(speculation): standard composed speculator #451

@behinddwalls
behinddwalls marked this pull request as ready for review July 27, 2026 17:36
@behinddwalls
behinddwalls requested review from a team and sbalabanov as code owners July 27, 2026 17:36
@behinddwalls
behinddwalls force-pushed the preetam/speculation-entities branch from 4c78ae2 to e178f70 Compare July 27, 2026 18:02
@behinddwalls
behinddwalls marked this pull request as draft July 27, 2026 18:05
@behinddwalls
behinddwalls marked this pull request as ready for review July 27, 2026 19:00
@behinddwalls
behinddwalls marked this pull request as draft July 27, 2026 20:45
@behinddwalls
behinddwalls marked this pull request as ready for review July 27, 2026 23:17
@behinddwalls
behinddwalls force-pushed the preetam/speculation-entities branch from e178f70 to f905059 Compare July 27, 2026 23:18
Comment thread submitqueue/entity/speculation.go Outdated
Comment thread submitqueue/entity/speculation.go
Comment thread submitqueue/entity/speculation.go Outdated
Comment thread submitqueue/entity/speculation.go Outdated
Comment thread submitqueue/entity/speculation.go Outdated
@behinddwalls
behinddwalls force-pushed the preetam/speculation-entities branch from f905059 to e178f70 Compare July 28, 2026 19:13
@behinddwalls
behinddwalls force-pushed the preetam/speculation-entities branch 2 times, most recently from 315e651 to 8f8f627 Compare July 29, 2026 22:31
Add the speculation domain model in submitqueue/entity/speculation.go: SpeculationPath (keyed by a content hash), DependencyBet/DependencyBetType, SpeculationPathStatus, SpeculationPathEntry, and SpeculationPathSet, plus the run vocabulary PathAction/Speculation/CandidatePath. Enums are string-valued with empty-string sentinels; the path's ID is a SHA-256 over the head and its ordered bets, computed on each call. Covered by table tests.

Also aligns the speculation RFC with the implemented design: field names match the entities (Head, Batch, string enums), the Generator opens over the batches alone and enumerates the whole path space, terminal-path suppression moves to the Allocator (the piece that reconciles candidates against the path sets by ID), and the stale depth-bound language is removed — lazy generation removed the 2^n cost the bound existed to cap.

No storage, no wiring, and no serialization helpers — queue payloads get their own contract types when a message needs one. These are the entities the speculation extension and controller build on.
@behinddwalls
behinddwalls force-pushed the preetam/speculation-entities branch from 8f8f627 to bd287ca Compare July 29, 2026 22:41
@behinddwalls
behinddwalls added this pull request to the merge queue Jul 29, 2026
Merged via the queue into main with commit f1266ed Jul 29, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants