Appearance
Handoff: SVC-023-support-moderation-source-contract admin-service support moderation source contract
Scope
- Service/area:
admin-service - Task pack:
docs/agents/service-tasks/admin-service.md - Goal: accept the bounded
SVC-023source-map and support/moderation contract slice, preserving admin-service as an operations/read-model coordinator while keeping support ticket storage, recipient discovery, notification delivery, audit storage, IAM, profile, wallet, and payment ownership outside admin-service. - Non-goals: mutating support ticket implementation, public
/api/support*cutover, broad/api/admin*route promotion, notification recipient discovery, ticket persistence, moderation workflow parity, live browser proof, or changes to legacy source under/Users/velikho/Desktop/WORKING/HOCTAPAZ/.
Docs Read
go-platform/docs/architecture/service-responsibility-matrix.mdgo-platform/docs/architecture/legacy-api-map.mdgo-platform/docs/agents/service-agent-execution-queue.jsongo-platform/docs/agents/service-agent-closeout-ledger.jsongo-platform/docs/agents/service-tasks/admin-service.mdgo-platform/docs/agents/agent-handoff-format.mdgo-platform/docs/api/admin-service.mdgo-platform/docs/qa/service-agent-goal-completion-audit.mdgo-platform/docs/qa/service-agent-readiness-smoke.md
Legacy Evidence Read
/Users/velikho/Desktop/WORKING/HOCTAPAZ/node-platform/apps/api/src/modules/admin/feature-maintenance.service.ts/Users/velikho/Desktop/WORKING/HOCTAPAZ/node-platform/apps/api/src/modules/admin/operations.controller.ts/Users/velikho/Desktop/WORKING/HOCTAPAZ/node-platform/apps/api/src/modules/admin/admin-dashboard.controller.ts/Users/velikho/Desktop/WORKING/HOCTAPAZ/node-platform/apps/api/src/modules/admin/inbox.controller.ts/Users/velikho/Desktop/WORKING/HOCTAPAZ/node-platform/apps/api/src/modules/support/support.service.ts/Users/velikho/Desktop/WORKING/HOCTAPAZ/node-platform/apps/api/src/modules/support/support.controller.ts/Users/velikho/Desktop/WORKING/HOCTAPAZ/node-platform/apps/api/src/common/feature-maintenance.guard.ts/Users/velikho/Desktop/WORKING/HOCTAPAZ/node-platform/apps/api/prisma/schema.prisma- Legacy source was read-only evidence only; no support ticket storage or recipient-discovery cutover is claimed.
Files Changed
go-platform/docs/agents/handoffs/SVC-023-support-moderation-source-contract.mdgo-platform/docs/agents/service-agent-closeout-ledger.jsongo-platform/docs/agents/service-agent-closeout-ledger.md
Behavior Implemented
- none in this handoff.
- Existing audited admin-service routes are limited to native/internal feature maintenance, source-map/source-snapshot, audit log, explicit-recipient admin broadcast, and explicit-recipient support notification routes.
- Existing audited
support.queuessource-map entry points to notification-service owner projectionGET /v1/admin/support/notification-summaryand states support storage is not admin-service state. - Existing audited support notification code requires caller-supplied
ticketId,clientRequestId, and concreterecipientIds; it writes a local audit log and best-effort emits notification intent, but does not store tickets, discover users, or write notification rows directly.
Tests And Verification
- Command:
env GOCACHE=/tmp/hoctapaz-svc023-go-cache GOTOOLCHAIN=go1.25.11 go test ./services/admin-service/... -count=1 - Result: passed.
- Evidence: admin-service packages passed for feature maintenance, source map/snapshots, audit log, notification broadcast, and support notification behavior.
- Command:
make test-feature-maintenance-routes test-admin-audit-routes - Result: passed.
- Evidence: non-default route rehearsals remained exact and guarded while broad admin routes stayed legacy.
- Command:
make test-audit-admin-compat-routes - Result: passed.
- Evidence: audit-service admin compatibility rehearsal stayed separate from admin-service default route promotion.
- Command:
make test-service-agent-execution-queue test-service-agent-closeout-ledger - Result: passed.
- Evidence: queue and closeout ledger checks accepted the bounded contract state without marking the service complete.
- Command:
git diff --check -- docs/agents/service-agent-execution-queue.json docs/agents/service-tasks/admin-service.md services/admin-service deploy/gateway scripts/test Makefile docs/qa contracts/openapi/services/admin-service.yaml services/admin-service/api/openapi.yaml docs/api/admin-service.md - Result: passed.
- Evidence: no whitespace errors were reported for the inspected admin-service slice.
Route State
- Legacy route: default
deploy/gateway/routes.jsonkeeps broad/api/admin*,/api/support*, fallback, and other public routes legacy-proxied. - Native route: non-default feature maintenance and admin/audit compatibility examples remain exact route rehearsals only; support notification routes are internal/native and not public cutovers.
- Gateway state: feature-maintenance, admin-audit, and audit-admin-compat route guards enforce auth/role/default legacy boundaries.
- Rollback: keep the default gateway table; do not promote support/admin routes until owner APIs, recipient resolution, browser/runtime proof, response parity, and rollback evidence are attached.
Data Notes
- Tables touched: none in this handoff run; verification used package tests and route guards.
- Migration run: none.
- Validation report: not applicable because no live data was migrated or backfilled.
Risks / Blockers
- Dependency
SVC-022has accepted bounded evidence only and remains not complete. - Public
/api/support*, support ticket persistence, recipient discovery, and default admin route promotion remain gated. - Mutating support/moderation workflows must not start until support owner API and recipient-resolution contracts are explicit.
- No live browser/runtime smoke was run for this handoff.
Next Step
- Name the support ticket owner API and recipient-resolution source before any mutating support/moderation implementation, then add focused service tests and route/browser proof for the exact public route under rehearsal.