Tree:
088ea822a1
TEST-s
TEST-x
codex/popi-tv-header-logo
feature-img
feature/071
feature/0710
feature/260608
feature/627
feature/add_agent_md
feature/add_provider_popi
feature/canvas-chatbot-copilot
feature/composer
feature/gateway
feature/group
feature/handle
feature/handleReconstruction
feature/interaction
feature/new_node
feature/remove
feature/video-erase
feature/workflow
feature_apikey
feature_gateway-migration
feature_login
handoff-20260429-1057
master
songxh-popiart-node-canvas
test-0523
video_node
xuzhijie-popiart-node-canvas
${ noResults }
6 Commits (088ea822a11f77daf283ef236f797b7acfa72131)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
088ea822a1 |
Keep default image generation moving through gateway overloads
The default Popi Models image route can return transient upstream overloads for apiyi_nano_banana_2 even when the gateway configuration is valid. The executor now uses gpt-image-2-all as an implicit same-gateway fallback only for overload-shaped errors, while preserving explicit fallback behavior and surfacing non-overload errors unchanged. Constraint: The gateway can intermittently return system_disk_overloaded for the default image model Rejected: Change the default model globally | would alter every new image node instead of only recovering transient failures Rejected: Fallback on every error | would hide prompt, safety, or request-shape problems Confidence: high Scope-risk: moderate Directive: Keep implicit fallback predicates narrow so user-actionable errors remain visible Tested: npm run test:run Tested: npm run build |
2 months ago |
|
|
87b56a4d3f |
Keep new Popi users on tested gateway defaults
New users now land on Popi gateway defaults that match the tested production-style path: APIYI Nano Banana 2 for images, Doubao Seedance for video, and Doubao Seed 2.0 Lite for LLM chat/tool use. Settings and FTUX screens render these effective defaults instead of empty placeholders, while existing local node defaults keep taking precedence. The same pass keeps provider-overload errors user-facing by formatting the model name that the node currently displays, so fallback and switched-model failures are easier to understand across media nodes. Constraint: Popi mode should hide internal NewApiWG naming and default to models available through the Popi gateway. Rejected: Persist default values into localStorage for every new user | would make future system default changes harder and could overwrite explicit user preferences. Confidence: high Scope-risk: moderate Directive: Do not change these defaults without checking the Popi gateway model ids and www.popi.art login/model-routing assumptions. Tested: npm run test:run -- src/lib/__tests__/llmModels.test.ts src/store/utils/__tests__/nodeDefaults.test.ts src/store/execution/__tests__/generateVideoExecutor.test.ts src/components/__tests__/ProjectSetupModal.test.tsx src/components/__tests__/GenerationComposer.test.tsx src/app/api/chat/__tests__/route.test.ts src/components/__tests__/LLMGenerateNode.test.tsx src/utils/__tests__/userFacingErrors.test.ts Tested: PROVIDER_MODE=popi NEXT_PUBLIC_PROVIDER_MODE=popi npm run build Tested: git diff --check Not-tested: npm run lint currently fails because next lint is no longer a valid project command in this Next.js setup |
2 months ago |
|
|
2c2017bdf1 |
Fix NewApiWG image model promotion
|
2 months ago |
|
|
f5cf6017a0 |
Route generation defaults through NewApiWG
This aligns image, video, and text defaults with the PopiArt NewApi gateway while keeping provider-specific escape hatches available. Chat now uses the OpenAI-compatible NewApiWG route so workflow editing and LLM generation share the same Doubao-first text default. The canvas composer and quick-add controls are tightened so visible actions map to real clickable behavior, while temporarily unused header actions stay hidden. Constraint: Text/chat requests must prefer Doubao-Seed-2.0-lite through NewApiWG. Constraint: Image and video defaults should prefer PopiArt NewApi gateway models when configured. Rejected: Keep /api/chat on Gemini 3 Flash | conflicts with the requested NewApiWG text/chat default. Rejected: Hand-roll AI SDK chat streaming | would risk tool-call and UI stream compatibility. Confidence: high Scope-risk: moderate Directive: Do not add new text/chat defaults without updating src/lib/llmModels.ts and the chat route together. Tested: npm test -- --run src/app/api/chat/__tests__/route.test.ts src/components/__tests__/LLMGenerateNode.test.tsx src/lib/__tests__/llmModels.test.ts src/store/utils/__tests__/nodeDefaults.test.ts src/components/__tests__/GenerationComposer.test.tsx src/lib/chat/tools.test.ts Tested: npm test -- --run src/lib/__tests__/llmModels.test.ts src/store/utils/__tests__/nodeDefaults.test.ts src/components/__tests__/GenerationComposer.test.tsx src/lib/quickstart/__tests__/templates.test.ts src/lib/quickstart/__tests__/validation.test.ts src/lib/quickstart/__tests__/prompts.test.ts src/components/__tests__/ProjectSetupModal.test.tsx Tested: npm test -- --run src/components/__tests__/WorkflowCanvas.test.tsx Not-tested: Full suite; repository has pre-existing unrelated type/test warnings outside this change. |
2 months ago |
|
|
208f088147 |
Stabilize creator media flows and composer focus
Provider video URLs can expire before users finish composing, and the bottom composer was too visually dominant for canvas work. This change keeps remote videos playable while background-localizing them, teaches video previews to use the media proxy, makes audio nodes first-class in the composer and executor, and adds a compact composer state for canvas visibility. Constraint: Provider media URLs may be remote, signed, or CORS-restricted during playback and thumbnail extraction Constraint: Audio generation nodes need to work from their internal prompt as well as connected text Rejected: Store only provider URLs | remote URLs can expire and break later playback Rejected: Treat audio nodes as unsupported composer nodes | it falls back to the image model and corrupts user intent Confidence: high Scope-risk: moderate Reversibility: clean Directive: Keep provider media playable through the resolver/proxy path and preserve local refs as the durable source when available Tested: npm run test:run Tested: npm run test:run -- src/components/__tests__/GenerationComposer.test.tsx src/store/execution/__tests__/generateAudioExecutor.test.ts src/store/execution/__tests__/generateVideoExecutor.test.ts src/components/__tests__/VideoStitchNode.test.tsx src/components/__tests__/GenerateVideoNode.test.tsx Tested: npm run build Not-tested: npm run lint currently fails because next lint is not supported by this Next.js setup Not-tested: npx tsc --noEmit still reports pre-existing test typing errors outside this change |
2 months ago |
|
|
53fb160d03 |
Make NewApiWG media models usable end to end
NewApiWG image and video models need to work against the PopiArt test gateway, with generated remote media visible in the canvas and UI text localized for Chinese users. This wires the gateway-specific image/video paths, model fallback display, remote media proxying, and related i18n cleanup into one releaseable change. Constraint: Test gateway exposes image and video models through mixed OpenAI-compatible and Gemini-native response shapes Constraint: Browser video playback can fail when loading signed third-party media URLs directly Rejected: Keep remote video URLs as direct <video> sources | CORS and range handling made successful generations appear unloaded Confidence: high Scope-risk: moderate Directive: Do not remove the media proxy without validating remote video playback, trimming, and stitching against signed CDN URLs Tested: npm run build Tested: npx vitest run src/components/__tests__/OutputNode.test.tsx src/components/__tests__/GenerateVideoNode.test.tsx src/components/__tests__/VideoStitchNode.test.tsx Tested: npx vitest run src/components/__tests__/WorkflowCanvas.test.tsx src/store/execution/__tests__/generateVideoExecutor.test.ts Tested: npx vitest run src/app/api/generate/providers/__tests__/newapiwg.test.ts Not-tested: Live browser replay after pushing to remote deployment |
3 months ago |