Fix temporal persistence wiring and restore slurp_full suite

This commit is contained in:
anthonyrawlins
2025-09-28 11:39:03 +10:00
parent 9c32755632
commit 2ff408729c
16 changed files with 1195 additions and 802 deletions

View File

@@ -62,8 +62,19 @@ func (dn *decisionNavigatorImpl) NavigateDecisionHops(ctx context.Context, addre
dn.mu.RLock()
defer dn.mu.RUnlock()
// Get starting node
startNode, err := dn.graph.getLatestNodeUnsafe(address)
// Determine starting node based on navigation direction
var (
startNode *TemporalNode
err error
)
switch direction {
case NavigationForward:
startNode, err = dn.graph.GetVersionAtDecision(ctx, address, 1)
default:
startNode, err = dn.graph.getLatestNodeUnsafe(address)
}
if err != nil {
return nil, fmt.Errorf("failed to get starting node: %w", err)
}
@@ -254,9 +265,7 @@ func (dn *decisionNavigatorImpl) ResetNavigation(ctx context.Context, address uc
// Clear any navigation sessions for this address
for _, session := range dn.navigationSessions {
if session.CurrentPosition.String() == address.String() {
// Reset to latest version
latestNode, err := dn.graph.getLatestNodeUnsafe(address)
if err != nil {
if _, err := dn.graph.getLatestNodeUnsafe(address); err != nil {
return fmt.Errorf("failed to get latest node: %w", err)
}