2e6e4def87
Merge pull request 'docs(openspec): архив bridge-core ( #1 )' ( #3 ) from chore/1-archive-bridge-core into main
2026-10-12 20:52:02 +03:00
Andrey Epifancev
94a7b20b27
docs(openspec): архив bridge-core, спеки ядра моста в openspec/specs
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:48:52 +04:00
184c2fd944
Merge pull request 'feat: ядро моста Jira — хаб (bridge-core, #1 )' ( #2 ) from feat/1-bridge-core into main
2026-10-12 20:47:29 +03:00
Andrey Epifancev
1bc6ebe534
fix(mcp): batch_wait и refresh асинхронные, refresh по умолчанию без ожидания (R-12, I-3)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:11:18 +04:00
Andrey Epifancev
4f055a80d0
fix(api): PUT /settings проверяет значения до записи, 422 (I-5); убран мёртвый except, честное имя теста
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:09:45 +04:00
Andrey Epifancev
0dba6b7672
fix(queue): зависший определитель пропускает остаток своего пакета, очередь идёт дальше (R-13, I-4)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:08:57 +04:00
Andrey Epifancev
5a5914226f
fix(mirror): флаг neighbor не сбрасывается точечным refresh и ставится полным прогоном (I-2); комментарий про соединение
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:08:52 +04:00
Andrey Epifancev
a09b794302
fix(queue): ensure_issue не подтверждается по состоянию без автора (R-11, I-1); reconcile не затирает отчёт и отмену (M-1)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:07:52 +04:00
Andrey Epifancev
3c37e851e9
docs: рулинги R-11…R-13
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 23:06:24 +04:00
Andrey Epifancev
e221a18b46
test(hub): промежуточные ассерты сквозного прогона (T10.1–T10.4)
...
Проверяются: одна команда в полёте (второй claim пуст), зеркало не
пишется до /agent/state, заметка переезжает с new:60 на A-90, статус
пакета running с remaining_seconds > 0 между командами и done с 0 в конце,
связь проверяется по полям source_key/target_key/link_type.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 22:54:15 +04:00
Andrey Epifancev
181dd65958
test(hub): сквозной прогон очереди через HTTP с имитацией агента
...
Фикстура останавливает сервер (server_close, join потока), иначе
ResourceWarning о незакрытом сокете.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 22:51:11 +04:00
Andrey Epifancev
d7f82cb611
feat(hub): CLI, README, описание архитектуры
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 22:47:24 +04:00
Andrey Epifancev
f3ac1eb5c2
test(hub): MCP — опрос и потолок batch_wait, точные ассерты refresh/sync_log
...
_client() в batch_wait создаётся один раз перед циклом.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 22:35:41 +04:00
Andrey Epifancev
29f6b30752
docs: рулинг R-10
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 22:33:08 +04:00
Andrey Epifancev
cc0026bb1c
feat(hub): MCP-сервер — инструменты поверх HTTP API
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 22:32:23 +04:00
Andrey Epifancev
acbc19c7eb
fix(hub): импорт не затирает правки хаба пустыми ячейками CSV, весь импорт в транзакции
...
Пустая ячейка CSV не меняет существующее поле заметки; заметка без непустых полей не пишется,
но учитывается в счётчике как раньше. Импорт обёрнут в db.transaction (set_note — SAVEPOINT).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 22:29:08 +04:00
Andrey Epifancev
6216039526
docs: рулинг R-9
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 22:28:32 +04:00
Andrey Epifancev
47495fa5db
feat(hub): импорт CSV-пакета admin/jira-sync в заметки, сверка связей
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 22:26:06 +04:00
Andrey Epifancev
a67ce091e1
docs: рулинг R-8
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 22:25:02 +04:00
Andrey Epifancev
600163a9ee
fix(hub): типы полей тела запроса дают 422, а не 500
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 22:23:00 +04:00
Andrey Epifancev
34d5714898
fix(hub): проверка Content-Length и предел тела, тик автообновления, узкая обработка ошибок, тесты долгого claim
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 22:19:54 +04:00
Andrey Epifancev
2558248dc9
feat(hub): HTTP API — маршруты агента и интерфейсов, токены, долгий claim, клиент
...
Соединение SQLite на запрос, сравнение токенов в постоянное время,
400 на битый JSON и нечисловые параметры.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 22:15:59 +04:00
Andrey Epifancev
68b73439a6
fix(hub): сбой резервной копии не блокирует выдачу, SAVEPOINT для вложенных транзакций, настоящий тест исключительной выдачи
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 22:12:38 +04:00
Andrey Epifancev
f8867939d5
docs: рулинги R-6, R-7
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 22:12:19 +04:00
Andrey Epifancev
b41ab0ad25
feat(hub): очередь команд — пакеты, выдача, отчёты, отмена, сверка, автообновление, резервные копии
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 22:07:07 +04:00
Andrey Epifancev
f353d90ec6
feat(hub): вложенные транзакции присоединяются к внешней, db.utcnow и db.parse
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 22:07:07 +04:00
Andrey Epifancev
68018c3e5e
docs: рулинг R-5
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 22:06:16 +04:00
Andrey Epifancev
ccf519c9e7
fix(hub): подтверждение ensure_link с конфликтами и ensure_issue по автору и давности
...
check_confirmed для ensure_link: связь есть и нет конфликтов (другой тип между теми же задачами
или обратное направление любого типа). check_confirmed для ensure_issue: необязательный reporter,
сужает поиск по теме до задач этого автора. Тесты: конфликты, обратное направление при обоих
ключах в зеркале, давность 7 дней, фильтр по reporter, выбор самой новой из двух.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 22:03:59 +04:00
Andrey Epifancev
1fd64e974d
docs: рулинги R-3, R-4
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 22:03:17 +04:00
Andrey Epifancev
a19c1ca7e1
feat(hub): контракт команд — валидация, временные ключи, оценка, подтверждение по состоянию
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 22:00:08 +04:00
Andrey Epifancev
8314f2fb94
docs: рулинг R-2
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 21:59:26 +04:00
Andrey Epifancev
3394ddcf4c
fix(hub): транзакции в set_note и rename_note, сохранение заметки при равных ключах
...
rename_note: при old_key == new_key ранний выход (DELETE раньше стирал единственную заметку);
DELETE и UPDATE выполняются в транзакции.
set_note: чтение, слияние и запись в одной транзакции (соединение общее для потоков).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 21:57:25 +04:00
Andrey Epifancev
e981d62620
feat(hub): зеркало задач, связи, служебные заметки
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 21:53:13 +04:00
Andrey Epifancev
f082541566
feat(hub): настройки, токены, init из config.example.json
...
Модуль settings: значения по умолчанию, версия настроек, защищённые ключи,
перенос проектных настроек из config.example.json (учётные данные остаются у агента).
Фикстура tests/fixtures/config.example.json — копия admin/jira-sync/config.example.json.
.pytest_cache/ добавлен в .gitignore.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 21:50:46 +04:00
Andrey Epifancev
81850783d4
feat(hub): скелет пакета, схема SQLite, транзакции
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 21:41:00 +04:00
Andrey Epifancev
ff0f2d1077
docs: рулинг R-1
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 21:40:07 +04:00
Andrey Epifancev
0dcf0ac5cc
spec: hub-api — neighbor_keys в загрузке состояния
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Typ5sXWNMFirr2va2uL8o
2026-10-11 21:39:47 +04:00
Andrey Epifancev
464f5ec62b
plan: bridge-core — план реализации хаба (10 задач)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-11 21:35:21 +04:00
Andrey Epifancev
41a5ce9e5b
spec: уточнить подтверждение по состоянию по типам команд
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-11 20:45:42 +04:00
Andrey Epifancev
3a11c618a6
spec: bridge-core — мост Jira (хаб, очередь команд, агент, MCP, импорт)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-11 20:45:10 +04:00
Andrey Epifancev
5e0e3b2146
chore: bootstrap project skeleton (claude-harness)
2026-10-11 20:41:06 +04:00