taskchef 7.23.2 → 7.23.4
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/package.json
CHANGED
package/src/dashboard/app.js
CHANGED
|
@@ -440,15 +440,20 @@ function usageBreakdownText(usage) {
|
|
|
440
440
|
].join(" · ");
|
|
441
441
|
}
|
|
442
442
|
|
|
443
|
+
export function renderTextShimmer(element, value) {
|
|
444
|
+
element.textContent = String(value ?? "");
|
|
445
|
+
return element;
|
|
446
|
+
}
|
|
447
|
+
|
|
443
448
|
export function usagePresentation(usage, { wholeTask = false } = {}) {
|
|
444
449
|
const container = document.createElement("div");
|
|
445
450
|
container.className = `usage-summary usage-${usage?.status ?? "unavailable"}`;
|
|
446
451
|
if (usage?.status === "pending" || usage?.status === "calculating") {
|
|
447
452
|
const text = document.createElement("span");
|
|
448
453
|
text.className = "text-shimmer";
|
|
449
|
-
text
|
|
454
|
+
renderTextShimmer(text, usage.status === "pending"
|
|
450
455
|
? "Tokens pending · available when turn finishes"
|
|
451
|
-
: "Calculating token usage…";
|
|
456
|
+
: "Calculating token usage…");
|
|
452
457
|
container.replaceChildren(text);
|
|
453
458
|
return container;
|
|
454
459
|
}
|
|
@@ -537,7 +542,8 @@ function turnTimeline(task, { highlightTurnRef = null } = {}) {
|
|
|
537
542
|
resultLabel.textContent = "Result";
|
|
538
543
|
const result = document.createElement("p");
|
|
539
544
|
result.className = `preserve-lines${turnStatus === "working" ? " text-shimmer" : ""}`;
|
|
540
|
-
|
|
545
|
+
if (turnStatus === "working") renderTextShimmer(result, presentation.summary);
|
|
546
|
+
else appendLinkedText(result, presentation.summary, task);
|
|
541
547
|
const turnMetadata = document.createElement("p");
|
|
542
548
|
turnMetadata.className = "result-history-turn";
|
|
543
549
|
turnMetadata.textContent = `Turn ref ${turn.turnRef ?? "not recorded"}; Codex turn ${turn.turnId ?? "unavailable"}`;
|
|
@@ -954,7 +960,8 @@ function taskCard(task) {
|
|
|
954
960
|
resultLabel.textContent = "Result";
|
|
955
961
|
const result = document.createElement("span");
|
|
956
962
|
result.className = `preserve-lines${latest.resultStatus === "working" ? " text-shimmer" : ""}`;
|
|
957
|
-
|
|
963
|
+
if (latest.resultStatus === "working") renderTextShimmer(result, latest.resultSummary);
|
|
964
|
+
else appendLinkedText(result, latest.resultSummary, task);
|
|
958
965
|
summary.replaceChildren(requestLabel, request, resultLabel, result);
|
|
959
966
|
const relatedLinks = relatedGitHubLinks(task, { compact: true });
|
|
960
967
|
const time = timestampControl(
|
package/src/dashboard/styles.css
CHANGED
|
@@ -185,15 +185,20 @@ dialog section + section { margin-top: 24px; }
|
|
|
185
185
|
.usage-pending, .usage-calculating { display: flex; align-items: center; }
|
|
186
186
|
.text-shimmer {
|
|
187
187
|
color: var(--muted);
|
|
188
|
-
|
|
188
|
+
display: inline-block;
|
|
189
|
+
width: fit-content;
|
|
190
|
+
max-width: 100%;
|
|
191
|
+
justify-self: start;
|
|
192
|
+
vertical-align: top;
|
|
193
|
+
background: linear-gradient(100deg, var(--muted) 48%, var(--text) 50%, var(--muted) 52%);
|
|
189
194
|
background-size: 250% 100%;
|
|
190
195
|
background-position: 100% 0;
|
|
191
196
|
background-clip: text;
|
|
192
197
|
-webkit-background-clip: text;
|
|
193
198
|
-webkit-text-fill-color: transparent;
|
|
194
|
-
animation: text-shimmer 6.4s
|
|
199
|
+
animation: text-shimmer-sweep 6.4s linear infinite;
|
|
195
200
|
}
|
|
196
|
-
@keyframes text-shimmer {
|
|
201
|
+
@keyframes text-shimmer-sweep {
|
|
197
202
|
0% { background-position: 100% 0; }
|
|
198
203
|
72%, 100% { background-position: -100% 0; }
|
|
199
204
|
}
|