feat: add task workflow and asset downloads

This commit is contained in:
inman
2026-05-29 12:32:02 +08:00
parent f9c3393f84
commit 63e62d444c
61 changed files with 2773 additions and 2181 deletions

View File

@@ -4,7 +4,7 @@
Add EvoLink GPT Image 2 as a selectable image creation engine in the settings flow, while preserving the existing Jimeng/Volcengine image engine and the current task/asset workflow.
## Current Phase
Complete - latest update: product UI/UX polish, Seedance limits, and 智念AIGC平台 branding
Complete - latest update: Task management and public API v1
## Phases
@@ -60,6 +60,23 @@ Complete - latest update: product UI/UX polish, Seedance limits, and 智念AIGC
- [x] Verify desktop and mobile header rendering
- **Status:** complete
### Phase 9: Server Deployment Support
- [x] Add Dockerfile for production image builds
- [x] Add Docker Compose service with runtime persistence and healthcheck
- [x] Add setup/deploy scripts
- [x] Document one-command server deployment in Chinese README
- [x] Verify shell syntax, unit tests, production build, and local health
- **Status:** complete
### Phase 10: Task Management and Public API v1
- [x] Extend generation job fields for task ownership, idempotency, locking, retry, timing, and webhook delivery
- [x] Split task creation from provider execution so page/API submits enqueue only
- [x] Add task management service, worker loop, API key auth, webhook delivery, and OpenAPI output
- [x] Add `/api/v1` capabilities, assets, jobs, cancel, and openapi routes
- [x] Add Docker Compose worker service, npm worker script, docs, and env examples
- [x] Add focused tests and run verification commands
- **Status:** complete
## Key Questions
1. How should the selected image engine be stored and exposed in settings?
2. Which current capabilities should EvoLink handle first?
@@ -77,6 +94,9 @@ Complete - latest update: product UI/UX polish, Seedance limits, and 智念AIGC
| Follow official Seedance 2.0 duration range `4~15` seconds in the UI | Prevents the user from selecting values the API rejects |
| Preserve `-1` Seedance auto duration only in backend/env normalization, not in the default UI dropdown | Keeps the UI predictable while still supporting advanced configuration |
| Use the black/blue transparent NIANXX logo on the light top bar | Makes the logo visible without adding a frame that changes the brand feel |
| Use Docker Compose as the primary server deployment path | Gives server operators one command, persistent local runtime data, and a restart policy |
| Implement multi-task support as task management, not an external message queue | Matches user preference and keeps deployment simpler for this server product |
| Use API Key auth for public API v1 | Fastest stable server-to-server integration model for other AI systems |
## Errors Encountered
| Error | Attempt | Resolution |
@@ -90,6 +110,8 @@ Complete - latest update: product UI/UX polish, Seedance limits, and 智念AIGC
| `npm run build` failed after Seedance settings update because TypeScript narrowed fast-model resolution choices too aggressively | 1 | Changed resolution `includes` checks to readonly string arrays and rebuilt successfully |
| Running `npm run build` while an old dev server was active caused stale Next dev chunks in prior verification | 1 | Stop dev server before production builds, then restart it afterward |
| White transparent logo was invisible on the light top bar unless wrapped in a dark frame | 1 | Switched to the black/blue logo variant, generated a cropped transparent PNG, and removed frame/background styling |
| Current local machine does not expose Docker CLI | 1 | Verified script syntax, Next build, tests, and health locally; Docker build should be run on the deployment server |
| Docker CLI is still unavailable while validating Phase 10 | 1 | Verified npm tests, production build, local health, API v1 calls, and worker tick locally; Compose container startup should be validated on the deployment server |
## Notes
- EvoLink docs: submit `POST /v1/images/generations`, query `GET /v1/tasks/{task_id}`, completed task exposes `results[]`.
@@ -99,3 +121,7 @@ Complete - latest update: product UI/UX polish, Seedance limits, and 智念AIGC
- Before production build verification, stop the dev server first to avoid stale `.next` dev chunk references.
- Latest product name is `智念AIGC平台`.
- Current header logo asset is `public/logo/zhinian-logo.png`, generated from `/Users/inmanx/Documents/icon/logo/2d5b992caa14db16f594c4933e92e37e.png`.
- Server one-command deployment entrypoint is `bash scripts/deploy.sh`.
- Docker Compose persists local uploads/results/state through the bind mount `./.runtime:/app/.runtime`.
- Public API v1 endpoints are under `/api/v1` and require `ZHINIAN_API_KEYS`.
- Task processing is handled by `npm run worker` or the `zhinian-worker` Compose service through `/api/internal/worker/tick`.