coopops
81df662cfa
chore(release): publish
Build bootstrap container / build (push) Successful in 46s
Release / trigger-coopenomics-docs (push) Successful in 2s
Release / release (push) Successful in 34m17s
Release / trigger-mono-docs (push) Successful in 2s
Release / publish-packages (push) Failing after 13m36s
2026-07-21 08:50:38 +00:00
coopops
3db80a30e9
chore(release): publish
Release / release (push) Failing after 2m16s
Release / publish-packages (push) Has been skipped
Release / trigger-coopenomics-docs (push) Has been skipped
Release / trigger-mono-docs (push) Has been skipped
Build bootstrap container / build (push) Successful in 49s
2026-07-19 17:01:42 +00:00
coopops
ba6d3d1310
chore(release): publish
Build bootstrap container / build (push) Successful in 1m10s
Release / publish-packages (push) Has been skipped
Release / trigger-mono-docs (push) Has been skipped
Release / release (push) Successful in 28m13s
Release / trigger-coopenomics-docs (push) Has been skipped
2026-07-19 15:20:08 +00:00
coopops
ed9b0879d5
chore(release): publish
Build bootstrap container / build (push) Successful in 2m42s
Release / release (push) Successful in 22m23s
Release / publish-packages (push) Successful in 14m53s
Release / trigger-coopenomics-docs (push) Successful in 2s
Release / trigger-mono-docs (push) Successful in 2s
2026-07-17 14:41:21 +00:00
coopops
15fdf35dd3
chore(release): publish
Release / trigger-coopenomics-docs (push) Has been skipped
Release / trigger-mono-docs (push) Has been skipped
Build bootstrap container / build (push) Failing after 2m10s
Release / release (push) Failing after 15m13s
Release / publish-packages (push) Has been skipped
2026-07-17 14:02:54 +00:00
coopops
79b89695d1
chore(release): publish
2026-07-17 13:58:44 +00:00
coopops
7b27d0805c
chore(release): publish
Release / release (push) Successful in 43m2s
Release / publish-packages (push) Has been cancelled
Release / trigger-coopenomics-docs (push) Has been cancelled
Release / trigger-mono-docs (push) Has been cancelled
Build bootstrap container / build (push) Successful in 46s
2026-07-17 12:54:54 +00:00
coopops
ff5df68bce
chore(release): publish
Release / publish-packages (push) Failing after 21m11s
Release / release (push) Successful in 1h35m7s
Release / trigger-coopenomics-docs (push) Successful in 3s
Release / trigger-mono-docs (push) Successful in 3s
Build bootstrap container / build (push) Successful in 10m29s
2026-07-09 05:49:14 +00:00
Alex Ant
b9107e9ee9
chore(release): publish
Build bootstrap container / build (push) Successful in 1m45s
Release / release (push) Failing after 55m53s
Release / publish-packages (push) Has been skipped
Release / trigger-coopenomics-docs (push) Has been skipped
Release / trigger-mono-docs (push) Has been skipped
2026-06-24 22:04:51 +05:00
coopops
560321853c
Merge remote-tracking branch 'origin/dev' into feat/membership-exit
Typecheck / desktop (pull_request) Has been cancelled
Typecheck / controller (pull_request) Has been cancelled
2026-06-16 08:42:23 +00:00
coopops
7efd19f1bd
chore(release): publish
Build bootstrap container / build (push) Has been cancelled
Release / publish-packages (push) Failing after 8m37s
Release / release (push) Successful in 27m21s
Release / trigger-coopenomics-docs (push) Successful in 1s
Release / trigger-mono-docs (push) Successful in 2s
2026-06-16 08:11:23 +00:00
coopops
07ec6d9a5b
chore(release): publish
Build bootstrap container / build (push) Failing after 1m27s
Release / release (push) Failing after 16m43s
Release / trigger-mono-docs (push) Has been skipped
Release / publish-packages (push) Has been skipped
Release / trigger-coopenomics-docs (push) Has been skipped
2026-06-16 06:02:31 +00:00
coopops
50d5d71c8d
Merge branch 'dev' into feat/membership-exit
...
Втягиваем инфраструктуру исходящих платежей (шасси расходов C28) для
создания возврата паевого взноса в gateway при выходе пайщика.
Конфликты (объединены обе стороны):
- gateway payment-type.enum / payment-domain.entity: MEMBERSHIP_EXIT + EXPENSE*
- zeus-клиенты (controller, sdk): взята версия dev, регенерация следом
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 16:30:43 +00:00
coopops
9ee57d1e05
feat(membership-exit): email-подтверждение выхода — backend + письмо
...
Typecheck / desktop (pull_request) Has been cancelled
Typecheck / controller (pull_request) Has been cancelled
Двойное подтверждение необратимого выхода (закрытия аккаунта): заявление
подписывается и принимается сразу, но в блокчейн уходит только после перехода
по ссылке из письма (по аналогии с verify-email/reset-key токенами).
- notifications: воркфлоу MembershipExitConfirmation (письмо со ссылкой confirmationUrl).
- token: тип CONFIRM_EXIT + generateConfirmExitToken (домен + application).
- entity membership_exit_requests (off-chain черновик подписанного заявления; uniq coopname+username; удаляется при confirm/cancel).
- MembershipExitStatus += AWAITING_CONFIRMATION; MembershipExitResult += status.
- service: createMembershipExit теперь сохраняет черновик + шлёт письмо (НЕ цепь);
confirmMembershipExit(token) проверяет токен и шлёт exitcoop в цепь;
cancelMembershipExit удаляет черновик+токен; getMembershipExit отдаёт off-chain фазу.
- resolver: + confirmMembershipExit (публичная, по токену) + cancelMembershipExit (auth+владелец).
Проверено вживую: мутации в схеме, enum/Result обновлены, таблица создана (synchronize).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 15:08:03 +00:00
coopops
9ac810f34a
[C28-55][ @ant ] fix: вернуть «Направление» в реестр (перспектива стола) + универсальные уведомления о платеже
...
Typecheck / desktop (pull_request) Failing after 8m33s
Typecheck / controller (pull_request) Failing after 8m0s
Направление платежа (ListOfPaymentsWidget):
- колонка «Направление» снова показывается на ОБОИХ столах;
- on-chain direction всегда относительно кооператива (INCOMING = в кооператив).
Стол совета (!hideActions) так и видит; на личном столе пайщика (hideActions)
перспектива обратная — direction инвертируется (исходящий из кооператива =
поступление пайщику). Хелперы displayDirection/directionLabel/directionHint,
tooltip с пояснением («В кооператив»/«Из кооператива» vs «Поступление вам»/
«Списание с вас»). colspan/skeleton/min-width поправлены под доп. колонку.
Уведомления о платеже — без привязки к типу:
- workflow payment-refunded (любой исходящий PAID пайщику) больше не «Возврат
взноса выполнен», а универсальное «Платёж выполнен» (тем же каналом идут
аванс под отчёт, доплата по перерасходу и пр. — тип платежа неизвестен).
payment-paid уже был универсальным («Платёж принят» для входящего).
- комментарий в payment-notification.service приведён в соответствие.
ESLint ✓, notifications build ✓ (id platyozh-vypolnen резолвится в каталоге).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 05:13:00 +00:00
coopops
832ea5fd96
[C28-44][ @ant ] chore: удалить мёртвую страницу «Мои авансы» + перецелить ссылку напоминателя
...
Typecheck / controller (pull_request) Has been cancelled
Typecheck / desktop (pull_request) Has been cancelled
MyAdvancesPage была смонтирована только в воркспейсе expenses, который ни к одному столу не привязан (меню столов приходит с бэкенда; setRoutes вешает пункт лишь если воркспейс есть в столе). Страница открывалась только по прямому URL — пользователь её не видел ни разу. Авансы пайщика-получателя и так видны на его личной странице «Платежи» (/:coopname/user/payments, ListOfPaymentsWidget + ReportExpenseAdvancePanel) — отдельная страница дублировала и была мёртвой.
— desktop: удалён MyAdvancesPage.vue, его роут expenses-my-advances и экспорт из barrel; импорт из install.ts.
— controller: напоминатель об авансах при нескольких авансах вёл на /expenses/my/advances → перецелен на /:coopname/user/payments (личные «Платежи»); один аванс по-прежнему ведёт на сам расход.
— notifications: комментарий схемы payload обновлён.
— README/E2E: ссылки и таблица страниц обновлены.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-14 05:06:28 +00:00
coopops
e6090d9200
[C28-34][ @ant ] feat: фоновый напоминатель об отчёте по авансу под отчёт — зачем: закрыть момент, когда пайщик получил аванс и не отчитался. @Interval-воркер в extensions/expenses сканирует зеркало расходов, находит ADVANCE-позиции в PAID без отчёта, шлёт пайщику-получателю недельный агрегированный дайджест (workflow ExpenseAdvanceReportReminder) со ссылкой на сам расход (/:coopname/expenses/:hash) или список «Мои авансы»; только получателю, кассиру/совету ничего, ORG пропускаются. Троттлинг раз в неделю — через идемпотентность Центра уведомлений (поле period=ISO-неделя в payload), без своей таблицы. Грейс до первого письма и интервал тика — env (EXPENSE_ADVANCE_REMINDER_*, дефолты 3 дня / 6 ч). Точка отсчёта — proposal.updated_at; deadline из формы пока не персистится в цепи — отмечено follow-up в README
...
Typecheck / desktop (pull_request) Failing after 8m33s
Typecheck / controller (pull_request) Failing after 8m2s
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-13 05:52:04 +00:00
coopops
7830713d7c
chore(release): publish
Build bootstrap container / build (push) Successful in 46s
Release / publish-packages (push) Failing after 8m19s
Release / release (push) Successful in 24m57s
Release / trigger-coopenomics-docs (push) Successful in 1s
Release / trigger-mono-docs (push) Successful in 2s
2026-06-09 18:41:34 +00:00
coopops
1d56c8d9fd
chore(release): publish
Build bootstrap container / build (push) Successful in 3m17s
Release / release (push) Successful in 25m58s
Release / publish-packages (push) Failing after 8m23s
Release / trigger-coopenomics-docs (push) Successful in 2s
Release / trigger-mono-docs (push) Successful in 2s
2026-06-09 17:47:20 +00:00
coopops
3f8522507c
chore(release): publish
Build bootstrap container / build (push) Successful in 3m12s
Release / release (push) Successful in 25m50s
Release / publish-packages (push) Has been skipped
Release / trigger-coopenomics-docs (push) Has been skipped
Release / trigger-mono-docs (push) Has been skipped
2026-06-09 17:46:58 +00:00
coopops
5b8d252d6d
chore(release): publish
Release / release (push) Successful in 25m49s
Build bootstrap container / build (push) Successful in 40s
Release / publish-packages (push) Failing after 8m19s
Release / trigger-coopenomics-docs (push) Successful in 1s
Release / trigger-mono-docs (push) Successful in 2s
2026-06-09 16:55:44 +00:00
coopops
7bb4f18097
chore(release): publish
Build bootstrap container / build (push) Successful in 3m16s
Release / release (push) Failing after 16m17s
Release / publish-packages (push) Has been skipped
Release / trigger-coopenomics-docs (push) Has been skipped
Release / trigger-mono-docs (push) Has been skipped
2026-06-09 16:55:28 +00:00
coopops
7ca3c21079
chore(release): publish
Build bootstrap container / build (push) Successful in 3m6s
Release / release (push) Successful in 26m46s
Release / publish-packages (push) Failing after 8m13s
Release / trigger-coopenomics-docs (push) Successful in 2s
Release / trigger-mono-docs (push) Successful in 2s
2026-06-09 15:37:07 +00:00
coopops
045204754b
chore(release): publish
Build bootstrap container / build (push) Has been cancelled
Release / release (push) Has been cancelled
Release / publish-packages (push) Has been cancelled
Release / trigger-coopenomics-docs (push) Has been cancelled
Release / trigger-mono-docs (push) Has been cancelled
2026-06-09 15:36:50 +00:00
coopops
5cf6c20ff2
chore(release): publish
Release / publish-packages (push) Has been cancelled
Release / trigger-coopenomics-docs (push) Has been cancelled
Release / trigger-mono-docs (push) Has been cancelled
Release / release (push) Has been cancelled
Build bootstrap container / build (push) Has been cancelled
2026-06-09 14:28:38 +00:00
coopops
ef3fffecda
chore(release): publish
Build bootstrap container / build (push) Successful in 3m9s
Release / release (push) Successful in 24m4s
Release / trigger-coopenomics-docs (push) Has been cancelled
Release / trigger-mono-docs (push) Has been cancelled
Release / publish-packages (push) Has been cancelled
2026-06-09 14:28:02 +00:00
coopops
fd9b14a98b
chore(release): publish
Build bootstrap container / build (push) Successful in 3m26s
Release / release (push) Successful in 23m22s
Release / publish-packages (push) Has been skipped
Release / trigger-coopenomics-docs (push) Has been skipped
Release / trigger-mono-docs (push) Has been skipped
2026-06-09 14:27:46 +00:00
coopops
cb0d6365ba
chore(release): publish
Release / release (push) Successful in 27m4s
Build bootstrap container / build (push) Successful in 39s
Release / publish-packages (push) Failing after 8m11s
Release / trigger-coopenomics-docs (push) Successful in 2s
Release / trigger-mono-docs (push) Successful in 1s
2026-06-09 13:07:28 +00:00
coopops
3c3b6a76c4
chore(release): publish
Build bootstrap container / build (push) Successful in 3m9s
Release / release (push) Successful in 25m21s
Release / publish-packages (push) Has been skipped
Release / trigger-coopenomics-docs (push) Has been skipped
Release / trigger-mono-docs (push) Has been skipped
2026-06-09 13:02:21 +00:00
Alex Ant
01fc0872ae
chore(release): publish
Build bootstrap container / build (push) Has been cancelled
Release / publish-packages (push) Has been cancelled
Release / trigger-coopenomics-docs (push) Has been cancelled
Release / trigger-mono-docs (push) Has been cancelled
Release / release (push) Has been cancelled
2026-06-09 15:48:49 +05:00
Alex Ant
addb527f3c
chore(release): publish
Build bootstrap container / build (push) Successful in 3m16s
Release / release (push) Successful in 26m2s
Release / publish-packages (push) Failing after 8m18s
Release / trigger-coopenomics-docs (push) Successful in 3s
Release / trigger-mono-docs (push) Successful in 1s
2026-06-09 14:10:52 +05:00
Alex Ant
9e271a6ce9
chore(release): publish
Build bootstrap container / build (push) Has been cancelled
Release / release (push) Has been cancelled
Release / publish-packages (push) Has been cancelled
Release / trigger-coopenomics-docs (push) Has been cancelled
Release / trigger-mono-docs (push) Has been cancelled
2026-06-09 14:10:33 +05:00
coopops
1d235e5caf
chore(release): publish
Build bootstrap container / build (push) Successful in 3m5s
Release / release (push) Successful in 24m54s
Release / publish-packages (push) Failing after 8m23s
Release / trigger-coopenomics-docs (push) Successful in 2s
Release / trigger-mono-docs (push) Successful in 2s
2026-06-09 07:18:39 +00:00
coopops
98b9c03977
chore(release): publish
Build bootstrap container / build (push) Successful in 3m5s
Release / release (push) Successful in 26m40s
Release / publish-packages (push) Has been skipped
Release / trigger-coopenomics-docs (push) Has been skipped
Release / trigger-mono-docs (push) Has been skipped
2026-06-09 07:09:56 +00:00
coopops
70bd1323c7
chore(release): publish
Build bootstrap container / build (push) Successful in 3m8s
Release / release (push) Successful in 25m6s
Release / publish-packages (push) Failing after 8m25s
Release / trigger-coopenomics-docs (push) Successful in 2s
Release / trigger-mono-docs (push) Successful in 1s
2026-06-08 07:03:58 +00:00
coopops
765af3cbef
chore(release): publish
Build bootstrap container / build (push) Successful in 2m57s
Release / release (push) Successful in 25m7s
Release / publish-packages (push) Has been skipped
Release / trigger-coopenomics-docs (push) Has been skipped
Release / trigger-mono-docs (push) Has been skipped
2026-06-08 07:03:41 +00:00
coopops
75548036f4
chore(release): publish
Release / release (push) Successful in 24m41s
Build bootstrap container / build (push) Successful in 38s
Release / publish-packages (push) Failing after 8m22s
Release / trigger-coopenomics-docs (push) Successful in 2s
Release / trigger-mono-docs (push) Successful in 1s
2026-06-08 06:27:19 +00:00
coopops
ec0427c778
chore(release): publish
Build bootstrap container / build (push) Successful in 3m8s
Release / release (push) Failing after 14m44s
Release / publish-packages (push) Has been skipped
Release / trigger-coopenomics-docs (push) Has been skipped
Release / trigger-mono-docs (push) Has been skipped
2026-06-08 06:27:02 +00:00
coopops
c28bb81c25
[C28-27][ @ant ] fix: in-app уведомления — перенос строки вместо литерального <br>
...
In-app тело инбокса рендерится как текст ({{ n.description }}, без v-html —
payload несёт ФИО/заголовки, v-html = XSS-вектор), поэтому HTML-тег <br> из
шаблона показывался строкой «№C53E<br>От: …». Перевёл 2 in-app шаблона
(new-agenda-item, approval-request) с <br> на \n и добавил white-space:
pre-line на .notification-center__item-desc (line-clamp:2 сохранён).
Push не трогаю — его тела уже plain-text без тегов, отображается верно.
Email оставлен на HTML (<br>/<strong>) — рендерится почтовым клиентом.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 05:28:04 +00:00
coopops
54e27df7f8
chore(release): publish
Build bootstrap container / build (push) Successful in 3m27s
Release / release (push) Successful in 26m49s
Release / publish-packages (push) Failing after 28m24s
Release / trigger-coopenomics-docs (push) Successful in 2s
Release / trigger-mono-docs (push) Successful in 1s
2026-06-08 05:13:30 +00:00
coopops
b7da867198
chore(release): publish
Build bootstrap container / build (push) Successful in 3m19s
Release / publish-packages (push) Has been cancelled
Release / trigger-coopenomics-docs (push) Has been cancelled
Release / trigger-mono-docs (push) Has been cancelled
Release / release (push) Has been cancelled
2026-06-08 05:13:14 +00:00
coopops
a4e5abe4fa
chore(release): publish
Build bootstrap container / build (push) Successful in 3m36s
Release / release (push) Successful in 25m54s
Release / publish-packages (push) Failing after 8m23s
Release / trigger-coopenomics-docs (push) Successful in 2s
Release / trigger-mono-docs (push) Successful in 2s
2026-06-07 15:29:25 +00:00
coopops
ef393e9724
chore(release): publish
Build bootstrap container / build (push) Successful in 3m34s
Release / release (push) Successful in 25m2s
Release / publish-packages (push) Has been skipped
Release / trigger-coopenomics-docs (push) Has been skipped
Release / trigger-mono-docs (push) Has been skipped
2026-06-07 15:28:58 +00:00
coopops
f2e3165b54
Merge branch 'testnet' of ssh://git.coopenomics.world:222/C9S/mono into testnet
...
# Conflicts:
# components/notifications/package.json
2026-06-07 15:27:59 +00:00
coopops
b653a3cbd5
Merge remote-tracking branch 'origin/dev' into feat/notification-center-dc-v3
...
Typecheck / controller (pull_request) Has been cancelled
Typecheck / desktop (pull_request) Has been cancelled
# Conflicts:
# components/notifications/package.json
2026-06-07 12:24:50 +00:00
Alex Ant
aa9b677d9c
chore(release): publish
Build bootstrap container / build (push) Successful in 3m25s
Release / release (push) Successful in 26m36s
Release / publish-packages (push) Has been skipped
Release / trigger-coopenomics-docs (push) Has been skipped
Release / trigger-mono-docs (push) Has been skipped
2026-06-07 17:09:57 +05:00
coopops
9e64238682
fix(gateway,notifications): возврат взноса слал письмо «платёж принят»
...
Typecheck / desktop (pull_request) Successful in 13m24s
Typecheck / controller (pull_request) Successful in 13m15s
notifyPaymentStatus выбирал workflow только по статусу (PAID → PaymentPaid
«Платёж принят»), игнорируя direction. Исходящий PAID — это возврат взноса
пайщику, и он получал письмо как на приём. Баг общий для всех возвратов
(регистрационный + паевой — оба идут через gateway.setPaymentStatus).
- Новый workflow notifications/payment-refunded «Возврат взноса выполнен»
(зеркало payment-paid, тот же payload).
- payment-notification.service: OUTGOING+PAID → PaymentRefunded, INCOMING+PAID →
PaymentPaid, остальное → PaymentCancelled.
Workflow засинкан в Novu (pnpm sync, 24 workflow, 0 ошибок).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 06:38:51 +00:00
Alex Ant
8272fe6951
chore(release): publish
Release / release (push) Successful in 25m0s
Build bootstrap container / build (push) Successful in 39s
Release / publish-packages (push) Failing after 8m42s
Release / trigger-coopenomics-docs (push) Successful in 1s
Release / trigger-mono-docs (push) Successful in 2s
2026-06-05 11:42:28 +05:00
Alex Ant
4cf2ab3c64
chore(release): publish
Release / release (push) Successful in 53m16s
Release / publish-packages (push) Has been skipped
Release / trigger-coopenomics-docs (push) Has been skipped
Release / trigger-mono-docs (push) Has been skipped
Build bootstrap container / build (push) Successful in 1m20s
2026-06-05 01:13:18 +05:00
coopops
4bb9a317ca
[C28-26][ @ant ] refactor: полное удаление Novu из контроллера
...
Typecheck / desktop (pull_request) Successful in 13m42s
Typecheck / controller (pull_request) Successful in 13m4s
Контроллер больше не зависит от внешнего Novu (ADR-001, DEC-025):
- Удалены infrastructure/novu/* (адаптеры + модуль), порты NovuWorkflow/
NovuCredentials + старый notification.port (NotificationPort→NovuAdapter),
NotificationDomainService, DeviceTokenService, webhook-приёмник Novu, novu.utils.
- subscriber_hash переведён на HMAC по SERVER_SECRET (utils/subscriber-hash.util),
identity своя; subscriber_id (адресация Центра) сохранён — backfill cron оставлен
без Novu-синхронизации.
- Развязаны AccountDomainService/account+participant-interactor/subscription-service
от Novu-вызовов; NovuModule/NotificationDomainModule убраны из 7+5 модулей.
- config.novu + NOVU_* env + @novu/api удалены; lockfile обновлён (desktop @novu/js
снимется синхронно с эпиком 6).
- @coopenomics/notifications: удалён sync/ (внешняя синхронизация), bin/scripts/deps;
остался каталог типов + шаблоны; пакет пересобран.
- grep -i novu по controller/src пуст; tsc = baseline (0 новых ошибок).
Boot/grep-ERROR верификация — за оператором (поднять контроллер нельзя из фоновой сессии).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-02 13:40:15 +00:00