@funnycode/myclaude 0.1.87 → 0.1.89

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.87",
8
- BUILD_TIME: "2026-07-17T07:39:42.011Z",
7
+ VERSION: "0.1.89",
8
+ BUILD_TIME: "2026-07-17T12:20:44.184Z",
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.87",
117487
+ version: "0.1.89",
117488
117488
  private: false,
117489
117489
  description: "An open-source AI coding assistant in your terminal - powered by Claude",
117490
117490
  license: "MIT",
@@ -210158,6 +210158,7 @@ function enqueueDumpRequest(agentIdOrSessionId, callback) {
210158
210158
  }
210159
210159
  dumpRequestQueue.get(agentIdOrSessionId).push(callback);
210160
210160
  if (!processingQueues.has(agentIdOrSessionId)) {
210161
+ processingQueues.add(agentIdOrSessionId);
210161
210162
  processQueue(agentIdOrSessionId);
210162
210163
  }
210163
210164
  }
@@ -300886,11 +300887,17 @@ function memoizeWithTTL(fn, ttlMs) {
300886
300887
  originalClear();
300887
300888
  lastCachedAt = 0;
300888
300889
  }
300889
- const result = await memoized(...args);
300890
- if (result && typeof result === "object" && "success" in result && result.success === true) {
300891
- lastCachedAt = Date.now();
300890
+ try {
300891
+ const result = await memoized(...args);
300892
+ if (result && typeof result === "object" && "success" in result && result.success === true) {
300893
+ lastCachedAt = Date.now();
300894
+ }
300895
+ return result;
300896
+ } catch (error49) {
300897
+ originalClear();
300898
+ lastCachedAt = 0;
300899
+ throw error49;
300892
300900
  }
300893
- return result;
300894
300901
  };
300895
300902
  wrapped.cache = {
300896
300903
  clear: () => {
@@ -301052,7 +301059,7 @@ An update to our Consumer Terms and Privacy Policy will take effect on October 8
301052
301059
  }
301053
301060
  }
301054
301061
  }
301055
- var groveConfigLocks, GROVE_CACHE_EXPIRATION_MS, getGroveSettings, getGroveNoticeConfig;
301062
+ var groveConfigLocks, GROVE_CACHE_EXPIRATION_MS, GROVE_API_TIMEOUT_MS, getGroveSettings, getGroveNoticeConfig;
301056
301063
  var init_grove = __esm(() => {
301057
301064
  init_axios2();
301058
301065
  init_memoize();
@@ -301066,6 +301073,7 @@ var init_grove = __esm(() => {
301066
301073
  init_log3();
301067
301074
  groveConfigLocks = new Map;
301068
301075
  GROVE_CACHE_EXPIRATION_MS = 24 * 60 * 60 * 1000;
301076
+ GROVE_API_TIMEOUT_MS = parseInt(process.env.GROVE_API_TIMEOUT_MS ?? "3000", 10);
301069
301077
  getGroveSettings = memoizeWithTTL(async () => {
301070
301078
  if (isEssentialTrafficOnly()) {
301071
301079
  return { success: false };
@@ -301105,7 +301113,7 @@ var init_grove = __esm(() => {
301105
301113
  ...authHeaders.headers,
301106
301114
  "User-Agent": getUserAgent()
301107
301115
  },
301108
- timeout: 3000
301116
+ timeout: GROVE_API_TIMEOUT_MS
301109
301117
  });
301110
301118
  });
301111
301119
  const {
@@ -301125,6 +301133,9 @@ var init_grove = __esm(() => {
301125
301133
  };
301126
301134
  } catch (err2) {
301127
301135
  logError2(err2);
301136
+ if (axios_default.isAxiosError(err2) && err2.code === "ECONNABORTED") {
301137
+ logForDebugging(`Grove: API request timed out after ${GROVE_API_TIMEOUT_MS}ms. This may cause the Grove dialog to be suppressed for users with slow connections.`);
301138
+ }
301128
301139
  getGroveNoticeConfig.cache.clear?.();
301129
301140
  return { success: false };
301130
301141
  }
@@ -342061,6 +342072,14 @@ function getOrCreateSequentialAppend(sessionId) {
342061
342072
  }
342062
342073
  return sequentialAppend;
342063
342074
  }
342075
+ function getOrCreateSequentialFetch(sessionId) {
342076
+ let sequentialFetch = sequentialFetchBySession.get(sessionId);
342077
+ if (!sequentialFetch) {
342078
+ sequentialFetch = sequential(async (sid, url3, headers) => await fetchSessionLogsFromUrl(sid, url3, headers));
342079
+ sequentialFetchBySession.set(sessionId, sequentialFetch);
342080
+ }
342081
+ return sequentialFetch;
342082
+ }
342064
342083
  async function appendSessionLogImpl(sessionId, entry, url3, headers) {
342065
342084
  for (let attempt = 1;attempt <= MAX_RETRIES; attempt++) {
342066
342085
  try {
@@ -342090,7 +342109,8 @@ async function appendSessionLogImpl(sessionId, entry, url3, headers) {
342090
342109
  lastUuidMap.set(sessionId, serverLastUuid);
342091
342110
  logForDebugging(`Session 409: adopting server lastUuid=${serverLastUuid} from header, retrying entry ${entry.uuid}`);
342092
342111
  } else {
342093
- const logs2 = await fetchSessionLogsFromUrl(sessionId, url3, headers);
342112
+ const sequentialFetch = getOrCreateSequentialFetch(sessionId);
342113
+ const logs2 = await sequentialFetch(sessionId, url3, headers);
342094
342114
  const adoptedUuid = findLastUuid(logs2);
342095
342115
  if (adoptedUuid) {
342096
342116
  lastUuidMap.set(sessionId, adoptedUuid);
@@ -342309,8 +342329,9 @@ function findLastUuid(logs2) {
342309
342329
  function clearAllSessions() {
342310
342330
  lastUuidMap.clear();
342311
342331
  sequentialAppendBySession.clear();
342332
+ sequentialFetchBySession.clear();
342312
342333
  }
342313
- var lastUuidMap, MAX_RETRIES = 10, BASE_DELAY_MS2 = 500, sequentialAppendBySession;
342334
+ var lastUuidMap, MAX_RETRIES = 10, BASE_DELAY_MS2 = 500, sequentialAppendBySession, sequentialFetchBySession;
342314
342335
  var init_sessionIngress = __esm(() => {
342315
342336
  init_axios2();
342316
342337
  init_oauth();
@@ -342323,6 +342344,7 @@ var init_sessionIngress = __esm(() => {
342323
342344
  init_api2();
342324
342345
  lastUuidMap = new Map;
342325
342346
  sequentialAppendBySession = new Map;
342347
+ sequentialFetchBySession = new Map;
342326
342348
  });
342327
342349
 
342328
342350
  // src/utils/fileHistory.ts
@@ -453585,14 +453607,14 @@ function getCachedRemainingPasses() {
453585
453607
  return cachedEntry?.remaining_passes ?? null;
453586
453608
  }
453587
453609
  async function fetchAndStorePassesEligibility() {
453588
- if (fetchInProgress) {
453589
- logForDebugging("Passes: Reusing in-flight eligibility fetch");
453590
- return fetchInProgress;
453591
- }
453592
453610
  const orgId = getOauthAccountInfo()?.organizationUuid;
453593
453611
  if (!orgId) {
453594
453612
  return null;
453595
453613
  }
453614
+ if (fetchInProgress) {
453615
+ logForDebugging("Passes: Reusing in-flight eligibility fetch");
453616
+ return fetchInProgress;
453617
+ }
453596
453618
  fetchInProgress = (async () => {
453597
453619
  try {
453598
453620
  const response = await fetchReferralEligibility();
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.87",
8
- BUILD_TIME: "2026-07-17T07:39:42.011Z",
7
+ VERSION: "0.1.89",
8
+ BUILD_TIME: "2026-07-17T12:20:44.184Z",
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.87",
117487
+ version: "0.1.89",
117488
117488
  private: false,
117489
117489
  description: "An open-source AI coding assistant in your terminal - powered by Claude",
117490
117490
  license: "MIT",
@@ -210158,6 +210158,7 @@ function enqueueDumpRequest(agentIdOrSessionId, callback) {
210158
210158
  }
210159
210159
  dumpRequestQueue.get(agentIdOrSessionId).push(callback);
210160
210160
  if (!processingQueues.has(agentIdOrSessionId)) {
210161
+ processingQueues.add(agentIdOrSessionId);
210161
210162
  processQueue(agentIdOrSessionId);
210162
210163
  }
210163
210164
  }
@@ -300886,11 +300887,17 @@ function memoizeWithTTL(fn, ttlMs) {
300886
300887
  originalClear();
300887
300888
  lastCachedAt = 0;
300888
300889
  }
300889
- const result = await memoized(...args);
300890
- if (result && typeof result === "object" && "success" in result && result.success === true) {
300891
- lastCachedAt = Date.now();
300890
+ try {
300891
+ const result = await memoized(...args);
300892
+ if (result && typeof result === "object" && "success" in result && result.success === true) {
300893
+ lastCachedAt = Date.now();
300894
+ }
300895
+ return result;
300896
+ } catch (error49) {
300897
+ originalClear();
300898
+ lastCachedAt = 0;
300899
+ throw error49;
300892
300900
  }
300893
- return result;
300894
300901
  };
300895
300902
  wrapped.cache = {
300896
300903
  clear: () => {
@@ -301052,7 +301059,7 @@ An update to our Consumer Terms and Privacy Policy will take effect on October 8
301052
301059
  }
301053
301060
  }
301054
301061
  }
301055
- var groveConfigLocks, GROVE_CACHE_EXPIRATION_MS, getGroveSettings, getGroveNoticeConfig;
301062
+ var groveConfigLocks, GROVE_CACHE_EXPIRATION_MS, GROVE_API_TIMEOUT_MS, getGroveSettings, getGroveNoticeConfig;
301056
301063
  var init_grove = __esm(() => {
301057
301064
  init_axios2();
301058
301065
  init_memoize();
@@ -301066,6 +301073,7 @@ var init_grove = __esm(() => {
301066
301073
  init_log3();
301067
301074
  groveConfigLocks = new Map;
301068
301075
  GROVE_CACHE_EXPIRATION_MS = 24 * 60 * 60 * 1000;
301076
+ GROVE_API_TIMEOUT_MS = parseInt(process.env.GROVE_API_TIMEOUT_MS ?? "3000", 10);
301069
301077
  getGroveSettings = memoizeWithTTL(async () => {
301070
301078
  if (isEssentialTrafficOnly()) {
301071
301079
  return { success: false };
@@ -301105,7 +301113,7 @@ var init_grove = __esm(() => {
301105
301113
  ...authHeaders.headers,
301106
301114
  "User-Agent": getUserAgent()
301107
301115
  },
301108
- timeout: 3000
301116
+ timeout: GROVE_API_TIMEOUT_MS
301109
301117
  });
301110
301118
  });
301111
301119
  const {
@@ -301125,6 +301133,9 @@ var init_grove = __esm(() => {
301125
301133
  };
301126
301134
  } catch (err2) {
301127
301135
  logError2(err2);
301136
+ if (axios_default.isAxiosError(err2) && err2.code === "ECONNABORTED") {
301137
+ logForDebugging(`Grove: API request timed out after ${GROVE_API_TIMEOUT_MS}ms. This may cause the Grove dialog to be suppressed for users with slow connections.`);
301138
+ }
301128
301139
  getGroveNoticeConfig.cache.clear?.();
301129
301140
  return { success: false };
301130
301141
  }
@@ -342061,6 +342072,14 @@ function getOrCreateSequentialAppend(sessionId) {
342061
342072
  }
342062
342073
  return sequentialAppend;
342063
342074
  }
342075
+ function getOrCreateSequentialFetch(sessionId) {
342076
+ let sequentialFetch = sequentialFetchBySession.get(sessionId);
342077
+ if (!sequentialFetch) {
342078
+ sequentialFetch = sequential(async (sid, url3, headers) => await fetchSessionLogsFromUrl(sid, url3, headers));
342079
+ sequentialFetchBySession.set(sessionId, sequentialFetch);
342080
+ }
342081
+ return sequentialFetch;
342082
+ }
342064
342083
  async function appendSessionLogImpl(sessionId, entry, url3, headers) {
342065
342084
  for (let attempt = 1;attempt <= MAX_RETRIES; attempt++) {
342066
342085
  try {
@@ -342090,7 +342109,8 @@ async function appendSessionLogImpl(sessionId, entry, url3, headers) {
342090
342109
  lastUuidMap.set(sessionId, serverLastUuid);
342091
342110
  logForDebugging(`Session 409: adopting server lastUuid=${serverLastUuid} from header, retrying entry ${entry.uuid}`);
342092
342111
  } else {
342093
- const logs2 = await fetchSessionLogsFromUrl(sessionId, url3, headers);
342112
+ const sequentialFetch = getOrCreateSequentialFetch(sessionId);
342113
+ const logs2 = await sequentialFetch(sessionId, url3, headers);
342094
342114
  const adoptedUuid = findLastUuid(logs2);
342095
342115
  if (adoptedUuid) {
342096
342116
  lastUuidMap.set(sessionId, adoptedUuid);
@@ -342309,8 +342329,9 @@ function findLastUuid(logs2) {
342309
342329
  function clearAllSessions() {
342310
342330
  lastUuidMap.clear();
342311
342331
  sequentialAppendBySession.clear();
342332
+ sequentialFetchBySession.clear();
342312
342333
  }
342313
- var lastUuidMap, MAX_RETRIES = 10, BASE_DELAY_MS2 = 500, sequentialAppendBySession;
342334
+ var lastUuidMap, MAX_RETRIES = 10, BASE_DELAY_MS2 = 500, sequentialAppendBySession, sequentialFetchBySession;
342314
342335
  var init_sessionIngress = __esm(() => {
342315
342336
  init_axios2();
342316
342337
  init_oauth();
@@ -342323,6 +342344,7 @@ var init_sessionIngress = __esm(() => {
342323
342344
  init_api2();
342324
342345
  lastUuidMap = new Map;
342325
342346
  sequentialAppendBySession = new Map;
342347
+ sequentialFetchBySession = new Map;
342326
342348
  });
342327
342349
 
342328
342350
  // src/utils/fileHistory.ts
@@ -453585,14 +453607,14 @@ function getCachedRemainingPasses() {
453585
453607
  return cachedEntry?.remaining_passes ?? null;
453586
453608
  }
453587
453609
  async function fetchAndStorePassesEligibility() {
453588
- if (fetchInProgress) {
453589
- logForDebugging("Passes: Reusing in-flight eligibility fetch");
453590
- return fetchInProgress;
453591
- }
453592
453610
  const orgId = getOauthAccountInfo()?.organizationUuid;
453593
453611
  if (!orgId) {
453594
453612
  return null;
453595
453613
  }
453614
+ if (fetchInProgress) {
453615
+ logForDebugging("Passes: Reusing in-flight eligibility fetch");
453616
+ return fetchInProgress;
453617
+ }
453596
453618
  fetchInProgress = (async () => {
453597
453619
  try {
453598
453620
  const response = await fetchReferralEligibility();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@funnycode/myclaude",
3
- "version": "0.1.87",
3
+ "version": "0.1.89",
4
4
  "private": false,
5
5
  "description": "An open-source AI coding assistant in your terminal - powered by Claude",
6
6
  "license": "MIT",