Treat number fields as required even if DOM doesn't mark them

LinkedIn validates number fields even when not marked required in the
DOM. Previously these were skipped (no AI call, no answer). Now number
fields always trigger AI fallback and are reported as unknown if empty.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-06 16:43:39 -08:00
parent a629291722
commit 84a98e7839

View File

@@ -607,7 +607,9 @@ Answer:`;
let formatHint = field.placeholder ? `(format: ${field.placeholder})` : ''; let formatHint = field.placeholder ? `(format: ${field.placeholder})` : '';
if (field.type === 'number') formatHint = '(must be a number, no text or units)'; if (field.type === 'number') formatHint = '(must be a number, no text or units)';
let answer = this.answerFor(lbl); let answer = this.answerFor(lbl);
if (!answer && field.required) { // For number fields, always try AI if no answer — LinkedIn validates them even if not marked required
const needsAnswer = field.required || field.type === 'number';
if (!answer && needsAnswer) {
answer = await this.aiAnswerFor(formatHint ? `${lbl} ${formatHint}` : lbl); answer = await this.aiAnswerFor(formatHint ? `${lbl} ${formatHint}` : lbl);
if (answer) this.saveAnswer(lbl, answer); if (answer) this.saveAnswer(lbl, answer);
} }
@@ -623,7 +625,7 @@ Answer:`;
if (ll.includes('city') || ll.includes('location') || ll.includes('located')) { if (ll.includes('city') || ll.includes('location') || ll.includes('located')) {
await this.selectAutocomplete(page, container); await this.selectAutocomplete(page, container);
} }
} else if (field.required) { } else if (needsAnswer) {
unknown.push(lbl); unknown.push(lbl);
} }
} }