Commit Graph

  • 0565f09a72 test(e2e): ретраи WS-коннекта — транзиентный таймаут после deploy-stage master aleksey 2026-08-24 00:05:25 +03:00
  • a061674408 ci(e2e): readiness-wait перед API-сьюитами на стенде aleksey 2026-08-23 23:17:32 +03:00
  • 9348c36e52 ci: rerun e2e-stage (в run 617 e2e стартовал в момент рестарта контейнеров после deploy-stage; все 5 падений — транзиентные 502 админ-API) aleksey 2026-08-23 22:20:30 +03:00
  • e0e3455281 fix(ai): STT — имя файла по content-type, webm/mp4 уходили как voice.dat aleksey 2026-08-23 21:51:19 +03:00
  • 61f7a5f719 revert: STT ipfamily — причина была в истёкшей vless-подписке aleksey 2026-08-23 00:15:22 +03:00
  • b122cf3339 fix(ai): STT httpc только IPv4 — таймаут на хостах без IPv6 aleksey 2026-08-22 23:41:29 +03:00
  • 4486dc87db Поиск: case-insensitive сравнение в logic_search aleksey 2026-08-22 21:08:04 +03:00
  • d46eb6e528 fix(stt): xAI 400 при format=true без language — убираем поле format aleksey 2026-08-21 21:32:13 +03:00
  • 1ef9020c40 Голосовой центр L2: прокси транскрибации POST /v1/ai/transcribe aleksey 2026-08-20 23:56:35 +03:00
  • f4d89a262c feat(ai): пилотные метрики ИИ-подсказок — POST /v1/ai/hint-metrics + админ-сводка aleksey 2026-08-20 18:35:29 +03:00
  • cc08b3b18a feat(search): default_location календарей в ответе всегда (для вида карты) aleksey 2026-08-19 22:01:07 +03:00
  • 73d43e5fdc feat(geo): switch geocoder from self-host Photon to OpenCage API aleksey 2026-08-18 23:30:15 +03:00
  • 6b70e1336d feat(geo): Photon proxy, address-only location, nearby search. Refs EventHub/EventHubBack#77 aleksey 2026-08-17 23:23:10 +03:00
  • 501334e241 fix(test): archived month returns 409 before event_in_past. aleksey 2026-08-17 16:25:51 +03:00
  • e3f5a7ca13 feat(archive): month snapshots on the same node, drop extra-node and HTML /view. aleksey 2026-08-17 14:59:30 +03:00
  • ef31e7fb40 fix(test): sync migration_engine_tests versions with auth_session_device. Refs EventHub/EventHubBack#74 aleksey 2026-08-16 18:58:54 +03:00
  • 0690020e81 feat(auth): list/revoke sessions with device_name and client_type. Fixes EventHub/EventHubBack#74 aleksey 2026-08-16 18:30:05 +03:00
  • 1c701a5254 fix(share): register calendar_share migration and rebuild old PK schema. Refs EventHub/EventHubBack#73 aleksey 2026-08-16 10:04:16 +03:00
  • fb927b7f71 fix(ci): e2e-stage defaults to *.stage.calentiq.com when secrets empty. aleksey 2026-08-16 00:25:12 +03:00
  • c1b4897a8b fix(test): use commercial fixtures in logic_search_tests. aleksey 2026-08-16 00:04:26 +03:00
  • fcb737eb47 fix(test): ensure calendar_share table in ACL-related eunit suites. aleksey 2026-08-15 23:48:12 +03:00
  • 331000a464 feat(share): calendar_share invite/ACL for personal and commercial. aleksey 2026-08-15 23:20:11 +03:00
  • 00bf72e4d1 test(notify): prefs gate email/push on reminder and waitlist. aleksey 2026-08-15 21:50:08 +03:00
  • 12274f9ed0 feat(notify): Web Push subscriptions and email/push prefs. aleksey 2026-08-15 20:19:44 +03:00
  • e86d603f30 fix(email): encode Cyrillic binaries with /utf8. aleksey 2026-08-15 00:32:33 +03:00
  • 0a1e55e036 feat(email): HTTP API transport via Resend (fallback SMTP). aleksey 2026-08-14 23:54:10 +03:00
  • fb8869fa86 feat(waitlist): optional event waitlist with FIFO promote. aleksey 2026-08-14 21:44:42 +03:00
  • 29111cd514 feat(upload): avatar and calendar cover via local disk storage. aleksey 2026-08-14 21:27:34 +03:00
  • 15ae8d4426 feat(email): send booking reminders before event start. aleksey 2026-08-14 20:59:38 +03:00
  • 347a645933 feat(auth): POST /v1/logout and admin logout revoke refresh session. Refs EventHub/EventHubBack#69 aleksey 2026-08-14 20:23:16 +03:00
  • 302e1e5e9e chore: ignore local Traefik certs; keep make-traefik-certs.sh. [skip ci] aleksey 2026-08-14 19:46:18 +03:00
  • 69ee037d45 feat(email): SMTP via gen_smtp and CalenTIQ HTML templates. Refs EventHub/EventHubBack#68 aleksey 2026-08-14 18:51:09 +03:00
  • 3d7ae0d372 fix(api): resolve public calendar GET by unique short_name. aleksey 2026-08-14 15:00:41 +03:00
  • 658cbda4fe chore(rules): ignore .tmp scratch; IFT e2e needs SMOKE_USER. [skip ci] aleksey 2026-08-14 12:52:20 +03:00
  • 2567585333 feat(booking): studio journal and instance inbox. Refs EventHub/EventHubFront#60 aleksey 2026-08-14 11:13:01 +03:00
  • 520af23cc6 feat(api): optional auth for public search and studio week. Refs EventHub/EventHubFront#58 aleksey 2026-08-14 11:02:58 +03:00
  • 8a5f254c2a feat(booking): materialize occurrence on POST bookings. Refs EventHub/EventHubBack#67 aleksey 2026-08-14 10:52:24 +03:00
  • e3403f6ed6 fix(ift): ObserverWeb mount at "" so CSS/JS paths are not //css-* aleksey 2026-08-13 11:27:41 +03:00
  • 37011f66a1 fix(ift): mount ObserverWeb dashboard at / on dedicated host aleksey 2026-08-13 10:54:19 +03:00
  • c89d08968d fix(test): drop redundant user.email index setup aleksey 2026-08-04 10:46:32 +03:00
  • 72bc440049 fix(test): add mnesia secondary indexes in eh_test_support aleksey 2026-08-04 10:27:58 +03:00
  • 6c0775ee5e feat(infra): add TTL cleanup worker for append-only tables aleksey 2026-08-03 22:57:41 +03:00
  • 774f58f9ed fix(user): transactional status updates and paginated list_users aleksey 2026-08-03 22:56:16 +03:00
  • d88689f1a3 fix(auth): make auth_session mutations transactional aleksey 2026-08-03 22:55:52 +03:00
  • e3467e7412 perf(mnesia): use secondary indexes in booking, event, search, review aleksey 2026-08-03 22:55:50 +03:00
  • 104892bdde fix(ci): remove orphan containers before mnesia volume wipe [skip ci] aleksey 2026-08-01 18:50:07 +03:00
  • 2b8fc19822 ci: extract wipe-mnesia into standalone workflows [skip ci] aleksey 2026-08-01 18:43:46 +03:00
  • 4eb1f326ec feat(ci): add manual wipe-mnesia jobs for IFT/stage [skip ci] aleksey 2026-08-01 18:30:11 +03:00
  • 0a5e86c4a0 fix(recurrence): honor BYDAY for weekly RRULE expansion aleksey 2026-08-01 18:17:23 +03:00
  • 0e4e886cd4 feat(specialists): owner is non-deletable specialist on commercial create aleksey 2026-08-01 12:18:36 +03:00
  • ba1649f344 fix(ct): teardown litter users/calendars after API suites aleksey 2026-07-31 12:21:15 +03:00
  • 7d39c004a1 fix(ct): adapt API tests to sole Default personal aleksey 2026-07-30 22:29:52 +03:00
  • 10464de3ec feat(calendar): single Default personal with guards and backfill aleksey 2026-07-30 22:07:15 +03:00
  • bb37909ffb fix(events): guard booking_occupancy when booking table missing aleksey 2026-07-30 15:56:49 +03:00
  • edd396dff8 feat(events): add booking_occupancy on event JSON for studio grid aleksey 2026-07-30 15:33:49 +03:00
  • 1fce1aa12d fix(ci): sync migration_engine_tests ALL_VERSIONS with bag migration aleksey 2026-07-30 13:27:57 +03:00
  • 32d3e7378e fix(event): store multiple recurrence cancel exceptions aleksey 2026-07-30 13:07:13 +03:00
  • 4986baf006 feat(calendar): validate org defaults in calendar.settings aleksey 2026-07-29 22:50:31 +03:00
  • 4c480f1c43 fix(test): lookup banned words via q after batch aleksey 2026-07-29 15:58:41 +03:00
  • faf251b11d fix(calendar): persist settings on PUT/POST aleksey 2026-07-29 15:00:55 +03:00
  • 7e14dbcf8b docs(rules): require run-wsl-sh for CRLF .sh scripts aleksey 2026-07-29 12:55:01 +03:00
  • 76548e578b chore(make): add verification-token target for multi-stand email lookup aleksey 2026-07-28 22:26:44 +03:00
  • bc85f5ab06 fix(ci-reports): chmod a+r on report.tar.gz for nginx read aleksey 2026-07-28 19:42:14 +03:00
  • 3c2c33f83b feat(ci-reports): publish report.tar.gz archive for offline download aleksey 2026-07-28 13:52:01 +03:00
  • 85a34dd7b0 docs(rules): git commit via -F file when message has parentheses aleksey 2026-07-28 10:20:54 +03:00
  • 7bd6e52d18 fix(ci): auto-detect stand for ci-reports URL on IFT runner aleksey 2026-07-28 10:13:38 +03:00
  • 5ed361d8ff fix(ci): publish reports to ci-reports.dev on runner host aleksey 2026-07-28 00:39:10 +03:00
  • 5169df3d40 fix(ci): chown ci-reports dir for act runner publish aleksey 2026-07-28 00:29:09 +03:00
  • 8305bd1a86 fix(ct): skip node_metric noise when waiting for admin WS pong [skip ci] aleksey 2026-07-27 23:19:27 +03:00
  • b3792a304b docs: forbid bare git push; use git-push.sh helpers. aleksey 2026-07-27 23:10:45 +03:00
  • 78d410c3e3 chore: push without CI aleksey 2026-07-27 22:57:20 +03:00
  • 2bfce06dbf Publish EUnit/CT HTML reports to ci-reports host. aleksey 2026-07-27 22:48:35 +03:00
  • cd619db4a2 fix(ct): activate trial before commercial calendar in admin WS tests. aleksey 2026-07-27 22:05:20 +03:00
  • bd36f158b9 docs: agent pitfalls + token economy rules for Cursor [skip ci] aleksey 2026-07-27 21:50:40 +03:00
  • 81728301e2 fix: persist specialist_id on event create; 402 commercial without active sub. Fixes EventHub/EventHubBack#61 aleksey 2026-07-27 21:17:15 +03:00
  • edb7c20f70 Expire past-pending bookings to expired status. Fixes EventHub/EventHubBack#60 aleksey 2026-07-27 16:45:30 +03:00
  • 1d9752bb69 feat: GET /v1/user/booking-requests + search image_url. Fixes EventHub/EventHubBack#59 aleksey 2026-07-27 14:53:25 +03:00
  • b25c0447cd chore: bump fallback VERSION to 0.2. Refs EventHub/EventHubSpec#10 aleksey 2026-07-26 22:05:43 +03:00
  • 61816e15b1 feat: forgot/reset password API (variant A). Fixes EventHub/EventHubBack#57 mvp-0.1 aleksey 2026-07-24 20:12:53 +03:00
  • e3013075cc feat: booking JSON user_nickname/email for owner UI. Refs EventHub/EventHubBack#56 aleksey 2026-07-23 13:20:33 +03:00
  • 571f04737d feat: specialist_invite API + user lookup. Fixes EventHub/EventHubBack#55 aleksey 2026-07-22 18:52:35 +03:00
  • af5f506866 Implement commercial calendars: booking_open, specialists, expire without type downgrade. aleksey 2026-07-22 16:12:52 +03:00
  • fdb08eb453 fix: require calendar owner or admin for booking confirm/decline. Fixes EventHub/EventHubBack#53 aleksey 2026-07-22 10:53:01 +03:00
  • 9886dff8bf fix: run observer_web as hidden node to stop OTP global splitting IFT Mnesia cluster. aleksey 2026-07-21 22:14:16 +03:00
  • 5ac23219ca fix: owner event bookings list and paid plan durations from plan_to_months. aleksey 2026-07-21 20:18:49 +03:00
  • 7368adfb37 fix: automod CT seeds confirmed booking before calendar review. Refs EventHub/EventHubFront#8 aleksey 2026-07-20 22:53:45 +03:00
  • 59220b955e feat: calendar follow API (POST/DELETE follow, GET following). Refs EventHub/EventHubFront#9 aleksey 2026-07-20 22:10:48 +03:00
  • 4932f9abae fix: gate calendar reviews on confirmed booking. Refs EventHub/EventHubFront#8 aleksey 2026-07-20 21:08:12 +03:00
  • dcb5163946 test: make ticket messages unique across IFT runs via system_time aleksey 2026-07-20 14:39:20 +03:00
  • fc38f63497 fix: only add search filters present in QS so empty GET hits discovery tops. Refs EventHub/EventHubBack#50 aleksey 2026-07-20 14:04:56 +03:00
  • 6d52bc3a8e feat: discovery tops for empty GET /v1/search. Refs EventHub/EventHubBack#50 aleksey 2026-07-20 12:17:36 +03:00
  • e94c94d1a6 test: unique ticket messages per run to avoid IFT dedupe collisions aleksey 2026-07-20 11:27:27 +03:00
  • 7c1fe1940d feat: create default personal calendar on email verification. Refs EventHub/EventHubBack#49 aleksey 2026-07-20 11:17:31 +03:00
  • 2440c50330 fix: add-host for stand e2e under Docker host network (IFT DNS) aleksey 2026-07-20 01:45:10 +03:00
  • c760070611 fix: do not prune registry sha tag before deploy-ift aleksey 2026-07-20 01:23:47 +03:00
  • 3c6211dd08 fix: avoid empty node metrics race in CT (collect on start + poll). Refs EventHub/EventHubBack#47 aleksey 2026-07-20 01:03:53 +03:00
  • 10f6eef92d fix: sync migration_engine_tests ALL_VERSIONS with review_vote. Refs EventHub/EventHubBack#47 aleksey 2026-07-20 00:52:57 +03:00
  • 84bfce474a fix: create review_vote table in unit fixtures for review delete. Refs EventHub/EventHubBack#47 aleksey 2026-07-20 00:39:30 +03:00
  • 0934e2c413 feat: PATCH /v1/user/me — профиль и смена пароля. Refs EventHub/EventHubBack#48 aleksey 2026-07-19 23:26:34 +03:00
  • 5b638de450 feat: user API голосования за отзывы (like/dislike). Refs EventHub/EventHubBack#47 aleksey 2026-07-19 21:31:29 +03:00