Appearance
Handoff: SVC-017-wallet-admin-review-response-parity wallet-service admin review response parity
Scope
- Service/area:
wallet-service - Task pack:
docs/agents/service-tasks/wallet-service.md - Goal: accept the bounded
SVC-017wallet admin-review response parity candidate for native review queue/list and replay-safe review mutations. - Non-goals: public/default wallet route promotion, payment provider reconciliation, billing subscription mutation, usage/quota ownership, broader admin wallet response parity, real 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/wallet-service.mdgo-platform/docs/agents/agent-handoff-format.mdgo-platform/docs/api/wallet-service.mdgo-platform/docs/qa/wallet-admin-review-live-smoke.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/wallet/wallet.controller.ts/Users/velikho/Desktop/WORKING/HOCTAPAZ/node-platform/apps/api/src/modules/wallet/az-credit.service.ts- Legacy source was read-only evidence only; no legacy files were changed.
Files Changed
go-platform/docs/agents/handoffs/SVC-017-wallet-admin-review-response-parity.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 wallet-service implementation exposes native admin review queue and review mutation routes.
- Existing audited review effects require an admin actor, use fixed idempotency keys, and apply replay-safe ledger movements for top-up and withdrawal review decisions.
- Existing audited repository implementations list top-up and withdrawal queue items with filters, totals, and paging in memory and Postgres paths.
Tests And Verification
- Command:
GOTOOLCHAIN=go1.25.11 go test ./services/wallet-service/... -count=1 - Result: passed.
- Evidence: wallet-service package tests passed for wallet ledger, admin review queue, and review mutation behavior.
- Command:
make test-monetization-event-chain test-monetization-routes test-monetization-broker-transport - Result: passed.
- Evidence: monetization event chain, route guard, and broker transport checks passed.
- Command:
WALLET_ADMIN_REVIEW_SELF_TEST=1 bash scripts/test/wallet-admin-review-live-smoke.sh - Result: passed.
- Evidence: self-test mode passed for the wallet admin review live-smoke harness; this is not fresh real gateway/browser proof.
Route State
- Legacy route: default
/api/admin,/api/wallet,/api/hooks, and fallback routes remain legacy-proxied indeploy/gateway/routes.json. - Native route: non-default rehearsal routes only
GET /api/admin/wallet/reviewsto wallet-service withADMINauth; broad admin/wallet routes remain legacy. - Gateway state: no default route table was changed or promoted by this handoff.
- Rollback: keep
deploy/gateway/routes.jsonas the active route table. Do not route public wallet/admin traffic to wallet-service until real runtime/browser evidence, rollback proof, and response parity are attached.
Data Notes
- Tables touched: none in this handoff run; verification used package tests and self-test route harnesses.
- Migration run: none.
- Validation report: not applicable because no live data was migrated or backfilled.
Risks / Blockers
- This is bounded owner-side native queue/review foundation, not full legacy admin wallet response parity.
- Only self-test route proof is recorded here; no fresh real gateway/browser proof was run.
- Default/public wallet route promotion remains blocked on legacy response parity, live/browser artifacts, immutable ledger rollback evidence, and payment/billing/usage boundary proof.
Next Step
- Run the non-default admin wallet review route against a real seeded gateway session, attach request/response/browser artifacts, and then decide whether any exact read-only route can be promoted.