Gros Frumos
7027252a84
kin: auto-commit after pipeline
2026-03-17 16:01:51 +02:00
Gros Frumos
6eea439c16
kin: KIN-ARCH-008 Конфигурируемая test_command на уровне проекта
2026-03-17 16:01:40 +02:00
Gros Frumos
18160de45e
kin: auto-commit after pipeline
2026-03-17 15:59:43 +02:00
Gros Frumos
396f5193d3
kin: auto-commit after pipeline
2026-03-17 15:49:37 +02:00
Gros Frumos
6c2da26b6c
kin: auto-commit after pipeline
2026-03-17 15:40:31 +02:00
Gros Frumos
01060c954e
kin: auto-commit after pipeline
2026-03-17 15:28:46 +02:00
Gros Frumos
cc4133f5ce
kin: auto-commit after pipeline
2026-03-17 14:52:04 +02:00
Gros Frumos
0346d50899
kin: auto-commit after pipeline
2026-03-17 14:34:16 +02:00
Gros Frumos
b6f40a6ace
kin: auto-commit after pipeline
2026-03-17 14:03:53 +02:00
Gros Frumos
04cbbc563b
kin: auto-commit after pipeline
2026-03-16 23:34:22 +02:00
Gros Frumos
0ccd451b4b
kin: KIN-091 Улучшения из исследования рынка: (1) Revise button с feedback loop, (2) auto-test before review — агент сам прогоняет тесты и фиксит до review, (3) spec-driven workflow для новых проектов — constitution → spec → plan → tasks, (4) git worktrees для параллельных агентов без конфликтов, (5) auto-trigger pipeline при создании задачи с label auto
2026-03-16 22:35:31 +02:00
Gros Frumos
1bf0125991
kin: KIN-095 При добавлении в среды серверов вылетает ошибка 500 Internal Server Error в модалке
2026-03-16 20:58:44 +02:00
Gros Frumos
8ebc6f1111
kin: KIN-BIZ-007 Post-MVP: шифрование credentials в project_environments через Fernet
2026-03-16 20:55:01 +02:00
Gros Frumos
47cb4ac91f
kin: KIN-FIX-007 Убрать --reload из uvicorn в продакшне
2026-03-16 20:44:01 +02:00
Gros Frumos
4a65d90218
kin: KIN-089 При попытке добавить креды прод сервера для проекта corelock вылетает 500 Internal Server Error
2026-03-16 20:39:17 +02:00
Gros Frumos
e80e50ba0c
kin: KIN-UI-005 Написать тесты для chat endpoints
2026-03-16 20:17:39 +02:00
Gros Frumos
a58578bb9d
kin: KIN-BIZ-006 Проверить промпт sysadmin.md на поддержку сценария env_scan
2026-03-16 19:26:51 +02:00
Gros Frumos
531275e4ce
kin: KIN-UI-003 Консистентная обработка ошибок в del() — использовать throwApiError
2026-03-16 17:44:49 +02:00
Gros Frumos
c67fa379b3
kin: KIN-080 Разобраться с KIN-FIX-003 и KIN-FIX-004, одна из задач уже выполнена, вторая берется в работу (руками завершаю) но в задаче не меняется текущий статус
2026-03-16 17:30:31 +02:00
Gros Frumos
bfc8f1c0bb
kin: KIN-083 Healthcheck claude CLI auth: перед запуском pipeline проверять что claude залогинен (быстрый claude -p 'ok' --output-format json, проверить is_error и 'Not logged in'). Если не залогинен — не запускать pipeline, а показать ошибку 'Claude CLI requires login' в GUI с инструкцией.
2026-03-16 15:48:09 +02:00
Gros Frumos
cb099030ce
kin: KIN-074 Попытка переключить review на auto приводит к 400 ошибке
2026-03-16 10:11:01 +02:00
Gros Frumos
e4566d51a6
kin: KIN-ARCH-007 Дочистить оставшиеся workaround path='' после KIN-ARCH-003
2026-03-16 10:08:50 +02:00
Gros Frumos
a28790d194
kin: KIN-073 Добавить поле acceptance_criteria в таблицу tasks. При создании задачи — отдельное поле описывающее что должно быть на выходе. PM получает acceptance_criteria и использует для проверки завершённости, не путает с текущим состоянием. GUI: textarea 'Критерии приёмки' в форме создания задачи. Tester и reviewer тоже получают acceptance_criteria для проверки.
2026-03-16 10:06:01 +02:00
Gros Frumos
ff69d24acc
kin: KIN-UI-002 Исправить падающие тесты миграции (регрессия KIN-ARCH-003) в core/db.py
2026-03-16 10:04:01 +02:00
Gros Frumos
7630736860
kin: KIN-ARCH-006 Добавить autocommit_enabled и obsidian_vault_path в базовый SCHEMA
2026-03-16 09:57:14 +02:00
Gros Frumos
295a95bc7f
kin: KIN-ARCH-003 Сделать path nullable для operations-проектов
2026-03-16 09:52:44 +02:00
Gros Frumos
39acc9cc4b
kin: KIN-BIZ-002 Исправить консистентность: approve через /tasks/{id}/approve не продвигает phase state machine
2026-03-16 09:47:56 +02:00
Gros Frumos
044bd15b2e
kin: KIN-BIZ-003 Обновить prompts/architect.md для режима 'last research phase'
2026-03-16 09:44:53 +02:00
Gros Frumos
ba04e7ad84
kin: KIN-ARCH-001 Добавить серверную валидацию ssh_host для operations-проектов
2026-03-16 09:44:31 +02:00
Gros Frumos
4188384f1b
kin: KIN-059 Workflow new_project с выбором команды. При создании нового проекта через GUI или CLI директор описывает проект свободным текстом и выбирает галочками какие этапы research нужны: ☐ Business analyst (бизнес-модель, аудитория, монетизация) ☐ Market researcher (конкуренты, ниша, отзывы, сильные/слабые стороны) ☐ Legal researcher (юрисдикция, лицензии, KYC/AML, GDPR) ☐ Tech researcher (API, ограничения, стоимость, альтернативы) ☐ UX designer (анализ UX конкурентов, user journey, wireframes) ☐ Marketer (стратегия продвижения, SEO, conversion-паттерны) ☐ Architect (blueprint на основе одобренных research'ей) — всегда последний Architect включается автоматически если выбран хотя бы один researcher. Каждый выбранный этап — отдельная задача на review. Директор одобряет, отклоняет, или просит доисследовать (Revise). Следующий этап только после approve предыдущего. GUI: форма 'New Project' с описанием + чекбоксы ролей + кнопка 'Start Research'. CLI: kin new-project 'описание' --roles 'business,market,tech,architect'
2026-03-16 09:30:00 +02:00
Gros Frumos
75fee86110
kin: KIN-071 Добавить тип проекта: development / operations / research. Для operations: вместо path к локальной папке — ssh-доступ (host, user, key, proxy or jump). При создании operations-проекта запускается sysadmin-агент который подключается по SSH, обходит сервер, составляет карту: какие сервисы запущены (docker ps, systemctl), какие конфиги где лежат, какие порты открыты, какие версии. Результат сохраняется в decisions и modules как база знаний по серверу. Код не хранится локально — агенты работают через SSH. PM для operations вызывает sysadmin/debugger, не architect/frontend_dev.
2026-03-16 09:17:42 +02:00
Gros Frumos
d9172fc17c
kin: KIN-016 Агенты должны уметь говорить 'не могу'. Если агент не может выполнить задачу (нет доступа, не понимает, выходит за компетенцию) — он должен вернуть status: blocked с причиной, а не пытаться угадывать. PM при получении blocked от агента — эскалирует к человеку через GUI (уведомление) и Telegram (когда будет).
2026-03-16 09:13:34 +02:00
Gros Frumos
a605e9d110
kin: KIN-070 При попытке запустить синк с обсидианом: Exported: 0 decisions Updated: 0 tasks Vault path does not exist or is not a directory: '/Users/grosfrumos/Library/Mobile Documents/iCloud~md~obsidian/Documents/myvault/kin'. Проверить задачу и добиться синхронизации.
2026-03-16 08:53:30 +02:00
Gros Frumos
71c697bf68
kin: KIN-070 Исправить sync с Obsidian: auto-create vault dir + корректный vault_path
...
- obsidian_sync.py: заменить проверку is_dir() на mkdir(parents=True, exist_ok=True)
вместо ошибки при отсутствующей директории — автоматически создаём её
- test_obsidian_sync.py: обновить тест #9 под новое поведение (директория создаётся)
- БД fix: исправлен obsidian_vault_path (убраны лишние кавычки и /kin суффикс),
теперь путь указывает на vault root, а не на подпапку проекта
Результат: Exported: 79 decisions, errors: []
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 08:50:52 +02:00
Gros Frumos
8007960332
kin: KIN-069 Frontend: цветные бейджи категорий и фильтр по категории в канбане
2026-03-16 08:41:24 +02:00
Gros Frumos
993362341b
kin: KIN-067 При попытке сохранить настройки и синхронизироваться с обсидианом через настройки ошибка 'Sync error: Error: 400 Bad Request'. Разобраться с проблемой. Синхронизация работает в обе стороны.
2026-03-16 08:38:49 +02:00
Gros Frumos
81f974e6d3
kin: KIN-OBS-009 Task ID по категориям: PROJ-CAT-NUM (VDOL-SEC-001, VDOL-UI-003, VDOL-API-002, VDOL-INFRA-001, VDOL-BIZ-001). PM назначает категорию при создании задачи.
2026-03-16 08:34:30 +02:00
Gros Frumos
d50bd703ae
kin: KIN-049 Кнопка Deploy на странице задачи после approve. Для каждого проекта настраивается deploy-команда (git push, scp, ssh restart). В Settings проекта.
2026-03-16 08:21:13 +02:00
Gros Frumos
01c39cc45c
kin: KIN-045 добавить в GUI третью кнопку Revise ( 🔄 ) рядом с Approve/Reject. Revise = вернуть задачу агенту с комментарием человека. Модалка с textarea 'что доисследовать/доработать'. Задача возвращается в in_progress, агент получает свой предыдущий output + комментарий директора и дорабатывает
2026-03-16 07:21:36 +02:00
Gros Frumos
4fd825dc58
kin: KIN-013 Настройки в GUI: страница Settings с конфигурацией проектов. Путь к Obsidian vault для синхронизации decisions/tasks/kanban. Двусторонний sync: decisions → Obsidian .md, Obsidian чекбоксы → tasks.
2026-03-16 07:19:59 +02:00
Gros Frumos
6b328d7f2d
kin: KIN-013 Obsidian sync + Revise UI (fixes и тесты)
...
- obsidian_sync.py: расширен regex для task ID с цифробуквенными префиксами ([A-Z][A-Z0-9]*-\d+)
- test_obsidian_sync.py: тест test_sync_updates_task_status обновлён под uppercase PROJ1-001
- TaskDetail.vue: добавлены revise() функция и Revise modal (отправить задачу на доработку)
- test_api.py: добавлены test_revise_task и test_revise_not_found
473/473 тестов проходят.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 07:17:54 +02:00
Gros Frumos
a48892d456
kin: KIN-008 Добавить возможность смены приоритетности и типа задачи руками из тасков
2026-03-16 07:15:04 +02:00
Gros Frumos
a0b0976d8d
kin: KIN-021 Аудит-лог для --dangerously-skip-permissions в auto mode
2026-03-16 07:13:32 +02:00
Gros Frumos
756f9e65ab
kin: KIN-054 Исправить race condition в loadMode() при инициализации ProjectView
2026-03-16 07:06:34 +02:00
Gros Frumos
ae21e48b65
kin: KIN-048 Post-pipeline hook: автокоммит после успешного завершения задачи. git add -A && git commit -m 'kin: TASK_ID TITLE'. Срабатывает автоматически как rebuild-frontend.
2026-03-16 06:59:46 +02:00
Gros Frumos
8a6f280cbd
day 1: Kin from zero to production - agents, GUI, autopilot, 352 tests
2026-03-15 23:22:49 +02:00
Gros Frumos
4a27bf0693
feat(KIN-012): UI auto/review mode toggle, autopilot indicator, persist project mode in DB
...
- TaskDetail: hide Approve/Reject buttons in auto mode, show "Автопилот активен" badge
- TaskDetail: execution_mode persisted per-task via PATCH /api/tasks/{id}
- TaskDetail: loadMode reads DB value, falls back to localStorage per project
- TaskDetail: back navigation preserves status filter via ?back_status query param
- ProjectView: toggleMode now persists to DB via PATCH /api/projects/{id}
- ProjectView: loadMode reads project.execution_mode from DB first
- ProjectView: task list shows 🔓 badge for auto-mode tasks
- ProjectView: status filter synced to URL query param ?status=
- api.ts: add patchProject(), execution_mode field on Project interface
- core/db.py, core/models.py: execution_mode columns + migration for projects & tasks
- web/api.py: PATCH /api/projects/{id} and PATCH /api/tasks/{id} support execution_mode
- tests: 256 tests pass, new test_auto_mode.py with 60+ auto mode tests
- frontend: vitest config added for component tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15 20:02:01 +02:00
Gros Frumos
3cb516193b
feat(KIN-012): auto followup generation and pending_actions auto-resolution
...
Auto mode now calls generate_followups() after task_auto_approved hook.
Permission-blocked followup items are auto-resolved: rerun first, fallback
to manual_task on failure. Recursion guard skips followup-sourced tasks.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15 19:49:34 +02:00
Gros Frumos
01b269e2b8
feat(KIN-010): implement rebuild-frontend post-pipeline hook
...
- scripts/rebuild-frontend.sh: builds Vue 3 frontend and restarts uvicorn API
- cli/main.py: hook group with add/list/remove/logs/setup commands;
`hook setup` idempotently registers rebuild-frontend for a project
- agents/runner.py: call run_hooks(event="pipeline_completed") after
successful pipeline; wrap in try/except so hook errors never block results
- tests: 3 tests for hook_setup CLI + 3 tests for pipeline→hooks integration
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15 19:17:42 +02:00
Gros Frumos
6705b302f7
test(KIN-005): parameterize task status update test for all valid statuses
...
Expand test_task_update_status to test all 7 valid statuses including
'cancelled' via CLI. Each status now has its own test case through
pytest parametrization.
Test suite now: 208 → 214 tests (all passing ✓)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-15 18:48:16 +02:00