Merge pull request #92 from tomt610/fix/historical-context-injection

fix: Historical context injection for both text and chat completion p…
This commit is contained in:
Spicy Marinara
2026-01-11 19:32:33 +01:00
committed by GitHub
2 changed files with 249 additions and 39 deletions
+16 -5
View File
@@ -1172,12 +1172,22 @@ export async function generateSeparateUpdatePrompt() {
continue;
}
const swipeData = message.extra?.rpg_companion_swipes;
// Get the rpg_companion_swipes data for current swipe
// Data can be in two places:
// 1. message.extra.rpg_companion_swipes (current session, before save)
// 2. message.swipe_info[swipeId].extra.rpg_companion_swipes (loaded from file)
const currentSwipeId = message.swipe_id || 0;
let swipeData = message.extra?.rpg_companion_swipes;
// If not in message.extra, check swipe_info
if (!swipeData && message.swipe_info && message.swipe_info[currentSwipeId]) {
swipeData = message.swipe_info[currentSwipeId].extra?.rpg_companion_swipes;
}
if (!swipeData) {
continue;
}
const currentSwipeId = message.swipe_id || 0;
const trackerData = swipeData[currentSwipeId];
if (!trackerData) {
continue;
@@ -1195,14 +1205,15 @@ export async function generateSeparateUpdatePrompt() {
let targetIdx = i;
if (position === 'user_message_end') {
// Find next user message after this assistant message
for (let j = i + 1; j < recentMessages.length; j++) {
// Find the preceding user message before this assistant message
// This is the user message that prompted this assistant response
for (let j = i - 1; j >= 0; j--) {
if (recentMessages[j].is_user && !recentMessages[j].is_system) {
targetIdx = j;
break;
}
}
// If no user message found, skip
// If no user message found before, skip
if (targetIdx === i) {
continue;
}