已合并
MVP-08: deliver the deterministic local multi-user E2E slice #15
urandon创建于 7月31日
MVP-08: deliver the deterministic local multi-user E2E slice #15
已合并
urandon创建于 7月31日
urandon
urandon成员
7月31日

Summary

  • add make e2e-local, which starts the pinned stand, builds the one-shot worker image, and runs a credential-free two-tenant black-box slice;
  • compose Telegram ingress, YDB, reconciler admission, ElasticMQ, isolated worker containers, MinIO artifacts, durable delivery, and Telegram capture;
  • cover duplicate/out-of-order updates, document ingestion, subscription/quota block and recovery, dispatch publication repair, retry before/after checkpoint, cancellation, Telegram 429 recovery, terminal duplicate delivery, tenant artifact isolation, and explicit clean context;
  • add deterministic fault injection limited to the test harness and Telegram fake;
  • add structured update_id/message_id/tenant_id/run_id/delivery_id correlation logs without payload or credential logging;
  • document the topology, operator queries, fault matrix, and timing boundary, and make the full slice mandatory in the mirrored GitHub Actions local-stand job.

Verification

Passed locally:

make ci
go test -race -run TestE2EPackageCompilesWithoutRuntimeEnvironment -tags=e2elocal ./test/e2e/...
go vet -tags=e2elocal ./test/e2e/...
git diff --check
sh -n scripts/e2e-local.sh

Docker is not installed on the development workstation, so no local Compose execution is claimed. The new make e2e-local path must pass in the mandatory mirrored GitHub Actions Local multi-service stand job before merge.

Closes #11.

likedislike
Pull Request已成功合入, 合并人@urandon
(感谢 urandon 的贡献)
urandonurandon成员
7月31日 关联了issue:[MVP-08] Deliver the deterministic local multi-user end-to-end slice
urandonurandon成员
7月31日 推送  1 个提交:9bae4640-fix: query canonical usage observations in e2e
urandon
urandon成员
7月31日 评论:

CI fix — canonical usage table

GitHub Actions run 30561336358 failed in the local multi-service stand because the E2E assertion queried usage_events, which is not part of the YDB schema. The authoritative table created by migration 00014 and written by the state store is usage_observations.

Commit 9bae464 updates the black-box assertion to query usage_observations by tenant and run. The telegram_delivery_ready_v2 errors visible earlier in the job log occurred while application containers were starting before dev-up completed migrations; delivery recovered after migration and those messages were not the test failure.

Verified locally:

  • go test -count=1 -tags=e2elocal ./test/e2e/...
  • make ci
  • git diff --check

The branch has been pushed. The full Compose slice remains gated by the next mirrored GitHub Actions run.

likedislike
urandonurandon成员
7月31日 推送  1 个提交:be971352-fix: assert canonical attachment names in e2e
urandon
urandon成员
7月31日 评论:

CI fix — canonical Telegram attachment name

GitHub Actions run 30563226089 reached the E2E attachment assertion and failed because the test searched for the raw filename notes.txt.

The production ingress path did not lose the file: it stores the document as a tenant-scoped blob and assigns the collision-safe manifest name attachment-01-notes.txt. Commit be97135 updates the black-box assertion to the canonical name and adds a processor unit assertion for the naming contract.

Verified locally:

  • go test -count=1 ./internal/telegramingress
  • go test -count=1 -tags=e2elocal ./test/e2e/...
  • make ci
  • git diff --check

The early *_ready_v2 does not exist messages in the job log were emitted while application containers were starting before dev-up completed migrations. The services recovered after migration; those messages were not the failing assertion.

likedislike
urandonurandon成员
7月31日 合入了pull request,合并节点 SHA:f61f9ece585dcc9d991e292dd9e2c79bf2d5071d