@funnycode/myclaude 0.1.83 → 0.1.84

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/myclaude.js CHANGED
@@ -4,8 +4,8 @@
4
4
  // MACRO - build-time constants (injected by build.ts)
5
5
  // MACRO injected by build script
6
6
  globalThis.MACRO = {
7
- VERSION: "0.1.83",
8
- BUILD_TIME: "2026-07-16T16:39:24.825Z",
7
+ VERSION: "0.1.84",
8
+ BUILD_TIME: "2026-07-16T20:17:47.229Z",
9
9
  PACKAGE_URL: "@funnycode/myclaude",
10
10
  NATIVE_PACKAGE_URL: "@funnycode/myclaude",
11
11
  VERSION_CHANGELOG: '',
@@ -117484,7 +117484,7 @@ var package_default;
117484
117484
  var init_package = __esm(() => {
117485
117485
  package_default = {
117486
117486
  name: "@funnycode/myclaude",
117487
- version: "0.1.83",
117487
+ version: "0.1.84",
117488
117488
  private: false,
117489
117489
  description: "An open-source AI coding assistant in your terminal - powered by Claude",
117490
117490
  license: "MIT",
@@ -210317,9 +210317,13 @@ function createDumpPromptsFetch(agentIdOrSessionId) {
210317
210317
  await fs11.appendFile(filePath, jsonStringify({ type: "response", timestamp, data }) + `
210318
210318
  `);
210319
210319
  } catch (err2) {
210320
- logForDebugging(`dumpPrompts.response handler error: ${err2}`, { level: "error" });
210320
+ try {
210321
+ logForDebugging(`dumpPrompts.response handler error: ${err2}`, { level: "error" });
210322
+ } catch {}
210321
210323
  }
210322
- })();
210324
+ })().catch((err2) => {
210325
+ logForDebugging(`dumpPrompts.response handler unhandled rejection: ${err2}`, { level: "error" });
210326
+ });
210323
210327
  }
210324
210328
  return response;
210325
210329
  };
@@ -300933,29 +300937,39 @@ async function isQualifiedForGrove() {
300933
300937
  return cachedEntry.grove_enabled;
300934
300938
  }
300935
300939
  async function fetchAndStoreGroveConfig(accountId) {
300936
- try {
300937
- const result = await getGroveNoticeConfig();
300938
- if (!result.success) {
300939
- return;
300940
+ const existing = groveConfigLocks.get(accountId) ?? Promise.resolve();
300941
+ const next = existing.then(async () => {
300942
+ try {
300943
+ const result = await getGroveNoticeConfig();
300944
+ if (!result.success) {
300945
+ return;
300946
+ }
300947
+ const groveEnabled = result.data.grove_enabled;
300948
+ const cachedEntry = getGlobalConfig().groveConfigCache?.[accountId];
300949
+ if (cachedEntry?.grove_enabled === groveEnabled && Date.now() - cachedEntry.timestamp <= GROVE_CACHE_EXPIRATION_MS) {
300950
+ return;
300951
+ }
300952
+ saveGlobalConfig((current) => ({
300953
+ ...current,
300954
+ groveConfigCache: {
300955
+ ...current.groveConfigCache,
300956
+ [accountId]: {
300957
+ grove_enabled: groveEnabled,
300958
+ timestamp: Date.now()
300959
+ }
300960
+ }
300961
+ }));
300962
+ } catch (err2) {
300963
+ logForDebugging(`Grove: Failed to fetch and store config: ${err2}`);
300940
300964
  }
300941
- const groveEnabled = result.data.grove_enabled;
300942
- const cachedEntry = getGlobalConfig().groveConfigCache?.[accountId];
300943
- if (cachedEntry?.grove_enabled === groveEnabled && Date.now() - cachedEntry.timestamp <= GROVE_CACHE_EXPIRATION_MS) {
300944
- return;
300965
+ });
300966
+ groveConfigLocks.set(accountId, next);
300967
+ next.then(() => {
300968
+ if (groveConfigLocks.get(accountId) === next) {
300969
+ groveConfigLocks.delete(accountId);
300945
300970
  }
300946
- saveGlobalConfig((current) => ({
300947
- ...current,
300948
- groveConfigCache: {
300949
- ...current.groveConfigCache,
300950
- [accountId]: {
300951
- grove_enabled: groveEnabled,
300952
- timestamp: Date.now()
300953
- }
300954
- }
300955
- }));
300956
- } catch (err2) {
300957
- logForDebugging(`Grove: Failed to fetch and store config: ${err2}`);
300958
- }
300971
+ });
300972
+ await next;
300959
300973
  }
300960
300974
  function calculateShouldShowGrove(settingsResult, configResult, showIfAlreadyViewed) {
300961
300975
  if (!settingsResult.success || !configResult.success) {
@@ -301008,7 +301022,7 @@ An update to our Consumer Terms and Privacy Policy will take effect on October 8
301008
301022
  }
301009
301023
  }
301010
301024
  }
301011
- var GROVE_CACHE_EXPIRATION_MS, getGroveSettings, getGroveNoticeConfig;
301025
+ var groveConfigLocks, GROVE_CACHE_EXPIRATION_MS, getGroveSettings, getGroveNoticeConfig;
301012
301026
  var init_grove = __esm(() => {
301013
301027
  init_axios2();
301014
301028
  init_memoize();
@@ -301020,6 +301034,7 @@ var init_grove = __esm(() => {
301020
301034
  init_config();
301021
301035
  init_http2();
301022
301036
  init_log3();
301037
+ groveConfigLocks = new Map;
301023
301038
  GROVE_CACHE_EXPIRATION_MS = 24 * 60 * 60 * 1000;
301024
301039
  getGroveSettings = memoize_default(async () => {
301025
301040
  if (isEssentialTrafficOnly()) {
package/dist/myclaude.mjs CHANGED
@@ -4,8 +4,8 @@
4
4
  // MACRO - build-time constants (injected by build.ts)
5
5
  // MACRO injected by build script
6
6
  globalThis.MACRO = {
7
- VERSION: "0.1.83",
8
- BUILD_TIME: "2026-07-16T16:39:24.825Z",
7
+ VERSION: "0.1.84",
8
+ BUILD_TIME: "2026-07-16T20:17:47.229Z",
9
9
  PACKAGE_URL: "@funnycode/myclaude",
10
10
  NATIVE_PACKAGE_URL: "@funnycode/myclaude",
11
11
  VERSION_CHANGELOG: '',
@@ -117484,7 +117484,7 @@ var package_default;
117484
117484
  var init_package = __esm(() => {
117485
117485
  package_default = {
117486
117486
  name: "@funnycode/myclaude",
117487
- version: "0.1.83",
117487
+ version: "0.1.84",
117488
117488
  private: false,
117489
117489
  description: "An open-source AI coding assistant in your terminal - powered by Claude",
117490
117490
  license: "MIT",
@@ -210317,9 +210317,13 @@ function createDumpPromptsFetch(agentIdOrSessionId) {
210317
210317
  await fs11.appendFile(filePath, jsonStringify({ type: "response", timestamp, data }) + `
210318
210318
  `);
210319
210319
  } catch (err2) {
210320
- logForDebugging(`dumpPrompts.response handler error: ${err2}`, { level: "error" });
210320
+ try {
210321
+ logForDebugging(`dumpPrompts.response handler error: ${err2}`, { level: "error" });
210322
+ } catch {}
210321
210323
  }
210322
- })();
210324
+ })().catch((err2) => {
210325
+ logForDebugging(`dumpPrompts.response handler unhandled rejection: ${err2}`, { level: "error" });
210326
+ });
210323
210327
  }
210324
210328
  return response;
210325
210329
  };
@@ -300933,29 +300937,39 @@ async function isQualifiedForGrove() {
300933
300937
  return cachedEntry.grove_enabled;
300934
300938
  }
300935
300939
  async function fetchAndStoreGroveConfig(accountId) {
300936
- try {
300937
- const result = await getGroveNoticeConfig();
300938
- if (!result.success) {
300939
- return;
300940
+ const existing = groveConfigLocks.get(accountId) ?? Promise.resolve();
300941
+ const next = existing.then(async () => {
300942
+ try {
300943
+ const result = await getGroveNoticeConfig();
300944
+ if (!result.success) {
300945
+ return;
300946
+ }
300947
+ const groveEnabled = result.data.grove_enabled;
300948
+ const cachedEntry = getGlobalConfig().groveConfigCache?.[accountId];
300949
+ if (cachedEntry?.grove_enabled === groveEnabled && Date.now() - cachedEntry.timestamp <= GROVE_CACHE_EXPIRATION_MS) {
300950
+ return;
300951
+ }
300952
+ saveGlobalConfig((current) => ({
300953
+ ...current,
300954
+ groveConfigCache: {
300955
+ ...current.groveConfigCache,
300956
+ [accountId]: {
300957
+ grove_enabled: groveEnabled,
300958
+ timestamp: Date.now()
300959
+ }
300960
+ }
300961
+ }));
300962
+ } catch (err2) {
300963
+ logForDebugging(`Grove: Failed to fetch and store config: ${err2}`);
300940
300964
  }
300941
- const groveEnabled = result.data.grove_enabled;
300942
- const cachedEntry = getGlobalConfig().groveConfigCache?.[accountId];
300943
- if (cachedEntry?.grove_enabled === groveEnabled && Date.now() - cachedEntry.timestamp <= GROVE_CACHE_EXPIRATION_MS) {
300944
- return;
300965
+ });
300966
+ groveConfigLocks.set(accountId, next);
300967
+ next.then(() => {
300968
+ if (groveConfigLocks.get(accountId) === next) {
300969
+ groveConfigLocks.delete(accountId);
300945
300970
  }
300946
- saveGlobalConfig((current) => ({
300947
- ...current,
300948
- groveConfigCache: {
300949
- ...current.groveConfigCache,
300950
- [accountId]: {
300951
- grove_enabled: groveEnabled,
300952
- timestamp: Date.now()
300953
- }
300954
- }
300955
- }));
300956
- } catch (err2) {
300957
- logForDebugging(`Grove: Failed to fetch and store config: ${err2}`);
300958
- }
300971
+ });
300972
+ await next;
300959
300973
  }
300960
300974
  function calculateShouldShowGrove(settingsResult, configResult, showIfAlreadyViewed) {
300961
300975
  if (!settingsResult.success || !configResult.success) {
@@ -301008,7 +301022,7 @@ An update to our Consumer Terms and Privacy Policy will take effect on October 8
301008
301022
  }
301009
301023
  }
301010
301024
  }
301011
- var GROVE_CACHE_EXPIRATION_MS, getGroveSettings, getGroveNoticeConfig;
301025
+ var groveConfigLocks, GROVE_CACHE_EXPIRATION_MS, getGroveSettings, getGroveNoticeConfig;
301012
301026
  var init_grove = __esm(() => {
301013
301027
  init_axios2();
301014
301028
  init_memoize();
@@ -301020,6 +301034,7 @@ var init_grove = __esm(() => {
301020
301034
  init_config();
301021
301035
  init_http2();
301022
301036
  init_log3();
301037
+ groveConfigLocks = new Map;
301023
301038
  GROVE_CACHE_EXPIRATION_MS = 24 * 60 * 60 * 1000;
301024
301039
  getGroveSettings = memoize_default(async () => {
301025
301040
  if (isEssentialTrafficOnly()) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@funnycode/myclaude",
3
- "version": "0.1.83",
3
+ "version": "0.1.84",
4
4
  "private": false,
5
5
  "description": "An open-source AI coding assistant in your terminal - powered by Claude",
6
6
  "license": "MIT",