staklink 0.3.17 → 0.3.18

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.
@@ -33935,7 +33935,7 @@ var SSEManager = class {
33935
33935
  var sseManager = new SSEManager();
33936
33936
 
33937
33937
  // src/proxy/version.ts
33938
- var VERSION = "0.3.17";
33938
+ var VERSION = "0.3.18";
33939
33939
 
33940
33940
  // node_modules/uuid/dist/esm/stringify.js
33941
33941
  var byteToHex = [];
@@ -33992,7 +33992,8 @@ var v4_default = v4;
33992
33992
  var REQS = {};
33993
33993
  var REQ_ORDER = [];
33994
33994
  var MAX_REQS = 100;
33995
- function startReq() {
33995
+ var BUSY_REQ_TYPES = /* @__PURE__ */ new Set();
33996
+ function startReq(req_type) {
33996
33997
  const key = v4_default();
33997
33998
  if (REQ_ORDER.length >= MAX_REQS) {
33998
33999
  const oldestKey = REQ_ORDER.shift();
@@ -34002,26 +34003,39 @@ function startReq() {
34002
34003
  }
34003
34004
  REQS[key] = {
34004
34005
  status: "pending",
34005
- result: void 0
34006
+ result: void 0,
34007
+ req_type
34006
34008
  };
34007
34009
  REQ_ORDER.push(key);
34010
+ if (req_type) {
34011
+ BUSY_REQ_TYPES.add(req_type);
34012
+ }
34008
34013
  return key;
34009
34014
  }
34010
34015
  function finishReq(id, result) {
34011
34016
  if (REQS[id]) {
34012
34017
  REQS[id].status = "completed";
34013
34018
  REQS[id].result = result;
34019
+ if (REQS[id].req_type) {
34020
+ BUSY_REQ_TYPES.delete(REQS[id].req_type);
34021
+ }
34014
34022
  }
34015
34023
  }
34016
34024
  function failReq(id, error82) {
34017
34025
  if (REQS[id]) {
34018
34026
  REQS[id].status = "failed";
34019
34027
  REQS[id].error = error82;
34028
+ if (REQS[id].req_type) {
34029
+ BUSY_REQ_TYPES.delete(REQS[id].req_type);
34030
+ }
34020
34031
  }
34021
34032
  }
34022
34033
  function checkReq(id) {
34023
34034
  return REQS[id];
34024
34035
  }
34036
+ function isReqTypeBusy(req_type) {
34037
+ return BUSY_REQ_TYPES.has(req_type);
34038
+ }
34025
34039
 
34026
34040
  // src/agent/utils.ts
34027
34041
  var proc5 = __toESM(require("child_process"), 1);
@@ -80649,7 +80663,15 @@ ${diff.trim()}`);
80649
80663
  );
80650
80664
  app.put("/latest", async (req, res) => {
80651
80665
  console.log(`===> PUT /latest`);
80652
- const request_id = startReq();
80666
+ if (isReqTypeBusy("latest")) {
80667
+ console.log("=> /latest is already being processed, ignoring request");
80668
+ res.status(409).json({
80669
+ error: "Latest operation already in progress",
80670
+ status: "busy"
80671
+ });
80672
+ return;
80673
+ }
80674
+ const request_id = startReq("latest");
80653
80675
  try {
80654
80676
  const code = req.body;
80655
80677
  const workspaceRoot2 = await workspaceRoot();
@@ -10905,7 +10905,7 @@ var glob = Object.assign(glob_, {
10905
10905
  glob.glob = glob;
10906
10906
 
10907
10907
  // src/proxy/version.ts
10908
- var VERSION = "0.3.17";
10908
+ var VERSION = "0.3.18";
10909
10909
 
10910
10910
  // src/cli.ts
10911
10911
  var STAKLINK_PROXY = "staklink-proxy";
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "staklink",
3
3
  "displayName": "staklink",
4
4
  "description": "staklink process manager",
5
- "version": "0.3.17",
5
+ "version": "0.3.18",
6
6
  "type": "module",
7
7
  "publisher": "stakwork",
8
8
  "engines": {