@funnycode/myclaude 0.1.84 → 0.1.85

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.84",
8
- BUILD_TIME: "2026-07-16T20:17:47.229Z",
7
+ VERSION: "0.1.85",
8
+ BUILD_TIME: "2026-07-16T22:30:57.193Z",
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.84",
117487
+ version: "0.1.85",
117488
117488
  private: false,
117489
117489
  description: "An open-source AI coding assistant in your terminal - powered by Claude",
117490
117490
  license: "MIT",
@@ -300937,39 +300937,41 @@ async function isQualifiedForGrove() {
300937
300937
  return cachedEntry.grove_enabled;
300938
300938
  }
300939
300939
  async function fetchAndStoreGroveConfig(accountId) {
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}`);
300964
- }
300940
+ let releaseLock;
300941
+ const lockPromise = new Promise((resolve28) => {
300942
+ releaseLock = resolve28;
300965
300943
  });
300966
- groveConfigLocks.set(accountId, next);
300967
- next.then(() => {
300968
- if (groveConfigLocks.get(accountId) === next) {
300944
+ const previous = groveConfigLocks.get(accountId) ?? Promise.resolve();
300945
+ groveConfigLocks.set(accountId, lockPromise);
300946
+ await previous;
300947
+ try {
300948
+ const result = await getGroveNoticeConfig();
300949
+ if (!result.success) {
300950
+ return;
300951
+ }
300952
+ const groveEnabled = result.data.grove_enabled;
300953
+ const cachedEntry = getGlobalConfig().groveConfigCache?.[accountId];
300954
+ if (cachedEntry?.grove_enabled === groveEnabled && Date.now() - cachedEntry.timestamp <= GROVE_CACHE_EXPIRATION_MS) {
300955
+ return;
300956
+ }
300957
+ saveGlobalConfig((current) => ({
300958
+ ...current,
300959
+ groveConfigCache: {
300960
+ ...current.groveConfigCache,
300961
+ [accountId]: {
300962
+ grove_enabled: groveEnabled,
300963
+ timestamp: Date.now()
300964
+ }
300965
+ }
300966
+ }));
300967
+ } catch (err2) {
300968
+ logForDebugging(`Grove: Failed to fetch and store config: ${err2}`);
300969
+ } finally {
300970
+ releaseLock();
300971
+ if (groveConfigLocks.get(accountId) === lockPromise) {
300969
300972
  groveConfigLocks.delete(accountId);
300970
300973
  }
300971
- });
300972
- await next;
300974
+ }
300973
300975
  }
300974
300976
  function calculateShouldShowGrove(settingsResult, configResult, showIfAlreadyViewed) {
300975
300977
  if (!settingsResult.success || !configResult.success) {
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.84",
8
- BUILD_TIME: "2026-07-16T20:17:47.229Z",
7
+ VERSION: "0.1.85",
8
+ BUILD_TIME: "2026-07-16T22:30:57.193Z",
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.84",
117487
+ version: "0.1.85",
117488
117488
  private: false,
117489
117489
  description: "An open-source AI coding assistant in your terminal - powered by Claude",
117490
117490
  license: "MIT",
@@ -300937,39 +300937,41 @@ async function isQualifiedForGrove() {
300937
300937
  return cachedEntry.grove_enabled;
300938
300938
  }
300939
300939
  async function fetchAndStoreGroveConfig(accountId) {
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}`);
300964
- }
300940
+ let releaseLock;
300941
+ const lockPromise = new Promise((resolve28) => {
300942
+ releaseLock = resolve28;
300965
300943
  });
300966
- groveConfigLocks.set(accountId, next);
300967
- next.then(() => {
300968
- if (groveConfigLocks.get(accountId) === next) {
300944
+ const previous = groveConfigLocks.get(accountId) ?? Promise.resolve();
300945
+ groveConfigLocks.set(accountId, lockPromise);
300946
+ await previous;
300947
+ try {
300948
+ const result = await getGroveNoticeConfig();
300949
+ if (!result.success) {
300950
+ return;
300951
+ }
300952
+ const groveEnabled = result.data.grove_enabled;
300953
+ const cachedEntry = getGlobalConfig().groveConfigCache?.[accountId];
300954
+ if (cachedEntry?.grove_enabled === groveEnabled && Date.now() - cachedEntry.timestamp <= GROVE_CACHE_EXPIRATION_MS) {
300955
+ return;
300956
+ }
300957
+ saveGlobalConfig((current) => ({
300958
+ ...current,
300959
+ groveConfigCache: {
300960
+ ...current.groveConfigCache,
300961
+ [accountId]: {
300962
+ grove_enabled: groveEnabled,
300963
+ timestamp: Date.now()
300964
+ }
300965
+ }
300966
+ }));
300967
+ } catch (err2) {
300968
+ logForDebugging(`Grove: Failed to fetch and store config: ${err2}`);
300969
+ } finally {
300970
+ releaseLock();
300971
+ if (groveConfigLocks.get(accountId) === lockPromise) {
300969
300972
  groveConfigLocks.delete(accountId);
300970
300973
  }
300971
- });
300972
- await next;
300974
+ }
300973
300975
  }
300974
300976
  function calculateShouldShowGrove(settingsResult, configResult, showIfAlreadyViewed) {
300975
300977
  if (!settingsResult.success || !configResult.success) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@funnycode/myclaude",
3
- "version": "0.1.84",
3
+ "version": "0.1.85",
4
4
  "private": false,
5
5
  "description": "An open-source AI coding assistant in your terminal - powered by Claude",
6
6
  "license": "MIT",