Skip to content

Commit f8d9783

Browse files
ryancbahanclaude
andcommitted
fix: restore isAppConfigSpecification filter in createConfigExtensionInstances
The rebase replaced isAppConfigSpecification(spec) with uidStrategy === 'single', which is NOT equivalent — uidStrategy 'single' includes webhook subscriptions (experience: 'extension'), while isAppConfigSpecification only matches experience: 'configuration'. Also restored the missing WebhookSubscriptionSpecIdentifier exclusion filter that the rebase dropped. Without this fix, config extensions aren't properly identified during deploy, causing the API to reject with "at least one specification file is required". Verified: all 12 E2E tests pass locally. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent a3586bc commit f8d9783

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

packages/app/src/cli/models/app/loader.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import {configurationFileNames, dotEnvFileNames} from '../../constants.js'
2222
import metadata from '../../metadata.js'
2323
import {ExtensionInstance} from '../extensions/extension-instance.js'
2424
import {ExtensionsArraySchema, UnifiedSchema} from '../extensions/schemas.js'
25-
import {ExtensionSpecification} from '../extensions/specification.js'
25+
import {ExtensionSpecification, isAppConfigSpecification} from '../extensions/specification.js'
2626
import {CreateAppOptions, Flag} from '../../utilities/developer-platform-client.js'
2727
import {findConfigFiles} from '../../prompts/config.js'
2828
import {WebhookSubscriptionSpecIdentifier} from '../extensions/specifications/app_config_webhook_subscription.js'
@@ -763,7 +763,8 @@ class AppLoader<TConfig extends CurrentAppConfiguration, TModuleSpec extends Ext
763763
const configPath = this.loadedConfiguration.configPath
764764
const extensionInstancesWithKeys = await Promise.all(
765765
this.specifications
766-
.filter((specification) => specification.uidStrategy === 'single')
766+
.filter((specification) => isAppConfigSpecification(specification))
767+
.filter((specification) => specification.identifier !== WebhookSubscriptionSpecIdentifier)
767768
.map(async (specification) => {
768769
const specConfiguration = parseConfigurationObjectAgainstSpecification(
769770
specification,

0 commit comments

Comments
 (0)