diff --git a/dist/assets/index-ZFLC2W_P.js b/dist/assets/index-B_jJyKld.js similarity index 99% rename from dist/assets/index-ZFLC2W_P.js rename to dist/assets/index-B_jJyKld.js index 0e9ff00..5fd6e46 100644 --- a/dist/assets/index-ZFLC2W_P.js +++ b/dist/assets/index-B_jJyKld.js @@ -484,7 +484,7 @@ const reflectActiveSune = async () => { await renderSuneHTML(); icons(); }; -const suneRow = (a) => `
`; +const suneRow = (a) => `
`; const renderSidebar = window.renderSidebar = () => { const list = [...SUNE.list].sort((a, b) => b.pinned - a.pinned); el.suneList.innerHTML = list.map(suneRow).join(""); @@ -668,7 +668,7 @@ const TKEY = "threads_v1", THREAD = window.THREAD = { list: [], load: async func await localforage.setItem(prefix + id, [...state.messages]); if (full) { meta.updatedAt = Date.now(); - if (u.startsWith("gh://")) meta.status = "modified"; + if (u.startsWith("gh://") && meta.status !== "new") meta.status = "modified"; await this.save(); await renderThreads(); } @@ -678,7 +678,7 @@ const TKEY = "threads_v1", THREAD = window.THREAD = { list: [], load: async func th.title = titleFrom(title); th.updatedAt = Date.now(); const u = el.threadRepoInput.value.trim(); - if (u.startsWith("gh://")) th.status = "modified"; + if (u.startsWith("gh://") && th.status !== "new") th.status = "modified"; await this.save(); await renderThreads(); }, getLastAssistantMessageId: () => { @@ -791,6 +791,8 @@ $(el.threadList).on("click", async (e) => { if (res && res.content) { msgs = JSON.parse(btou(res.content)); await localforage.setItem(prefix + id, msgs); + th.status = "synced"; + await THREAD.save(); } } catch (e2) { console.error("Remote fetch failed", e2); @@ -835,13 +837,13 @@ $(el.threadPopover).on("click", async (e) => { const u = el.threadRepoInput.value.trim(), prefix = u.startsWith("gh://") ? "rem_t_" : "t_"; if (act === "pin") { th.pinned = !th.pinned; - if (u.startsWith("gh://")) th.status = "modified"; + if (u.startsWith("gh://") && th.status !== "new") th.status = "modified"; } else if (act === "rename") { const nv = prompt("Rename to:", th.title); if (nv != null) { th.title = titleFrom(nv); th.updatedAt = Date.now(); - if (u.startsWith("gh://")) th.status = "modified"; + if (u.startsWith("gh://") && th.status !== "new") th.status = "modified"; } } else if (act === "delete") { if (confirm("Delete this chat?")) { @@ -1420,7 +1422,6 @@ $(el.threadBackBtn).on("click", () => { if (p.length > 3) { p.pop(); el.threadRepoInput.value = p.join("/"); - el.threadRepoInput.value = p.join("/"); el.threadRepoInput.dispatchEvent(new Event("change")); } }); @@ -1673,7 +1674,16 @@ async function syncActiveThread() { const display = partsToText({ content: [{ type: "text", text: finalText }], images: j.images }); if (display) renderMarkdown(bubble, display, { enhance: false }); if (isDone) { - finalise(finalText, [{ type: "text", text: finalText }], j.images); + if (finalText !== localText) { + finalise(finalText, [{ type: "text", text: finalText }], j.images); + } else { + await cacheStore.setItem(id, "done"); + if (state.busy) { + setBtnSend(); + state.busy = false; + state.controller = null; + } + } return false; } await cacheStore.setItem(id, "busy"); diff --git a/dist/index.html b/dist/index.html index 0ebdd15..bae0352 100644 --- a/dist/index.html +++ b/dist/index.html @@ -12,7 +12,7 @@ - + diff --git a/dist/sw.js b/dist/sw.js index c21b026..03f1813 100644 --- a/dist/sw.js +++ b/dist/sw.js @@ -1 +1 @@ -if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()}).then(()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(n,r)=>{const t=e||("document"in self?document.currentScript.src:"")||location.href;if(s[t])return;let o={};const d=e=>i(e,t),l={module:{uri:t},exports:o,require:d};s[t]=Promise.all(n.map(e=>l[e]||d(e))).then(e=>(r(...e),o))}}define(["./workbox-8c29f6e4"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"index.html",revision:"ee3a0cbe5bf8b1e5b886dbed2223626d"},{url:"assets/index-ZFLC2W_P.js",revision:null},{url:"assets/index-JLEDB1oP.css",revision:null},{url:"manifest.webmanifest",revision:"7a6c5c6ab9cb5d3605d21df44c6b17a2"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))}); +if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()}).then(()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(n,r)=>{const t=e||("document"in self?document.currentScript.src:"")||location.href;if(s[t])return;let o={};const l=e=>i(e,t),c={module:{uri:t},exports:o,require:l};s[t]=Promise.all(n.map(e=>c[e]||l(e))).then(e=>(r(...e),o))}}define(["./workbox-8c29f6e4"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"index.html",revision:"e62fb0c404f4d8ff32418b5610c8fd66"},{url:"assets/index-JLEDB1oP.css",revision:null},{url:"assets/index-B_jJyKld.js",revision:null},{url:"manifest.webmanifest",revision:"7a6c5c6ab9cb5d3605d21df44c6b17a2"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))});