naeel
|
ea3299df80
|
v1.0.147: PDFBox — load(byte[]) instead of streams/files
|
2026-06-23 12:09:37 +04:00 |
|
naeel
|
73b647f58d
|
v1.0.146: PDFBox — use PDFParser instead of PDDocument.load
|
2026-06-23 12:08:10 +04:00 |
|
naeel
|
bf25600f56
|
v1.0.145: PDFBox — write to temp file, load via File
|
2026-06-23 12:03:46 +04:00 |
|
naeel
|
a6c2c58948
|
v1.0.144: fix PDFBox — use ByteArrayInputStream for PDDocument.load + bump version
|
2026-06-23 12:00:38 +04:00 |
|
naeel
|
bb44378ad8
|
v1.0.144: fix duplicate CORS /upload
|
2026-06-23 11:55:20 +04:00 |
|
naeel
|
064774e020
|
v1.0.143: chunked upload 10KB — restore after Lucee limit still ~30KB
|
2026-06-23 11:42:08 +04:00 |
|
naeel
|
800ae657f6
|
v1.0.142: direct upload — one piece, Lucee k8s limits increased
|
2026-06-23 11:33:21 +04:00 |
|
naeel
|
9b11b62b7f
|
v1.0.141: verify=False + nginx 300s timeout for chunked upload
|
2026-06-23 10:10:02 +04:00 |
|
naeel
|
6b984d5a13
|
v1.0.140: larger chunks 20KB to reduce TLS overhead
|
2026-06-23 09:16:28 +04:00 |
|
naeel
|
d493d77017
|
v1.0.139: separate HTTP/2 client per chunk (Lucee resets stream)
|
2026-06-23 09:14:05 +04:00 |
|
naeel
|
948ec626c9
|
v1.0.138: single httpx client for all chunks
|
2026-06-23 09:12:21 +04:00 |
|
naeel
|
f04f698bd8
|
v1.0.137: fix chunk upload — use httpx.Client(http2=True) for ddos-guard
|
2026-06-23 09:11:34 +04:00 |
|
naeel
|
efc270bdf3
|
v1.0.136: chunked upload via chunk.cfm — 12KB chunks avoid Lucee body limit
|
2026-06-23 09:09:38 +04:00 |
|
naeel
|
ec842abb92
|
v1.0.135: fix HTTP header order — send_response before _send_cors
|
2026-06-23 09:06:04 +04:00 |
|
naeel
|
21914d1763
|
v1.0.134: ALL uploads through VM — /upload proxy avoids Lucee multipart crash
|
2026-06-23 09:04:47 +04:00 |
|
naeel
|
9c7a5a9975
|
v1.0.133: full about modal + fix slang in History
|
2026-06-23 08:59:10 +04:00 |
|
naeel
|
76dcc07dce
|
v1.0.132: fix — дополнительный документ everywhere
|
2026-06-23 08:54:11 +04:00 |
|
naeel
|
7897574366
|
v1.0.131: fix — дополнительный документ
|
2026-06-23 08:53:12 +04:00 |
|
naeel
|
b807480bdd
|
v1.0.130: about modal — service description, fix slang (допник→допсоглашение)
|
2026-06-23 08:52:40 +04:00 |
|
naeel
|
9f1de520e5
|
v1.0.128: temporarily remove .zip from accepted types until CORS debugged
|
2026-06-23 08:49:19 +04:00 |
|
naeel
|
086c46f8e6
|
v1.0.127: ZIP — XHR.send(file) instead of fetch, same pattern as working uploads
|
2026-06-23 08:45:59 +04:00 |
|
naeel
|
2f066e74e0
|
v1.0.126: fix duplicate CORS — nginx only for OPTIONS, VM for POST response
|
2026-06-23 08:42:39 +04:00 |
|
naeel
|
4f66853447
|
v1.0.125: Sonnet fix — CORS inside nginx if, raw binary ZIP, multipart fallback
|
2026-06-23 08:36:42 +04:00 |
|
naeel
|
402c346021
|
v1.0.124: fix ZIP multipart — email.parser instead of buggy cgi.FieldStorage
|
2026-06-23 08:25:30 +04:00 |
|
naeel
|
bb2811abb0
|
v1.0.123: fix ZIP — cgi.FieldStorage for multipart, CORS on all responses, revert Lucee unzip
|
2026-06-23 08:24:35 +04:00 |
|
naeel
|
f19e0c970f
|
v1.0.122: ZIP unzip in Lucee (unzip.cfm) — no CORS, FileReader→base64→same-origin POST
|
2026-06-23 08:19:09 +04:00 |
|
naeel
|
20e1e0dcb8
|
v1.0.121: fix ZIP — hex-encode file content for PostgreSQL bytea
|
2026-06-23 08:10:38 +04:00 |
|
naeel
|
b20ec58aff
|
v1.0.120: fix ZIP — use FormData on client, parse multipart on VM
|
2026-06-23 08:09:05 +04:00 |
|
naeel
|
5c6fe0da00
|
v1.0.119: fix ZIP — use absolute UNZIP_URL (was relative path → 404)
|
2026-06-23 08:05:17 +04:00 |
|
naeel
|
ebe35dce42
|
v1.0.118: ZIP upload — unzip on VM, add files to queue individually, flat structure only
|
2026-06-23 08:01:04 +04:00 |
|
naeel
|
0944a4c9d1
|
v1.0.117: fix orphaned }); that broke all JS execution
|
2026-06-23 07:37:18 +04:00 |
|
naeel
|
d75f98f842
|
v1.0.116: fix JS — Lucee UPPERCASE keys (ok→OK, body→BODY, versions→VERSIONS, etc.)
|
2026-06-23 07:35:34 +04:00 |
|
naeel
|
93428c9dbe
|
v1.0.115: Opus-improved prompts — few-shot + domain glossary + edge-cases for extract & diff
|
2026-06-23 07:25:59 +04:00 |
|
naeel
|
bd45559b36
|
v1.0.114: source_document_id + raw_llm_response in spec_events — full Opus provenance
|
2026-06-23 07:14:34 +04:00 |
|
naeel
|
b75b206bfe
|
v1.0.113: prompt_version in spec_events — provenance (who created what with which prompt)
|
2026-06-23 07:08:23 +04:00 |
|
naeel
|
534f90a529
|
v1.0.112: fix Lucee UPPERCASE keys in _fetch_prompt (OK→ok, BODY→body)
|
2026-06-23 07:05:29 +04:00 |
|
naeel
|
38f580e658
|
v1.0.111: llm_prompt.py reads active prompt from DB via Lucee API, fallback to hardcoded
|
2026-06-23 07:03:35 +04:00 |
|
naeel
|
69cfb3457b
|
v1.0.110: prompts versioning — DB schema + API + UI (extract/diff tabs, history, activate)
|
2026-06-23 01:06:12 +04:00 |
|
naeel
|
ded5071dae
|
v1.0.109: ↕ arrows replace Базовый radio, order param in SSE, setInitial removed
|
2026-06-23 00:43:33 +04:00 |
|
naeel
|
acec6729b6
|
v1.0.108: advisory lock + NFKC + ID-суррогаты + обогащение ops именами
|
2026-06-23 00:17:41 +04:00 |
|
naeel
|
9deee2af64
|
v1.0.107: bump версии
|
2026-06-22 11:59:32 +04:00 |
|
naeel
|
d7bdd15b3a
|
v1.0.107: fix — cf_sql_varchar для last_event_id (PostgreSQL не кастит char к uuid)
|
2026-06-22 11:59:16 +04:00 |
|
naeel
|
200e86949d
|
v1.0.106: bump версии
|
2026-06-22 11:45:34 +04:00 |
|
naeel
|
98374f67a9
|
v1.0.106: fix — убрал запятую после последнего cfqueryparam в ADD
|
2026-06-22 11:45:18 +04:00 |
|
naeel
|
bb7fd6bbf1
|
Revert "ВРЕМЕННЫЙ ОТКАТ к v1.0.91 — для проверки деплоя. Вернуть через revert."
This reverts commit c4fe57c908.
|
2026-06-22 09:08:26 +04:00 |
|
naeel
|
c4fe57c908
|
ВРЕМЕННЫЙ ОТКАТ к v1.0.91 — для проверки деплоя. Вернуть через revert.
|
2026-06-22 09:06:06 +04:00 |
|
naeel
|
c2a189cc31
|
Revert "v1.0.105: bump версии"
This reverts commit e4524f9e85.
|
2026-06-22 08:57:54 +04:00 |
|
naeel
|
e4524f9e85
|
v1.0.105: bump версии
|
2026-06-22 08:51:02 +04:00 |
|
naeel
|
73a925bc25
|
v1.0.105: проверка ответа reset_contract
|
2026-06-22 08:50:49 +04:00 |
|
naeel
|
9e06364ae4
|
v1.0.104: bump версии
|
2026-06-22 08:36:48 +04:00 |
|
naeel
|
c9a1f608ca
|
v1.0.104: reset_contract + идемпотентность — очистка перед сравнением
|
2026-06-22 08:35:54 +04:00 |
|
naeel
|
82e587613e
|
v1.0.103: bump версии
|
2026-06-22 08:15:15 +04:00 |
|
naeel
|
bb891afdea
|
v1.0.103: шаги 10+11 — массовый INSERT full_replace + UUID тип last_event_id
|
2026-06-22 08:14:53 +04:00 |
|
naeel
|
9a8c41637b
|
v1.0.102: bump версии
|
2026-06-22 08:13:48 +04:00 |
|
naeel
|
150c1d6a09
|
v1.0.102: шаг9 — UNRESOLVED вместо cfthrow при UPDATE target not found
|
2026-06-22 08:13:13 +04:00 |
|
naeel
|
54a1665a8b
|
v1.0.101: шаг8 — batch SELECT для UPDATE вместо N+1
|
2026-06-22 08:12:22 +04:00 |
|
naeel
|
2ab0840011
|
v1.0.100: bump версии
|
2026-06-22 07:52:12 +04:00 |
|
naeel
|
606ab596a1
|
v1.0.100: fix — убрал FOR UPDATE (несовместим с MAX)
|
2026-06-22 07:51:56 +04:00 |
|
naeel
|
c195844466
|
v1.0.99: шаг7 — isNumeric валидация price/qty/sum
|
2026-06-22 07:50:38 +04:00 |
|
naeel
|
aa16b12d53
|
v1.0.98: bump версии
|
2026-06-22 07:49:08 +04:00 |
|
naeel
|
1315838507
|
v1.0.98: шаг6 — elements_json double-decode fix
|
2026-06-22 07:48:01 +04:00 |
|
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 |
|