diff --git a/klite.embd b/klite.embd
index d4602f5a7..e341a1b00 100644
--- a/klite.embd
+++ b/klite.embd
@@ -5087,7 +5087,6 @@ Current version indicated by LITEVER below.
perfdata.queued_tokens += data.queued_tokens;
perfdata.past_minute_tokens += data.past_minute_tokens;
document.body.classList.add("connected");
- document.getElementById("multiplayerstatus").innerText = "";
document.getElementById("connectstatus").innerHTML = "AI Horde";
document.getElementById("connectstatus").classList.add("color_offwhite");
render_gametext(false);
@@ -5101,7 +5100,6 @@ Current version indicated by LITEVER below.
console.log("Error: " + error);
msgbox("Failed to connect to AI Horde Service!\nPlease check your network connection. You may still be able to connect to an alternative service, click here to view options .","Error Encountered",true);
document.body.classList.remove("connected");
- document.getElementById("multiplayerstatus").innerText = "";
document.getElementById("connectstatus").innerHTML = "Offline Mode";
document.getElementById("connectstatus").classList.remove("color_offwhite");
render_gametext(false);
@@ -7578,11 +7576,11 @@ Current version indicated by LITEVER below.
}
}else{
leave_multiplayer();
- msgbox("Multiplayer Error: " + JSON.stringify(vals),"Disconnected from Multiplayer");
+ msgbox("Multiplayer Error: " + JSON.stringify(vals)+"\n\nYou can reconnect by clicking 'Join Multiplayer'.","Disconnected from Multiplayer");
}
}).catch(error => {
leave_multiplayer();
- msgbox("Multiplayer Error: " + error,"Disconnected from Multiplayer");
+ msgbox("Multiplayer Error: " + error + "\n\nYou can reconnect by clicking 'Join Multiplayer'.","Disconnected from Multiplayer");
console.log("Failed to access multiplayer status: " + error);
});
}
@@ -7908,10 +7906,6 @@ Current version indicated by LITEVER below.
let entry = ``+curr.title+` `;
scenarios += entry;
}
- if(is_using_kcpp_with_multiplayer())
- {
- scenarios += `Join Multiplayer `;
- }
document.getElementById("scenariogrid").innerHTML = scenarios;
document.getElementById("scenariodesc").innerText = "No Scenario Selected";
@@ -9176,7 +9170,6 @@ Current version indicated by LITEVER below.
document.body.classList.add("connected");
document.getElementById("connectstatus").classList.add("color_offwhite");
}
- document.getElementById("multiplayerstatus").innerText = "";
document.getElementById("connectstatus").innerHTML = "KoboldAI Endpoint";
render_gametext();
@@ -9233,7 +9226,6 @@ Current version indicated by LITEVER below.
koboldcpp_version_obj = data;
koboldcpp_version = data.version;
console.log("KoboldCpp Detected: " + koboldcpp_version);
- document.getElementById("multiplayerstatus").innerText = "";
document.getElementById("connectstatus").innerHTML = (`KoboldCpp ${koboldcpp_version}`);
koboldcpp_has_vision = (data.vision?true:false);
koboldcpp_has_whisper = (data.transcribe?true:false);
@@ -9396,7 +9388,6 @@ Current version indicated by LITEVER below.
custom_kobold_endpoint = "";
if(localflag)
{
- document.getElementById("multiplayerstatus").innerText = "";
document.getElementById("connectstatus").innerHTML = "Offline Mode";
}
render_gametext();
@@ -9475,7 +9466,6 @@ Current version indicated by LITEVER below.
document.body.classList.add("connected");
document.getElementById("connectstatus").classList.add("color_offwhite");
}
- document.getElementById("multiplayerstatus").innerText = "";
document.getElementById("connectstatus").innerHTML = "OpenAI Endpoint";
render_gametext(true);
}
@@ -9526,7 +9516,6 @@ Current version indicated by LITEVER below.
document.body.classList.add("connected");
document.getElementById("connectstatus").classList.add("color_offwhite");
}
- document.getElementById("multiplayerstatus").innerText = "";
document.getElementById("connectstatus").innerHTML = "Claude Endpoint";
render_gametext();
@@ -9559,7 +9548,6 @@ Current version indicated by LITEVER below.
document.body.classList.add("connected");
document.getElementById("connectstatus").classList.add("color_offwhite");
}
- document.getElementById("multiplayerstatus").innerText = "";
document.getElementById("connectstatus").innerHTML = "Gemini Endpoint";
render_gametext();
}
@@ -9591,7 +9579,6 @@ Current version indicated by LITEVER below.
document.body.classList.add("connected");
document.getElementById("connectstatus").classList.add("color_offwhite");
}
- document.getElementById("multiplayerstatus").innerText = "";
document.getElementById("connectstatus").innerHTML = "Cohere Endpoint";
render_gametext();
}
@@ -9957,7 +9944,6 @@ Current version indicated by LITEVER below.
localsettings.my_api_key = defaultsettings.my_api_key;
}
- document.getElementById("multiplayerstatus").innerText = "";
document.getElementById("connectstatus").innerHTML = "AI Horde";
render_gametext();
@@ -15086,12 +15072,10 @@ Current version indicated by LITEVER below.
{
if(!is_using_kcpp_with_multiplayer() || !multiplayer_active)
{
- document.getElementById("multiplayerstatus").innerText = "";
schedule_multiplayer_minor_change = false;
schedule_multiplayer_major_change = false;
return;
}
- document.getElementById("multiplayerstatus").innerHTML = `[Exit Multiplayer] `;
//send our changes if they exist
if(schedule_multiplayer_minor_change || schedule_multiplayer_major_change)
@@ -15132,6 +15116,13 @@ Current version indicated by LITEVER below.
{
if(minor_change)
{
+ //abort any ongoing generations
+ if(synchro_pending_stream != "" || pending_response_id != "")
+ {
+ retry_preserve_last = false;
+ synchro_pending_stream = "";
+ abort_generation();
+ }
//minor change, load only gametext_arr. assume its v1
gametext_arr = [];
if (tmpstory.prompt != "") {
@@ -15154,11 +15145,11 @@ Current version indicated by LITEVER below.
else if(!vals || vals.error)
{
leave_multiplayer();
- msgbox("Disconnected from multiplayer due to bad response.","Disconnected from Multiplayer");
+ msgbox("Disconnected from multiplayer due to bad response.\n\nYou can reconnect by clicking 'Join Multiplayer'.","Disconnected from Multiplayer");
}
}).catch(error => {
leave_multiplayer();
- msgbox("Disconnected from multiplayer: " + error,"Disconnected from Multiplayer");
+ msgbox("Disconnected from multiplayer: " + error +"\n\nYou can reconnect by clicking 'Join Multiplayer'.","Disconnected from Multiplayer");
console.log("Failed to access multiplayer status: " + error);
});
}
@@ -16054,6 +16045,26 @@ Current version indicated by LITEVER below.
}
}
+ if(is_using_kcpp_with_multiplayer())
+ {
+ if(multiplayer_active)
+ {
+ document.getElementById("connectstatusmultiplayer").classList.remove("hidden");
+ document.getElementById("topbtn_multiplayer_join").classList.add("hidden");
+ document.getElementById("topbtn_multiplayer_leave").classList.remove("hidden");
+ } else {
+ document.getElementById("connectstatusmultiplayer").classList.add("hidden");
+ document.getElementById("topbtn_multiplayer_join").classList.remove("hidden");
+ document.getElementById("topbtn_multiplayer_leave").classList.add("hidden");
+ }
+ }
+ else
+ {
+ document.getElementById("connectstatusmultiplayer").classList.add("hidden");
+ document.getElementById("topbtn_multiplayer_join").classList.add("hidden");
+ document.getElementById("topbtn_multiplayer_leave").classList.add("hidden");
+ }
+
if (selected_models.length == 0) //if no model, disable all first
{
document.getElementById("btn_actmem").disabled = true;
@@ -18319,13 +18330,20 @@ Current version indicated by LITEVER below.
onclick="closeTopNav();display_settings()">Settings
+
+ Join Multiplayer
+
+
+ Exit Multiplayer
+
+
Connecting
-
+
Multiplayer
diff --git a/koboldcpp.py b/koboldcpp.py
index 8b6fa790d..a9be02cb7 100644
--- a/koboldcpp.py
+++ b/koboldcpp.py
@@ -66,8 +66,8 @@ modelfile_extracted_meta = None
importvars_in_progress = False
has_multiplayer = False
multiplayer_story_data_compressed = None #stores the full compressed story of the current multiplayer session
-multiplayer_turn_major = 0 # to keep track of when a client needs to sync their stories
-multiplayer_turn_minor = 0
+multiplayer_turn_major = 1 # to keep track of when a client needs to sync their stories
+multiplayer_turn_minor = 1
multiplayer_dataformat = "" # used to tell what is the data payload in saved story. set by client
preloaded_story = None
chatcompl_adapter = None
@@ -2127,7 +2127,7 @@ Enter Prompt:
multiplayer_story_data_compressed = str(storybody) #save latest story
multiplayer_dataformat = dataformat
if fullupdate:
- multiplayer_turn_minor = 0
+ multiplayer_turn_minor = 1
multiplayer_turn_major += 1
else:
multiplayer_turn_minor += 1