Commit Graph

  • e8b60feda1 chore: update ignore rules archive/2026-08-13-migration-planning Repinoid 2026-10-27 14:08:53 +03:00
  • 5ef6cbfdd5 chore: update ignore rules backup-v0.1.35-2026-08-15 Repinoid 2026-10-27 14:08:53 +03:00
  • e6395b431a chore: update ignore rules feat/helm-managed-redis-2026-04-11 Repinoid 2026-10-27 14:08:53 +03:00
  • 982e4d8832 chore: update ignore rules fix/critical-high-security-2026-04-10 Repinoid 2026-10-27 14:08:53 +03:00
  • 533c107075 chore: update ignore rules fix/perf-cleanup-2026-04-11 Repinoid 2026-10-27 14:08:53 +03:00
  • f256fab188 chore: update ignore rules main Repinoid 2026-10-27 14:08:53 +03:00
  • 4d4ebb3a7a chore: update ignore rules master Repinoid 2026-10-27 14:08:53 +03:00
  • 716f931544 docs(history): деплой на 213, smoke 22/22, образы в Gitea Repinoid 2026-10-11 10:05:51 +03:00
  • 7860c7c3f2 build: registry → gitea.services.ngcloud.ru/nail (вместо Docker Hub) Repinoid 2026-10-11 09:51:08 +03:00
  • 4e648f690e docs(history): зафиксировать решения по оставленным пунктам (34/37/28=A) Repinoid 2026-10-11 09:19:50 +03:00
  • b864cab5be docs(history): внешнее ревью Claude Sonnet и исправления 2026-10-11 Repinoid 2026-10-11 09:14:12 +03:00
  • f99f49bd8e persistence: порядковая нумерация async SaveMessage (старое состояние не перезапишет новое) + очистка при удалении Repinoid 2026-10-11 09:12:42 +03:00
  • fa47026400 SQS: dedup внутри цикла SendMessageBatch (NextSequenceNumber только для не-дубликата, откат dedup при ошибке персиста, per-entry DelaySeconds) Repinoid 2026-10-11 08:58:30 +03:00
  • a08d58cba1 SQS: DeletePersist возвращает ошибку (500 при сбое Redis), fail-fast загрузка очередей, дефолты атрибутов при CreateQueue, защита SqsErrors от nil-deref Repinoid 2026-10-11 08:56:49 +03:00
  • 5284a56f7a SQS: delete batch ключ по Id, валидация DelaySeconds 0-900 Repinoid 2026-10-11 08:54:21 +03:00
  • 120a44cb6a SQS: sendMessageToQueue лимиты+sync persist, Reset чистит FIFO, nil-map Duplicates, ApproximateReceiveCount без +1, billing.Close после Shutdown, запрет ':' в access_key, recover в PeriodicTasks Repinoid 2026-10-11 08:54:21 +03:00
  • e8e0879914 SQS: ValidateQueueName в createTenantQueue, JWT требует exp, leader сбрасывает лидерство при длительном сбое refresh Repinoid 2026-10-11 08:50:12 +03:00
  • 582ad4a832 auth: сверять X-Amz-Content-Sha256 с фактическим хэшем тела Repinoid 2026-10-11 08:35:57 +03:00
  • 0512ea2389 billing: потокобезопасный db + корректный Close (остановка воркера до db.Close) Repinoid 2026-10-11 08:35:56 +03:00
  • dd9acb3705 gosqs: персистить перенос в DLQ (SaveMessage в DLQ + DeleteMessagePersist исходной) Repinoid 2026-10-11 08:34:01 +03:00
  • e720f1ffcb gosqs: запретить self/cyclic RedrivePolicy (иначе deadlock при переносе в DLQ) Repinoid 2026-10-11 08:34:01 +03:00
  • b179ec6de7 persistence: Client → atomic.Pointer (устранение data race при reconnect) Repinoid 2026-10-11 08:30:58 +03:00
  • 9e0ad2c0a4 persistence: DeleteTenant чистит и tenant_ak (отзыв access key) Repinoid 2026-10-11 08:27:22 +03:00
  • 09fe0f7e66 config: разблокировать SyncQueues при ошибке setQueueRedrivePolicy Repinoid 2026-10-11 08:26:16 +03:00
  • 24dbdaa766 admin: jwtMiddleware сравнивает точный путь /ui/api/auth (не суффикс /auth) Repinoid 2026-10-11 08:26:16 +03:00
  • 84ef8f1fc9 docs(history): AWS-compatibility work for Terraform provider (2.20) Repinoid 2026-10-10 17:31:02 +03:00
  • ccd070200a fix(fifo): ContentBasedDeduplication + dedup window survives delete (AWS semantics) Repinoid 2026-10-10 17:30:02 +03:00
  • 9f1242aca3 feat(aws-compat): queue attributes for Terraform (FifoQueue, ContentBasedDeduplication, Policy, real timestamps) Repinoid 2026-10-10 17:29:58 +03:00
  • 22fa2b162a docs(history): deploy of review fixes to VM 213 + functional verification of empty-ReceiptHandle fix Repinoid 2026-10-10 17:14:14 +03:00
  • bb6dbfd349 docs(history): record review fixes applied (2.18) and remaining work Repinoid 2026-10-10 17:08:28 +03:00
  • 4e2b462379 fix(startup): fail-fast when REDIS_ADDR set but Redis unreachable Repinoid 2026-10-10 17:08:02 +03:00
  • e21abb8f13 fix(security): JWT validate against prod gateway only + cap grace renewal Repinoid 2026-10-10 17:07:57 +03:00
  • 521e3d85d0 fix(concurrency,durability): address Opus review critical findings Repinoid 2026-10-10 17:07:52 +03:00
  • ea7b539d19 docs(review): Opus code-review report verbatim + critical analysis (confirmed 🔴1/🔴5/🔴8, open JWT and byte-limit decisions) Repinoid 2026-10-10 17:03:20 +03:00
  • 073977286f docs(history): log Step 3 HA implementation, measurements and open questions Repinoid 2026-10-10 16:32:21 +03:00
  • 27fa2e6ae3 docs(ha): detailed active/passive HA design, measurements and migration path to option A Repinoid 2026-10-10 16:30:19 +03:00
  • d7b3c653e0 feat(ha): leader-election via Redis lock + /ready endpoint (active/passive, off by default) Repinoid 2026-10-10 16:30:15 +03:00
  • 607aebb8ef doc: durability SendMessageBatch + billing (предусмотрен, выключен) Repinoid 2026-10-10 16:19:54 +03:00
  • a341508b6d fix(batch): SendMessageBatch пишет в Redis синхронно (как SendMessage) + не персистит дубли; SaveMessagesSync Repinoid 2026-10-10 16:18:54 +03:00
  • 064ed6e5d7 doc: Шаг 3 — дизайн выноса состояния + журнал (read-through тенантов) Repinoid 2026-10-10 16:10:04 +03:00
  • 8e22bc4b9b feat(step3): тенанты read-through Redis (индекс accessKey→tenant, fallback в auth, бэкфилл на старте) Repinoid 2026-10-10 16:09:52 +03:00
  • 1862f058be doc: Шаг 2 — разбиение data-plane/control-plane Repinoid 2026-10-10 16:02:02 +03:00
  • a26e6da8b7 feat(split): data-plane (публичный SQS API) и control-plane (админка/метрики/UI на localhost) — Шаг 2 Repinoid 2026-10-10 16:00:57 +03:00
  • a66b908689 doc: прод-хардненинг (seed off, новый admin-token, logrotate) Repinoid 2026-10-10 15:58:37 +03:00
  • c4cc3c80ea doc: systemd + локальный Redis (устойчивость), дефекты seed, грабли Repinoid 2026-10-10 14:24:50 +03:00
  • f7fe2f26e5 fix(seed): идемпотентность (не плодить демо-тенанта) + персистентность очередей/сообщений в Redis Repinoid 2026-10-10 14:23:34 +03:00
  • cf369736a0 doc: QueueUrl исправлен (ExternalURLBase) + ошибки по пути; дефект снят Repinoid 2026-10-10 14:04:04 +03:00
  • c011099224 fix(queue-url): seed.go через gosqs.TenantQueueURL; env-override в applyEnvironmentDefaults (работает без goaws.yaml) Repinoid 2026-10-10 14:03:44 +03:00
  • f0e7cc905d feat(queue-url): ExternalURLBase для публичного QueueUrl (+ env SHARED_SQS_EXTERNAL_URL_BASE), тест Repinoid 2026-10-10 13:44:22 +03:00
  • ee5503f9ac doc: журнал сессии 2026-10-10 + справочник по публичной точке на ВМ (TLS, замеры, ошибки) Repinoid 2026-10-10 13:42:22 +03:00
  • 6800d1abf3 doc: убрать kube5s.ru (умирающий домен) из актуального migration-to-managed Repinoid 2026-10-10 13:31:42 +03:00
  • 7a2a7e1610 doc: мануал — уточнена ссылка на tenantQueueKey Repinoid 2026-10-08 17:33:41 +03:00
  • 3b0815155a doc: мануал для нового чата — состояние, решения, план шагов (ВМ -> разбиение -> хранилище), команды, грабли, карта кода Repinoid 2026-10-08 17:33:03 +03:00
  • 39b162439f doc: архитектурный анализ — публичный SQS, обход через ВМ, модульный монолит (data-plane/control-plane) Repinoid 2026-10-08 17:09:21 +03:00
  • b99905469d doc(HANDOFF): тикет отменён — болезнь платформы, решение через обход (ссылки на разборы) Repinoid 2026-10-08 16:51:58 +03:00
  • d8bdea75f3 doc: разбор применимости обхода drhider к SQS (прокси на ВМ, pull вместо push) Repinoid 2026-10-08 16:51:45 +03:00
  • a1d72b61d4 doc: находки — как та же сетевая болезнь платформы обойдена в drhider (буфер на ВМ, pull вместо push) Repinoid 2026-10-08 16:50:36 +03:00
  • b947f1d467 doc: журнал — полный код-ревью сервиса и фиксы замечаний (2026-10-08) Repinoid 2026-10-08 15:19:36 +03:00
  • 572c617f44 fix(review): TOCTOU лимита тенантов + персист NubesSub + пакетный http.Client Repinoid 2026-10-08 15:19:15 +03:00
  • 33a0adc9be refactor(P1.2-revue): Compact — один RebuildIndexes + ensureIndexes; журнал ревью-фиксов Repinoid 2026-10-07 08:44:02 +03:00
  • 2e1c594892 fix(P1.2-revue): батч-видимость не заводила в DLQ + TOCTOU лимит в SendMessageBatch Repinoid 2026-10-07 08:35:52 +03:00
  • f96649b14e doc: P1.2 сделан — результаты, найденный дефект (утечка per-queue блокировки) и прогоны тестов Repinoid 2026-10-07 08:27:10 +03:00
  • 529d208576 fix(P1.2): утечка per-queue блокировки при ReceiveMessage на пустой очереди Repinoid 2026-10-07 08:26:34 +03:00
  • ad14fd2f7e test(P1.2): примитивы индексации — tombstone O(1), компакция, receipt/uuid-индексы, Reset Repinoid 2026-10-07 08:06:07 +03:00
  • c5b2c11f5d P1.2: индексация сообщений — tombstone-удаление O(1), receipt/uuid-индексы, tick по in-flight Repinoid 2026-10-07 08:01:49 +03:00
  • e735563a04 doc(P1.2): дизайн индексации сообщений (tombstone + индексы + амортизированная компакция) Repinoid 2026-10-07 07:56:56 +03:00
  • 31840b9756 fix: DLQ-релинк после загрузки из Redis + безопасная эвикция retention + ParseForm Repinoid 2026-10-07 07:18:31 +03:00
  • d53aadecfa doc: P1.2 отложен с обоснованием (после P1.1 O(N) ограничен одной очередью) Repinoid 2026-10-06 18:59:57 +03:00
  • 8988293628 P2.4: единый путь создания очереди/сообщения (admin переиспользует gosqs) Repinoid 2026-10-06 18:59:36 +03:00
  • fd8ffc329d P1.1: per-queue блокировки вместо глобального лока на операции с очередью Repinoid 2026-10-06 18:58:16 +03:00
  • ed17c6cbd0 P1.1 groundwork: per-queue mutex в Queue + анализ блокеров Repinoid 2026-10-06 18:39:26 +03:00
  • 3a52960d5b P1.4: tenant-индекс очередей (O(1) подсчёт/список вместо скана) Repinoid 2026-10-06 18:36:03 +03:00
  • fb833ef01c P2.5: биллинг — воркер+буфер вместо горутины на операцию; корректный msg_count Repinoid 2026-10-06 18:19:17 +03:00
  • 07eace3c6b P2.8: Redis reconnect/health-check Repinoid 2026-10-06 18:18:06 +03:00
  • 8c39bc5346 P2.1: BYOC Admin API — произвольные креды при создании тенанта Repinoid 2026-10-06 18:17:24 +03:00
  • b7f79b388f P2.6: закрыть /metrics Bearer admin-токеном Repinoid 2026-10-06 18:16:27 +03:00
  • 2aa9a656a7 P2.7: убрать SNS-следы (Topics/Subscriptions) из goaws.yaml Repinoid 2026-10-06 18:15:28 +03:00
  • 876971eea8 P2.3: timing-safe сравнение admin bearer-токена Repinoid 2026-10-06 18:14:27 +03:00
  • 424ec32a6a P1.5: убрать демо-бэкдор (публичный bypass-токен UI) Repinoid 2026-10-06 18:13:40 +03:00
  • db41878951 P1.3: реализован MessageRetentionPeriod (эвикция просроченных сообщений) Repinoid 2026-10-06 18:10:57 +03:00
  • 5642b893a8 chore: удалить мёртвые унаследованные тесты gosqs (несовместимы с мультитенантным форком) Repinoid 2026-10-06 18:09:29 +03:00
  • ac06572e25 doc: находка — унаследованные Go-тесты gosqs мёртвые (несовместимы с форком) Repinoid 2026-10-06 18:07:31 +03:00
  • 12b25e393d P0.2: JWT принимается только при явном 2xx от Nubes API Repinoid 2026-10-06 18:04:42 +03:00
  • c19a056de3 P0.3: синхронный персист SendMessage до ответа 200 Repinoid 2026-10-06 18:04:22 +03:00
  • 928a3fb85d P0.1: случайные креды тенанта — убран детерминированный вывод из email Repinoid 2026-10-06 18:03:40 +03:00
  • 6e96a4d007 doc(sqs): подробный план доработок P0/P1/P2 для DeepSeek Flash Repinoid 2026-10-05 21:38:03 +03:00
  • 9528441c97 doc(sqs): мой критический анализ отчёта Opus (перепроверка по коду) Repinoid 2026-10-05 21:38:03 +03:00
  • e8ccd8bae1 doc(sqs): промпт для Opus (allowlist файлов) + его отчёт КРАКО и план Repinoid 2026-10-05 21:38:03 +03:00
  • 60b15fdb1c doc: HANDOFF-NEW-CHAT.md — резюме сессии для перехода в новый чат “Naeel” 2026-08-16 07:55:43 +04:00
  • 7897fda9e7 doc: тикет — дополнение: таймера 31с внутри кластера нет, он на внешнем шлюзе “Naeel” 2026-08-15 21:28:55 +04:00
  • 96f6d64184 doc: черновик тикета в Nubes (явления A/B, 6 доказательств); все фазы плана выполнены “Naeel” 2026-08-15 21:17:17 +04:00
  • 6d451c33d1 HISTORY: период таймаутов 32.9с (18 интервалов 32.7-33.0с) — таймер доказан; полная проверка скриптов и кредов OK; +tcp_mtu_probe.py “Naeel” 2026-08-15 20:38:01 +04:00
  • 5c2180d40e doc: финал плана (решения зафиксированы) + сравнение четырёх агентов “Naeel” 2026-08-15 15:05:12 +04:00
  • cd7f5a7d5a doc: план v4 от Опуса 4.8 + ответы на уточнения (нет второго ISP, NET_RAW вряд ли, echo отложить) “Naeel” 2026-08-15 15:03:33 +04:00
  • 5f6c0a5bf7 doc: план v3 от Соннета — разделение явлений A/B, port-forward первым; принят за основу “Naeel” 2026-08-15 14:56:13 +04:00
  • b91f21a50d doc: план v2 от DeepSeek V4 Pro (новый чат) — стратегия изоляции слоёв; сравнение с Flash “Naeel” 2026-08-15 14:50:02 +04:00
  • bd63c04ea3 doc: план сетевых экспериментов от DeepSeek V4 Flash (не Соннет) с поправками — nubes-network-bug-plan “Naeel” 2026-08-15 14:41:53 +04:00
  • 7460f59432 tests: 30-мин сравнение с локали — p50 90мс vs 140мс, но 49 таймаутов у shared (5.5%), YMQ 1 ошибка “Naeel” 2026-08-15 13:01:11 +04:00
  • 9950271259 tests: сравнение shared-SQS vs YMQ — p50 6-8мс vs 60-62мс; у shared выброс send 12-25с на прогон (платформа?) “Naeel” 2026-08-15 12:10:11 +04:00
  • 904d34904c tests: fifo_dlq_probe — опрос DLQ до 10с вместо мгновенной проверки (гонка с тиком); финальная регрессия зелёная “Naeel” 2026-08-15 09:31:11 +04:00