dsh-sessions-manager 3.7.1 → 3.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +9 -7
- package/README.md +9 -7
- package/lib/client.js +33 -1
- package/lib/client.js.map +2 -2
- package/lib/index.js +32 -3
- package/lib/index.js.map +2 -2
- package/package.json +9 -9
- package/src/client/index.jsx +50 -7
- package/src/handle-era-ops.js +46 -2
package/lib/index.js
CHANGED
|
@@ -1750,6 +1750,25 @@ function conflictError(message) {
|
|
|
1750
1750
|
function failureText(e) {
|
|
1751
1751
|
return `${e && e.name || ""} ${e && e.message || e}`;
|
|
1752
1752
|
}
|
|
1753
|
+
function requiredFormatVersionFromError(e) {
|
|
1754
|
+
const m = /requires Session format v(\d+)/.exec(String(e && e.message || ""));
|
|
1755
|
+
return m ? Number(m[1]) : null;
|
|
1756
|
+
}
|
|
1757
|
+
var OFFICIAL_HEADER_FIELDS = ["id", "createdAt", "cwd", "isSeeded", "delegationDepth", "parentSession", "origin", "agentPreset"];
|
|
1758
|
+
async function createWithCompatibleHeader(sp, header, createOptions) {
|
|
1759
|
+
try {
|
|
1760
|
+
return await sp.create(header, createOptions);
|
|
1761
|
+
} catch (e) {
|
|
1762
|
+
const required = requiredFormatVersionFromError(e);
|
|
1763
|
+
if (required === null || header.version === required) throw e;
|
|
1764
|
+
const normalized = {};
|
|
1765
|
+
for (const key of OFFICIAL_HEADER_FIELDS) {
|
|
1766
|
+
if (Object.hasOwn(header, key)) normalized[key] = header[key];
|
|
1767
|
+
}
|
|
1768
|
+
normalized.version = required;
|
|
1769
|
+
return await sp.create(normalized, createOptions);
|
|
1770
|
+
}
|
|
1771
|
+
}
|
|
1753
1772
|
function isAlreadyOwned(e) {
|
|
1754
1773
|
return /already owned/i.test(failureText(e));
|
|
1755
1774
|
}
|
|
@@ -1867,7 +1886,17 @@ async function moveSessionToCwd({ sp, sid, header, canonical, events = [], inher
|
|
|
1867
1886
|
error.code = "DSM_SESSION_DUP_LOG";
|
|
1868
1887
|
throw error;
|
|
1869
1888
|
}
|
|
1870
|
-
const
|
|
1889
|
+
const newHeaderBase = Object.assign({}, header, { cwd: canonical });
|
|
1890
|
+
let createHeader = newHeaderBase;
|
|
1891
|
+
if (typeof sp.stat === "function") {
|
|
1892
|
+
try {
|
|
1893
|
+
const fresh = await sp.stat(sid);
|
|
1894
|
+
if (fresh && fresh.header && fresh.header.id === sid) {
|
|
1895
|
+
createHeader = Object.assign({}, fresh.header, { cwd: canonical });
|
|
1896
|
+
}
|
|
1897
|
+
} catch (e) {
|
|
1898
|
+
}
|
|
1899
|
+
}
|
|
1871
1900
|
const firstSeq = events.length ? Number(events[0].seq) : 0;
|
|
1872
1901
|
const replay = firstSeq !== 0 ? events.map((event, index) => ({ ...event, seq: index })) : events;
|
|
1873
1902
|
const createOptions = header.isSeeded && Number.isSafeInteger(inheritedEventCount) && inheritedEventCount > 0 ? { inheritedEventCount } : void 0;
|
|
@@ -1879,7 +1908,7 @@ async function moveSessionToCwd({ sp, sid, header, canonical, events = [], inher
|
|
|
1879
1908
|
let writer = null;
|
|
1880
1909
|
try {
|
|
1881
1910
|
try {
|
|
1882
|
-
writer = await sp
|
|
1911
|
+
writer = await createWithCompatibleHeader(sp, createHeader, createOptions);
|
|
1883
1912
|
for (let i = 0; i < replay.length; i += MOVE_BATCH) {
|
|
1884
1913
|
await writer.append(replay.slice(i, i + MOVE_BATCH));
|
|
1885
1914
|
}
|
|
@@ -1956,7 +1985,7 @@ function emptyScanCandidate(sizeBytes) {
|
|
|
1956
1985
|
}
|
|
1957
1986
|
|
|
1958
1987
|
// src/index.js
|
|
1959
|
-
var BUILD_STAMP = true ? "3.7.
|
|
1988
|
+
var BUILD_STAMP = true ? "3.7.3+5958fd65" : "dev";
|
|
1960
1989
|
var name = "dsh-sessions-manager";
|
|
1961
1990
|
var inject = ["webServer", "workspaceRegistry", "sessionPersistence", "sessionQuery", "storageDomain"];
|
|
1962
1991
|
var MAX_TITLE = 80;
|