@proagentstore/cli 0.3.4 → 0.3.5
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.
|
@@ -246,14 +246,24 @@ export async function inspectField(page, action) {
|
|
|
246
246
|
if (!info)
|
|
247
247
|
return "";
|
|
248
248
|
const typed = String(action.text ?? "").trim();
|
|
249
|
+
const stuck = !!typed && info.value === typed; // our value actually took
|
|
249
250
|
const parts = [];
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
if (info.value && (info.invalid ||
|
|
251
|
+
// Report the field's real value when it differs from what we sent, or when the
|
|
252
|
+
// field is authoritatively invalid.
|
|
253
|
+
if (info.value && (info.invalid || !stuck)) {
|
|
253
254
|
parts.push(`"${action.name}" now reads "${info.value}"${typed && info.value !== typed ? ` (you sent "${typed}")` : ""}`);
|
|
254
255
|
}
|
|
255
|
-
|
|
256
|
-
|
|
256
|
+
// Flag REJECTED ONLY on an authoritative per-field signal (aria-invalid / :invalid)
|
|
257
|
+
// or when our value clearly did NOT take. A nearby error while the value stuck is
|
|
258
|
+
// often stale (widgets show a "format" error mid-type that clears on blur/submit)
|
|
259
|
+
// or belongs to another field — reporting it as REJECTED sent the brain into a
|
|
260
|
+
// false-retry loop on a value that was actually accepted.
|
|
261
|
+
if (info.invalid || (typed && !stuck)) {
|
|
262
|
+
if (info.err)
|
|
263
|
+
parts.unshift(`⚠ "${action.name}" REJECTED: "${info.err}"`);
|
|
264
|
+
else if (info.invalid)
|
|
265
|
+
parts.unshift(`⚠ "${action.name}" is marked invalid`);
|
|
266
|
+
}
|
|
257
267
|
return parts.join("; ");
|
|
258
268
|
}
|
|
259
269
|
catch {
|