From 8affa4b25a93515547a5412d0cbd79dd9fcdc034 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=AE=97=E7=90=A6?= <442782435@qq.com> Date: Fri, 14 Aug 2026 07:26:22 +0800 Subject: [PATCH] docs: record Go backend completeness review --- ...260814-architecture-gap-review-3c8d51ae.md | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 .project-docs/30-worklog/tasks/20260814-architecture-gap-review-3c8d51ae.md diff --git a/.project-docs/30-worklog/tasks/20260814-architecture-gap-review-3c8d51ae.md b/.project-docs/30-worklog/tasks/20260814-architecture-gap-review-3c8d51ae.md new file mode 100644 index 0000000..4d3260d --- /dev/null +++ b/.project-docs/30-worklog/tasks/20260814-architecture-gap-review-3c8d51ae.md @@ -0,0 +1,44 @@ +# Task: Review Go backend for missing modules + +## Identity + +- Task ID: 20260814-architecture-gap-review-3c8d51ae +- Mode: Feature +- Branch: main +- Worktree: /Users/brother7/Documents/AI/NianAIGC +- Base commit: eacb4c67def1af1de1f76669a00e4170afbb5392 +- Owner: dsh +- Status: Ready for Integration + +## Scope + +- Read-only completeness review of the merged Go backend against ADR-003 and the current Next.js implementation: HTTP route surface, deep modules, provider engines, account lifecycle, ops scripts, and deployment artifacts. + +## Intent And Constraints + +- No application, database, test, or deployment file was changed. +- Facts were verified against the checked-in route-surface contract, source inventories, and binary strings; no claims based on task-record prose alone. + +## Outcome + +- Route surface: complete parity. The checked-in contract has 66 method/path entries; Next.js exports 64 route handlers plus the two static file roots (`/uploads`, `/generated-results`), and the Go `route_surface.go` registers all 66. Zero routes missing in Go, zero unexpected extras. +- Deep modules: all ADR-003 modules exist in Go — identity (legacy `zhinian_session` HMAC/chunking, password lifecycle, authorization), administration (accounts, organizations, status/archive/delete, legacy subject), assets (local FS + OSS adapters, bounded remote import), jobs/providers/orchestration (embedded WorkerLoop, retries, artifacts, Seedance settlement, signed Webhooks), billing/usage (integer-fen quote/wallet/ledger/catalog, super-admin quota exemption), templates/prompt/settings/logging, postgres (fail-closed, verified-CA TLS, readiness, claim/wallet functions, grants including `platform_account_migrations`), localstore, httpapi/publicapi (OpenAPI output), health/ready. +- Provider engines: image `jimeng`/`evolink`/`bailian` (wan2.7-image-pro) and video `seedance`/`bailian` are all wired in Go; the current Next capability surface is only `image.generate` and `video.generate`, so Go matches it exactly. `inpaint`/`upscale` are legacy asset-source labels, not active capabilities. + +## Verification + +- Programmatic diff of `contracts/http/route-surface.v1.json` (66 entries) against Next route exports (64) and Go `route_surface.go` (66): contract minus Go is empty; Go minus Next is only the two static file routes. +- Grep audits: provider engines, OSS, webhook HMAC, captcha proxy, WorkerLoop packages, admin account lifecycle, super-admin quota exemption. +- Binary string scan of `backend/zhinian-api` confirms bailian image/video endpoints, seedance settlement, and OSS requirements are compiled in. + +## Follow-ups + +- Ops tooling gaps (small, cutover-relevant, not runtime modules): + 1. Go has no super-admin bootstrap tool (Next has `scripts/bootstrap-admin.mjs`); the Go binary exposes no CLI subcommands. + 2. Go has no legacy-account import tool (Next has `scripts/import-legacy-accounts.mjs`); the DB privilege grants for `platform_account_migrations` already exist in Go's postgres layer. + 3. The ACK migration Job still runs `node scripts/migrate-postgres.mjs`; Go has no migration runner. Acceptable while the Job keeps shipping Node, but a Go runner is worth deciding before cutover. +- Deployment artifacts for the Go workload (Go image, ACK manifests, Ingress routing) are intentionally deferred to the cutover workstream, not missing. + +## Promotion Candidates + +- None; this review recommends no canonical changes.