hanoman 0.1.36 → 0.1.38
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/dist/build-info.json
CHANGED
package/dist/server.js
CHANGED
|
@@ -12177,13 +12177,14 @@ async function recordConflict(entity, recordId, local, server) {
|
|
|
12177
12177
|
localUpdatedAt: stamp(local.data),
|
|
12178
12178
|
serverData: server.data,
|
|
12179
12179
|
serverVersion: server.version,
|
|
12180
|
-
serverUpdatedAt: stamp(server.data)
|
|
12181
|
-
resolvedAt: null
|
|
12180
|
+
serverUpdatedAt: stamp(server.data)
|
|
12182
12181
|
};
|
|
12182
|
+
const prev = await prisma.syncConflict.findUnique({ where: { entity_recordId: { entity, recordId } } });
|
|
12183
|
+
if (prev?.resolvedAt && prev.localVersion === local.version && prev.serverVersion === server.version) return;
|
|
12183
12184
|
await prisma.syncConflict.upsert({
|
|
12184
12185
|
where: { entity_recordId: { entity, recordId } },
|
|
12185
|
-
create: row,
|
|
12186
|
-
update: { ...row, detectedAt: /* @__PURE__ */ new Date() }
|
|
12186
|
+
create: { ...row, resolvedAt: null },
|
|
12187
|
+
update: { ...row, resolvedAt: null, detectedAt: /* @__PURE__ */ new Date() }
|
|
12187
12188
|
});
|
|
12188
12189
|
}
|
|
12189
12190
|
async function listConflicts() {
|
|
@@ -12207,8 +12208,10 @@ async function resolveConflict(entity, recordId, choice, push) {
|
|
|
12207
12208
|
if (choice === "server") {
|
|
12208
12209
|
await upsertLocal(entity, recordId, c.serverVersion, c.serverData);
|
|
12209
12210
|
} else {
|
|
12210
|
-
|
|
12211
|
-
|
|
12211
|
+
let r = (await push([{ entity, id: recordId, baseVersion: c.serverVersion, data: c.localData }])).results?.[0];
|
|
12212
|
+
if (!r?.ok && r?.conflict && typeof r.server?.version === "number" && r.server.version !== c.serverVersion) {
|
|
12213
|
+
r = (await push([{ entity, id: recordId, baseVersion: r.server.version, data: c.localData }])).results?.[0];
|
|
12214
|
+
}
|
|
12212
12215
|
if (!r?.ok) {
|
|
12213
12216
|
if (r?.conflict) return { ok: false, reason: "still-conflict" };
|
|
12214
12217
|
return { ok: false, reason: "not-found" };
|
|
@@ -30234,6 +30237,7 @@ async function recordSessionResult(input) {
|
|
|
30234
30237
|
// src/routes/terminal.ts
|
|
30235
30238
|
init_stage_machine();
|
|
30236
30239
|
init_pty();
|
|
30240
|
+
var TERMINAL_WS_MESSAGES_PER_MINUTE = 6e3;
|
|
30237
30241
|
async function advanceStage(specId, repoDir, sessionId2, flow, worktree) {
|
|
30238
30242
|
const next = stageForRun(readPhases(phaseFilePath(repoDir, sessionId2), flow), worktree, specId);
|
|
30239
30243
|
if (!next) return;
|
|
@@ -30577,7 +30581,7 @@ async function terminal_default(app2, opts) {
|
|
|
30577
30581
|
socket2.close(1008, "connection limit");
|
|
30578
30582
|
return;
|
|
30579
30583
|
}
|
|
30580
|
-
const guard = new WsMessageGuard();
|
|
30584
|
+
const guard = new WsMessageGuard({ perWindow: TERMINAL_WS_MESSAGES_PER_MINUTE });
|
|
30581
30585
|
const client = { send: (m) => socket2.send(m), close: () => socket2.close() };
|
|
30582
30586
|
attach(id, client);
|
|
30583
30587
|
socket2.on("message", async (raw2) => {
|