rdev/internal/service
jordan ddcfe52b5c
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
feat: implement shared notify host model for platform email delivery
Replace per-project notify host provisioning (7-9 API calls + DNS + async
Resend verification) with a shared platform host for all *.threesix.ai projects.

Under the new model:
- CreateProjectNotify: 3 calls only (account + send key + host grant)
- No per-project Resend domain, DNS records, or async verification
- All *.threesix.ai projects share `threesix.ai` as the platform host
- Custom domains still get a dedicated host via ReprovisionNotifyHost

Changes:
- domain/notify.go: slim NotifyCredentials (no Host/From/ResendDomainID);
  add NotifyHostCredentials for reprovision return path
- port/notify_provisioner.go: update interface signatures and docs
- adapter/notify/provisioner.go: rewrite CreateProjectNotify (3 steps);
  rewrite DeleteProjectNotify (account-only vs full cleanup)
- adapter/notify/provisioner_reprovision.go: return *NotifyHostCredentials
- adapter/notify/provisioner_test.go: update tests for new model
- service/project_infra_crud.go: store only NOTIFY_API_KEY on provision
- domain/credential.go: add CredKeyNotifySharedHost/CredKeyNotifySharedFrom
- cmd/rdev-api/config.go: add NotifySharedHost/NotifySharedFrom to InfraConfig
- service/component.go: add notifySharedHost/notifySharedFrom + WithNotifyDefaults
- service/component_deploy.go: inject shared host defaults when no custom host stored
- handlers/notify.go: handle shared-host projects in Reprovision guard;
  add WithSharedNotifyHost builder
- cmd/rdev-api/main.go: wire SharedHost to provisioner, component service,
  and notify handler

Bootstrap: NOTIFY_SHARED_HOST=threesix.ai and NOTIFY_SHARED_FROM=noreply@threesix.ai
stored in credential store (host id=1 already provisioned with Resend provider).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 17:04:11 -07:00
..
apikey_service_test.go feat: implement project access enforcement and management API 2026-02-21 15:38:37 -07:00
apikey_service.go feat: implement project access enforcement and management API 2026-02-21 15:38:37 -07:00
architect_service.go fix(architect): handle missing projects in repo, add cookbook hooks/validation 2026-02-11 02:25:40 -07:00
blueprint_service.go feat(foundary): implement complete backend for conversational project design 2026-02-09 00:50:46 -07:00
build_progress_test.go chore: prepare for composable monorepo template implementation 2026-01-31 11:39:28 -07:00
build_progress.go chore: prepare for composable monorepo template implementation 2026-01-31 11:39:28 -07:00
build_service_test.go feat: add structured logging infrastructure and SDLC extensions 2026-02-04 22:56:04 -07:00
build_service.go refactor: add timeout constants for agent execution tiers 2026-02-11 10:48:24 -07:00
checkout_service.go feat(sessions): add command execution endpoint and activity tracking 2026-02-13 08:41:05 -07:00
component_batch.go fix: inject SERVICE_NAME/SERVICE_PORT for app components in batch path 2026-02-23 11:52:03 -07:00
component_deploy.go feat: implement shared notify host model for platform email delivery 2026-02-25 17:04:11 -07:00
component_infra.go fix(rc-5): add Redis ACL persistence + cache reprovision endpoint 2026-02-24 20:22:31 -07:00
component_listing.go feat: add structured logging infrastructure and SDLC extensions 2026-02-04 22:56:04 -07:00
component_test.go fix: handle missing Redis credentials and redis.Nil in provisioner 2026-02-23 05:19:00 -07:00
component_updates_test.go fix(templates): harden component CI steps and compile regexes 2026-02-09 19:36:23 -07:00
component_updates.go fix(templates): harden component CI steps and compile regexes 2026-02-09 19:36:23 -07:00
component.go feat: implement shared notify host model for platform email delivery 2026-02-25 17:04:11 -07:00
conversation_service.go feat(foundary): implement complete backend for conversational project design 2026-02-09 00:50:46 -07:00
diagnostics_service_test.go feat(saga): implement enterprise-grade resilience architecture 2026-02-08 01:58:02 -07:00
diagnostics_service.go feat: add structured logging infrastructure and SDLC extensions 2026-02-04 22:56:04 -07:00
mock_test.go fix: wire workService to WorkersHandler and add /work/tasks endpoint 2026-02-06 10:35:39 -07:00
operation_service.go feat: add structured logging infrastructure and SDLC extensions 2026-02-04 22:56:04 -07:00
project_infra_crud.go feat: implement shared notify host model for platform email delivery 2026-02-25 17:04:11 -07:00
project_infra_domains.go feat: add structured logging infrastructure and SDLC extensions 2026-02-04 22:56:04 -07:00
project_infra.go feat: hook in notify service for per-project email delivery 2026-02-21 00:30:32 -07:00
project_service_agent.go fix: go.work race condition with batch components and idempotent provisioning 2026-02-05 12:31:40 -07:00
project_service_commands.go fix: go.work race condition with batch components and idempotent provisioning 2026-02-05 12:31:40 -07:00
project_service_queue.go feat: Add multi-provider code agent interface with Claude Code and OpenCode adapters 2026-01-27 09:25:51 -07:00
project_service_test.go feat: implement project access enforcement and management API 2026-02-21 15:38:37 -07:00
project_service.go feat: implement project access enforcement and management API 2026-02-21 15:38:37 -07:00
question_service.go feat(foundary): implement complete backend for conversational project design 2026-02-09 00:50:46 -07:00
saga_executor.go feat(saga): implement enterprise-grade resilience architecture 2026-02-08 01:58:02 -07:00
sdlc_callback_test.go feat: add structured logging infrastructure and SDLC extensions 2026-02-04 22:56:04 -07:00
sdlc_callback.go feat: add structured logging infrastructure and SDLC extensions 2026-02-04 22:56:04 -07:00
sdlc_generate_test.go feat: add structured logging infrastructure and SDLC extensions 2026-02-04 22:56:04 -07:00
sdlc_generate.go feat: add structured logging infrastructure and SDLC extensions 2026-02-04 22:56:04 -07:00
sdlc_orchestrator_test.go refactor: add timeout constants for agent execution tiers 2026-02-11 10:48:24 -07:00
sdlc_orchestrator.go refactor: add timeout constants for agent execution tiers 2026-02-11 10:48:24 -07:00
sdlc_service_test.go feat: add structured logging infrastructure and SDLC extensions 2026-02-04 22:56:04 -07:00
sdlc_service.go feat: add structured logging infrastructure and SDLC extensions 2026-02-04 22:56:04 -07:00
session_service_test.go feat: add claude_id tracking and session improvements for interactive dev 2026-02-24 00:20:32 -07:00
session_service.go feat: add claude_id tracking and session improvements for interactive dev 2026-02-24 00:20:32 -07:00
verify_service.go feat: add structured logging infrastructure and SDLC extensions 2026-02-04 22:56:04 -07:00
work_service_test.go feat: add structured logging infrastructure and SDLC extensions 2026-02-04 22:56:04 -07:00
work_service.go fix: wire workService to WorkersHandler and add /work/tasks endpoint 2026-02-06 10:35:39 -07:00
worker_service_test.go feat: add structured logging infrastructure and SDLC extensions 2026-02-04 22:56:04 -07:00
worker_service.go feat: add structured logging infrastructure and SDLC extensions 2026-02-04 22:56:04 -07:00