@opentabs-dev/mcp-server 0.0.34 → 0.0.36

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.
Files changed (142) hide show
  1. package/dist/adapter-files.d.ts +4 -2
  2. package/dist/adapter-files.d.ts.map +1 -1
  3. package/dist/adapter-files.js +39 -24
  4. package/dist/adapter-files.js.map +1 -1
  5. package/dist/audit-disk.d.ts +2 -2
  6. package/dist/audit-disk.d.ts.map +1 -1
  7. package/dist/audit-disk.js +19 -8
  8. package/dist/audit-disk.js.map +1 -1
  9. package/dist/browser-tool-names.d.ts.map +1 -1
  10. package/dist/browser-tool-names.js +2 -0
  11. package/dist/browser-tool-names.js.map +1 -1
  12. package/dist/browser-tools/analyze-site/detect-apis.d.ts +16 -4
  13. package/dist/browser-tools/analyze-site/detect-apis.d.ts.map +1 -1
  14. package/dist/browser-tools/analyze-site/detect-apis.js +65 -8
  15. package/dist/browser-tools/analyze-site/detect-apis.js.map +1 -1
  16. package/dist/browser-tools/analyze-site/detect-auth.d.ts.map +1 -1
  17. package/dist/browser-tools/analyze-site/detect-auth.js +10 -5
  18. package/dist/browser-tools/analyze-site/detect-auth.js.map +1 -1
  19. package/dist/browser-tools/analyze-site/detect-framework.d.ts +10 -1
  20. package/dist/browser-tools/analyze-site/detect-framework.d.ts.map +1 -1
  21. package/dist/browser-tools/analyze-site/detect-framework.js +19 -1
  22. package/dist/browser-tools/analyze-site/detect-framework.js.map +1 -1
  23. package/dist/browser-tools/analyze-site/index.d.ts +37 -8
  24. package/dist/browser-tools/analyze-site/index.d.ts.map +1 -1
  25. package/dist/browser-tools/analyze-site/index.js +79 -43
  26. package/dist/browser-tools/analyze-site/index.js.map +1 -1
  27. package/dist/browser-tools/analyze-site.d.ts.map +1 -1
  28. package/dist/browser-tools/analyze-site.js +9 -8
  29. package/dist/browser-tools/analyze-site.js.map +1 -1
  30. package/dist/browser-tools/disable-network-capture.d.ts.map +1 -1
  31. package/dist/browser-tools/disable-network-capture.js +8 -1
  32. package/dist/browser-tools/disable-network-capture.js.map +1 -1
  33. package/dist/browser-tools/enable-network-capture.d.ts +1 -0
  34. package/dist/browser-tools/enable-network-capture.d.ts.map +1 -1
  35. package/dist/browser-tools/enable-network-capture.js +20 -8
  36. package/dist/browser-tools/enable-network-capture.js.map +1 -1
  37. package/dist/browser-tools/execute-script.d.ts +3 -3
  38. package/dist/browser-tools/execute-script.d.ts.map +1 -1
  39. package/dist/browser-tools/execute-script.js +9 -4
  40. package/dist/browser-tools/execute-script.js.map +1 -1
  41. package/dist/browser-tools/export-har.d.ts +15 -0
  42. package/dist/browser-tools/export-har.d.ts.map +1 -0
  43. package/dist/browser-tools/export-har.js +196 -0
  44. package/dist/browser-tools/export-har.js.map +1 -0
  45. package/dist/browser-tools/extension-get-logs.d.ts +2 -2
  46. package/dist/browser-tools/get-console-logs.d.ts +2 -2
  47. package/dist/browser-tools/get-websocket-frames.d.ts +10 -0
  48. package/dist/browser-tools/get-websocket-frames.d.ts.map +1 -0
  49. package/dist/browser-tools/get-websocket-frames.js +27 -0
  50. package/dist/browser-tools/get-websocket-frames.js.map +1 -0
  51. package/dist/browser-tools/index.d.ts.map +1 -1
  52. package/dist/browser-tools/index.js +4 -0
  53. package/dist/browser-tools/index.js.map +1 -1
  54. package/dist/browser-tools/reload-extension.d.ts.map +1 -1
  55. package/dist/browser-tools/reload-extension.js +1 -3
  56. package/dist/browser-tools/reload-extension.js.map +1 -1
  57. package/dist/config.d.ts +1 -1
  58. package/dist/config.d.ts.map +1 -1
  59. package/dist/config.js +13 -18
  60. package/dist/config.js.map +1 -1
  61. package/dist/dev-proxy.d.ts +12 -0
  62. package/dist/dev-proxy.d.ts.map +1 -0
  63. package/dist/dev-proxy.js +229 -0
  64. package/dist/dev-proxy.js.map +1 -0
  65. package/dist/discovery.d.ts.map +1 -1
  66. package/dist/discovery.js +6 -1
  67. package/dist/discovery.js.map +1 -1
  68. package/dist/extension-handlers.d.ts +1 -1
  69. package/dist/extension-handlers.d.ts.map +1 -1
  70. package/dist/extension-handlers.js +3 -4
  71. package/dist/extension-handlers.js.map +1 -1
  72. package/dist/extension-protocol.d.ts +4 -2
  73. package/dist/extension-protocol.d.ts.map +1 -1
  74. package/dist/extension-protocol.js +16 -15
  75. package/dist/extension-protocol.js.map +1 -1
  76. package/dist/file-watcher.d.ts +1 -1
  77. package/dist/file-watcher.d.ts.map +1 -1
  78. package/dist/file-watcher.js +48 -16
  79. package/dist/file-watcher.js.map +1 -1
  80. package/dist/http-routes.d.ts +3 -2
  81. package/dist/http-routes.d.ts.map +1 -1
  82. package/dist/http-routes.js +34 -13
  83. package/dist/http-routes.js.map +1 -1
  84. package/dist/index.d.ts +12 -22
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +20 -54
  87. package/dist/index.js.map +1 -1
  88. package/dist/loader.d.ts.map +1 -1
  89. package/dist/loader.js +12 -10
  90. package/dist/loader.js.map +1 -1
  91. package/dist/log-buffer.d.ts +3 -1
  92. package/dist/log-buffer.d.ts.map +1 -1
  93. package/dist/log-buffer.js +12 -3
  94. package/dist/log-buffer.js.map +1 -1
  95. package/dist/logger.js +1 -1
  96. package/dist/logger.js.map +1 -1
  97. package/dist/mcp-setup.d.ts +1 -1
  98. package/dist/mcp-setup.js +2 -2
  99. package/dist/mcp-tool-dispatch.d.ts +14 -1
  100. package/dist/mcp-tool-dispatch.d.ts.map +1 -1
  101. package/dist/mcp-tool-dispatch.js +4 -2
  102. package/dist/mcp-tool-dispatch.js.map +1 -1
  103. package/dist/permissions.d.ts.map +1 -1
  104. package/dist/permissions.js +5 -3
  105. package/dist/permissions.js.map +1 -1
  106. package/dist/plugin-management.d.ts +1 -1
  107. package/dist/plugin-management.d.ts.map +1 -1
  108. package/dist/plugin-management.js +46 -29
  109. package/dist/plugin-management.js.map +1 -1
  110. package/dist/registry.js +5 -5
  111. package/dist/registry.js.map +1 -1
  112. package/dist/reload.d.ts +7 -8
  113. package/dist/reload.d.ts.map +1 -1
  114. package/dist/reload.js +83 -40
  115. package/dist/reload.js.map +1 -1
  116. package/dist/resolver.d.ts +3 -3
  117. package/dist/resolver.d.ts.map +1 -1
  118. package/dist/resolver.js +11 -26
  119. package/dist/resolver.js.map +1 -1
  120. package/dist/sanitize-error.d.ts.map +1 -1
  121. package/dist/sanitize-error.js +12 -6
  122. package/dist/sanitize-error.js.map +1 -1
  123. package/dist/sdk-version.d.ts.map +1 -1
  124. package/dist/sdk-version.js +2 -2
  125. package/dist/sdk-version.js.map +1 -1
  126. package/dist/server-node.d.ts +9 -13
  127. package/dist/server-node.d.ts.map +1 -1
  128. package/dist/server-node.js +55 -18
  129. package/dist/server-node.js.map +1 -1
  130. package/dist/shutdown.d.ts +7 -6
  131. package/dist/shutdown.d.ts.map +1 -1
  132. package/dist/shutdown.js +14 -10
  133. package/dist/shutdown.js.map +1 -1
  134. package/dist/state.d.ts +12 -3
  135. package/dist/state.d.ts.map +1 -1
  136. package/dist/state.js +22 -7
  137. package/dist/state.js.map +1 -1
  138. package/dist/version-check.d.ts +6 -4
  139. package/dist/version-check.d.ts.map +1 -1
  140. package/dist/version-check.js +42 -13
  141. package/dist/version-check.js.map +1 -1
  142. package/package.json +6 -7
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ interface PluginInstallResult {
30
30
  * @throws Error with `code` property for structured JSON-RPC error handling:
31
31
  * - code -32603: npm search failed
32
32
  */
33
- declare const searchNpmPlugins: (query?: string) => PluginSearchResult[];
33
+ declare const searchNpmPlugins: (query?: string) => Promise<PluginSearchResult[]>;
34
34
  /**
35
35
  * Install a plugin from npm globally and trigger server rediscovery.
36
36
  *
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-management.d.ts","sourceRoot":"","sources":["../src/plugin-management.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAKL,mBAAmB,EACnB,wBAAwB,EAGzB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMhE,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;CACrB;AAMD,UAAU,mBAAmB;IAC3B,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAkFD;;;;;;GAMG;AACH,QAAA,MAAM,gBAAgB,GAAI,QAAQ,MAAM,KAAG,kBAAkB,EA8B5D,CAAC;AAMF;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,aAAa,GACjB,MAAM,MAAM,EACZ,OAAO,WAAW,EAClB,UAAU,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,KAC/D,OAAO,CAAC,mBAAmB,CA4C7B,CAAC;AAMF;;GAEG;AACH,UAAU,kBAAkB;IAC1B,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;;;;;GAMG;AACH,QAAA,MAAM,UAAU,GAAI,OAAO,WAAW,EAAE,MAAM,MAAM,KAAG,gBAAgB,GAAG,SAYzE,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,YAAY,GAChB,MAAM,MAAM,EACZ,OAAO,WAAW,EAClB,UAAU,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,KAC/D,OAAO,CAAC,kBAAkB,CAkC5B,CAAC;AA8FF;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,YAAY,GAChB,MAAM,MAAM,EACZ,OAAO,WAAW,EAClB,UAAU,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,KAC/D,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CA8BtB,CAAC;AAMF;;GAEG;AACH,UAAU,kBAAkB;IAC1B,eAAe,EAAE,KAAK,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;CACJ;AAED;;;GAGG;AACH,QAAA,MAAM,kBAAkB,GAAU,OAAO,WAAW,KAAG,OAAO,CAAC,kBAAkB,CAIhF,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;AAChG,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,UAAU,GACX,CAAC"}
1
+ {"version":3,"file":"plugin-management.d.ts","sourceRoot":"","sources":["../src/plugin-management.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAKL,mBAAmB,EACnB,wBAAwB,EAGzB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMhE,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;CACrB;AAMD,UAAU,mBAAmB;IAC3B,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AA6FD;;;;;;GAMG;AACH,QAAA,MAAM,gBAAgB,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,kBAAkB,EAAE,CA0C5E,CAAC;AAMF;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,aAAa,GACjB,MAAM,MAAM,EACZ,OAAO,WAAW,EAClB,UAAU,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,KAC/D,OAAO,CAAC,mBAAmB,CA4C7B,CAAC;AAMF;;GAEG;AACH,UAAU,kBAAkB;IAC1B,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;;;;;GAMG;AACH,QAAA,MAAM,UAAU,GAAI,OAAO,WAAW,EAAE,MAAM,MAAM,KAAG,gBAAgB,GAAG,SAYzE,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,YAAY,GAChB,MAAM,MAAM,EACZ,OAAO,WAAW,EAClB,UAAU,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,KAC/D,OAAO,CAAC,kBAAkB,CAkC5B,CAAC;AA6FF;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,YAAY,GAChB,MAAM,MAAM,EACZ,OAAO,WAAW,EAClB,UAAU,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,KAC/D,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CA8BtB,CAAC;AAMF;;GAEG;AACH,UAAU,kBAAkB;IAC1B,eAAe,EAAE,KAAK,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;CACJ;AAED;;;GAGG;AACH,QAAA,MAAM,kBAAkB,GAAU,OAAO,WAAW,KAAG,OAAO,CAAC,kBAAkB,CAIhF,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;AAChG,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,UAAU,GACX,CAAC"}
@@ -8,7 +8,7 @@
8
8
  import { pluginNameFromPackage } from './loader.js';
9
9
  import { log } from './logger.js';
10
10
  import { atomicWrite, getConfigDir, getConfigPath, OFFICIAL_SCOPE, normalizePluginName, isValidPluginPackageName, resolvePluginPackageCandidates, platformExec, } from '@opentabs-dev/shared';
11
- import { spawn, spawnSync } from 'node:child_process';
11
+ import { spawn } from 'node:child_process';
12
12
  import { mkdir, readFile } from 'node:fs/promises';
13
13
  import { homedir } from 'node:os';
14
14
  import { join, resolve } from 'node:path';
@@ -19,22 +19,30 @@ import { join, resolve } from 'node:path';
19
19
  // npm subprocess timeout
20
20
  // ---------------------------------------------------------------------------
21
21
  const NPM_SUBPROCESS_TIMEOUT_MS = 60_000;
22
- /** Spawn a process asynchronously and return its exit code, stdout, and stderr. */
23
- const spawnAsync = (cmd, args) => new Promise((resolve, reject) => {
22
+ /** Spawn a process asynchronously and return a result promise and a kill handle. */
23
+ const spawnAsync = (cmd, args) => {
24
24
  const child = spawn(cmd, args, { stdio: ['ignore', 'pipe', 'pipe'] });
25
25
  const stdoutChunks = [];
26
26
  const stderrChunks = [];
27
27
  child.stdout.on('data', (chunk) => stdoutChunks.push(chunk));
28
28
  child.stderr.on('data', (chunk) => stderrChunks.push(chunk));
29
- child.on('error', reject);
30
- child.on('close', code => {
31
- resolve({
32
- exitCode: code ?? 1,
33
- stdout: Buffer.concat(stdoutChunks).toString(),
34
- stderr: Buffer.concat(stderrChunks).toString(),
29
+ const promise = new Promise((resolve, reject) => {
30
+ child.on('error', reject);
31
+ child.on('close', code => {
32
+ resolve({
33
+ exitCode: code ?? 1,
34
+ stdout: Buffer.concat(stdoutChunks).toString(),
35
+ stderr: Buffer.concat(stderrChunks).toString(),
36
+ });
35
37
  });
36
38
  });
37
- });
39
+ return {
40
+ promise,
41
+ kill: () => {
42
+ child.kill();
43
+ },
44
+ };
45
+ };
38
46
  /**
39
47
  * Run an npm command globally with the given package name.
40
48
  * Applies a 60s timeout via Promise.race against the spawnAsync result.
@@ -42,7 +50,7 @@ const spawnAsync = (cmd, args) => new Promise((resolve, reject) => {
42
50
  * @throws Error with code -32603 and data { stderr, stdout } on non-zero exit or timeout
43
51
  */
44
52
  const runNpmGlobal = async (command, packageName) => {
45
- const resultPromise = spawnAsync(platformExec('npm'), [command, '-g', packageName]);
53
+ const { promise: resultPromise, kill } = spawnAsync(platformExec('npm'), [command, '-g', packageName]);
46
54
  let rejectTimeout;
47
55
  const timeoutPromise = new Promise((_, reject) => {
48
56
  rejectTimeout = reject;
@@ -54,6 +62,7 @@ const runNpmGlobal = async (command, packageName) => {
54
62
  }
55
63
  finally {
56
64
  clearTimeout(timerId);
65
+ kill();
57
66
  }
58
67
  if (result.exitCode !== 0) {
59
68
  log.error(`npm ${command} failed for ${packageName}: exit code ${result.exitCode}, stderr: ${result.stderr}`);
@@ -71,14 +80,22 @@ const runNpmGlobal = async (command, packageName) => {
71
80
  * @throws Error with `code` property for structured JSON-RPC error handling:
72
81
  * - code -32603: npm search failed
73
82
  */
74
- const searchNpmPlugins = (query) => {
83
+ const searchNpmPlugins = async (query) => {
75
84
  const searchTerm = query ? `keywords:opentabs-plugin ${query}` : 'keywords:opentabs-plugin';
76
- const raw = spawnSync(platformExec('npm'), ['search', searchTerm, '--json'], { stdio: ['ignore', 'pipe', 'pipe'] });
77
- const result = {
78
- exitCode: raw.error ? 1 : (raw.status ?? 1),
79
- stdout: raw.error ? '' : raw.stdout.toString(),
80
- stderr: raw.error ? raw.error.message : raw.stderr.toString(),
81
- };
85
+ const { promise: resultPromise, kill } = spawnAsync(platformExec('npm'), ['search', searchTerm, '--json']);
86
+ let rejectTimeout;
87
+ const timeoutPromise = new Promise((_, reject) => {
88
+ rejectTimeout = reject;
89
+ });
90
+ const timerId = setTimeout(() => rejectTimeout(new Error(`npm search timed out after ${NPM_SUBPROCESS_TIMEOUT_MS}ms`)), NPM_SUBPROCESS_TIMEOUT_MS);
91
+ let result;
92
+ try {
93
+ result = await Promise.race([resultPromise, timeoutPromise]);
94
+ }
95
+ finally {
96
+ clearTimeout(timerId);
97
+ kill();
98
+ }
82
99
  if (result.exitCode !== 0) {
83
100
  const stderr = result.stderr.trim();
84
101
  const error = new Error(stderr || 'npm search failed');
@@ -224,7 +241,7 @@ const removeLocalPlugin = async (state, pluginName) => {
224
241
  const configPath = getConfigPath();
225
242
  let removed = false;
226
243
  const prev = state.configWriteMutex;
227
- state.configWriteMutex = (async () => {
244
+ const writePromise = (async () => {
228
245
  await prev;
229
246
  await mkdir(configDir, { recursive: true, mode: 0o700 });
230
247
  let raw;
@@ -255,6 +272,7 @@ const removeLocalPlugin = async (state, pluginName) => {
255
272
  // We try multiple matching strategies:
256
273
  // 1. Path ends with the plugin name directory
257
274
  // 2. The resolved path's package.json has a matching name
275
+ let found = false;
258
276
  const updatedPlugins = [];
259
277
  for (const pluginPath of localPlugins) {
260
278
  const resolvedPath = pluginPath.startsWith('~/')
@@ -263,7 +281,7 @@ const removeLocalPlugin = async (state, pluginName) => {
263
281
  const dirName = resolvedPath.split('/').pop() ?? '';
264
282
  // Check if the directory name matches the plugin name
265
283
  if (dirName === pluginName || dirName === `opentabs-plugin-${pluginName}`) {
266
- removed = true;
284
+ found = true;
267
285
  continue;
268
286
  }
269
287
  // Check if the package.json name matches
@@ -272,7 +290,7 @@ const removeLocalPlugin = async (state, pluginName) => {
272
290
  const pkgName = typeof pkg.name === 'string' ? pkg.name : '';
273
291
  const derivedPkgName = pluginNameFromPackage(pkgName);
274
292
  if (derivedPkgName === pluginName || pkgName === pluginName) {
275
- removed = true;
293
+ found = true;
276
294
  continue;
277
295
  }
278
296
  }
@@ -281,16 +299,15 @@ const removeLocalPlugin = async (state, pluginName) => {
281
299
  }
282
300
  updatedPlugins.push(pluginPath);
283
301
  }
284
- if (removed) {
302
+ if (found) {
285
303
  record.localPlugins = updatedPlugins;
286
304
  await atomicWrite(configPath, JSON.stringify(record, null, 2) + '\n', 0o600);
305
+ removed = true;
287
306
  }
288
- })().catch((err) => {
289
- state.configWriteMutex = Promise.resolve();
290
- log.warn(`Failed to remove local plugin from config:`, err);
291
- throw err;
292
- });
293
- await state.configWriteMutex;
307
+ })();
308
+ // The mutex chain always fulfills so subsequent writes proceed even after a failure.
309
+ state.configWriteMutex = writePromise.catch(() => { });
310
+ await writePromise;
294
311
  return removed;
295
312
  };
296
313
  /**
@@ -339,7 +356,7 @@ const removePlugin = async (name, state, onReload) => {
339
356
  */
340
357
  const checkPluginUpdates = async (state) => {
341
358
  const { checkForUpdates } = await import('./version-check.js');
342
- checkForUpdates(state);
359
+ await checkForUpdates(state);
343
360
  return { outdatedPlugins: state.outdatedPlugins };
344
361
  };
345
362
  export { normalizePluginName, isValidPluginPackageName, searchNpmPlugins, installPlugin, updatePlugin, removePlugin, checkPluginUpdates, findPlugin, };
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-management.js","sourceRoot":"","sources":["../src/plugin-management.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-management.js","sourceRoot":"","sources":["../src/plugin-management.ts"],"names":[],"mappings":"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"}
package/dist/registry.js CHANGED
@@ -7,7 +7,7 @@
7
7
  * is constructed and swapped atomically on ServerState.
8
8
  */
9
9
  import { log } from './logger.js';
10
- import { prefixedToolName, prefixedResourceUri, prefixedPromptName } from './state.js';
10
+ import { prefixedToolName, prefixedResourceUri, prefixedPromptName, freezeRegistryMap } from './state.js';
11
11
  import AjvValidator from 'ajv';
12
12
  /** Map trust tier to a human-readable prefix for MCP tool descriptions */
13
13
  const trustTierPrefix = (tier) => {
@@ -81,10 +81,10 @@ const buildRegistry = (loadedPlugins, failures) => {
81
81
  }
82
82
  }
83
83
  const registry = {
84
- plugins,
85
- toolLookup,
86
- resourceLookup,
87
- promptLookup,
84
+ plugins: freezeRegistryMap(plugins),
85
+ toolLookup: freezeRegistryMap(toolLookup),
86
+ resourceLookup: freezeRegistryMap(resourceLookup),
87
+ promptLookup: freezeRegistryMap(promptLookup),
88
88
  failures,
89
89
  };
90
90
  return Object.freeze(registry);
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,YAAY,MAAM,KAAK,CAAC;AA8B/B,0EAA0E;AAC1E,MAAM,eAAe,GAAG,CAAC,IAAe,EAAU,EAAE;IAClD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU;YACb,OAAO,aAAa,CAAC;QACvB,KAAK,WAAW;YACd,OAAO,kCAAkC,CAAC;QAC5C,KAAK,OAAO;YACV,OAAO,iBAAiB,CAAC;IAC7B,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,CAC3B,GAAsC,EACtC,UAAkB,EAClB,QAAgB,EAChB,WAAoC,EACoB,EAAE;IAC1D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1C,OAAO;YACL,QAAQ;YACR,gBAAgB,EAAE,GAAG,EAAE;gBACrB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM;oBAAE,OAAO,0BAA0B,CAAC;gBAChE,OAAO,QAAQ,CAAC,MAAM;qBACnB,GAAG,CAAC,CAAC,CAAC,EAAE;oBACP,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,IAAI,QAAQ,CAAC;oBACxC,OAAO,OAAO,IAAI,KAAK,CAAC,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;gBAClD,CAAC,CAAC;qBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,qCAAqC,UAAU,IAAI,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9E,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,gBAAgB,EAAE,GAAG,EAAE,CAAC,gDAAgD;SACzE,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,aAAa,GAAG,CACpB,aAA0C,EAC1C,QAAiC,EACjB,EAAE;IAClB,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,GAAG,EAA2B,CAAC;IACtD,MAAM,cAAc,GAAG,IAAI,GAAG,EAA+B,CAAC;IAC9D,MAAM,YAAY,GAAG,IAAI,GAAG,EAA6B,CAAC;IAE1D,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACjC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;YAClH,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC5G,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;YAChE,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9D,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAmB;QAC/B,OAAO;QACP,UAAU;QACV,cAAc;QACd,YAAY;QACZ,QAAQ;KACT,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,wDAAwD;AACxD,MAAM,aAAa,GAAG,GAAmB,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAElE,+DAA+D;AAC/D,MAAM,SAAS,GAAG,CAAC,QAAwB,EAAE,IAAY,EAAgC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAEvH,6DAA6D;AAC7D,MAAM,OAAO,GAAG,CAAC,QAAwB,EAAE,YAAoB,EAAgC,EAAE;IAC/F,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChE,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAE5B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAClC,CAAC,CAAC;AAEF,6CAA6C;AAC7C,MAAM,WAAW,GAAG,CAAC,QAAwB,EAAE,WAAmB,EAAoC,EAAE;IACtG,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,WAAW,CAAC,CAAC;IAC1E,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAEhC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC,CAAC;AAEF,4CAA4C;AAC5C,MAAM,SAAS,GAAG,CAAC,QAAwB,EAAE,YAAoB,EAAkC,EAAE;IACnG,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,YAAY,CAAC,CAAC;IACxE,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC,CAAC;AAEF,gGAAgG;AAChG,MAAM,gBAAgB,GAAG,CACvB,QAAwB,EACuD,EAAE;IACjF,MAAM,SAAS,GAAkF,EAAE,CAAC;IAEpG,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QAC/C,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACxC,SAAS,CAAC,IAAI,CAAC;gBACb,GAAG,EAAE,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC;gBACnD,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC5B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,6FAA6F;AAC7F,MAAM,cAAc,GAAG,CACrB,QAAwB,EAKvB,EAAE;IACH,MAAM,OAAO,GAIR,EAAE,CAAC;IAER,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QAC/C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;gBAClD,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,OAAO,EACL,aAAa,EACb,aAAa,EACb,SAAS,EACT,SAAS,EACT,WAAW,EACX,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,eAAe,GAChB,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
package/dist/reload.d.ts CHANGED
@@ -6,7 +6,7 @@
6
6
  * restart, extension re-sync, client notification, and version check.
7
7
  *
8
8
  * Called on every module evaluation (both first load and hot reload). This
9
- * separation keeps index.ts as a thin frozen shell (Bun.serve() delegate,
9
+ * separation keeps index.ts as a thin frozen shell (HTTP server delegate,
10
10
  * HotState management, handler definitions) that rarely needs to change,
11
11
  * while all reload logic lives here and is freely editable.
12
12
  */
@@ -30,16 +30,15 @@ interface ReloadResult {
30
30
  * If discovery fails, the server continues with whatever plugins were in state
31
31
  * before the reload attempt.
32
32
  *
33
- * A globalThis-based guard prevents concurrent reloads: if a previous reload
34
- * is still running (e.g., bun --hot fires twice in quick succession), this
35
- * call waits for it to finish before proceeding.
33
+ * A globalThis-based serialization chain prevents concurrent reloads: each
34
+ * call appends to the chain synchronously, then awaits its predecessor.
36
35
  */
37
36
  declare const performReload: (state: ServerState, sessionServers: McpServerInstance[], transports: Map<string, WebStandardStreamableHTTPServerTransport>, isHotReload: boolean) => Promise<ReloadResult>;
38
37
  /**
39
- * Reload config and rediscover plugins at runtime without bun --hot.
40
- * Called from the POST /reload HTTP endpoint. Performs the same config/plugin
41
- * rediscovery as performReload but without the bun --hot-specific module
42
- * re-evaluation aspects (browser tools refresh, session handler re-registration).
38
+ * Reload config and rediscover plugins at runtime via the POST /reload endpoint.
39
+ * Performs the same config/plugin rediscovery as performReload but without the
40
+ * hot reload module re-evaluation aspects (browser tools refresh, session
41
+ * handler re-registration).
43
42
  *
44
43
  * Returns the number of plugins discovered and the duration in milliseconds.
45
44
  */
@@ -1 +1 @@
1
- {"version":3,"file":"reload.d.ts","sourceRoot":"","sources":["../src/reload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAsBH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,+DAA+D,CAAC;AAE9H,oFAAoF;AACpF,UAAU,YAAY;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAgND;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,aAAa,GACjB,OAAO,WAAW,EAClB,gBAAgB,iBAAiB,EAAE,EACnC,YAAY,GAAG,CAAC,MAAM,EAAE,wCAAwC,CAAC,EACjE,aAAa,OAAO,KACnB,OAAO,CAAC,YAAY,CAiGtB,CAAC;AAEF;;;;;;;GAOG;AACH,QAAA,MAAM,mBAAmB,GACvB,OAAO,WAAW,EAClB,gBAAgB,iBAAiB,EAAE,EACnC,YAAY,GAAG,CAAC,MAAM,EAAE,wCAAwC,CAAC,KAChE,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAmCjD,CAAC;AAEF,YAAY,EAAE,YAAY,EAAE,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"reload.d.ts","sourceRoot":"","sources":["../src/reload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAuBH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,wCAAwC,EAAE,MAAM,+DAA+D,CAAC;AAE9H,oFAAoF;AACpF,UAAU,YAAY;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AA0PD;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,aAAa,GACjB,OAAO,WAAW,EAClB,gBAAgB,iBAAiB,EAAE,EACnC,YAAY,GAAG,CAAC,MAAM,EAAE,wCAAwC,CAAC,EACjE,aAAa,OAAO,KACnB,OAAO,CAAC,YAAY,CAoGtB,CAAC;AAEF;;;;;;;GAOG;AACH,QAAA,MAAM,mBAAmB,GACvB,OAAO,WAAW,EAClB,gBAAgB,iBAAiB,EAAE,EACnC,YAAY,GAAG,CAAC,MAAM,EAAE,wCAAwC,CAAC,KAChE,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAiCjD,CAAC;AAEF,YAAY,EAAE,YAAY,EAAE,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,CAAC"}
package/dist/reload.js CHANGED
@@ -6,7 +6,7 @@
6
6
  * restart, extension re-sync, client notification, and version check.
7
7
  *
8
8
  * Called on every module evaluation (both first load and hot reload). This
9
- * separation keeps index.ts as a thin frozen shell (Bun.serve() delegate,
9
+ * separation keeps index.ts as a thin frozen shell (HTTP server delegate,
10
10
  * HotState management, handler definitions) that rarely needs to change,
11
11
  * while all reload logic lives here and is freely editable.
12
12
  */
@@ -18,6 +18,7 @@ import { ensureExtensionInstalled } from './extension-install.js';
18
18
  import { sendSyncFull, sendPluginUpdate, sendExtensionReload, cleanupStaleExecFiles } from './extension-protocol.js';
19
19
  import { startConfigWatching, startFileWatching, stopFileWatching } from './file-watcher.js';
20
20
  import { sweepStaleSessions } from './http-routes.js';
21
+ import { pruneStaleBuffers } from './log-buffer.js';
21
22
  import { log } from './logger.js';
22
23
  import { registerMcpHandlers, rebuildCachedBrowserTools, notifyToolListChanged, notifyResourceListChanged, notifyPromptListChanged, } from './mcp-setup.js';
23
24
  import { buildRegistry } from './registry.js';
@@ -25,15 +26,19 @@ import { isCliSkipConfirmation } from './skip-confirmation.js';
25
26
  import { prefixedToolName } from './state.js';
26
27
  import { checkForUpdates } from './version-check.js';
27
28
  /**
28
- * globalThis key for the concurrent reload guard promise.
29
- * Stored on globalThis so it survives across bun --hot re-evaluations.
30
- * If a reload is in progress when bun --hot triggers, the new module
31
- * evaluation waits for the previous reload to finish before starting.
29
+ * globalThis key for the reload serialization chain.
30
+ * Stored on globalThis so it survives across hot reload re-evaluations.
31
+ *
32
+ * Each reload appends to the chain synchronously (before any await), then
33
+ * awaits the previous link. This guarantees serial execution: even if
34
+ * multiple callers enter the function in the same microtask, each one sees
35
+ * the predecessor that was set by the previous synchronous frame, so the
36
+ * await graph forms a strict sequence with no concurrent window.
32
37
  */
33
- const RELOAD_GUARD_KEY = '__opentabs_reload_guard__';
34
- const getReloadGuard = () => globalThis[RELOAD_GUARD_KEY];
35
- const setReloadGuard = (promise) => {
36
- globalThis[RELOAD_GUARD_KEY] = promise;
38
+ const RELOAD_CHAIN_KEY = '__opentabs_reload_chain__';
39
+ const getReloadChain = () => globalThis[RELOAD_CHAIN_KEY] ?? Promise.resolve();
40
+ const setReloadChain = (promise) => {
41
+ globalThis[RELOAD_CHAIN_KEY] = promise;
37
42
  };
38
43
  /**
39
44
  * Remove stale entries from state maps after a registry swap.
@@ -68,6 +73,8 @@ const pruneStaleState = (state) => {
68
73
  if (prunedToolConfigCount > 0) {
69
74
  log.info(`Pruned ${prunedToolConfigCount} stale tool config entry/entries`);
70
75
  }
76
+ // Prune stale log buffers for removed plugins
77
+ pruneStaleBuffers(new Set(state.registry.plugins.keys()));
71
78
  // Keep only outdatedPlugins entries for still-present plugins
72
79
  const npmPkgNames = new Set(Array.from(state.registry.plugins.values())
73
80
  .map(p => p.npmPackageName)
@@ -130,6 +137,12 @@ const reloadCore = async ({ state, sessionServers, transports }) => {
130
137
  // Always stop existing watchers (cleans up handles from previous hot reload iteration)
131
138
  stopFileWatching(state);
132
139
  sweepStaleSessions(state, transports, sessionServers);
140
+ // Capture the config.json mtime that was current when the watcher last fired.
141
+ // stopFileWatching() cancels any pending debounce timers, so a config.json write
142
+ // that arrives during the async reload work below (while discoverPlugins runs) will
143
+ // not trigger a follow-up reload via the file watcher. After startConfigWatching()
144
+ // records the current mtime, we compare against this value to detect missed writes.
145
+ const prevConfigMtime = state.fileWatching.configLastSeenMtime;
133
146
  let secretChanged = false;
134
147
  try {
135
148
  const config = await loadConfig();
@@ -151,13 +164,20 @@ const reloadCore = async ({ state, sessionServers, transports }) => {
151
164
  log.info(`Config loaded: ${config.localPlugins.length} local plugin path(s), ${Object.keys(config.tools).length} tool setting(s)`);
152
165
  rebuildCachedBrowserTools(state);
153
166
  pruneStaleState(state);
154
- // Re-read the auth secret so secret rotation takes effect without a restart.
155
- const previousSecret = state.wsSecret;
167
+ }
168
+ catch (err) {
169
+ log.error('Reload failed, keeping previous state:', err);
170
+ }
171
+ // Re-read the auth secret so secret rotation takes effect without a restart.
172
+ // Independent of config/plugin discovery — a secret load failure keeps the
173
+ // previous secret without rolling back the config/registry updates above.
174
+ const previousSecret = state.wsSecret;
175
+ try {
156
176
  state.wsSecret = await loadSecret();
157
177
  secretChanged = previousSecret !== null && state.wsSecret !== previousSecret;
158
178
  }
159
179
  catch (err) {
160
- log.error('Reload failed, keeping previous state:', err);
180
+ log.error('Failed to load auth secret, keeping previous secret:', err);
161
181
  }
162
182
  // File watchers, config watching, and mtime polling are dev-only features.
163
183
  // Production mode discovers plugins once at startup; restart to reload.
@@ -166,6 +186,19 @@ const reloadCore = async ({ state, sessionServers, transports }) => {
166
186
  const failedPaths = state.registry.failures.map(f => f.path);
167
187
  startFileWatching(state, callbacks, failedPaths);
168
188
  startConfigWatching(state, callbacks);
189
+ // Detect config.json writes that occurred during the async reload above.
190
+ // stopFileWatching() cancelled any pending debounce timers, so those writes
191
+ // never triggered a follow-up reload. startConfigWatching() records the current
192
+ // file mtime, so the mtime poll also cannot detect them (it only sees future changes).
193
+ // Compare the mtime startConfigWatching() just recorded with the pre-reload mtime:
194
+ // if it advanced, config.json was written during the reload and state.toolConfig
195
+ // reflects stale data — trigger a follow-up reload to apply the latest config.
196
+ if (prevConfigMtime !== null &&
197
+ state.fileWatching.configLastSeenMtime !== null &&
198
+ state.fileWatching.configLastSeenMtime > prevConfigMtime) {
199
+ log.info('Config changed during reload — triggering follow-up reload to apply latest changes');
200
+ callbacks.onConfigChanged();
201
+ }
169
202
  }
170
203
  if (state.extensionWs) {
171
204
  await sendSyncFull(state);
@@ -174,7 +207,14 @@ const reloadCore = async ({ state, sessionServers, transports }) => {
174
207
  // The 500ms delay lets sync.full flush before the extension restarts.
175
208
  if (secretChanged) {
176
209
  log.info('Auth secret changed — sending reload signal to extension');
177
- setTimeout(() => sendExtensionReload(state), 500);
210
+ setTimeout(() => {
211
+ try {
212
+ sendExtensionReload(state);
213
+ }
214
+ catch (err) {
215
+ log.warn('Failed to send extension reload signal:', err);
216
+ }
217
+ }, 500);
178
218
  }
179
219
  }
180
220
  };
@@ -203,23 +243,21 @@ const restartSweepTimer = (state, transports, sessionServers) => {
203
243
  * If discovery fails, the server continues with whatever plugins were in state
204
244
  * before the reload attempt.
205
245
  *
206
- * A globalThis-based guard prevents concurrent reloads: if a previous reload
207
- * is still running (e.g., bun --hot fires twice in quick succession), this
208
- * call waits for it to finish before proceeding.
246
+ * A globalThis-based serialization chain prevents concurrent reloads: each
247
+ * call appends to the chain synchronously, then awaits its predecessor.
209
248
  */
210
249
  const performReload = async (state, sessionServers, transports, isHotReload) => {
211
- // Wait for any in-flight reload to complete before starting a new one
212
- const existingGuard = getReloadGuard();
213
- if (existingGuard) {
214
- log.info('Waiting for in-flight reload to complete before starting new reload...');
215
- await existingGuard;
216
- }
217
- // Create a deferred promise that other callers can await
250
+ // Serialize reloads: capture the current chain and replace it with a new
251
+ // link before any await. Because getReloadChain() and setReloadChain() run
252
+ // synchronously, concurrent callers each see the previous link and chain
253
+ // after it no two reloads can run in parallel.
218
254
  let resolveGuard;
219
255
  const guard = new Promise(resolve => {
220
256
  resolveGuard = resolve;
221
257
  });
222
- setReloadGuard(guard);
258
+ const previousLink = getReloadChain();
259
+ setReloadChain(guard);
260
+ await previousLink;
223
261
  const startTs = Date.now();
224
262
  try {
225
263
  // Clear the previous periodic sweep timer — it closes over stale references
@@ -236,7 +274,14 @@ const performReload = async (state, sessionServers, transports, isHotReload) =>
236
274
  // sync.full flush first (the extension handles extension.reload by
237
275
  // calling chrome.runtime.reload() after its own flush delay).
238
276
  log.info('Extension version changed — sending reload signal to connected extension');
239
- setTimeout(() => sendExtensionReload(state), 500);
277
+ setTimeout(() => {
278
+ try {
279
+ sendExtensionReload(state);
280
+ }
281
+ catch (err) {
282
+ log.warn('Failed to send extension reload signal:', err);
283
+ }
284
+ }, 500);
240
285
  }
241
286
  else {
242
287
  // Extension not connected — flag for reload on next connect
@@ -255,7 +300,7 @@ const performReload = async (state, sessionServers, transports, isHotReload) =>
255
300
  catch (err) {
256
301
  log.warn('Exec file cleanup failed:', err);
257
302
  }
258
- // Update browser tools from the fresh module import (bun --hot re-evaluates
303
+ // Update browser tools from the fresh module import (hot reload re-evaluates
259
304
  // the import chain so browserTools contains the latest definitions)
260
305
  state.browserTools = browserTools;
261
306
  await reloadCore({ state, sessionServers, transports });
@@ -281,9 +326,9 @@ const performReload = async (state, sessionServers, transports, isHotReload) =>
281
326
  notifyPromptListChanged(srv);
282
327
  }
283
328
  }
284
- // Version check: synchronous via `npm view`, best-effort on every reload
329
+ // Version check: async via `npm view`, best-effort on every reload
285
330
  try {
286
- checkForUpdates(state);
331
+ await checkForUpdates(state);
287
332
  }
288
333
  catch {
289
334
  // Update check is best-effort — failures are not actionable
@@ -295,29 +340,27 @@ const performReload = async (state, sessionServers, transports, isHotReload) =>
295
340
  };
296
341
  }
297
342
  finally {
298
- // Clear the guard so subsequent reloads can proceed immediately
343
+ // Resolve this link so the next chained reload can proceed
299
344
  resolveGuard();
300
- setReloadGuard(undefined);
301
345
  }
302
346
  };
303
347
  /**
304
- * Reload config and rediscover plugins at runtime without bun --hot.
305
- * Called from the POST /reload HTTP endpoint. Performs the same config/plugin
306
- * rediscovery as performReload but without the bun --hot-specific module
307
- * re-evaluation aspects (browser tools refresh, session handler re-registration).
348
+ * Reload config and rediscover plugins at runtime via the POST /reload endpoint.
349
+ * Performs the same config/plugin rediscovery as performReload but without the
350
+ * hot reload module re-evaluation aspects (browser tools refresh, session
351
+ * handler re-registration).
308
352
  *
309
353
  * Returns the number of plugins discovered and the duration in milliseconds.
310
354
  */
311
355
  const performConfigReload = async (state, sessionServers, transports) => {
312
- const existingGuard = getReloadGuard();
313
- if (existingGuard) {
314
- await existingGuard;
315
- }
356
+ // Serialize reloads using the same chain as performReload (see comment there)
316
357
  let resolveGuard;
317
358
  const guard = new Promise(resolve => {
318
359
  resolveGuard = resolve;
319
360
  });
320
- setReloadGuard(guard);
361
+ const previousLink = getReloadChain();
362
+ setReloadChain(guard);
363
+ await previousLink;
321
364
  const startTs = Date.now();
322
365
  try {
323
366
  // Clear and restart the sweep timer so it uses fresh references
@@ -335,8 +378,8 @@ const performConfigReload = async (state, sessionServers, transports) => {
335
378
  return { plugins: state.registry.plugins.size, durationMs: Date.now() - startTs };
336
379
  }
337
380
  finally {
381
+ // Resolve this link so the next chained reload can proceed
338
382
  resolveGuard();
339
- setReloadGuard(undefined);
340
383
  }
341
384
  };
342
385
  export { performReload, performConfigReload };