Доска связей на живых данных хаба (viewer-live, #17) #18
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/17-viewer-live"
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?
Closes #17.
Что сделано
GET /board(клиентский токен) — снимок зеркала в одной транзакции чтения: все задачи сfact_status/work_kind, все связи{source, target, link_type},last_sync— последний успешный полный прогон (mirror.board).GET /,GET /linksбез токена — страница доски связейsrc/jira_hub/web/links.html(статический файл без данных,Cache-Control: no-cache; не-JSON ответapi.Raw).c35151b— копия как есть, дальше правки читаются диффом):localStorage["jira-hub-token"]), форма при первом входе и после 401, проверка допустимых символов;GET /board: эпики — дорожки, соседи — обычные карточки, срок — плановая дата окончания, вид работы — меткиkind-*; неизвестные типы связей и связи с эпиками пропускаются, ключи вне зеркала — дорожка «Нет в зеркале»;POST /refresh {full, author: "viewer"}и опрос пакета раз в 3 с, предупреждение «агент офлайн», текст ошибки пакета, возобновление опроса после перезагрузки;Проверка
uv run pytest -q— 211 passed (было 206).node --check.viewer, одна командаrefreshпо базовой JQL), агент офлайн, перезагрузка во время пакета, ошибка агента, хаб остановлен посреди опроса, токен пересоздан посреди опроса, перенос раскладки JSON-ом старой страницы, JSON при недоступном хабе, смена токена, светлая/тёмная тема, ширина 900 px.Clonersотброшена), спринт по умолчанию — 36 задач, импорт JSON старой страницы применил раскладку. Копия удалена.Rulings I made
Спека и план (design.md, «Decisions made without discussion»):
GET /board— сырые данные зеркала, перевод в модель доски — на странице. Цена: лишний перевод на клиенте.viewer, опрос раз в 3 с. Цена: нет.last_sync— только прогон с командойdone. Цена: нет.viewerвозобновляется. Цена: лишний запрос при открытии.<!doctype html>и<html lang="ru">. Цена: возможны мелкие отличия вёрстки (проверено скриншотами).Исполнение:
data:,(хаб отвечал 404) и.bar>span:empty{display:none}. Цена: нет.KEY_RE(I-1). Цена: связь с нестандартным ключом не видна на доске./boardв Playwright (file: в Playwright MCP запрещён); «агент офлайн» проверялся после истечения долгого claim остановленного агента; JSON старой страницы получен еёexportJson()с локального http.server.confirmed_by_stateу refresh, 0.0.0.0 без TLS, Google Fonts, словари стр��ницы vs настройки хаба,work_kindне используется,/boardбез Cache-Control) — по спеке или вне change, без исправлений.Находки
KEY_REпопадали вinnerHTML(разметка исполнялась на странице с токеном)c7d1aaaloadHubзатирает показанный снимок CSV/JSON/agent+/refreshв пути; двойной опрос одного пакета/batches/{id}fromHubоставляет «Загрузка…»own=Falseвmirror.boardбез тестаfile:; скриншоты с относительным путём пишутся в корень workspaceclaimостановленного агента ещё до 30 с обновляетlast_seen_atи может взять команду — её довыдаст следующий claimПосле merge
git pullвjira-hub,launchctl kickstart -k gui/$(id -u)/ru.aepif.jira-hub, открытьhttp://127.0.0.1:8790/, ввести клиентский токен, «Обновить из Jira» с живым агентом, импорт JSON из старой страницы.🤖 Generated with Claude Code