Files
contracts/History/llm-analysis/sonnet-appjs-analysis.md
T

37 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Sonnet Analysis — 2026-06-23 — app.js bugs
## Q1: Что сломано в app.js
Нужно убрать **ДВЕ** строки из app.js (не только `</script>`):
- строка 644: `</script>` — SyntaxError
- строка 845 старого index.cfm = `</body>` — вторая SyntaxError после первой
Обе попали из-за `sed -n '209,846p'`.
## Q2: lucide.createIcons()
**НЕ потерян.** В старом index.cfm был на строке 845 (перед `</script>`), попал в app.js. Также вызывается ещё в 4 местах внутри JS.
## Q3: Дубликаты var
`var UNZIP_URL` дублируется (стр. 6 и 7 app.js). Значения идентичны. `var` в JS допускает повторное объявление — не проблема.
`UPLOAD_URL` и `CONVERT_URL` НЕ дублируются — они на строках 207-208 старого cfm, sed начат с 209.
## Q4: CORS
`<script src>` **не требует CORS** — браузер грузит скрипты без проверки Origin.
fetch/XHR из app.js → contracts.kube5s.ru требуют CORS — Python отвечает `Access-Control-Allow-Origin: *` (OK).
## Q5: Скрытый баг — parseInfo в модале
Строки 484-499 app.js — правая панель "Распарсено" использует UPPERCASE ключи:
```javascript
d.ELEMENT_COUNT, d.PARAGRAPHS, d.TABLES, d.TABLE_ROWS,
d.PAGES, d.PARSE_TIME_MS, d.TEXT_LENGTH, d.ERRORS
```
Python возвращает lowercase: `element_count`, `elements` (без PARAGRAPHS/TABLES).
**Все числа в правой панели модала — undefined → 0.** Нужно исправить на lowercase.
## Q6: prompt.cfm и chat.cfm
Ходят на Lucee-домен (relative URL). Ответы ожидаются в uppercase (`d.OK`, `d.BODY` и т.д.) — корректно для CFML. Работает, если prompt.cfm/chat.cfm есть на Lucee.
## Приоритеты исправлений
1. Убрать `</script>` + `</body>` из app.js → JS выполнится
2. `parseInfo` поля: UPPERCASE → lowercase для корректной работы модала
3. prompt.cfm/chat.cfm — пока OK, потом перенести на VM