Commit 5b8fae0
committed
fix(memory): order get_last_k_turns messages chronologically
The ListEvents API returns events newest-first, but get_last_k_turns
grouped them in arrival order. Because a new turn is started at each USER
message, processing newest-first misaligns turns — an ASSISTANT reply is
orphaned into a leading turn and every subsequent turn pairs a USER
message with the previous turn's ASSISTANT response. The effect is most
visible when tool use splits a turn across single-message events.
Sort each fetched batch by eventTimestamp (oldest-first) before grouping,
in both MemoryClient.get_last_k_turns and
MemorySessionManager.get_last_k_turns. The sort is skipped when any event
in the batch lacks a timestamp, preserving existing behavior for callers
that don't supply one. Public signatures and pagination are unchanged.
Add regression tests in both modules that feed events newest-first (as the
real API does) and assert a single, correctly ordered USER->ASSISTANT turn.
Fixes #2531 parent 0a8a486 commit 5b8fae0
4 files changed
Lines changed: 81 additions & 0 deletions
File tree
- src/bedrock_agentcore/memory
- tests/bedrock_agentcore/memory
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1214 | 1214 | | |
1215 | 1215 | | |
1216 | 1216 | | |
| 1217 | + | |
| 1218 | + | |
| 1219 | + | |
| 1220 | + | |
| 1221 | + | |
1217 | 1222 | | |
1218 | 1223 | | |
1219 | 1224 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
841 | 841 | | |
842 | 842 | | |
843 | 843 | | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
| 848 | + | |
844 | 849 | | |
845 | 850 | | |
846 | 851 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3569 | 3569 | | |
3570 | 3570 | | |
3571 | 3571 | | |
| 3572 | + | |
| 3573 | + | |
| 3574 | + | |
| 3575 | + | |
| 3576 | + | |
| 3577 | + | |
| 3578 | + | |
| 3579 | + | |
| 3580 | + | |
| 3581 | + | |
| 3582 | + | |
| 3583 | + | |
| 3584 | + | |
| 3585 | + | |
| 3586 | + | |
| 3587 | + | |
| 3588 | + | |
| 3589 | + | |
| 3590 | + | |
| 3591 | + | |
| 3592 | + | |
| 3593 | + | |
| 3594 | + | |
| 3595 | + | |
| 3596 | + | |
| 3597 | + | |
| 3598 | + | |
| 3599 | + | |
| 3600 | + | |
| 3601 | + | |
| 3602 | + | |
| 3603 | + | |
| 3604 | + | |
| 3605 | + | |
| 3606 | + | |
| 3607 | + | |
3572 | 3608 | | |
3573 | 3609 | | |
3574 | 3610 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2174 | 2174 | | |
2175 | 2175 | | |
2176 | 2176 | | |
| 2177 | + | |
| 2178 | + | |
| 2179 | + | |
| 2180 | + | |
| 2181 | + | |
| 2182 | + | |
| 2183 | + | |
| 2184 | + | |
| 2185 | + | |
| 2186 | + | |
| 2187 | + | |
| 2188 | + | |
| 2189 | + | |
| 2190 | + | |
| 2191 | + | |
| 2192 | + | |
| 2193 | + | |
| 2194 | + | |
| 2195 | + | |
| 2196 | + | |
| 2197 | + | |
| 2198 | + | |
| 2199 | + | |
| 2200 | + | |
| 2201 | + | |
| 2202 | + | |
| 2203 | + | |
| 2204 | + | |
| 2205 | + | |
| 2206 | + | |
| 2207 | + | |
| 2208 | + | |
| 2209 | + | |
| 2210 | + | |
| 2211 | + | |
2177 | 2212 | | |
2178 | 2213 | | |
2179 | 2214 | | |
| |||
0 commit comments