Commit Graph

81 Commits

Author SHA1 Message Date
vasyansk 635b05361f refactor(store): sqlc override uuid→google/uuid.UUID (убирает pgtype boilerplate) 2026-07-03 14:20:03 +07:00
vasyansk 34bc49ee8c feat(store): sqlc-запросы, dto TemplateDoc, Repository, интеграционные тесты CRUD 2026-07-03 14:08:37 +07:00
vasyansk 9c29d40269 fix(store): postgres.BasicWaitStrategies() — устраняет flaky first-run на macOS
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-03 14:04:23 +07:00
vasyansk 5588e10e05 merge 1B wave: worktree-agent-a59d2fd8fdbcc99aa 2026-07-03 14:03:05 +07:00
vasyansk a3bb9474a4 merge 1B wave: worktree-agent-af74a8911eb1561ff 2026-07-03 14:03:05 +07:00
vasyansk d8d72aede1 merge 1B wave: worktree-agent-a472bc04034219ff7 2026-07-03 14:03:05 +07:00
vasyansk 788f1db80e feat(store): goose-миграции схемы + seed default tenant, тест на testcontainers 2026-07-03 13:56:21 +07:00
vasyansk 3b7ed8434b feat(registry): резолвинг провайдера по имени 2026-07-03 13:41:56 +07:00
vasyansk 7c82bafaaa feat(crypto): AES-256-GCM шифрование секретов учёток 2026-07-03 13:41:52 +07:00
vasyansk fc10451340 feat(config): загрузка env-конфига (DSN, ENC-ключ, listen) 2026-07-03 13:35:47 +07:00
vasyansk 50aec973ff docs: план реализации Фазы 1B (persistence + REST API)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-03 13:31:36 +07:00
vasyansk 3d6e3110b3 docs: детализация дизайна Фазы 1B (persistence + REST API)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-03 13:25:49 +07:00
vasyansk c0c8e3188d merge backlog: worktree-agent-aca0d858dec169a39 2026-07-03 13:16:27 +07:00
vasyansk b62f7d58cd merge backlog: worktree-agent-a0d4f6f75e1f8f7cd 2026-07-03 13:16:27 +07:00
vasyansk 6b515622e3 merge backlog: worktree-agent-a2c71dd931a5bf2a0 2026-07-03 13:16:26 +07:00
vasyansk 70f9bc6793 harden(selectel): защита пагинации от неподвижного offset, тест New, документирование disabled 2026-07-03 13:13:24 +07:00
vasyansk c42d242a3b feat(diff): prune-guard Updates()/Prunes() + фиксация семантики dedup 2026-07-03 13:12:10 +07:00
vasyansk 1505997b19 refactor(model): slices.Sort/Equal вместо ручного цикла 2026-07-03 13:11:18 +07:00
vasyansk 9de5d4712c merge: Фаза 1A — доменное ядро + провайдер Selectel
- internal/model: нейтральная модель Record (нормализация MX/SRV/TXT, Key, Equal)
- internal/diff: диф-движок шаблон↔зона, ReadOnly для NS/SOA, Actionable
- internal/provider: интерфейс Provider + Credentials/Zone
- internal/provider/selectel: Selectel DNS API v2 (ListZones/GetRecords/ApplyChanges)
Финальный ревью: READY TO MERGE. 23/23 тестов.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-03 13:02:30 +07:00
vasyansk cb2f826dc2 test(diff): пустой шаблон — массовый Delete управляемых, NS остаётся ReadOnly 2026-07-03 12:57:36 +07:00
vasyansk 86338f846a fix(selectel): nil-guard в ApplyChanges + тесты пагинации rrset и nil-diff 2026-07-03 12:57:30 +07:00
vasyansk b50972f38d fix(model): TXT сравнивается байт-точно (без схлопывания пробелов) 2026-07-03 12:57:24 +07:00
vasyansk 9b38f081f4 test(selectel): покрытие id-not-found, токена на мутациях, пагинации и HTTP-ошибок 2026-07-03 12:48:59 +07:00
vasyansk c0f5748817 feat(selectel): реализация Provider — ListZones, GetRecords, ApplyChanges 2026-07-03 12:41:31 +07:00
vasyansk 9f209c8931 feat(provider): интерфейс Provider, Credentials, Zone 2026-07-03 12:36:18 +07:00
vasyansk bd4f8c5a8c feat(diff): диф-движок шаблон↔зона с Actionable и ReadOnly для NS/SOA
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-03 12:32:33 +07:00
vasyansk 304632b8cf test(model): покрытие SRV, неполных MX/SRV значений и изоляция теста приоритета MX 2026-07-03 12:27:39 +07:00
vasyansk dd91c93bda feat(model): нейтральная модель Record с нормализацией и Equal 2026-07-03 12:22:38 +07:00
vasyansk c738d05241 docs: план реализации Фазы 1A (ядро + Selectel)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-03 12:16:03 +07:00
vasyansk 74b8a01dc8 docs: зафиксированы решения (Selectel API-ключ, JSONB-шаблоны)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-03 12:09:18 +07:00
vasyansk db62c8c0c7 docs: дизайн DNS Autoresolver (Фаза 1 — ядро)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-03 12:07:13 +07:00