naeel
|
b5d35f57fc
|
v1.0.174: reset/list_pending без фильтра status=parsed
|
2026-06-24 15:21:17 +04:00 |
|
naeel
|
e939c320cc
|
v1.0.174: classify_batch сбрасывает статус на pending — работает после удаления файлов
|
2026-06-24 15:17:45 +04:00 |
|
naeel
|
592041ab89
|
v1.0.174: 'файлов не распознано' вместо 'не распознано'
|
2026-06-24 15:13:32 +04:00 |
|
naeel
|
70a7c8bfb4
|
v1.0.174: /api/sync — БД = зеркало таблицы, удаление ВСЕГО кроме keep_ids
|
2026-06-24 15:11:57 +04:00 |
|
naeel
|
b19e6ba06e
|
v1.0.174: fix groups count — не считаем __unresolved__ за группу
|
2026-06-24 15:03:17 +04:00 |
|
naeel
|
b325a6b2c2
|
v1.0.174: sync-batch — удаление мусора после загрузки, DELETE /api/documents/<id>
|
2026-06-24 14:59:46 +04:00 |
|
naeel
|
7538c0a5c9
|
v1.0.174: fix FK cascade in delete_by_document — spec_current → spec_events → supplement → document
|
2026-06-24 14:50:31 +04:00 |
|
naeel
|
ef4536a437
|
v1.0.174: classify tab in prompts UI — activePromptId + openPromptModal
|
2026-06-24 14:43:22 +04:00 |
|
naeel
|
cf4fc016bd
|
v1.0.174: fix \n → real newlines в seed-промптах (parameterized queries)
|
2026-06-24 14:40:38 +04:00 |
|
naeel
|
f693acce6f
|
v1.0.174: пояснения 'для чего' к кнопкам промптов
|
2026-06-24 14:33:58 +04:00 |
|
naeel
|
c98f190cbc
|
v1.0.173: О сервисе в топбар, новый контент — инструкция без упоминания Lucee/VM
|
2026-06-24 14:32:36 +04:00 |
|
naeel
|
9cc6e43868
|
v1.0.172: вкладка classify в редакторе промптов
|
2026-06-24 14:29:36 +04:00 |
|
naeel
|
b49523677c
|
v1.0.171: detailed SSE results for group compare
|
2026-06-24 14:07:31 +04:00 |
|
naeel
|
cbdfc7a8c1
|
v1.0.171: ▶ Сравнить группу via SSE + classify timer/progress
|
2026-06-24 13:55:22 +04:00 |
|
naeel
|
e0cff8d85f
|
v1.0.170: green dot instead of checkmark for active prompt
|
2026-06-24 13:49:43 +04:00 |
|
naeel
|
7cbfdc9589
|
v1.0.170: show prompt notes in history
|
2026-06-24 13:47:23 +04:00 |
|
naeel
|
6f2c0fd910
|
v1.0.170: simple text buttons — активировать / удалить
|
2026-06-24 13:45:20 +04:00 |
|
naeel
|
c21a50cd14
|
v1.0.170: clear activate/delete buttons with lucide icons
|
2026-06-24 13:43:37 +04:00 |
|
naeel
|
15bd4ad322
|
v1.0.170: fix prompts list — datetime serialization
|
2026-06-24 13:32:13 +04:00 |
|
naeel
|
e2348eaf4e
|
v1.0.170: remove fake drag-drop text
|
2026-06-24 13:28:02 +04:00 |
|
naeel
|
1aa22767ef
|
v1.0.170: допник → допсоглашение
|
2026-06-24 13:19:08 +04:00 |
|
naeel
|
d848caacb2
|
v1.0.170: UI — Общее сравнение, Классификация и группы, пояснения для нераспознанных
|
2026-06-24 13:17:50 +04:00 |
|
naeel
|
abba9c4f1d
|
v1.0.169: prompts CRUD via VM API — /api/prompts, no more prompt.cfm dependency
|
2026-06-24 10:27:59 +04:00 |
|
naeel
|
dd558e00e7
|
v1.0.168: detailed О сервисе — architecture, pipeline, Event Sourcing, security
|
2026-06-24 10:22:41 +04:00 |
|
naeel
|
115e71b2a1
|
v1.0.167: fix grouping dead code (classified→docs) + max_tokens 500→1000
|
2026-06-24 09:35:42 +04:00 |
|
naeel
|
49c472b46d
|
v1.0.166: aggressive JSON repair — close unterminated strings/braces
|
2026-06-24 09:14:07 +04:00 |
|
naeel
|
d0326ee9ce
|
v1.0.166: fix missing _smart_extract function
|
2026-06-24 09:09:26 +04:00 |
|
naeel
|
c2c92d0a37
|
v1.0.166: classify prompt v2 (LLM-suggested) + safe JSON parse with auto-repair
|
2026-06-24 09:04:31 +04:00 |
|
naeel
|
fe1f76fa1d
|
v1.0.165: app_utils.js + detailed comments (Opus analysis) in classify/grouping/connection
|
2026-06-24 08:46:40 +04:00 |
|
naeel
|
d86a369d2b
|
v1.0.164: remove ↕ column — auto-classify determines order
|
2026-06-24 08:41:15 +04:00 |
|
naeel
|
8a5d93a5c7
|
v1.0.163: classify UI — batch_id, Классифицировать button, group cards
|
2026-06-24 08:27:29 +04:00 |
|
naeel
|
eb98790802
|
v1.0.162: /api/classify-batch + batch_id UUID validation
|
2026-06-24 08:23:40 +04:00 |
|
naeel
|
7a96f5b95b
|
v1.0.162: auto-classify backend — classify/grouping services, 7 new columns, /classify-batch, /api/groups, /apply-groups
|
2026-06-24 08:22:21 +04:00 |
|
naeel
|
740f75a791
|
v1.0.161: cgi.FieldStorage for UTF-8 filenames
|
2026-06-23 21:09:27 +04:00 |
|
naeel
|
e4cbc59f7e
|
v1.0.161: LLM_KEY fallback to LLM_API_KEY
|
2026-06-23 21:02:33 +04:00 |
|
naeel
|
c74be9782a
|
v1.0.161: nginx /api/ → Python :8766
|
2026-06-23 18:58:08 +04:00 |
|
naeel
|
15ea2325da
|
v1.0.161: fix app.js — remove HTML tags, parseInfo lowercase keys
|
2026-06-23 18:01:46 +04:00 |
|
naeel
|
ca01247fc0
|
v1.0.160: bump version
|
2026-06-23 17:49:40 +04:00 |
|
naeel
|
493d75e51a
|
v1.0.159: /static/app.js (nginx location / matches)
|
2026-06-23 17:30:25 +04:00 |
|
naeel
|
4b0e5c04de
|
v1.0.159: fix app.js path
|
2026-06-23 17:23:26 +04:00 |
|
naeel
|
9b23148c16
|
v1.0.159: SO_REUSEADDR + app.js via Python
|
2026-06-23 17:17:58 +04:00 |
|
naeel
|
79b6554316
|
v1.0.159: serve app.js via Python (nginx alias not working)
|
2026-06-23 17:16:23 +04:00 |
|
naeel
|
04ca79a489
|
v1.0.159: JS extracted to app.js on VM — Lucee is now HTML shell only (191 lines)
|
2026-06-23 17:15:03 +04:00 |
|
naeel
|
a788e9e23d
|
v1.0.158: fix r.OK→r.ok (Python lowercase) + add /convert-doc endpoint
|
2026-06-23 17:00:49 +04:00 |
|
naeel
|
ddc0a8b42d
|
v1.0.157: VM API /api/supplements + /api/documents — index.cfm no longer calls Lucee api.cfm
|
2026-06-23 16:40:19 +04:00 |
|
naeel
|
3a93c48907
|
v1.0.156: fix index.cfm — lowercase Python API keys, no parser.cfm calls
|
2026-06-23 16:17:31 +04:00 |
|
naeel
|
ee374171d8
|
v1.0.155: VM PostgreSQL + modular db/ & services/ — Lucee stays SPA shell only
|
2026-06-23 16:01:26 +04:00 |
|
naeel
|
568758a23c
|
v1.0.154: overwrite existing file on re-upload (same filename+contract → DELETE old before INSERT)
|
2026-06-23 15:34:51 +04:00 |
|
naeel
|
17742d51b4
|
v1.0.153: fix double base64 decode — chunk.cfm stores base64 string, parser.cfm decodes it
|
2026-06-23 15:26:51 +04:00 |
|
naeel
|
e0d7346080
|
v1.0.152: bump version
|
2026-06-23 15:15:27 +04:00 |
|
naeel
|
0d266d43c2
|
v1.0.152: base64 chunks (parser expects base64)
|
2026-06-23 15:11:52 +04:00 |
|
naeel
|
cdaee4509d
|
v1.0.151: bump version
|
2026-06-23 15:01:06 +04:00 |
|
naeel
|
f7cecc6ce3
|
v1.0.151: fix chunk assemble — decode hex to binary before storing
|
2026-06-23 12:45:12 +04:00 |
|
naeel
|
3c05acd338
|
v1.0.150: bump version + revert parser.cfm
|
2026-06-23 12:42:00 +04:00 |
|
naeel
|
2e15228160
|
v1.0.150: revert parser.cfm to working v1.0.144 (PDF→VM, DOCX→Lucee POI)
|
2026-06-23 12:37:44 +04:00 |
|
naeel
|
34a34ee6d7
|
v1.0.149: bump version
|
2026-06-23 12:24:52 +04:00 |
|
naeel
|
9351347a11
|
v1.0.149: VM parses PDF + stores elements_json in Lucee
|
2026-06-23 12:22:05 +04:00 |
|
naeel
|
2399b01a26
|
v1.0.148: PDF parsing via PyPDF2 on VM (replaces broken PDFBox on Lucee)
|
2026-06-23 12:18:48 +04:00 |
|
naeel
|
6c288b2b0e
|
v1.0.147: bump version
|
2026-06-23 12:11:25 +04:00 |
|
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 |
|