ishak

0

Описание

Issue tracker, который живет в S3

https://ishak.fun/about/

Языки

  • Swift44,5%
  • TypeScript41,3%
  • CSS8,6%
  • HTML4,1%
  • Rust1,1%
  • JavaScript0,4%
README.md

ishak logo

ishak

Лёгкий issue tracker на S3. Идея — минимальный веб‑интерфейс и максимально простой обмен задачами через обычный AWS CLI. Подходит для агентов: один человек создаёт задачи, остальные синхронизируют их в локальную папку и оставляют комментарии.

Что умеет

  • Проекты и задачи хранятся в S3 как Markdown‑файлы.
  • Веб‑UI для создания/редактирования задач, комментариев и файлов.
  • Локальная синхронизация через
    aws s3 sync
    без MCP.
  • Архив задач.

Структура хранения в S3

projects/<project_id>/ README.md META.md issues/<issue_id>/README.md issues/<issue_id>/comment_<timestamp>_<role>.md issues/<issue_id>/files/ archive/projects/<project_id>/<issue_id>/README.md archive/projects/<project_id>/<issue_id>/comment_<timestamp>_<role>.md archive/projects/<project_id>/<issue_id>/files/

META.md

Используется для хранения максимального ID задачи:

--- name: max_issue_id value: 0000

Синхронизация через AWS CLI

Храним локальную копию в

.ishak/
.

export AWS_ACCESS_KEY_ID=... export AWS_SECRET_ACCESS_KEY=... export ISHAK_BUCKET=s3-issue export ISHAK_PROJECT=ishak mkdir -p .ishak # Скачать из S3 в .ishak/ aws s3 sync \ s3://$ISHAK_BUCKET/projects/$ISHAK_PROJECT/ \ .ishak/ \ --endpoint-url https://hb.vkcloud-storage.ru \ --region ru-msk # Загрузить изменения из .ishak/ в S3 aws s3 sync \ .ishak/ \ s3://$ISHAK_BUCKET/projects/$ISHAK_PROJECT/ \ --endpoint-url https://hb.vkcloud-storage.ru \ --region ru-msk # Архив находится отдельно # s3://$ISHAK_BUCKET/archive/projects/$ISHAK_PROJECT/

Опционально: добавляйте

--delete
к
aws s3 sync
, чтобы удалить локальные/удаленные файлы, которых больше нет на источнике.

Формат комментариев:

comment_<timestamp>_<role>.md
, где
timestamp
это Unix time в миллисекундах (например,
comment_1738865445123_agent.md
).

Локальная разработка

bun install bun run dev

macOS MVP (0013)

  • Черновой нативный клиент находится в
    macos/
    .
  • Доменный модуль для переиспользования находится в
    core/rust/
    .
  • Инструкция по запуску и ручной проверке:
    macos/README.md
    .

CI/CD

Workflow запускается по tag и:

  1. ставит bun и зависимости
  2. собирает
    dist
  3. публикует
    dist
    в
    git@github.com:totaki/ishak.git
    в папку
    docs

Release notes

0.3.2

  • Исправлен выбор проекта в верхнем dropdown: теперь переключение проекта доступно на всех страницах (а не только в
    Issues
    ).
  • Обновлен CI: деплой на stage по
    push
    в
    master
    через FTP (
    FTP_PATH
    ) с синхронизацией и удалением устаревших файлов.
  • Для tag‑релизов добавлен отдельный прод‑деплой по FTP в
    FTP_PATH_PROD
    .

0.3.1

  • Исправлен рендер Mermaid в production/static hosting: заменен динамический импорт на стабильный bundled ESM (
    mermaid/dist/mermaid.esm.min.mjs
    ).
  • Для ошибок загрузки Mermaid добавлен более понятный fallback‑текст в Preview.

0.3.0

  • UI редактора унифицирован: в
    Issues
    ,
    Projects
    и
    Archive
    оставлены компактные панели управления без лишних заголовков.
  • В
    Projects
    добавлен выбор файла через dropdown (по аналогии с выбором проекта), а
    Preview
    открывается первым при выборе файла.
  • Для проекта теперь автоматически подтягиваются все
    *.md
    в корне (
    README.md
    и
    META.md
    обязательные, остальные динамически добавляются в список).
  • Из dropdown файлов добавлено создание нового файла: если файла нет, можно создать его сразу в S3 как
    <NAME_UPPER>.md
    .
  • Исправлена загрузка архива:
    README
    больше не очищается при ошибках загрузки комментариев.
  • В markdown preview устранен warning
    <p> cannot contain a nested <pre>
    для inline-кода.

0.2.0

  • Добавлен рендер Markdown-кода в Preview с подсветкой синтаксиса (
    react-syntax-highlighter
    , тема one-light).
  • Подсветка стала устойчивой: добавлен fallback-язык
    text
    для блоков без
    language-*
    .
  • Исправлено сохранение проектов: для
    README.md
    и
    META.md
    отключено кэширование (
    Cache-Control
    ), чтобы после перезагрузки не терялись свежие изменения.
  • Архив переведен на новый путь хранения:
    archive/projects/<project_id>/<issue_id>/...
    .
  • Обновлена документация по синхронизации и пример для агентов в
    public/about/AGENTS_EXAMPLE.md
    .

0.1.0 — first release

  • Перешли на хранение задачи в
    README.md
    вместо
    issue.md
    .
  • Добавили
    META.md
    с
    max_issue_id
    и возможность редактировать его в UI.
  • Обновили документацию, пример синхронизации и ссылки в разделе Info.
  • Настроен CI/CD для публикации
    dist
    в GitHub docs по тегу.