meta(tasks): create [setup-agents-task-runner-windows-fixes] in OpeItcLoc03/claude-skills
This commit is contained in:
@@ -1346,3 +1346,46 @@ Findings → follow-up tasks в claude-skills.
|
||||
<!-- closed-by: vitya@claude-skills:clean-session / 2026-06-17 / fix shipped — OutputEncoding=UTF8 forward-guard in inbox-monitor.ps1, WinPS-5.1 Cyrillic-path regression PASS, deployed byte-identical (SHA256 parity), SKILL.md v0.2.2 PATCH -->
|
||||
|
||||
---
|
||||
|
||||
## ⚪ [setup-agents-task-runner-windows-fixes] — Починить `setup-agents-task-runner` по итогам первого реального Windows-прогона. Скил v0.1.0 устанавливал, но службы вставали сломанными — 5 дефектов, все диагностированы и воркэраунд-починены в `OpeItcLoc03/common` dev-шаблонах. Нужно перенести в SKILL.md, чтобы fresh-install на новой машине работал без ручной отладки.
|
||||
|
||||
## Дефекты (с проверенными фиксами)
|
||||
|
||||
1. **winsw serviceaccount: v3-схема при v2.12.0 пине.** Шаблоны использовали `<username>.\{{USER}}</username>` + `<allowservicelogonright>` — это схема winsw **v3**. Пин — v2.12.0, который **молча игнорит** незнакомые элементы → служба падает на **LocalSystem** (без ошибки!). Эталон из `sample-allOptions.xml` v2.12.0: `<domain>` + `<user>` + `<allowservicelogon>`. Фикс в common: коммит 681fcda. → Skill: serviceaccount-блок шаблонов привести к v2-схеме; добавить заметку «схема обязана совпадать с major пина winsw».
|
||||
|
||||
2. **projects-meta-mcp не разворачивается в install-layout.** appeals импортит `projects-meta-mcp/dist/...` (bare, через `file:../projects-meta-mcp` junction); watchdog — `../../../projects-meta-mcp/dist/...` (относит. путь, ждёт соседа install-dir). Phase 4 копирует appeals/runner изолированно → npm-junction виснет на несуществующий `%LOCALAPPDATA%\projects-meta-mcp` → ERR_MODULE_NOT_FOUND краш-луп. → Skill Phase 4: добавить шаг — развернуть `projects-meta-mcp` соседом install-dir (junction на dev-дерево либо deploy-копия) + перенаправить appeals node_modules junction. На этой машине решено единым junction `%LOCALAPPDATA%\projects-meta-mcp` → dev-дерево (согласовано с тем, что TASKS_BIN уже ссылается на dev-дерево).
|
||||
|
||||
3. **PORT 3000 — коллизия с дев-портом.** Раннер сидел на 3000 (Next/CRA/Express default) — фоновая autostart-служба не должна его занимать. Перенесён на 4316 (рядом с appeals :4317) во всех хост-юнитах (winsw/systemd/launchd) + watchdog TASK_RUNNER_URL. Docker-внутренний 3000 не трогали. Коммит 211d662. → Skill/README: дефолт хост-порта 4316.
|
||||
|
||||
4. **Home-резолюция под службой.** Пока служба была LocalSystem, `os.homedir()` давал `C:\WINDOWS\system32\config\systemprofile` → `auth.toml` не находился. На этой машине добавлен `<env USERPROFILE>`/`<env HOME>` в РЕНДЕРЕННЫЕ XML (не в dev-шаблоны). После фикса run-as-user (деф.1) проблема снимается сама (USERPROFILE берётся из токена vitya). → Skill: решить — полагаться на run-as-user ИЛИ для надёжности добавить USERPROFILE env в шаблоны (протестировать на fresh-машине без загруженного профиля).
|
||||
|
||||
5. **Phase 8 не ловил LocalSystem.** Скил считал успехом «службы Running» — но они прекрасно бежали как LocalSystem (благодаря env-хаку). → Skill Phase 8: ассертить `SERVICE_START_NAME`/`StartName` == целевой юзер, а не только Running. Проверка порта (нет 3000-коллизии) тоже.
|
||||
|
||||
Мелочь: PIN.md стух (`.NET Framework 4.6.1` — на деле self-contained .NET Core, 18 МБ; .NET461 — отдельный ассет). Фикс 31bd5a9.
|
||||
|
||||
## Acceptance
|
||||
- Fresh Windows-установка через обновлённый скил даёт 3 службы **run-as-user** (не LocalSystem), на не-дев портах, все отвечают по HTTP — БЕЗ ручной правки junction/схемы/порта.
|
||||
- Phase 8 скила реально ассертит аккаунт + порты.
|
||||
- Линукс/мак-ветки проверены на тот же класс (sibling-deploy, схема юнитов) — winsw-специфична только деф.1.
|
||||
|
||||
## Обязательные скилы — вызвать до начала работы
|
||||
|
||||
- invoke `using-tasks` — управление статусом задачи
|
||||
- invoke `project-discipline` — semver-bump SKILL.md (это versioned-артефакт) + дисциплина коммитов/пушей
|
||||
- invoke `writing-skills` — правка скила по канону
|
||||
- invoke `using-projects-meta` — кросс-проектный контекст (фиксы живут в OpeItcLoc03/common)
|
||||
|
||||
**Контекст:** проверенные фиксы и эталон-схема — в `OpeItcLoc03/common` (коммиты 681fcda / 211d662 / 31bd5a9, шаблоны `lib/agents-task-runner/service/`). Ops-runbook `concepts/agents-task-runner-ops.md` (секция who-does-what).
|
||||
|
||||
**TDD:** нет — правка процедуры скила; верификация = реальная установка на Windows-машине.
|
||||
**Разрешения:** интерны: нет | автопуш: нет
|
||||
**weight:** needs-human
|
||||
**notify:** OpeItcLoc03/workshop
|
||||
|
||||
**Status:** ready
|
||||
**Where I stopped:** Скил v0.1.0 впервые прогнан на Windows (boss-сессия .workshop, 2026-06-18) при установке standing-duty стека. Поймано 5 дефектов — все воркэраунд-починены в dev-шаблонах OpeItcLoc03/common (коммиты 681fcda, 211d662, 31bd5a9), но сам SKILL.md (процедура) их НЕ несёт → следующая машина повторит всю отладку (~2ч).
|
||||
**Next action:** Портировать проверенные фиксы в SKILL.md (Phases) + дотянуть dev-шаблоны. См. тело.
|
||||
**Branch:** n/a
|
||||
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: OpeItcLoc03/workshop / 2026-06-18T08:12:28.107Z -->
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user