[report] Автономное тестирование стенда — подробный отчёт (агенты, стадии, находки, real-vs-false, предложения) #217
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
gitmost QA мета-отчёт — git-sync + UI smoke / состязательный проход
Stand: Docmost fork с нативным двусторонним git-sync. UI на :5173, API + git smart-HTTP на :3000. В пространстве "General" (019f01fd-...) git-sync включён. AI-провайдер намеренно НЕ настроен. Build ~v0.93.0-275-g937f04b7.
Method: skill web-test-orchestrator — фазовый recon -> charter'ы по слайсам -> исполнение в виде персон -> oracle FEW HICCUPPS + дешёвые сигналы (console errors, HTTP 4xx/5xx, failed requests, пустые страницы) -> независимый Doer-Verifier проход. Жёстко соблюдались правила: EVIDENCE BEFORE CLAIM (доказательство до утверждения) и DISCONFIRM BY DEFAULT (опровергай по умолчанию — reload-to-test-persistence).
1. Headline numbers
Суть этого прохода: оболочка UI чистая (ноль console errors / ноль 4xx-5xx на каждом аутентифицированном экране). Реальный риск сконцентрирован в сходимости git-sync ↔ живой редактор: три независимых пути тихой потери данных severity HIGH, все растущие из одного механизма — Yjs-документ открытого редактора в браузере никогда не сходится с git ingest, и его устаревший autosave побеждает.
2. Какие агенты отработали и как прошла каждая стадия
Recon (1 агент). Залогинился, прошёл /home, /s/general, редактор, поиск Ctrl+K, все вкладки Settings со слушателями console/response/requestfailed. Outcome: чистый baseline (только безобидный jotai-warning о deprecation
atomFamily) плюс карта маршрутов с ожидаемыми pre-login 401 и legacy-deeplink 404. Также поймал первый намёк на поведение debounce у git-sync (транзиентный_.md). Хорошее скоупирование; корректно классифицировал собственный шум (pre-auth probes) как не-баги.6 тестеров слайсов:
_.md(REAL, low), flushSync (REAL, но неверно заскоупен), title-drop (FALSE — гонка инструментария). 2 real / 2 partial-or-false._.md(dup) + flushSync (REAL). Сильный, богатый доказательствами.Verifier pass (Doer-Verifier). Независимо перепрогнал каждую находку. Именно здесь skill себя оправдал: он убил 4 false positives (включая HIGH "Restore broken", который сожрал бы время владельца), исправил формулировку churn-находки (коммиты НЕ no-ops — они несут диф бага дублирования; просто сообщение неверно считает страницы) и переопределил скоуп flushSync-заявления. Также подтвердил каждый реальный баг потери данных с корневой причиной на уровне кода и контролями editor-open vs editor-closed. Честность verifier'а была высокой (например, пометил собственный поток ERR_INSUFFICIENT_RESOURCES и 429 как артефакты инструментария).
3. Dedup map (кто-что-нашёл)
_.md— editor-content tester + git-roundtrip-tester. Смержено → 1 реальная low git-sync находка.4. Единственный фикс, который важнее всего
Все три HIGH-бага имеют общую корневую причину в
gitmost-datasource.service.ts(writeBody / collabGateway.openDirectConnection / mergeXmlFragments3Way): git ingest пишет серверный Y.Doc, но не сходится с in-memory Yjs-документом подключённого редактора в браузере и не даёт живого broadcast обратно в открытую комнату. Цепочка последствий: открытый редактор остаётся устаревшим → его следующий autosave затирает git-правку → PULL пушит затёртое тело обратно в vault как коммитdocmost: sync→ тихая потеря данных, при том что push рапортует успех. Баг дублирования в начале документа — это отдельная неидемпотентность реконсиляции, но именно он гонит churn коммитов и push-rejections. Починка сходимости + идемпотентности начала документа нейтрализует 5 из 7 git-sync находок.5. Пробелы покрытия и заметки о честности
6. Improvement suggestions для этого QA-процесса / skill
git diff HEAD~1 HEAD— судить по дифу дерева, никогда по сообщению.focus()+ ожиданием готовности элемента, прежде чем пройти дальше speculative.BUG: refs/files-backend.cбыл артефактом устаревшего клиента. Записыватьgit --versionв доказательства каждой git-sync находки, чтобы клиентский шум отличался от серверных дефектов.Найденные git-sync баги (вынесены в фиксы на feat/git-sync)
False positives (убиты verifier-проходом)
🤖 web-test-orchestrator (multi-agent QA)