@circuitwall/jarela 1.4.0 → 1.4.1
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/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +2 -2
- package/.next/standalone/.next/server/app/_not-found.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/api/v1/builtin-tools/route.js +10 -1
- package/.next/standalone/.next/server/app/api/v1/builtin-tools/route.js.map +1 -1
- package/.next/standalone/.next/server/app/api/v1/dashboard/currency/route.js +10 -5
- package/.next/standalone/.next/server/app/api/v1/dashboard/currency/route.js.map +1 -1
- package/.next/standalone/.next/server/app/api/v1/providers/[provider]/probe/route.js +9 -1
- package/.next/standalone/.next/server/app/api/v1/providers/[provider]/probe/route.js.map +1 -1
- package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/run/route.js +33 -8
- package/.next/standalone/.next/server/app/api/v1/threads/[thread_id]/run/route.js.map +1 -1
- package/.next/standalone/.next/server/app/page.js +63 -202
- package/.next/standalone/.next/server/app/page.js.map +1 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/setup/page.js +1 -1
- package/.next/standalone/.next/server/app/setup/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/chunks/1718.js +159 -0
- package/.next/standalone/.next/server/chunks/1718.js.map +1 -0
- package/.next/standalone/.next/server/chunks/2082.js +6 -3
- package/.next/standalone/.next/server/chunks/2082.js.map +1 -1
- package/.next/standalone/.next/server/chunks/210.js +28 -0
- package/.next/standalone/.next/server/chunks/210.js.map +1 -1
- package/.next/standalone/.next/server/chunks/423.js +6 -3
- package/.next/standalone/.next/server/chunks/423.js.map +1 -1
- package/.next/standalone/.next/server/chunks/4631.js +37 -5
- package/.next/standalone/.next/server/chunks/4631.js.map +1 -1
- package/.next/standalone/.next/server/chunks/8167.js +255 -204
- package/.next/standalone/.next/server/chunks/8167.js.map +1 -1
- package/.next/standalone/.next/server/chunks/8866.js +38 -5
- package/.next/standalone/.next/server/chunks/8866.js.map +1 -1
- package/.next/standalone/.next/server/chunks/9032.js +8 -0
- package/.next/standalone/.next/server/chunks/9032.js.map +1 -1
- package/.next/standalone/.next/server/chunks/{7883.js → 9557.js} +15 -3
- package/.next/standalone/.next/server/chunks/9557.js.map +1 -0
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/middleware.js +6 -3
- package/.next/standalone/.next/server/pages/404.html +2 -2
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/proxy.js.map +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/{2351-68d8987bbe17ba2d.js → 2351-1ab119fb3b48f4c9.js} +258 -205
- package/.next/standalone/.next/static/chunks/2351-1ab119fb3b48f4c9.js.map +1 -0
- package/.next/standalone/.next/static/chunks/{9209-0d46118e502f8bf5.js → 4097-64691f9110cf167c.js} +14 -2
- package/.next/standalone/.next/static/chunks/4097-64691f9110cf167c.js.map +1 -0
- package/.next/standalone/.next/static/chunks/app/{page-74846c864241b96d.js → page-145150e0468544e7.js} +64 -203
- package/.next/standalone/.next/static/chunks/app/page-145150e0468544e7.js.map +1 -0
- package/.next/standalone/.next/static/chunks/app/setup/{page-9a465b5fa755b3c3.js → page-a1463a9ace439ff7.js} +2 -2
- package/.next/standalone/.next/static/chunks/app/setup/{page-9a465b5fa755b3c3.js.map → page-a1463a9ace439ff7.js.map} +1 -1
- package/.next/standalone/.next/static/chunks/{webpack-ff5627013a5e3842.js → webpack-f4ac5c5f92cfd1c1.js} +13 -1
- package/.next/standalone/.next/static/chunks/webpack-f4ac5c5f92cfd1c1.js.map +1 -0
- package/.next/standalone/package.json +1 -1
- package/CHANGELOG.md +60 -0
- package/README.md +1 -1
- package/api/client.ts +10 -9
- package/app/api/v1/dashboard/currency/route.ts +7 -2
- package/app/api/v1/providers/[provider]/probe/route.ts +12 -1
- package/app/api/v1/threads/[thread_id]/run/route.ts +22 -8
- package/components/layout/AppShell.tsx +53 -17
- package/components/setup/PinKeypad.tsx +238 -0
- package/components/setup/ScreenLock.tsx +8 -173
- package/components/setup/UnlockScreen.tsx +25 -192
- package/lib/documents/remote/github.ts +16 -2
- package/lib/documents/remote/mail.ts +11 -2
- package/lib/lifecycle/shutdown.ts +9 -0
- package/lib/providers/github-copilot-auth.ts +2 -0
- package/lib/providers/github-copilot.ts +1 -0
- package/lib/tools/async-results.ts +11 -0
- package/package.json +1 -1
- package/scripts/install-to-system.ps1 +2 -2
- package/scripts/installed-launcher.ps1 +81 -17
- package/.next/standalone/.next/server/chunks/7883.js.map +0 -1
- package/.next/standalone/.next/static/chunks/2351-68d8987bbe17ba2d.js.map +0 -1
- package/.next/standalone/.next/static/chunks/9209-0d46118e502f8bf5.js.map +0 -1
- package/.next/standalone/.next/static/chunks/app/page-74846c864241b96d.js.map +0 -1
- package/.next/standalone/.next/static/chunks/webpack-ff5627013a5e3842.js.map +0 -1
- /package/.next/standalone/.next/static/{AV5AO0yTRABo-NgwxhDe7 → WQdcnm9NyqpeNc0Z8_woo}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{AV5AO0yTRABo-NgwxhDe7 → WQdcnm9NyqpeNc0Z8_woo}/_ssgManifest.js +0 -0
|
@@ -710,7 +710,10 @@ async function indexGmailMail(row) {
|
|
|
710
710
|
if (list.error) throw new Error(list.error);
|
|
711
711
|
const batch = list.messages ?? [];
|
|
712
712
|
if (batch.length === 0) break;
|
|
713
|
-
|
|
713
|
+
// Use allSettled so a single 404/transient 5xx on one message
|
|
714
|
+
// doesn't bin the whole page (and stall the cursor on the next
|
|
715
|
+
// run). Failures get counted into stats.errors instead.
|
|
716
|
+
const settled = await Promise.allSettled(batch.slice(0, limit).map(async (entry)=>{
|
|
714
717
|
const msg = await (0,gmail_oauth/* googleFetch */.sI)(auth, "Gmail", "https://gmail.googleapis.com/gmail/v1/users/me", `/messages/${encodeURIComponent(entry.id)}?format=full`);
|
|
715
718
|
if (msg.error) throw new Error(msg.error);
|
|
716
719
|
const title = msg.payload ? header(msg.payload.headers, "Subject") ?? entry.id : entry.id;
|
|
@@ -732,10 +735,16 @@ async function indexGmailMail(row) {
|
|
|
732
735
|
text
|
|
733
736
|
});
|
|
734
737
|
}));
|
|
735
|
-
for (const [index,
|
|
738
|
+
for (const [index, outcome] of settled.entries()){
|
|
736
739
|
const id = batch[index]?.id ?? "";
|
|
737
740
|
if (id) keep.add(`gmail://${id}`);
|
|
738
741
|
stats.scanned++;
|
|
742
|
+
if (outcome.status === "rejected") {
|
|
743
|
+
stats.errors++;
|
|
744
|
+
console.warn(`[mail-indexer] message ${id} failed:`, outcome.reason);
|
|
745
|
+
continue;
|
|
746
|
+
}
|
|
747
|
+
const item = outcome.value;
|
|
739
748
|
stats.added += item.status === "added" ? 1 : 0;
|
|
740
749
|
stats.updated += item.status === "updated" ? 1 : 0;
|
|
741
750
|
stats.unchanged += item.status === "unchanged" ? 1 : 0;
|
|
@@ -1076,10 +1085,23 @@ async function runGithubPullsIndexer(source) {
|
|
|
1076
1085
|
if (cutoffMs !== null && Number.isFinite(updatedMs) && updatedMs < cutoffMs) break outer;
|
|
1077
1086
|
if (Number.isFinite(sinceMs) && Number.isFinite(updatedMs) && updatedMs <= sinceMs) break outer;
|
|
1078
1087
|
try {
|
|
1079
|
-
|
|
1088
|
+
// allSettled so a failed comments fetch doesn't also discard
|
|
1089
|
+
// the reviews (and vice versa); we still index what we have and
|
|
1090
|
+
// count the partial as an error.
|
|
1091
|
+
const [commentsRes, reviewsRes] = await Promise.allSettled([
|
|
1080
1092
|
listIssueComments(auth, cfg.owner, cfg.repo, pr.number),
|
|
1081
1093
|
listReviews(auth, cfg.owner, cfg.repo, pr.number)
|
|
1082
1094
|
]);
|
|
1095
|
+
const comments = commentsRes.status === "fulfilled" ? commentsRes.value : [];
|
|
1096
|
+
const reviews = reviewsRes.status === "fulfilled" ? reviewsRes.value : [];
|
|
1097
|
+
if (commentsRes.status === "rejected") {
|
|
1098
|
+
stats.errors++;
|
|
1099
|
+
console.warn(`[github-indexer] pr#${pr.number} comments failed:`, commentsRes.reason);
|
|
1100
|
+
}
|
|
1101
|
+
if (reviewsRes.status === "rejected") {
|
|
1102
|
+
stats.errors++;
|
|
1103
|
+
console.warn(`[github-indexer] pr#${pr.number} reviews failed:`, reviewsRes.reason);
|
|
1104
|
+
}
|
|
1083
1105
|
const text = flattenPull(pr, comments, reviews);
|
|
1084
1106
|
const res = await upsertRemoteDocument(source.id, {
|
|
1085
1107
|
path: `github-pull://${cfg.owner}/${cfg.repo}/${pr.number}`,
|
|
@@ -1089,8 +1111,9 @@ async function runGithubPullsIndexer(source) {
|
|
|
1089
1111
|
});
|
|
1090
1112
|
applyUpsert(stats, res);
|
|
1091
1113
|
if (updated && (!highWater || updated > highWater)) highWater = updated;
|
|
1092
|
-
} catch
|
|
1114
|
+
} catch (err) {
|
|
1093
1115
|
stats.errors++;
|
|
1116
|
+
console.warn(`[github-indexer] pr#${pr.number} upsert failed:`, err);
|
|
1094
1117
|
}
|
|
1095
1118
|
}
|
|
1096
1119
|
if (pulls.length < PR_PAGE_LIMIT) break;
|
|
@@ -6622,7 +6645,7 @@ function getDocumentSourceStats(sourceId) {
|
|
|
6622
6645
|
/* harmony export */ m3: () => (/* binding */ consumeAsyncResult),
|
|
6623
6646
|
/* harmony export */ zc: () => (/* binding */ failAsyncCall)
|
|
6624
6647
|
/* harmony export */ });
|
|
6625
|
-
/* unused harmony exports DEFAULT_TTL_MS, MAX_ENTRIES, sweepExpired, __resetStore, __backdateFinished */
|
|
6648
|
+
/* unused harmony exports DEFAULT_TTL_MS, MAX_ENTRIES, stopAsyncResults, sweepExpired, __resetStore, __backdateFinished */
|
|
6626
6649
|
/* harmony import */ var node_crypto__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(77598);
|
|
6627
6650
|
/* harmony import */ var node_crypto__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(node_crypto__WEBPACK_IMPORTED_MODULE_0__);
|
|
6628
6651
|
// In-process keyed store for async tool results.
|
|
@@ -6659,6 +6682,15 @@ function ensureSweeper() {
|
|
|
6659
6682
|
}, SWEEP_INTERVAL_MS);
|
|
6660
6683
|
sweeper.unref?.();
|
|
6661
6684
|
}
|
|
6685
|
+
/**
|
|
6686
|
+
* Tear down the sweeper. Called from the shutdown drain so the timer
|
|
6687
|
+
* isn't keeping the event loop alive past close-time. Idempotent.
|
|
6688
|
+
*/ function stopAsyncResults() {
|
|
6689
|
+
if (sweeper) {
|
|
6690
|
+
clearInterval(sweeper);
|
|
6691
|
+
sweeper = null;
|
|
6692
|
+
}
|
|
6693
|
+
}
|
|
6662
6694
|
/**
|
|
6663
6695
|
* Carve out a slot for a new async tool call and return its key.
|
|
6664
6696
|
* The key is opaque and URL-safe — the agent treats it as a token.
|