This website requires JavaScript.
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