Commit 420c3fa
committed
fix: prevent placeholders from overwriting real checkpoints
ProviderRuntimeIngestion fires multiple turn.diff.updated events per
turn. Each dispatches a placeholder checkpoint that the projector would
blindly replace by turnId, clobbering the real git capture from
CheckpointReactor. Also, using thread.checkpoints.length + 1 for
checkpointTurnCount produced unstable values after dedup.
Two fixes:
1. Projector: skip incoming "missing" checkpoints when a non-placeholder
entry already exists for that turnId
2. ProviderRuntimeIngestion: skip placeholder dispatch entirely if a
checkpoint already exists for the turnId, and use max turnCount + 1
instead of length + 11 parent 1ef7d20 commit 420c3fa
2 files changed
Lines changed: 38 additions & 16 deletions
Lines changed: 28 additions & 16 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1064 | 1064 | | |
1065 | 1065 | | |
1066 | 1066 | | |
1067 | | - | |
1068 | | - | |
1069 | | - | |
1070 | | - | |
1071 | | - | |
1072 | | - | |
1073 | | - | |
1074 | | - | |
1075 | | - | |
1076 | | - | |
1077 | | - | |
1078 | | - | |
1079 | | - | |
1080 | | - | |
1081 | | - | |
1082 | | - | |
| 1067 | + | |
| 1068 | + | |
| 1069 | + | |
| 1070 | + | |
| 1071 | + | |
| 1072 | + | |
| 1073 | + | |
| 1074 | + | |
| 1075 | + | |
| 1076 | + | |
| 1077 | + | |
| 1078 | + | |
| 1079 | + | |
| 1080 | + | |
| 1081 | + | |
| 1082 | + | |
| 1083 | + | |
| 1084 | + | |
| 1085 | + | |
| 1086 | + | |
| 1087 | + | |
| 1088 | + | |
| 1089 | + | |
| 1090 | + | |
| 1091 | + | |
| 1092 | + | |
| 1093 | + | |
| 1094 | + | |
1083 | 1095 | | |
1084 | 1096 | | |
1085 | 1097 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
500 | 500 | | |
501 | 501 | | |
502 | 502 | | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
503 | 513 | | |
504 | 514 | | |
505 | 515 | | |
| |||
0 commit comments