feat(dispatch): slice 5.3 CandidatesSelected + NoCandidatesAvailable#34
Merged
Conversation
…001 Document History
erikshafer
added a commit
that referenced
this pull request
Jun 17, 2026
…and next-session candidate Captures session close after PR #34 squash-merge (`bda8363`). Documents slice 5.3 deliverables (CandidatesSelected automation with marker-interface outcome, RequestRoundsProjection, INearbyAvailableDriversSource stub, 3 Alba tests), current repo state (11 passing tests, clean working tree), and verified knowledge (`[WriteAggregate]` on non-first stream event confirmed working, extend-chain test updates established as in-scope). Flags skill-file debt at encoding threshold: marker-interface union return pattern and event-triggered automation shape both hit 3 instances—queue for `tidy: skills` PR before slice 5.4. Carries housekeeping items from retro 004/005. Nominates slice 5.4 (OfferSent fan-out) as next candidate with alternative to encode skills first. Notes Marten 9/Wolverine 6 migration incompleteness. Updates artifacts inventory to 11 tests across 3 slices.
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
CandidateSelectionAutomationreacts toFareQuoted, queriesINearbyAvailableDriversSource(stub seam; transport deferred to parking-lot Add Dispatch business-event protobuf contracts #4), and emitsCandidatesSelected(≥1 eligible candidate, top N by inverse-distance match score) orNoCandidatesAvailable(NoDriversInRange/NoCapableDriversInRange)DispatchPolicySnapshotDI record (hardcoded defaults; Slice 11 swaps forDispatchPolicyConfigured-fed projection),ICandidateSelectionOutcomemarker interface (third occurrence of the pattern), andRequestRoundsProjectioninline projection (consumed by Slice 9 re-dispatch)[WriteAggregate]bound to a non-first stream event (FareQuotedis the second event on the stream); verified against Wolverine 5.37 source — attribute is trigger-agnosticTest plan
candidates_selected_picks_top_five_ordered_by_match_score,no_drivers_in_range_emits_no_candidates_with_no_drivers_reason,accessible_request_with_only_standard_drivers_emits_no_capable_drivers_reasonFareQuotedRequestRoundsProjectionis declaredpartial(Marten 9 source-gen requirement)[WriteAggregate]bound toFareQuoted.RideRequestIdloadsRideRequestcorrectly from a 2-event stream## Document Historyv0.2 entry + W001## Document Historyv0.7 entry