v1.0.155: contractor submodule + session-11-summary

This commit is contained in:
“Naeel”
2026-06-23 16:01:53 +04:00
parent 0563adce35
commit 5e4e1656d8
2 changed files with 84 additions and 1 deletions
+83
View File
@@ -0,0 +1,83 @@
# Резюме для нового чата — contracts (contractor/Lucee)
Дата: 2026-06-23 | Версия в git: v1.0.152 | Версия на Lucee: v1.0.152 (после редеплоя)
---
## Архитектура
```
Браузер (contractor.luceek8s.dev.nubes.ru)
├── загрузка файлов → VM (contracts.kube5s.ru/upload)
│ Python convert_server.py, чанки 10KB → chunk.cfm → Lucee DB
├── парсинг: PDF→VM (PyPDF2), DOCX/DOC→Lucee (Apache POI через parser.cfm)
├── сравнение → VM SSE /process-v2 → LLM (gpt-oss-120b)
└── промпты → Lucee prompt.cfm (версионные, extract/diff)
```
**Компоненты:**
- Lucee 6.0 (CFML) на k8s — `contractor.luceek8s.dev.nubes.ru`
- VM Python 3 — `contracts.kube5s.ru` (5.172.178.213)
- PostgreSQL 15 — внутренний, БД `baza`
- LLM: gpt-oss-120b через api.aillm.ru (бесплатно, 8000 токенов)
- Nginx: `/upload`, `/process-v2`, `/unzip-upload`, `/convert-doc` → VM:8766
## Что сделано (v1.0.109 → v1.0.152)
### Успешно работает
- Upload через VM чанками (10KB) — обходит лимит Lucee k8s (~30KB)
- ZIP через /unzip-upload (VM)
- PDF парсинг через PyPDF2 на VM
- Prompts в БД с версионированием, редактор в UI
- Opus-улучшенные промпты (few-shot, глоссарий ЦОД)
- Provenance: prompt_version, source_document_id, raw_llm_response в spec_events
- ↕ стрелки для порядка файлов
- О сервисе — модальное окно
### Критические баги исправлены
- JS: UPPERCASE ключи Lucee (OK, BODY, VERSIONS, IS_ACTIVE...)
- JS: лишний `});` ломавший весь JS
- CORS: дубликаты заголовков на /upload и /unzip-upload
- chunk.cfm: `decode(base64)` для правильного хранения файлов
- parser.cfm: откачен к рабочей версии (PDF→VM, DOCX→Lucee POI)
## Текущее состояние (v1.0.152)
- VM: Python, чанки base64, PDF парсинг ✅
- Lucee: v1.0.152, parser.cfm рабочий, chunk.cfm с base64 ✅
- PDF: загрузка + парсинг работают ✅
- DOCX/DOC: должно работать после v1.0.152 (base64 fix) ✅
- Prompts: работают ✅
## Проблемы решённые сегодня
1. PDF upload: "Network Error" → chunked upload через VM (10KB чанки)
2. PDF parsing: PDFBox сломан → PyPDF2 на VM
3. DOCX storage: hex вместо base64 → base64 в chunk.cfm
4. CORS дубликаты → nginx только OPTIONS, VM — POST
5. JS uppercase keys → исправлено
## Правила (важно!)
- ⛔ НИКОГДА ничего не делать без «делай»
- После каждой правки: проверка синтаксиса (node --check для JS, py_compile для Python)
- После каждого изменения: bump версии в index.cfm
- Перед push: git diff, проверить всё
- Lucee требует ручного редеплоя через Nubes UI
- VM: scp + pkill + nohup для перезапуска
- curl к *.ngcloud.ru всегда с --http2 и --max-time
- Lucee serializeJSON → UPPERCASE ключи
- Lucee k8s лимит тела запроса ~30KB
- Документация в History/*.md
## Если что-то сломалось
1. Проверить git status в /home/naeel/nubes/contracts/contractor
2. Проверить версию на Lucee: curl --http2 --max-time 5 -s 'https://contractor.luceek8s.dev.nubes.ru/' | grep 'v1.0.'
3. Проверить VM: ssh -i ~/.ssh/naeel_vm_id_ed25519 naeel@5.172.178.213 'ps aux | grep convert'
4. Логи nginx: ssh ... 'sudo tail -20 /var/log/nginx/error.log'
5. Тест загрузки: curl --http2 -X POST 'https://contracts.kube5s.ru/upload' -F 'files=@file.pdf'
Submodule contractor updated: 34a34ee6d7...ee374171d8