diag(observer): Always run 버튼 주변 DOM 구조 원샷 덤프 추가 (v0.5.89)

This commit is contained in:
Variet Worker
2026-04-19 09:19:31 +09:00
parent db805c6fde
commit 02b4b03699
3 changed files with 37 additions and 3 deletions

View File

@@ -1077,6 +1077,40 @@ export function generateApprovalObserverScript(_port: number): string {
var desc=extractContext(b);
// v28: One-shot DOM structure dump for button context analysis
if (!window._btnDomDumped && txtLow.includes('run')) {
window._btnDomDumped = true;
var dumpLines = [];
var cur = b;
for (var dd = 0; dd < 10 && cur; dd++) {
var childSummary = [];
if (cur.children) {
for (var ci2 = 0; ci2 < Math.min(cur.children.length, 8); ci2++) {
var ch = cur.children[ci2];
var chTag = (ch.tagName || '?').toLowerCase();
var chCls = (typeof ch.className === 'string' ? ch.className : '').substring(0, 40);
var chText = (ch.textContent || '').substring(0, 30).replace(/\\n/g, ' ');
childSummary.push(chTag + '.' + chCls.split(' ')[0] + '=' + chText);
}
}
var sibSummary = [];
if (cur.parentElement) {
for (var si2 = 0; si2 < Math.min(cur.parentElement.children.length, 6); si2++) {
var sib = cur.parentElement.children[si2];
var sibTag = (sib.tagName || '?').toLowerCase();
var sibCls = (typeof sib.className === 'string' ? sib.className : '').substring(0, 30);
sibSummary.push(sibTag + '.' + sibCls.split(' ')[0] + (sib === cur ? '*' : ''));
}
}
dumpLines.push('d' + dd + ':' + (cur.tagName || '?').toLowerCase() + ' cls=' + (typeof cur.className === 'string' ? cur.className : '').substring(0, 50) + ' | children=[' + childSummary.join(', ') + '] | siblings=[' + sibSummary.join(', ') + ']');
cur = cur.parentElement;
}
log('BTN-DOM-DUMP txt=' + txt + ' desc=' + desc.substring(0, 40));
for (var ddi = 0; ddi < dumpLines.length; ddi++) {
log('BTN-DOM-DUMP ' + dumpLines[ddi]);
}
}
var rid=now.toString()+'_'+Math.random().toString(36).substring(2,6);
_sent[groupKey]={rid:rid,ts:now};