[sync] fix: reject reserved @ in AI provider and model IDs T5718#3576
Conversation
Synced from teableio/teable-ee@8c322bb Co-authored-by: Aries X <caoxing9@gmail.com> Co-authored-by: Bieber <artist@teable.io> Co-authored-by: Jocky Zhou <jocky@teable.ai> Co-authored-by: Jun Lu <hammond@teable.io> Co-authored-by: Pengap <penganpingprivte@gmail.com> Co-authored-by: SkyHuang <sky.huang.fe@gmail.com> Co-authored-by: Uno <uno@teable.ai> Co-authored-by: nichenqin <nichenqin@hotmail.com>
|
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: db8cb94ab6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| columns.push({ | ||
| targetColumn: targetColumnResult.value, | ||
| sourceSql: quoteIdent(sourceColumnResult.value), | ||
| }); |
There was a problem hiding this comment.
Skip generated columns in the physical duplicate plan
When a table being duplicated with records has generated fields such as CreatedTime or AutoNumber, this loop adds the target field column to the bulk INSERT ... SELECT plan. The newly created target table keeps those fields as GENERATED ALWAYS, so duplicatePhysicalRows() will try to insert explicit values into generated columns and PostgreSQL rejects the whole table duplicate; the previous field-value duplicate path skipped these system/auto-generated fields. Please omit generated target fields from the physical plan or fall back to the hydrated path for them.
Useful? React with 👍 / 👎.
| return await this.performanceCacheService.wrap( | ||
| AI_GATEWAY_MODELS_CACHE_KEY, | ||
| () => this.fetchGatewayModels(), | ||
| { ttl: gatewayModelsCacheTtlSeconds } |
There was a problem hiding this comment.
Keep an in-process cache when Redis is disabled
In installs without BACKEND_PERFORMANCE_CACHE, PerformanceCacheService.wrap() executes the callback directly, and this new service no longer keeps the old in-memory gateway-model cache. For gateway/custom models not already present in aiConfig.gatewayModels, each pricing or capability lookup can now call the Vercel catalog endpoint instead of reusing the last successful result, adding latency and causing default pricing/tags during transient or rate-limit failures. Please preserve a local stale/TTL cache for the no-Redis path.
Useful? React with 👍 / 👎.
🧹 Preview Environment Cleanup
|
🔄 Automated sync from EE repository.
72 commit(s) synced since last sync.
Authors
Included commits
Latest source commit: teableio/teable-ee@8c322bb
This PR was automatically created by the sync workflow.