Commit Graph

256 Commits

Author SHA1 Message Date
aleksey 4c480f1c43 fix(test): lookup banned words via q after batch
CI / test (push) Successful in 6m38s
CI / deploy-ift (push) Successful in 6m53s
CI / e2e-ift (push) Successful in 2m16s
CI / deploy-stage (push) Successful in 2m15s
CI / e2e-stage (push) Successful in 1m17s
Bare GET /banned-words is paginated (limit 50); on dirty IFT the
batch words fall off page 1 and admin_test_banned_words flakes.
Assert via ?q= like the single-add case; same for delete check.
2026-07-29 15:58:41 +03:00
aleksey faf251b11d fix(calendar): persist settings on PUT/POST
CI / test (push) Successful in 7m4s
CI / deploy-ift (push) Successful in 3m21s
CI / e2e-ift (push) Failing after 52s
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
Accept calendar.settings (e.g. week_patterns) in validate_update
and convert_field; apply on create like tags. Unblocks Front#42
pattern save which previously got 200 with empty settings.
2026-07-29 15:00:55 +03:00
aleksey 7e14dbcf8b docs(rules): require run-wsl-sh for CRLF .sh scripts
CI / test (push) Successful in 6m58s
CI / deploy-ift (push) Successful in 2m47s
CI / e2e-ift (push) Failing after 1m26s
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
Cursor Write on Windows often saves CRLF; bare wsl -e bash script.sh
then fails with No such file. Canon is run-wsl-sh.sh (strip CR).
2026-07-29 12:55:01 +03:00
aleksey 76548e578b chore(make): add verification-token target for multi-stand email lookup
make verification-token EMAIL=… STAND=local|dev|ift|stage|calentiq
fetches admin verification token via Admin API. [skip ci]
2026-07-28 22:26:44 +03:00
aleksey bc85f5ab06 fix(ci-reports): chmod a+r on report.tar.gz for nginx read
mktemp leaves 600; nginx worker got 403 Forbidden on download.

[skip ci]
2026-07-28 19:42:14 +03:00
aleksey 3c2c33f83b feat(ci-reports): publish report.tar.gz archive for offline download
Pack HTML report after publish; link archive in run index and CI log.
Add fetch-ci-report.sh helper for agent curl/extract.

[skip ci]
2026-07-28 13:52:01 +03:00
aleksey 85a34dd7b0 docs(rules): git commit via -F file when message has parentheses
Document fix(ci): and special chars breaking wsl -lc one-liners.
Use .tmp-commit-msg.txt + GIT_EDITOR=true git commit -F in .sh scripts.

[skip ci]
2026-07-28 10:20:54 +03:00
aleksey 7bd6e52d18 fix(ci): auto-detect stand for ci-reports URL on IFT runner
Remove hardcoded dev CI_REPORTS_BASE_URL/RUNNER_STAND from workflow.
detect_stand() picks ift/stage/dev from host paths and swarm services.

[skip ci]
2026-07-28 10:16:20 +03:00
aleksey 5ed361d8ff fix(ci): publish reports to ci-reports.dev on runner host
CI / test (push) Successful in 6m44s
CI / deploy-ift (push) Successful in 3m3s
CI / e2e-ift (push) Failing after 2m23s
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
2026-07-28 00:39:10 +03:00
aleksey 5169df3d40 fix(ci): chown ci-reports dir for act runner publish
CI / test (push) Successful in 7m28s
CI / deploy-ift (push) Has been cancelled
CI / e2e-ift (push) Has been cancelled
CI / deploy-stage (push) Has been cancelled
CI / e2e-stage (push) Has been cancelled
2026-07-28 00:29:09 +03:00
aleksey 8305bd1a86 fix(ct): skip node_metric noise when waiting for admin WS pong [skip ci] 2026-07-27 23:19:27 +03:00
aleksey b3792a304b docs: forbid bare git push; use git-push.sh helpers.
[skip ci]
2026-07-27 23:10:45 +03:00
aleksey 78d410c3e3 chore: push without CI
[skip ci]
2026-07-27 22:57:20 +03:00
aleksey 2bfce06dbf Publish EUnit/CT HTML reports to ci-reports host.
Refs EventHub/EventHubBack#62
2026-07-27 22:54:52 +03:00
aleksey cd619db4a2 fix(ct): activate trial before commercial calendar in admin WS tests.
CI / test (push) Successful in 6m41s
CI / deploy-ift (push) Successful in 4m23s
CI / e2e-ift (push) Successful in 54s
CI / deploy-stage (push) Successful in 2m48s
CI / e2e-stage (push) Successful in 1m12s
admin_test_websocket bypassed create_calendar and hit 402 after Back#61
subscription gate. Align with user_websocket_tests helper. Refs EventHub/EventHubBack#61
2026-07-27 22:05:20 +03:00
aleksey bd36f158b9 docs: agent pitfalls + token economy rules for Cursor [skip ci] 2026-07-27 21:50:40 +03:00
aleksey 81728301e2 fix: persist specialist_id on event create; 402 commercial without active sub. Fixes EventHub/EventHubBack#61
CI / test (push) Failing after 6m52s
CI / deploy-ift (push) Has been skipped
CI / e2e-ift (push) Has been skipped
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
2026-07-27 21:17:15 +03:00
aleksey edb7c20f70 Expire past-pending bookings to expired status. Fixes EventHub/EventHubBack#60
CI / test (push) Successful in 7m14s
CI / deploy-ift (push) Successful in 3m40s
CI / e2e-ift (push) Successful in 1m43s
CI / deploy-stage (push) Successful in 3m8s
CI / e2e-stage (push) Successful in 1m12s
2026-07-27 16:45:30 +03:00
aleksey 1d9752bb69 feat: GET /v1/user/booking-requests + search image_url. Fixes EventHub/EventHubBack#59
CI / test (push) Successful in 7m1s
CI / deploy-ift (push) Successful in 5m59s
CI / e2e-ift (push) Successful in 1m34s
CI / deploy-stage (push) Successful in 2m47s
CI / e2e-stage (push) Successful in 1m18s
2026-07-27 14:53:25 +03:00
aleksey b25c0447cd chore: bump fallback VERSION to 0.2. Refs EventHub/EventHubSpec#10
CI / test (push) Successful in 7m1s
CI / deploy-ift (push) Successful in 3m48s
CI / e2e-ift (push) Successful in 1m27s
CI / deploy-stage (push) Successful in 2m25s
CI / e2e-stage (push) Successful in 1m14s
2026-07-26 22:05:43 +03:00
aleksey 61816e15b1 feat: forgot/reset password API (variant A). Fixes EventHub/EventHubBack#57
CI / test (push) Successful in 7m20s
CI / deploy-ift (push) Successful in 6m9s
CI / e2e-ift (push) Successful in 1m28s
CI / deploy-stage (push) Successful in 2m34s
CI / e2e-stage (push) Successful in 1m11s
mvp-0.1
2026-07-24 20:12:53 +03:00
aleksey e3013075cc feat: booking JSON user_nickname/email for owner UI. Refs EventHub/EventHubBack#56
CI / test (push) Successful in 7m4s
CI / deploy-ift (push) Successful in 2m29s
CI / e2e-ift (push) Successful in 1m26s
CI / deploy-stage (push) Successful in 2m22s
CI / e2e-stage (push) Successful in 1m13s
2026-07-23 13:20:33 +03:00
aleksey 571f04737d feat: specialist_invite API + user lookup. Fixes EventHub/EventHubBack#55
CI / test (push) Successful in 6m47s
CI / deploy-ift (push) Successful in 3m23s
CI / e2e-ift (push) Successful in 1m58s
CI / deploy-stage (push) Successful in 2m1s
CI / e2e-stage (push) Successful in 1m13s
2026-07-22 18:52:35 +03:00
aleksey af5f506866 Implement commercial calendars: booking_open, specialists, expire without type downgrade.
CI / test (push) Successful in 6m44s
CI / deploy-ift (push) Successful in 4m2s
CI / e2e-ift (push) Successful in 1m25s
CI / deploy-stage (push) Successful in 2m25s
CI / e2e-stage (push) Successful in 1m12s
Refs EventHub/EventHubBack#54
2026-07-22 16:12:52 +03:00
aleksey fdb08eb453 fix: require calendar owner or admin for booking confirm/decline. Fixes EventHub/EventHubBack#53
CI / test (push) Successful in 6m49s
CI / deploy-ift (push) Successful in 2m28s
CI / e2e-ift (push) Successful in 1m26s
CI / deploy-stage (push) Successful in 1m57s
CI / e2e-stage (push) Successful in 1m49s
2026-07-22 10:53:01 +03:00
aleksey 9886dff8bf fix: run observer_web as hidden node to stop OTP global splitting IFT Mnesia cluster.
CI / test (push) Successful in 6m13s
CI / deploy-ift (push) Successful in 4m46s
CI / e2e-ift (push) Successful in 1m25s
CI / deploy-stage (push) Successful in 1m57s
CI / e2e-stage (push) Successful in 1m11s
Without --hidden, observer joins the visible mesh and prevent_overlapping_partitions disconnects eventhub-node1/2 (running_partitioned_network → admin verification-token 404 in e2e).
2026-07-21 22:14:16 +03:00
aleksey 5ac23219ca fix: owner event bookings list and paid plan durations from plan_to_months.
CI / test (push) Successful in 6m55s
CI / deploy-ift (push) Successful in 3m33s
CI / e2e-ift (push) Failing after 1m4s
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
Fixes EventHub/EventHubBack#51
Fixes EventHub/EventHubBack#52

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-21 20:18:49 +03:00
aleksey 7368adfb37 fix: automod CT seeds confirmed booking before calendar review. Refs EventHub/EventHubFront#8
CI / test (push) Successful in 6m45s
CI / deploy-ift (push) Successful in 3m42s
CI / e2e-ift (push) Successful in 1m26s
CI / deploy-stage (push) Successful in 2m13s
CI / e2e-stage (push) Successful in 1m10s
2026-07-20 22:53:45 +03:00
aleksey 59220b955e feat: calendar follow API (POST/DELETE follow, GET following). Refs EventHub/EventHubFront#9
CI / test (push) Failing after 6m39s
CI / deploy-ift (push) Has been skipped
CI / e2e-ift (push) Has been skipped
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
2026-07-20 22:10:48 +03:00
aleksey 4932f9abae fix: gate calendar reviews on confirmed booking. Refs EventHub/EventHubFront#8 2026-07-20 21:08:12 +03:00
aleksey dcb5163946 test: make ticket messages unique across IFT runs via system_time
CI / test (push) Successful in 6m17s
CI / deploy-ift (push) Successful in 3m8s
CI / e2e-ift (push) Successful in 1m24s
CI / deploy-stage (push) Successful in 2m48s
CI / e2e-stage (push) Successful in 1m42s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 14:39:20 +03:00
aleksey fc38f63497 fix: only add search filters present in QS so empty GET hits discovery tops. Refs EventHub/EventHubBack#50
CI / test (push) Successful in 6m58s
CI / deploy-ift (push) Successful in 3m16s
CI / e2e-ift (push) Failing after 1m30s
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
2026-07-20 14:04:56 +03:00
aleksey 6d52bc3a8e feat: discovery tops for empty GET /v1/search. Refs EventHub/EventHubBack#50
CI / test (push) Successful in 22m57s
CI / deploy-ift (push) Successful in 3m22s
CI / e2e-ift (push) Successful in 1m12s
CI / deploy-stage (push) Successful in 4m21s
CI / e2e-stage (push) Successful in 1m27s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 12:17:36 +03:00
aleksey e94c94d1a6 test: unique ticket messages per run to avoid IFT dedupe collisions 2026-07-20 11:27:27 +03:00
aleksey 7c1fe1940d feat: create default personal calendar on email verification. Refs EventHub/EventHubBack#49 2026-07-20 11:17:31 +03:00
aleksey 2440c50330 fix: add-host for stand e2e under Docker host network (IFT DNS)
CI / deploy-ift (push) Successful in 2m4s
CI / test (push) Successful in 6m8s
CI / e2e-ift (push) Failing after 3m27s
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
2026-07-20 01:45:10 +03:00
aleksey c760070611 fix: do not prune registry sha tag before deploy-ift
CI / test (push) Successful in 6m23s
CI / deploy-ift (push) Successful in 1m55s
CI / e2e-ift (push) Failing after 1m14s
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
2026-07-20 01:23:47 +03:00
aleksey 3c6211dd08 fix: avoid empty node metrics race in CT (collect on start + poll). Refs EventHub/EventHubBack#47
CI / test (push) Successful in 9m13s
CI / deploy-ift (push) Successful in 2m4s
CI / e2e-ift (push) Failing after 1m51s
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
2026-07-20 01:03:53 +03:00
aleksey 10f6eef92d fix: sync migration_engine_tests ALL_VERSIONS with review_vote. Refs EventHub/EventHubBack#47
CI / test (push) Failing after 5m38s
CI / deploy-ift (push) Has been skipped
CI / e2e-ift (push) Has been skipped
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
2026-07-20 00:52:57 +03:00
aleksey 84bfce474a fix: create review_vote table in unit fixtures for review delete. Refs EventHub/EventHubBack#47
CI / test (push) Failing after 9m7s
CI / deploy-ift (push) Has been skipped
CI / e2e-ift (push) Has been skipped
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
2026-07-20 00:39:30 +03:00
aleksey 0934e2c413 feat: PATCH /v1/user/me — профиль и смена пароля. Refs EventHub/EventHubBack#48
CI / test (push) Failing after 9m43s
CI / deploy-ift (push) Has been skipped
CI / e2e-ift (push) Has been skipped
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
2026-07-19 23:26:34 +03:00
aleksey 5b638de450 feat: user API голосования за отзывы (like/dislike). Refs EventHub/EventHubBack#47
CI / test (push) Failing after 45m52s
CI / deploy-ift (push) Has been skipped
CI / e2e-ift (push) Has been skipped
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
2026-07-19 21:31:29 +03:00
aleksey 0c8a87df75 fix: parse confirmation timeout on calendar PUT
Map auto/manual/{timeout:N} in convert_field so client updates are not silently dropped.
2026-07-19 20:37:46 +03:00
aleksey f1f5af6499 fix: tolerate existing eventhub_counters ETS on infra_mnesia restart
CI / test (push) Successful in 25m54s
CI / deploy-ift (push) Successful in 6m43s
CI / e2e-ift (push) Successful in 1m18s
CI / deploy-stage (push) Successful in 6m37s
CI / e2e-stage (push) Successful in 1m24s
Supervisor restarts after mnesia_stopped crashed on ets:new already_exists.
2026-07-19 13:32:38 +03:00
aleksey b646489778 fix: end handle_call/3 with period so release compiles
CI / test (push) Successful in 24m7s
CI / deploy-ift (push) Failing after 12m0s
CI / e2e-ift (push) Has been skipped
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
Trailing semicolon after wait_for_tables clause made Erlang treat handle_cast as another handle_call clause and failed rebar3 as prod release.
2026-07-19 12:29:06 +03:00
aleksey ccca8d0a1f fix(ci): purge corrupted buildx cache on crc32/unpigz failures
CI / test (push) Failing after 8m8s
CI / deploy-ift (push) Has been skipped
CI / e2e-ift (push) Has been skipped
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
Buildx failed with unpigz crc32 mismatch; retry now does full prune, drops stale builder volumes, and uses --no-cache on the last attempt.
2026-07-19 11:21:23 +03:00
aleksey e8addae3b7 fix: raise Mnesia wait_for_tables beyond gen_server 5s default
CI / test (push) Failing after 27m9s
CI / deploy-ift (push) Has been skipped
CI / e2e-ift (push) Has been skipped
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
Caller timed out while mnesia:wait_for_tables ran the full 5s on IFT disc load; use infinity call timeout, 120s wait, and one repair retry.
2026-07-19 10:45:25 +03:00
aleksey a6dadcb9d5 fix(test): wait for full stats_tops review/report topology
CI / test (push) Successful in 21m3s
CI / deploy-ift (push) Failing after 11m23s
CI / e2e-ift (push) Has been skipped
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
Partial waits on top-1 raced under CI load and flaked after stats_collector subscribe reorder.
2026-07-19 00:31:55 +03:00
aleksey 31c2a1b7d7 fix: subscribe stats_collector after Mnesia tables are ready
CI / test (push) Failing after 13m10s
CI / deploy-ift (push) Has been skipped
CI / e2e-ift (push) Has been skipped
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped
Backfill ran during init_tables before wait_for_tables, so dirty reads hit {no_exists,user} and crash-looped eventhub on IFT.
2026-07-18 23:33:56 +03:00
aleksey fa07d91f4b fix(ci): preflight registry DNS before IFT/stage deploy
CI / deploy-ift (push) Has been cancelled
CI / test (push) Successful in 25m20s
CI / e2e-ift (push) Has been cancelled
CI / deploy-stage (push) Has been cancelled
CI / e2e-stage (push) Has been cancelled
2026-07-18 12:53:46 +03:00