fraim-hub 2.0.324 → 2.0.325
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.
|
@@ -7189,9 +7189,10 @@ class AiHubServer {
|
|
|
7189
7189
|
// job that just received coaching has not reached retrospective
|
|
7190
7190
|
// again yet. Clear it at send-time so a coached Done job stops
|
|
7191
7191
|
// offering next-job recommendations immediately, not only once the
|
|
7192
|
-
// resumed session's next seekMentoring signal arrives.
|
|
7192
|
+
// resumed session's next seekMentoring signal arrives. The active
|
|
7193
|
+
// reviewHandoff deliberately survives conversational coaching; its
|
|
7194
|
+
// lifecycle is owned by applySeekMentoringSignal (issue #1763).
|
|
7193
7195
|
current.nextJobRecommendations = null;
|
|
7194
|
-
current.reviewHandoff = null;
|
|
7195
7196
|
});
|
|
7196
7197
|
const startedFresh = this.runRegistry.get(run.id);
|
|
7197
7198
|
if (startedFresh)
|
|
@@ -7260,9 +7261,10 @@ class AiHubServer {
|
|
|
7260
7261
|
current.pendingDeliveryActionId = selectedReviewAction.deliveryActionId || null;
|
|
7261
7262
|
}
|
|
7262
7263
|
// Issue #1373 (Defect 2): see the no-session branch above for why
|
|
7263
|
-
//
|
|
7264
|
+
// next-job recommendations can only be stale at coaching-send time.
|
|
7265
|
+
// applySeekMentoringSignal remains the sole reviewHandoff lifecycle
|
|
7266
|
+
// owner so a conversational coaching turn does not decide the review.
|
|
7264
7267
|
current.nextJobRecommendations = null;
|
|
7265
|
-
current.reviewHandoff = null;
|
|
7266
7268
|
});
|
|
7267
7269
|
const started = this.runRegistry.get(run.id);
|
|
7268
7270
|
if (started)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fraim-hub",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.325",
|
|
4
4
|
"description": "FRAIM Hub local companion package.",
|
|
5
5
|
"author": "Sid Mathur <sid.mathur@gmail.com>",
|
|
6
6
|
"homepage": "https://github.com/mathursrus/FRAIM#readme",
|
|
@@ -213,7 +213,7 @@
|
|
|
213
213
|
"electron-updater": "^6.8.9",
|
|
214
214
|
"express": "^5.2.1",
|
|
215
215
|
"extract-zip": "^2.0.1",
|
|
216
|
-
"fraim": "2.0.
|
|
216
|
+
"fraim": "2.0.325",
|
|
217
217
|
"mongodb": "^7.0.0",
|
|
218
218
|
"node-cron": "4.2.1",
|
|
219
219
|
"node-edge-tts": "^1.2.10",
|
package/public/ai-hub/review.css
CHANGED
|
@@ -140,6 +140,10 @@
|
|
|
140
140
|
color: var(--muted, #888);
|
|
141
141
|
filter: none;
|
|
142
142
|
}
|
|
143
|
+
:root[data-theme="dark"] .review-actions .rb-approve:not(:disabled):not(.managed-disabled),
|
|
144
|
+
:root[data-theme="dark"] .review-actions .rb-secondary:not(:disabled):not(.managed-disabled) {
|
|
145
|
+
color: var(--bg, #1e1e1e);
|
|
146
|
+
}
|
|
143
147
|
.review-actions .rb-handoff {
|
|
144
148
|
font-size: 12px;
|
|
145
149
|
color: var(--muted);
|
package/public/ai-hub/script.js
CHANGED
|
@@ -7713,15 +7713,17 @@ async function approveReview(options) {
|
|
|
7713
7713
|
const opts = options || {};
|
|
7714
7714
|
const conv = activeConversation();
|
|
7715
7715
|
if (!conv) return;
|
|
7716
|
+
const shouldResume = !!opts.resumeAfterApproval
|
|
7717
|
+
&& !!conv.runId
|
|
7718
|
+
&& convAwaitingReview(conv);
|
|
7719
|
+
if (opts.resumeAfterApproval && !shouldResume) {
|
|
7720
|
+
showStatus('Approve could not resume this run. The review gate is no longer active. Use Mark complete if you intend to close it manually.', true);
|
|
7721
|
+
return;
|
|
7722
|
+
}
|
|
7716
7723
|
if (state.pollHandle) {
|
|
7717
7724
|
window.clearInterval(state.pollHandle);
|
|
7718
7725
|
state.pollHandle = null;
|
|
7719
7726
|
}
|
|
7720
|
-
const shouldResume = !!opts.resumeAfterApproval
|
|
7721
|
-
&& !!conv.runId
|
|
7722
|
-
&& !!conv.sessionId
|
|
7723
|
-
&& !!reviewHandoffForConversation(conv)
|
|
7724
|
-
&& convAwaitingReview(conv);
|
|
7725
7727
|
if (shouldResume) {
|
|
7726
7728
|
const selectedReviewAction = opts.reviewAction && typeof opts.reviewAction === 'object'
|
|
7727
7729
|
? opts.reviewAction
|