Commit Graph

  • ef003230fa fix(web): DomainsPage показывает ошибки привязки шаблона и удаления vasyansk 2026-07-03 17:49:48 +07:00
  • 0ce15d30a8 feat(web): DomainsPage — список, импорт зон, привязка шаблона vasyansk 2026-07-03 17:43:49 +07:00
  • 1412da9a31 feat(web): DiffView + DomainDiffPage с prune-guard по умолчанию выключенным vasyanskandClaude Opus 4.8 2026-07-03 17:32:20 +07:00
  • 267ffc4ed9 fix(web): Domain.templateId опционален (Go omitempty), String() на error vasyanskandClaude Opus 4.8 2026-07-03 17:19:51 +07:00
  • 6f82036e38 feat(web): типизированный API-клиент, типы DTO, TanStack Query хуки vasyansk 2026-07-03 17:14:11 +07:00
  • 41242973e1 feat(web): scaffold Vite+React+TS, Tailwind v4, shadcn, router, тёмная console-тема vasyansk 2026-07-03 17:06:23 +07:00
  • 93cbe538e2 docs: план реализации Фазы 1C (React SPA) vasyanskandClaude Opus 4.8 2026-07-03 16:44:41 +07:00
  • fe85918407 docs: детализация дизайна Фазы 1C (React SPA) vasyanskandClaude Opus 4.8 2026-07-03 16:40:22 +07:00
  • b329855c28 merge: Фаза 1B — persistence + REST API vasyanskandClaude Opus 4.8 2026-07-03 15:33:36 +07:00
  • ddab6e2162 fix(store,api): идемпотентный import (UNIQUE+ON CONFLICT) + PATCH привязки шаблона к домену vasyansk 2026-07-03 15:24:08 +07:00
  • 2aca92d070 fix(api): tenant-проверка account/template в CreateDomain (HIGH), атомарный import через транзакцию (MEDIUM) vasyansk 2026-07-03 15:08:16 +07:00
  • ae6a4d7f4c feat(api): CRUD accounts/templates/domains + import зон (полный цикл), secret не в ответах vasyansk 2026-07-03 14:53:29 +07:00
  • 763919d23f feat(server): Loader/Recorder на Store, wiring cmd/server (config→migrate→pool→api) vasyansk 2026-07-03 14:41:09 +07:00
  • 05dc586646 fix(api): 400 на битое тело apply, маскирование internal-ошибок, лимит тела vasyansk 2026-07-03 14:35:43 +07:00
  • fdf90a7c23 feat(api): chi-роутер, check/apply хендлеры, changeset DTO vasyansk 2026-07-03 14:28:06 +07:00
  • 8a2d985197 feat(service): Check/Apply оркестрация с guard на prune vasyansk 2026-07-03 14:22:59 +07:00
  • 635b05361f refactor(store): sqlc override uuid→google/uuid.UUID (убирает pgtype boilerplate) vasyansk 2026-07-03 14:20:03 +07:00
  • 34bc49ee8c feat(store): sqlc-запросы, dto TemplateDoc, Repository, интеграционные тесты CRUD vasyansk 2026-07-03 14:08:37 +07:00
  • 9c29d40269 fix(store): postgres.BasicWaitStrategies() — устраняет flaky first-run на macOS vasyanskandClaude Opus 4.8 2026-07-03 14:04:23 +07:00
  • 5588e10e05 merge 1B wave: worktree-agent-a59d2fd8fdbcc99aa vasyansk 2026-07-03 14:03:05 +07:00
  • a3bb9474a4 merge 1B wave: worktree-agent-af74a8911eb1561ff vasyansk 2026-07-03 14:03:05 +07:00
  • d8d72aede1 merge 1B wave: worktree-agent-a472bc04034219ff7 vasyansk 2026-07-03 14:03:05 +07:00
  • 788f1db80e feat(store): goose-миграции схемы + seed default tenant, тест на testcontainers vasyansk 2026-07-03 13:56:21 +07:00
  • 3b7ed8434b feat(registry): резолвинг провайдера по имени vasyansk 2026-07-03 13:41:56 +07:00
  • 7c82bafaaa feat(crypto): AES-256-GCM шифрование секретов учёток vasyansk 2026-07-03 13:41:52 +07:00
  • fc10451340 feat(config): загрузка env-конфига (DSN, ENC-ключ, listen) vasyansk 2026-07-03 13:35:47 +07:00
  • 50aec973ff docs: план реализации Фазы 1B (persistence + REST API) vasyanskandClaude Opus 4.8 2026-07-03 13:31:36 +07:00
  • 3d6e3110b3 docs: детализация дизайна Фазы 1B (persistence + REST API) vasyanskandClaude Opus 4.8 2026-07-03 13:25:49 +07:00
  • c0c8e3188d merge backlog: worktree-agent-aca0d858dec169a39 vasyansk 2026-07-03 13:16:27 +07:00
  • b62f7d58cd merge backlog: worktree-agent-a0d4f6f75e1f8f7cd vasyansk 2026-07-03 13:16:27 +07:00
  • 6b515622e3 merge backlog: worktree-agent-a2c71dd931a5bf2a0 vasyansk 2026-07-03 13:16:26 +07:00
  • 70f9bc6793 harden(selectel): защита пагинации от неподвижного offset, тест New, документирование disabled vasyansk 2026-07-03 13:13:24 +07:00
  • c42d242a3b feat(diff): prune-guard Updates()/Prunes() + фиксация семантики dedup vasyansk 2026-07-03 13:12:10 +07:00
  • 1505997b19 refactor(model): slices.Sort/Equal вместо ручного цикла vasyansk 2026-07-03 13:11:18 +07:00
  • 9de5d4712c merge: Фаза 1A — доменное ядро + провайдер Selectel vasyanskandClaude Opus 4.8 2026-07-03 13:02:30 +07:00
  • cb2f826dc2 test(diff): пустой шаблон — массовый Delete управляемых, NS остаётся ReadOnly vasyansk 2026-07-03 12:57:36 +07:00
  • 86338f846a fix(selectel): nil-guard в ApplyChanges + тесты пагинации rrset и nil-diff vasyansk 2026-07-03 12:57:30 +07:00
  • b50972f38d fix(model): TXT сравнивается байт-точно (без схлопывания пробелов) vasyansk 2026-07-03 12:57:24 +07:00
  • 9b38f081f4 test(selectel): покрытие id-not-found, токена на мутациях, пагинации и HTTP-ошибок vasyansk 2026-07-03 12:48:59 +07:00
  • c0f5748817 feat(selectel): реализация Provider — ListZones, GetRecords, ApplyChanges vasyansk 2026-07-03 12:41:31 +07:00
  • 9f209c8931 feat(provider): интерфейс Provider, Credentials, Zone vasyansk 2026-07-03 12:36:18 +07:00
  • bd4f8c5a8c feat(diff): диф-движок шаблон↔зона с Actionable и ReadOnly для NS/SOA vasyanskandClaude Opus 4.8 2026-07-03 12:32:33 +07:00
  • 304632b8cf test(model): покрытие SRV, неполных MX/SRV значений и изоляция теста приоритета MX vasyansk 2026-07-03 12:27:39 +07:00
  • dd91c93bda feat(model): нейтральная модель Record с нормализацией и Equal vasyansk 2026-07-03 12:22:38 +07:00
  • c738d05241 docs: план реализации Фазы 1A (ядро + Selectel) vasyanskandClaude Opus 4.8 2026-07-03 12:16:03 +07:00
  • 74b8a01dc8 docs: зафиксированы решения (Selectel API-ключ, JSONB-шаблоны) vasyanskandClaude Opus 4.8 2026-07-03 12:09:18 +07:00
  • db62c8c0c7 docs: дизайн DNS Autoresolver (Фаза 1 — ядро) vasyanskandClaude Opus 4.8 2026-07-03 12:07:13 +07:00