naeel
|
d39bf7c04f
|
v1.0.97: шаг5 — LLM ключ из env
|
2026-06-22 07:47:02 +04:00 |
|
naeel
|
eaed475437
|
v1.0.96: bump версии
|
2026-06-22 07:43:43 +04:00 |
|
naeel
|
1c2187632b
|
v1.0.96: убрал doc_id/supp_id из показа юзеру
|
2026-06-22 07:43:01 +04:00 |
|
naeel
|
89e787a3ad
|
v1.0.95: восстановление index.cfm + заголовки
|
2026-06-22 07:35:25 +04:00 |
|
naeel
|
56ed3870bb
|
v1.0.95: шаг4 — идемпотентность, проверка supplement уже обработан
|
2026-06-22 07:33:18 +04:00 |
|
naeel
|
69b3808037
|
v1.0.94: шаг3 — guard full_replace с пустым ops
|
2026-06-22 07:28:08 +04:00 |
|
naeel
|
911afabce1
|
v1.0.93: шаг2 — FOR UPDATE на MAX(seq) от race condition
|
2026-06-21 17:28:33 +04:00 |
|
naeel
|
5a95c75459
|
v1.0.92: заголовки + версия
|
2026-06-21 17:27:34 +04:00 |
|
naeel
|
b587b24c7b
|
v1.0.92: шаг1 — SQL-инъекция, валидация UUID
|
2026-06-21 17:22:59 +04:00 |
|
naeel
|
2e56c27338
|
v1.0.91: раскрывающиеся секции с дифф-таблицами в результатах сравнения
|
2026-06-21 16:45:19 +04:00 |
|
naeel
|
42f72e85cd
|
v1.0.90: bump версии
|
2026-06-21 16:42:27 +04:00 |
|
naeel
|
54f4ce9564
|
v1.0.90: заголовок загрузки
|
2026-06-21 16:42:15 +04:00 |
|
naeel
|
441c2fa3ad
|
v1.0.89: убрал v1, оставил только Event Sourcing как Сравнить
|
2026-06-21 16:28:14 +04:00 |
|
naeel
|
2b02eff29b
|
v1.0.88: bump версии
|
2026-06-21 16:16:59 +04:00 |
|
naeel
|
6e53aafdb9
|
v1.0.88: замена файла с тем же именем в таблице при повторной загрузке
|
2026-06-21 16:09:35 +04:00 |
|
naeel
|
7f6c84883e
|
v1.0.87: удаление дубликатов в multipart пути загрузки
|
2026-06-21 15:56:03 +04:00 |
|
naeel
|
b26016fcb1
|
v1.0.86: один fetch elements_json, обе панели — все элементы
|
2026-06-21 09:50:16 +04:00 |
|
naeel
|
febad42e45
|
v1.0.85: правая панель — все элементы полностью (параграфы + таблицы)
|
2026-06-21 09:33:16 +04:00 |
|
naeel
|
0314f14f18
|
v1.0.84: .gitignore pyc
|
2026-06-21 09:31:23 +04:00 |
|
naeel
|
314d78386f
|
v1.0.84: nginx config update
|
2026-06-21 09:30:20 +04:00 |
|
naeel
|
832a25e08f
|
v1.0.84: повторная загрузка удаляет старый документ с тем же filename
|
2026-06-21 09:26:03 +04:00 |
|
naeel
|
a214a0d1e6
|
v1.0.83: XPath //:t и //:tr → .//:t и .//:tr — поиск от параграфа, не от корня
|
2026-06-21 09:24:11 +04:00 |
|
naeel
|
192b4ea0e9
|
v1.0.82: fallback на ZIP/XML при любом пустом результате POI (не только при ошибках)
|
2026-06-21 09:13:06 +04:00 |
|
naeel
|
ec02521a00
|
v1.0.81: bump version
|
2026-06-21 09:05:51 +04:00 |
|
naeel
|
edd2eca0c2
|
v1.0.81: точное совпадение класса XWPFParagraph/XWPFTable — фикс SDTParagraph дублирований
|
2026-06-21 08:59:18 +04:00 |
|
naeel
|
18d1a07aad
|
v1.0.80: bump версии в index.cfm
|
2026-06-21 08:34:55 +04:00 |
|
naeel
|
2a5762d5e7
|
v1.0.80: structNew вместо {...} в парсерах — баг Lucee с переиспользованием struct
|
2026-06-21 08:30:52 +04:00 |
|
naeel
|
0be35bd3db
|
v1.0.79: .doc → XWPF первым (после конвертации), HWPF только fallback
|
2026-06-21 08:07:59 +04:00 |
|
naeel
|
9eaa6d1f08
|
v1.0.78: один столбец Текст вместо View/Инфо, левая=textify, правая=распарсено
|
2026-06-21 07:55:47 +04:00 |
|
naeel
|
c25864ea61
|
v1.0.77: авто-парсинг после загрузки с таймером
|
2026-06-21 07:32:42 +04:00 |
|
naeel
|
e049d28515
|
v1.0.76: фикс uppercase ключей Lucee, заголовки столбцов, красная корзина, Инфо+, столбец Текст с 2-панельной модалкой
|
2026-06-21 07:21:45 +04:00 |
|
naeel
|
fa843bc367
|
fix: раздельные промпты для initial (ADD) и ДС (diff) (v1.0.75)
|
2026-06-20 11:04:33 +04:00 |
|
naeel
|
1ecff7c441
|
v2: SSE через ВМ (process-v2), убрано с Lucee (v1.0.75)
|
2026-06-20 10:52:37 +04:00 |
|
naeel
|
4e20b7760e
|
Phase 3: apply_events.cfm + process.cfm v2 + кнопка v2 (v1.0.74)
|
2026-06-20 10:31:46 +04:00 |
|
naeel
|
7f84c86633
|
nginx: /llm-ops proxy (Phase 2 fix)
|
2026-06-20 10:17:52 +04:00 |
|
naeel
|
2b01109a0c
|
fix: view.cfm empty elements_json check + modal instead of new tab (v1.0.72)
|
2026-06-20 10:02:09 +04:00 |
|
naeel
|
8cd40e3248
|
fix: cftry without cfcatch in parseDOC_POI (v1.0.71)
|
2026-06-20 10:00:59 +04:00 |
|
naeel
|
2ffc24fac1
|
Phase 1: spec_events + spec_current tables (v1.0.70)
|
2026-06-20 09:55:48 +04:00 |
|
naeel
|
bcd937e46f
|
v2 architecture: Sonnet plan + request docs
|
2026-06-20 09:55:10 +04:00 |
|
naeel
|
cb445aeba1
|
view.cfm: предпросмотр первых 15 строк документа (v1.0.69)
|
2026-06-20 09:08:36 +04:00 |
|
naeel
|
7720a1cccc
|
fix: var rowsArr (v1.0.68)
|
2026-06-20 09:03:22 +04:00 |
|
naeel
|
8aa6a3a932
|
parser: POI (XWPFDocument/HWPFDocument) для DOCX/DOC + fallback ZIP/XML (v1.0.67)
|
2026-06-20 08:45:46 +04:00 |
|
naeel
|
9a08218cba
|
fix: q.getColumnNames() → listToArray(q.columnList) (v1.0.66)
|
2026-06-19 11:19:44 +04:00 |
|
naeel
|
e78bec8749
|
fix: String(c).toLowerCase() (v1.0.65)
|
2026-06-19 11:13:09 +04:00 |
|
naeel
|
84bded08b8
|
fix: r[ci] → r[c] (ROWS это объекты, не массивы) (v1.0.64)
|
2026-06-19 11:08:48 +04:00 |
|
naeel
|
9f67c77b95
|
fix: normalize COLUMNS to lowercase через toLowerCase() (v1.0.63)
|
2026-06-19 10:59:09 +04:00 |
|
naeel
|
27a43725cd
|
fix: COLUMNS uppercase → DOCUMENT_ID/ID/TYPE (v1.0.62)
|
2026-06-19 10:58:20 +04:00 |
|
naeel
|
b5be3f96c7
|
debug: console.log в refreshSupps (v1.0.61)
|
2026-06-19 10:51:47 +04:00 |
|
naeel
|
d406639954
|
fix: Lucee serializeJSON даёт UPPERCASE ключи, revert lowercase (v1.0.60)
|
2026-06-19 10:46:57 +04:00 |
|
naeel
|
59b1ad935d
|
fix: все CFML-ключи → lowercase в JS (v1.0.59)
|
2026-06-19 10:42:58 +04:00 |
|
naeel
|
eabe457258
|
fix refreshSupps: lowercase keys (api.cfm возвращает ok/rows/columns) (v1.0.58)
|
2026-06-19 10:36:55 +04:00 |
|
naeel
|
f99fae5a28
|
radio для выбора базового договора + api set_initial (v1.0.57)
|
2026-06-19 10:27:10 +04:00 |
|
naeel
|
bde4ccefea
|
revert: убрал SSE, вернул fetch + добавил skip/DELETE в extractor (v1.0.56)
|
2026-06-19 10:04:22 +04:00 |
|
naeel
|
30fa9d657a
|
CORS для SSE (v1.0.55)
|
2026-06-19 09:55:54 +04:00 |
|
naeel
|
a2507f24bf
|
SSE через ВМ (proxy_buffering off) + nginx config (v1.0.54)
|
2026-06-19 09:50:45 +04:00 |
|
naeel
|
c6108ead6d
|
SSE streaming: прогресс по каждому файлу во время LLM (v1.0.53)
|
2026-06-19 09:40:31 +04:00 |
|
naeel
|
f4a6ceb38b
|
topbar sticky + версия (v1.0.52)
|
2026-06-19 09:23:00 +04:00 |
|
naeel
|
398ef88fd8
|
fix: await prompt save before process.cfm (v1.0.51)
|
2026-06-19 09:22:43 +04:00 |
|
naeel
|
feae86b233
|
process.cfm: фильтр elements_json вместо parsed_text (parser не сохраняет parsed_text) (v1.0.50)
|
2026-06-19 08:52:06 +04:00 |
|
naeel
|
d6ca31251b
|
process.cfm: один запрос вместо N+1, skip already extracted, DELETE before INSERT, prompt fix (v1.0.49)
|
2026-06-19 08:48:29 +04:00 |
|
naeel
|
93a4aa9eb8
|
v1.0.47: deploy/sync.sh — синхронизация VM
|
2026-06-19 08:15:00 +04:00 |
|
naeel
|
3cb312ab64
|
v1.0.47: deploy/ — конвертер .doc + nginx прокси
|
2026-06-19 08:14:00 +04:00 |
|
naeel
|
92113c0374
|
v1.0.47: differ — начальный vs все допники (как Flask)
|
2026-06-19 08:07:21 +04:00 |
|
naeel
|
f03ba9160a
|
v1.0.46: промпт на сервере — extractor читает из БД, UI сохраняет
|
2026-06-19 07:49:51 +04:00 |
|
naeel
|
9d554dde47
|
v1.0.45: таймер прогресса LLM
|
2026-06-19 07:43:19 +04:00 |
|
naeel
|
72ee3d18e5
|
v1.0.44: DEFAULT_PROMPT — промпт по умолчанию
|
2026-06-19 07:40:51 +04:00 |
|
naeel
|
6fc85811b7
|
v1.0.43: превью текста + первые строки таблиц в модалке
|
2026-06-19 07:36:27 +04:00 |
|
naeel
|
836b0eca6b
|
v1.0.42: конвертация .doc через ВМ + парсер .doc
|
2026-06-19 07:26:36 +04:00 |
|
naeel
|
70e1ce8b98
|
v1.0.41: детали в модалке + ошибки парсера в статусе
|
2026-06-19 07:18:41 +04:00 |
|
naeel
|
75ebfb02fe
|
v1.0.40: UI — копия Flask llm.html (автозагрузка, парсинг, LLM, чат)
|
2026-06-19 07:14:47 +04:00 |
|
naeel
|
e2334d6ca7
|
v1.0.37: загрузка через прокси contracts.kube5s.ru/lucee/
|
2026-06-19 07:04:52 +04:00 |
|
naeel
|
a23ea0f049
|
v1.0.36: чанки 8KB — обход H2 бага
|
2026-06-18 21:41:29 +04:00 |
|
naeel
|
b2b148c1b7
|
v1.0.35: iframe + form-encoded base64
|
2026-06-18 21:26:18 +04:00 |
|
naeel
|
0a3ccdb973
|
v1.0.34: iframe-загрузка — обход HTTP/2 multiplexing
|
2026-06-18 21:22:03 +04:00 |
|
naeel
|
ddc3404556
|
v1.0.33: cfthread — мгновенный ответ + один запрос на все файлы
|
2026-06-18 21:12:30 +04:00 |
|
naeel
|
e20a50dc55
|
v1.0.32: убрать Connection: close + cache-buster URL
|
2026-06-18 21:04:19 +04:00 |
|
naeel
|
6891e4a805
|
v1.0.31: чтение всех файлов ДО отправки — разделение фаз
|
2026-06-18 21:02:15 +04:00 |
|
naeel
|
d3516f1454
|
v1.0.30: Connection: close — принудительно новая коннекция на каждый запрос
|
2026-06-18 20:57:11 +04:00 |
|
naeel
|
d42b2966af
|
v1.0.29: возврат последовательной загрузки (один запрос > nginx лимит)
|
2026-06-18 20:49:35 +04:00 |
|
naeel
|
17517e0e60
|
v1.0.28: один запрос на все файлы + ошибки блокируют ЛЛМ
|
2026-06-18 20:43:21 +04:00 |
|
naeel
|
fb8b53eed1
|
v1.0.27: задержка 300ms между загрузками
|
2026-06-18 19:54:50 +04:00 |
|
naeel
|
3489058ec2
|
v1.0.26: ошибка загрузки — в колонке Статус
|
2026-06-18 19:53:37 +04:00 |
|
naeel
|
bca1bba6d0
|
v1.0.25: загрузка JSON/base64 — без бинарного multipart
|
2026-06-18 19:49:57 +04:00 |
|
naeel
|
51b9566046
|
v1.0.24: детали ошибки в таблице Статус
|
2026-06-18 19:42:37 +04:00 |
|
naeel
|
10c4817198
|
v1.0.23: детальные ошибки загрузки + actions после upload
|
2026-06-18 19:38:34 +04:00 |
|
naeel
|
de090dba58
|
v1.0.22: чистая загрузка — без retry, timeout 120s
|
2026-06-18 19:31:22 +04:00 |
|
naeel
|
a6a1c70f41
|
v1.0.21: промпт на сервере (prompt.cfm + БД)
|
2026-06-18 19:26:57 +04:00 |
|
naeel
|
642705ebe6
|
v1.0.20: Полный цикл + промпт-редактор
|
2026-06-18 19:23:34 +04:00 |
|
naeel
|
73a3d28a88
|
v1.0.19: CORS chat.cfm
|
2026-06-18 19:00:55 +04:00 |
|
naeel
|
e3b3f55f10
|
v1.0.19: Nubes UI + CORS + favicon/logo + таблица как на ВМ
|
2026-06-18 19:00:35 +04:00 |
|
naeel
|
27068d92b8
|
v1.0.18: chat.cfm + UI (index.cfm — полный интерфейс)
|
2026-06-18 18:52:11 +04:00 |
|
naeel
|
fbe16c4826
|
v1.0.17: requesttimeout 120→180
|
2026-06-18 18:44:26 +04:00 |
|
naeel
|
4c9a01d68e
|
v1.0.16: requesttimeout 20→120 для LLM
|
2026-06-18 18:44:02 +04:00 |
|
naeel
|
595435adb2
|
v1.0.15: fix var в индексах циклов parser.cfm
|
2026-06-18 18:35:08 +04:00 |
|
naeel
|
9201e36304
|
v1.0.14: fix var scope — только в функциях
|
2026-06-18 18:28:46 +04:00 |
|
naeel
|
3cc519702f
|
v1.0.13: upload.cfm — contract_id для добавления допников
|
2026-06-18 18:22:52 +04:00 |
|
naeel
|
6de3ca3891
|
v1.0.12: parser.cfm — рефакторинг + ZIP (подпапки, PDF/DOCX)
|
2026-06-18 18:19:06 +04:00 |
|
naeel
|
c8605b3cb6
|
v1.0.11: differ.cfm — сравнение spec_rows между допниками
|
2026-06-18 18:13:33 +04:00 |
|
naeel
|
c04b2a2fe3
|
v1.0.10: fix cfhttp.statusCode сравнение (200 OK vs 200)
|
2026-06-18 18:05:14 +04:00 |
|
naeel
|
859b369b9f
|
v1.0.9: extractor.cfm — lowercase JSON keys + fix JSON parsing
|
2026-06-18 17:58:09 +04:00 |
|