Admin / production assurance
Execute allow-listed database, unit, integration, build, security, and Playwright checks in isolated durable workers. Every request and result is persisted for audit and comparison.
Registered suites
21
Allow-listed production checks
Latest passing
19
Suites with a green latest run
Latest failures
1
Suites requiring attention
Recorded runs
100
Most recent persisted history
Isolated runner: Ready
The self-hosted Test Lab runner is available. Repository suites use the configured local revision or authenticated GitHub read access.
Production-safe read-only database validationnpm run test:business-type-attributionnpm run test:business-type-attribution:integrationRun this suite from a controlled local or staging environment. It creates short-lived fixtures, may use governed providers, and must finish its teardown after Playwright stops.
npm run test:section-seedsnpm run test:geographynpm run test:google-placesnpm run test:medianpm run test:media-analysis:integrationRun this suite from a controlled local or staging environment. It creates short-lived fixtures, may use governed providers, and must finish its teardown after Playwright stops.
npm run test:design-logonpm run test:dashboardnpm run test:authnpm run test:daily-briefingnpm run test:api-healthnpm run test:end-to-end-testingnpm run test:end-to-end-testing:integrationRun this suite from a controlled local or staging environment. It creates short-lived fixtures, may use governed providers, and must finish its teardown after Playwright stops.
npm run test:dashboard:playwrightnpm run test:dashboard:roles:playwrightRun this suite from a controlled local or staging environment. It creates short-lived fixtures, may use governed providers, and must finish its teardown after Playwright stops.
npm run test:site-lifecycle:integrationRun this suite from a controlled local or staging environment. It creates short-lived fixtures, may use governed providers, and must finish its teardown after Playwright stops.
npm run test:dashboard:live-ai:playwrightRun this suite from a controlled local or staging environment. It creates short-lived fixtures, may use governed providers, and must finish its teardown after Playwright stops.
npm run buildnpm run test:qualityDuration: 13.3s
Requested by: test-lab-integration-operator
Trigger: Operator
Environment: Connected production database
Compared with the prior run: -4 passed, +4 failed.
Open operational recoveryLive master-data check failed with value 0.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | content configuration_coverage content.configuration_coverage | 0ms | Recorded |
| passed | content website_blueprint_coverage content.website_blueprint_coverage | 0ms | Recorded |
| passed | content website_blueprint_diversity content.website_blueprint_diversity | 0ms | Recorded |
| passed | discovery term_conflicts discovery.term_conflicts | 0ms | Recorded |
| passed | enrichment lead_eligible_coverage enrichment.lead_eligible_coverage | 0ms | Recorded |
| passed | governance platform_sources_only governance.platform_sources_only | 0ms | Recorded |
| passed | governance seed_provenance governance.seed_provenance | 0ms | Recorded |
| passed | governance semantic_review governance.semantic_review | 0ms | Recorded |
| passed | media complete_unique_fallback_sets media.complete_unique_fallback_sets | 0ms | Recorded |
| passed | offerings lead_eligible_exact_four offerings.lead_eligible_exact_four | 0ms | Recorded |
| passed | schema required_tables schema.required_tables | 0ms | Recorded |
| passed | schema single_active_versions schema.single_active_versions | 0ms | Recorded |
| passed | schema tenant_safe_evidence schema.tenant_safe_evidence | 0ms | Recorded |
| passed | taxonomy category_count taxonomy.category_count | 0ms | Recorded |
| passed | taxonomy google_type_snapshot taxonomy.google_type_snapshot | 0ms | Recorded |
| passed | taxonomy primary_mapping_coverage taxonomy.primary_mapping_coverage | 0ms | Recorded |
| passed | runtime eligible_type_count runtime.eligible_type_count | 0ms | Recorded |
| passed | runtime attribution_coverage runtime.attribution_coverage | 0ms | Recorded |
| passed | runtime offering_coverage runtime.offering_coverage | 0ms | Recorded |
| passed | runtime category_mapping runtime.category_mapping | 0ms | Recorded |
| passed | runtime term_conflicts runtime.term_conflicts | 0ms | Recorded |
| passed | runtime semantic_review runtime.semantic_review | 0ms | Recorded |
| failed | runtime approved_icon_assignments runtime.approved_icon_assignmentsLive master-data check failed with value 0. | 0ms | Recorded |
| passed | runtime media_library_channel runtime.media_library_channel | 0ms | Recorded |
| passed | runtime media_channel_contract runtime.media_channel_contract | 0ms | Recorded |
| passed | runtime placeholder_seed_records runtime.placeholder_seed_records | 0ms | Recorded |
| passed | runtime duplicate_active_terms runtime.duplicate_active_terms | 0ms | Recorded |
| passed | runtime duplicate_discovery_sets runtime.duplicate_discovery_sets | 0ms | Recorded |
| passed | runtime duplicate_negative_sets runtime.duplicate_negative_sets | 0ms | Recorded |
| passed | runtime shared_discovery_terms runtime.shared_discovery_terms | 0ms | Recorded |
| passed | runtime shared_negative_terms runtime.shared_negative_terms | 0ms | Recorded |
| passed | runtime active_section_variants runtime.active_section_variants | 0ms | Recorded |
| passed | runtime recommendation_section_variants runtime.recommendation_section_variants | 0ms | Recorded |
| failed | runtime orphaned_geography_entities runtime.orphaned_geography_entitiesLive master-data check failed with value 2580. | 0ms | Recorded |
| passed | runtime geography_zctas_without_state runtime.geography_zctas_without_state | 0ms | Recorded |
| failed | runtime geography_search_zones runtime.geography_search_zonesLive master-data check failed with value 36371. | 0ms | Recorded |
| passed | runtime geography_zctas runtime.geography_zctas | 0ms | Recorded |
| passed | runtime geography_places runtime.geography_places | 0ms | Recorded |
| passed | runtime geography_counties runtime.geography_counties | 0ms | Recorded |
| passed | runtime geography_states runtime.geography_states | 0ms | Recorded |
| passed | runtime invalid_geography_boundaries runtime.invalid_geography_boundaries | 0ms | Recorded |
| failed | runtime geography_boundaries runtime.geography_boundariesLive master-data check failed with value 72291. | 0ms | Recorded |
| passed | runtime orphaned_active_applicability runtime.orphaned_active_applicability | 0ms | Recorded |
| passed | runtime ineligible_active_media_recipes runtime.ineligible_active_media_recipes | 0ms | Recorded |
| passed | runtime ineligible_active_profiles runtime.ineligible_active_profiles | 0ms | Recorded |
| passed | runtime ineligible_active_offerings runtime.ineligible_active_offerings | 0ms | Recorded |
| passed | runtime duplicate_active_section_components runtime.duplicate_active_section_components | 0ms | Recorded |
| passed | runtime unconsumed_section_variants runtime.unconsumed_section_variants | 0ms | Recorded |
| passed | runtime planner_section_variants runtime.planner_section_variants | 0ms | Recorded |
Duration: 13.9s
Requested by: development-platform-owner
Trigger: Operator
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | content configuration_coverage content.configuration_coverage | 0ms | Recorded |
| passed | content website_blueprint_coverage content.website_blueprint_coverage | 0ms | Recorded |
| passed | content website_blueprint_diversity content.website_blueprint_diversity | 0ms | Recorded |
| passed | discovery term_conflicts discovery.term_conflicts | 0ms | Recorded |
| passed | enrichment lead_eligible_coverage enrichment.lead_eligible_coverage | 0ms | Recorded |
| passed | governance platform_sources_only governance.platform_sources_only | 0ms | Recorded |
| passed | governance seed_provenance governance.seed_provenance | 0ms | Recorded |
| passed | governance semantic_review governance.semantic_review | 0ms | Recorded |
| passed | media complete_unique_fallback_sets media.complete_unique_fallback_sets | 0ms | Recorded |
| passed | offerings lead_eligible_exact_four offerings.lead_eligible_exact_four | 0ms | Recorded |
| passed | schema required_tables schema.required_tables | 0ms | Recorded |
| passed | schema single_active_versions schema.single_active_versions | 0ms | Recorded |
| passed | schema tenant_safe_evidence schema.tenant_safe_evidence | 0ms | Recorded |
| passed | taxonomy category_count taxonomy.category_count | 0ms | Recorded |
| passed | taxonomy google_type_snapshot taxonomy.google_type_snapshot | 0ms | Recorded |
| passed | taxonomy primary_mapping_coverage taxonomy.primary_mapping_coverage | 0ms | Recorded |
| passed | runtime eligible_type_count runtime.eligible_type_count | 0ms | Recorded |
| passed | runtime attribution_coverage runtime.attribution_coverage | 0ms | Recorded |
| passed | runtime offering_coverage runtime.offering_coverage | 0ms | Recorded |
| passed | runtime category_mapping runtime.category_mapping | 0ms | Recorded |
| passed | runtime term_conflicts runtime.term_conflicts | 0ms | Recorded |
| passed | runtime semantic_review runtime.semantic_review | 0ms | Recorded |
| passed | runtime approved_icon_assignments runtime.approved_icon_assignments | 0ms | Recorded |
| passed | runtime media_library_channel runtime.media_library_channel | 0ms | Recorded |
| passed | runtime media_channel_contract runtime.media_channel_contract | 0ms | Recorded |
| passed | runtime placeholder_seed_records runtime.placeholder_seed_records | 0ms | Recorded |
| passed | runtime duplicate_active_terms runtime.duplicate_active_terms | 0ms | Recorded |
| passed | runtime duplicate_discovery_sets runtime.duplicate_discovery_sets | 0ms | Recorded |
| passed | runtime duplicate_negative_sets runtime.duplicate_negative_sets | 0ms | Recorded |
| passed | runtime shared_discovery_terms runtime.shared_discovery_terms | 0ms | Recorded |
| passed | runtime shared_negative_terms runtime.shared_negative_terms | 0ms | Recorded |
| passed | runtime active_section_variants runtime.active_section_variants | 0ms | Recorded |
| passed | runtime recommendation_section_variants runtime.recommendation_section_variants | 0ms | Recorded |
| passed | runtime planner_section_variants runtime.planner_section_variants | 0ms | Recorded |
| passed | runtime unconsumed_section_variants runtime.unconsumed_section_variants | 0ms | Recorded |
| passed | runtime duplicate_active_section_components runtime.duplicate_active_section_components | 0ms | Recorded |
| passed | runtime ineligible_active_offerings runtime.ineligible_active_offerings | 0ms | Recorded |
| passed | runtime ineligible_active_profiles runtime.ineligible_active_profiles | 0ms | Recorded |
| passed | runtime ineligible_active_media_recipes runtime.ineligible_active_media_recipes | 0ms | Recorded |
| passed | runtime orphaned_active_applicability runtime.orphaned_active_applicability | 0ms | Recorded |
| passed | runtime geography_boundaries runtime.geography_boundaries | 0ms | Recorded |
| passed | runtime invalid_geography_boundaries runtime.invalid_geography_boundaries | 0ms | Recorded |
| passed | runtime geography_states runtime.geography_states | 0ms | Recorded |
| passed | runtime geography_counties runtime.geography_counties | 0ms | Recorded |
| passed | runtime geography_places runtime.geography_places | 0ms | Recorded |
| passed | runtime geography_zctas runtime.geography_zctas | 0ms | Recorded |
| passed | runtime geography_search_zones runtime.geography_search_zones | 0ms | Recorded |
| passed | runtime geography_zctas_without_state runtime.geography_zctas_without_state | 0ms | Recorded |
| passed | runtime orphaned_geography_entities runtime.orphaned_geography_entities | 0ms | Recorded |
Duration: 27.0s
Requested by: development-platform-owner
Trigger: Operator
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | runtime media_channel_contract runtime.media_channel_contract | 0ms | Recorded |
| passed | schema required_tables schema.required_tables | 0ms | Recorded |
| passed | content configuration_coverage content.configuration_coverage | 0ms | Recorded |
| passed | content website_blueprint_coverage content.website_blueprint_coverage | 0ms | Recorded |
| passed | content website_blueprint_diversity content.website_blueprint_diversity | 0ms | Recorded |
| passed | discovery term_conflicts discovery.term_conflicts | 0ms | Recorded |
| passed | enrichment lead_eligible_coverage enrichment.lead_eligible_coverage | 0ms | Recorded |
| passed | governance platform_sources_only governance.platform_sources_only | 0ms | Recorded |
| passed | governance seed_provenance governance.seed_provenance | 0ms | Recorded |
| passed | governance semantic_review governance.semantic_review | 0ms | Recorded |
| passed | media complete_unique_fallback_sets media.complete_unique_fallback_sets | 0ms | Recorded |
| passed | offerings lead_eligible_exact_four offerings.lead_eligible_exact_four | 0ms | Recorded |
| passed | schema single_active_versions schema.single_active_versions | 0ms | Recorded |
| passed | schema tenant_safe_evidence schema.tenant_safe_evidence | 0ms | Recorded |
| passed | taxonomy category_count taxonomy.category_count | 0ms | Recorded |
| passed | taxonomy google_type_snapshot taxonomy.google_type_snapshot | 0ms | Recorded |
| passed | taxonomy primary_mapping_coverage taxonomy.primary_mapping_coverage | 0ms | Recorded |
| passed | runtime eligible_type_count runtime.eligible_type_count | 0ms | Recorded |
| passed | runtime attribution_coverage runtime.attribution_coverage | 0ms | Recorded |
| passed | runtime offering_coverage runtime.offering_coverage | 0ms | Recorded |
| passed | runtime category_mapping runtime.category_mapping | 0ms | Recorded |
| passed | runtime term_conflicts runtime.term_conflicts | 0ms | Recorded |
| passed | runtime semantic_review runtime.semantic_review | 0ms | Recorded |
| passed | runtime approved_icon_assignments runtime.approved_icon_assignments | 0ms | Recorded |
| passed | runtime media_library_channel runtime.media_library_channel | 0ms | Recorded |
| passed | runtime placeholder_seed_records runtime.placeholder_seed_records | 0ms | Recorded |
| passed | runtime duplicate_active_terms runtime.duplicate_active_terms | 0ms | Recorded |
| passed | runtime duplicate_discovery_sets runtime.duplicate_discovery_sets | 0ms | Recorded |
| passed | runtime duplicate_negative_sets runtime.duplicate_negative_sets | 0ms | Recorded |
| passed | runtime shared_discovery_terms runtime.shared_discovery_terms | 0ms | Recorded |
| passed | runtime shared_negative_terms runtime.shared_negative_terms | 0ms | Recorded |
| passed | runtime active_section_variants runtime.active_section_variants | 0ms | Recorded |
| passed | runtime recommendation_section_variants runtime.recommendation_section_variants | 0ms | Recorded |
| passed | runtime planner_section_variants runtime.planner_section_variants | 0ms | Recorded |
| passed | runtime unconsumed_section_variants runtime.unconsumed_section_variants | 0ms | Recorded |
| passed | runtime duplicate_active_section_components runtime.duplicate_active_section_components | 0ms | Recorded |
| passed | runtime ineligible_active_offerings runtime.ineligible_active_offerings | 0ms | Recorded |
| passed | runtime ineligible_active_profiles runtime.ineligible_active_profiles | 0ms | Recorded |
| passed | runtime ineligible_active_media_recipes runtime.ineligible_active_media_recipes | 0ms | Recorded |
| passed | runtime orphaned_active_applicability runtime.orphaned_active_applicability | 0ms | Recorded |
| passed | runtime geography_boundaries runtime.geography_boundaries | 0ms | Recorded |
| passed | runtime invalid_geography_boundaries runtime.invalid_geography_boundaries | 0ms | Recorded |
| passed | runtime geography_states runtime.geography_states | 0ms | Recorded |
| passed | runtime geography_counties runtime.geography_counties | 0ms | Recorded |
| passed | runtime geography_places runtime.geography_places | 0ms | Recorded |
| passed | runtime geography_zctas runtime.geography_zctas | 0ms | Recorded |
| passed | runtime geography_search_zones runtime.geography_search_zones | 0ms | Recorded |
| passed | runtime geography_zctas_without_state runtime.geography_zctas_without_state | 0ms | Recorded |
| passed | runtime orphaned_geography_entities runtime.orphaned_geography_entities | 0ms | Recorded |
Duration: 13.0s
Requested by: development-platform-owner
Trigger: Operator
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | runtime geography_zctas_without_state runtime.geography_zctas_without_state | 0ms | Recorded |
| passed | content configuration_coverage content.configuration_coverage | 0ms | Recorded |
| passed | content website_blueprint_coverage content.website_blueprint_coverage | 0ms | Recorded |
| passed | content website_blueprint_diversity content.website_blueprint_diversity | 0ms | Recorded |
| passed | discovery term_conflicts discovery.term_conflicts | 0ms | Recorded |
| passed | enrichment lead_eligible_coverage enrichment.lead_eligible_coverage | 0ms | Recorded |
| passed | governance platform_sources_only governance.platform_sources_only | 0ms | Recorded |
| passed | governance seed_provenance governance.seed_provenance | 0ms | Recorded |
| passed | governance semantic_review governance.semantic_review | 0ms | Recorded |
| passed | media complete_unique_fallback_sets media.complete_unique_fallback_sets | 0ms | Recorded |
| passed | offerings lead_eligible_exact_four offerings.lead_eligible_exact_four | 0ms | Recorded |
| passed | schema required_tables schema.required_tables | 0ms | Recorded |
| passed | schema single_active_versions schema.single_active_versions | 0ms | Recorded |
| passed | schema tenant_safe_evidence schema.tenant_safe_evidence | 0ms | Recorded |
| passed | taxonomy category_count taxonomy.category_count | 0ms | Recorded |
| passed | taxonomy google_type_snapshot taxonomy.google_type_snapshot | 0ms | Recorded |
| passed | taxonomy primary_mapping_coverage taxonomy.primary_mapping_coverage | 0ms | Recorded |
| passed | runtime eligible_type_count runtime.eligible_type_count | 0ms | Recorded |
| passed | runtime attribution_coverage runtime.attribution_coverage | 0ms | Recorded |
| passed | runtime offering_coverage runtime.offering_coverage | 0ms | Recorded |
| passed | runtime category_mapping runtime.category_mapping | 0ms | Recorded |
| passed | runtime term_conflicts runtime.term_conflicts | 0ms | Recorded |
| passed | runtime semantic_review runtime.semantic_review | 0ms | Recorded |
| passed | runtime approved_icon_assignments runtime.approved_icon_assignments | 0ms | Recorded |
| passed | runtime media_library_channel runtime.media_library_channel | 0ms | Recorded |
| passed | runtime media_channel_contract runtime.media_channel_contract | 0ms | Recorded |
| passed | runtime placeholder_seed_records runtime.placeholder_seed_records | 0ms | Recorded |
| passed | runtime duplicate_active_terms runtime.duplicate_active_terms | 0ms | Recorded |
| passed | runtime duplicate_discovery_sets runtime.duplicate_discovery_sets | 0ms | Recorded |
| passed | runtime duplicate_negative_sets runtime.duplicate_negative_sets | 0ms | Recorded |
| passed | runtime shared_discovery_terms runtime.shared_discovery_terms | 0ms | Recorded |
| passed | runtime shared_negative_terms runtime.shared_negative_terms | 0ms | Recorded |
| passed | runtime active_section_variants runtime.active_section_variants | 0ms | Recorded |
| passed | runtime recommendation_section_variants runtime.recommendation_section_variants | 0ms | Recorded |
| passed | runtime planner_section_variants runtime.planner_section_variants | 0ms | Recorded |
| passed | runtime unconsumed_section_variants runtime.unconsumed_section_variants | 0ms | Recorded |
| passed | runtime duplicate_active_section_components runtime.duplicate_active_section_components | 0ms | Recorded |
| passed | runtime ineligible_active_offerings runtime.ineligible_active_offerings | 0ms | Recorded |
| passed | runtime ineligible_active_profiles runtime.ineligible_active_profiles | 0ms | Recorded |
| passed | runtime ineligible_active_media_recipes runtime.ineligible_active_media_recipes | 0ms | Recorded |
| passed | runtime orphaned_active_applicability runtime.orphaned_active_applicability | 0ms | Recorded |
| passed | runtime geography_boundaries runtime.geography_boundaries | 0ms | Recorded |
| passed | runtime invalid_geography_boundaries runtime.invalid_geography_boundaries | 0ms | Recorded |
| passed | runtime geography_states runtime.geography_states | 0ms | Recorded |
| passed | runtime geography_counties runtime.geography_counties | 0ms | Recorded |
| passed | runtime geography_places runtime.geography_places | 0ms | Recorded |
| passed | runtime geography_zctas runtime.geography_zctas | 0ms | Recorded |
| passed | runtime geography_search_zones runtime.geography_search_zones | 0ms | Recorded |
| passed | runtime orphaned_geography_entities runtime.orphaned_geography_entities | 0ms | Recorded |
Duration: 13.4s
Requested by: development-platform-owner
Trigger: Operator
Environment: Connected production database
No earlier run is available for comparison.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | content website_blueprint_diversity content.website_blueprint_diversity | 0ms | Recorded |
| passed | discovery term_conflicts discovery.term_conflicts | 0ms | Recorded |
| passed | enrichment lead_eligible_coverage enrichment.lead_eligible_coverage | 0ms | Recorded |
| passed | governance platform_sources_only governance.platform_sources_only | 0ms | Recorded |
| passed | governance seed_provenance governance.seed_provenance | 0ms | Recorded |
| passed | governance semantic_review governance.semantic_review | 0ms | Recorded |
| passed | media complete_unique_fallback_sets media.complete_unique_fallback_sets | 0ms | Recorded |
| passed | offerings lead_eligible_exact_four offerings.lead_eligible_exact_four | 0ms | Recorded |
| passed | content website_blueprint_coverage content.website_blueprint_coverage | 0ms | Recorded |
| passed | schema required_tables schema.required_tables | 0ms | Recorded |
| passed | schema single_active_versions schema.single_active_versions | 0ms | Recorded |
| passed | schema tenant_safe_evidence schema.tenant_safe_evidence | 0ms | Recorded |
| passed | taxonomy category_count taxonomy.category_count | 0ms | Recorded |
| passed | taxonomy google_type_snapshot taxonomy.google_type_snapshot | 0ms | Recorded |
| passed | taxonomy primary_mapping_coverage taxonomy.primary_mapping_coverage | 0ms | Recorded |
| passed | runtime eligible_type_count runtime.eligible_type_count | 0ms | Recorded |
| passed | runtime attribution_coverage runtime.attribution_coverage | 0ms | Recorded |
| passed | runtime offering_coverage runtime.offering_coverage | 0ms | Recorded |
| passed | runtime category_mapping runtime.category_mapping | 0ms | Recorded |
| passed | runtime term_conflicts runtime.term_conflicts | 0ms | Recorded |
| passed | runtime semantic_review runtime.semantic_review | 0ms | Recorded |
| passed | runtime approved_icon_assignments runtime.approved_icon_assignments | 0ms | Recorded |
| passed | runtime media_library_channel runtime.media_library_channel | 0ms | Recorded |
| passed | runtime media_channel_contract runtime.media_channel_contract | 0ms | Recorded |
| passed | content configuration_coverage content.configuration_coverage | 0ms | Recorded |
| passed | runtime placeholder_seed_records runtime.placeholder_seed_records | 0ms | Recorded |
| passed | runtime duplicate_active_terms runtime.duplicate_active_terms | 0ms | Recorded |
| passed | runtime duplicate_discovery_sets runtime.duplicate_discovery_sets | 0ms | Recorded |
| passed | runtime duplicate_negative_sets runtime.duplicate_negative_sets | 0ms | Recorded |
| passed | runtime shared_discovery_terms runtime.shared_discovery_terms | 0ms | Recorded |
| passed | runtime shared_negative_terms runtime.shared_negative_terms | 0ms | Recorded |
| passed | runtime active_section_variants runtime.active_section_variants | 0ms | Recorded |
| passed | runtime recommendation_section_variants runtime.recommendation_section_variants | 0ms | Recorded |
| passed | runtime planner_section_variants runtime.planner_section_variants | 0ms | Recorded |
| passed | runtime unconsumed_section_variants runtime.unconsumed_section_variants | 0ms | Recorded |
| passed | runtime duplicate_active_section_components runtime.duplicate_active_section_components | 0ms | Recorded |
| passed | runtime ineligible_active_offerings runtime.ineligible_active_offerings | 0ms | Recorded |
| passed | runtime ineligible_active_profiles runtime.ineligible_active_profiles | 0ms | Recorded |
| passed | runtime ineligible_active_media_recipes runtime.ineligible_active_media_recipes | 0ms | Recorded |
| passed | runtime orphaned_active_applicability runtime.orphaned_active_applicability | 0ms | Recorded |
| passed | runtime geography_boundaries runtime.geography_boundaries | 0ms | Recorded |
| passed | runtime invalid_geography_boundaries runtime.invalid_geography_boundaries | 0ms | Recorded |
| passed | runtime geography_states runtime.geography_states | 0ms | Recorded |
| passed | runtime geography_counties runtime.geography_counties | 0ms | Recorded |
| passed | runtime geography_places runtime.geography_places | 0ms | Recorded |
| passed | runtime geography_zctas runtime.geography_zctas | 0ms | Recorded |
| passed | runtime geography_search_zones runtime.geography_search_zones | 0ms | Recorded |
| passed | runtime geography_zctas_without_state runtime.geography_zctas_without_state | 0ms | Recorded |
| passed | runtime orphaned_geography_entities runtime.orphaned_geography_entities | 0ms | Recorded |
Duration: 2.0s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
nding (0.7851ms) ✔ hero-video handoffs reject blocked or mismatched endpoint bindings (0.6682ms) ✔ prototype manifest exports prompts without inventing durable work items (9.7481ms) ✔ prototype manifest rejects prompts without the demo marker (2.2845ms) ✔ prototype image prompts use provider-supported production ratios (1.0458ms) ✔ normalizes open, bounded, clamped, and suffix byte ranges (1.5911ms) ✔ rejects malformed, multiple, empty, and unsatisfiable ranges (0.6276ms) ✔ Media Library reads and mutations preserve the server-derived operator (3.7737ms) ✔ Media Library rejects client and emulated operators (1.6202ms) ✔ Media Library rejects cross-origin mutations on every production path (0.6604ms) ✔ catalog status and session overrides partition business targets with completion precedence (1.3635ms) ✔ resume returns to the Flow batch without durable initial-creation review work (0.3674ms) ✔ resume opens review for an initial asset or persisted review decision (0.149ms) ✔ library asset URLs request every business-type asset page across recipe versions (0.4439ms) ✔ active review queues stay within the API limit while loading a full media kit (0.121ms) ✔ active workflow state survives a page remount during persisted analysis (0.1866ms) ✔ v11 exposes provider-valid Nano Banana Pro and Veo 3.1 manual recommendations (3.5024ms) ✔ v8 maps unsupported legacy image ratios to native production ratios (0.6742ms) ✔ hero contracts reserve clean copy space and non-identifiable framing (8.4732ms) ✔ Veo prompts carry a deterministic closed-cycle loop contract (1.5774ms) ✔ every Nano Banana Pro package carries deterministic inline negative guidance without a provider pseudo-field (16.1135ms) ✔ every portable prompt embeds its complete context, settings, attribution, and controls (17.7465ms) ✔ hero-video packages fail closed without an endpoint and become ready only with a fully approved attachment (2.0325ms) ✔ every category and media type resolves complete governed policy metadata (6.941ms) ✔ all eleven media types have the reviewed people-presence mode (0.3081ms) ✔ trust people selection is deterministic by reviewed category (1.0945ms) ✔ every resolved copy prompt carries its complete people policy (90.7946ms) ✔ zero-person roles use static depictions without person-dependent PPE cues (3.9743ms) ✔ static safety adaptation retains useful non-human constraints (0.2345ms) ✔ resolved subjects avoid double articles and duplicated action verbs (2.6684ms) ✔ hero video motion never contradicts stationary safety requirements (0.8898ms) ✔ outcome roles remain result-first instead of reintroducing human outcomes (0.8617ms) ✔ the reviewed high-risk business types preserve their exact safety boundaries (1.2189ms) ✔ business visual contracts produce eight semantically distinct on-theme prompts (13.3825ms) ✔ every category resolves a structured business visual profile before scene planning (2.888ms) ✔ reviewed amusement-park and bicycle-store plans require concrete business anchors (5.0081ms) ✔ reviewed Brewpub plan expresses craft, atmosphere, and eight visibly different intentions (2.7654ms) ✔ amusement park and casino no longer share category-level scene cores (4.0275ms) ✔ semantic diversity validation rejects angle-only duplicate scenes (2.8703ms) ✔ copy/paste packages keep audit data outside a concise resolved creative prompt (1.1962ms) ✔ production and delivery ratios remain distinct for the social crop (0.4855ms) ✔ icon prompts use the strict zero-glyph safety, text, and QA policies (1.1061ms) ✔ photographic prompts review incidental environmental text but reject promotional text (1.0822ms) ✔ recipes route each asset through the approved manual or internal production method (0.7972ms) ✔ the icon recipe materializes six independent one-output slots (3.7416ms) ✔ every template placeholder is declared, including people policy and depiction (0.3161ms) ℹ tests 138 ℹ suites 0 ℹ pass 138 ℹ fail 0 ℹ cancelled 0 ℹ skipped 0 ℹ todo 0 ℹ duration_ms 1412.2088
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | semantic diversity validation rejects angle-only duplicate scenes media-prompts.unit.131 | 3ms | Recorded |
| passed | copy/paste packages keep audit data outside a concise resolved creative prompt media-prompts.unit.132 | 1ms | Recorded |
| passed | production and delivery ratios remain distinct for the social crop media-prompts.unit.133 | 0ms | Recorded |
| passed | icon prompts use the strict zero-glyph safety, text, and QA policies media-prompts.unit.134 | 1ms | Recorded |
| passed | photographic prompts review incidental environmental text but reject promotional text media-prompts.unit.135 | 1ms | Recorded |
| passed | recipes route each asset through the approved manual or internal production method media-prompts.unit.136 | 1ms | Recorded |
| passed | the icon recipe materializes six independent one-output slots media-prompts.unit.137 | 4ms | Recorded |
| passed | every template placeholder is declared, including people policy and depiction media-prompts.unit.138 | 0ms | Recorded |
| passed | every Nano Banana Pro package carries deterministic inline negative guidance without a provider pseudo-field media-prompts.unit.113 | 16ms | Recorded |
| passed | Veo prompts carry a deterministic closed-cycle loop contract media-prompts.unit.112 | 2ms | Recorded |
| passed | hero contracts reserve clean copy space and non-identifiable framing media-prompts.unit.111 | 8ms | Recorded |
| passed | v8 maps unsupported legacy image ratios to native production ratios media-prompts.unit.110 | 1ms | Recorded |
| passed | v11 exposes provider-valid Nano Banana Pro and Veo 3.1 manual recommendations media-prompts.unit.109 | 4ms | Recorded |
| passed | active workflow state survives a page remount during persisted analysis media-prompts.unit.108 | 0ms | Recorded |
| passed | active review queues stay within the API limit while loading a full media kit media-prompts.unit.107 | 0ms | Recorded |
| passed | library asset URLs request every business-type asset page across recipe versions media-prompts.unit.106 | 0ms | Recorded |
| passed | resume opens review for an initial asset or persisted review decision media-prompts.unit.105 | 0ms | Recorded |
| passed | resume returns to the Flow batch without durable initial-creation review work media-prompts.unit.104 | 0ms | Recorded |
| passed | catalog status and session overrides partition business targets with completion precedence media-prompts.unit.103 | 1ms | Recorded |
| passed | Media Library rejects cross-origin mutations on every production path media-prompts.unit.102 | 1ms | Recorded |
| passed | Media Library rejects client and emulated operators media-prompts.unit.101 | 2ms | Recorded |
| passed | Media Library reads and mutations preserve the server-derived operator media-prompts.unit.100 | 4ms | Recorded |
| passed | rejects malformed, multiple, empty, and unsatisfiable ranges media-prompts.unit.99 | 1ms | Recorded |
| passed | normalizes open, bounded, clamped, and suffix byte ranges media-prompts.unit.98 | 2ms | Recorded |
| passed | prototype image prompts use provider-supported production ratios media-prompts.unit.97 | 1ms | Recorded |
| passed | prototype manifest rejects prompts without the demo marker media-prompts.unit.96 | 2ms | Recorded |
| passed | prototype manifest exports prompts without inventing durable work items media-prompts.unit.95 | 10ms | Recorded |
| passed | hero-video handoffs reject blocked or mismatched endpoint bindings media-prompts.unit.94 | 1ms | Recorded |
| passed | hero-video handoffs accept one exact approved endpoint binding media-prompts.unit.93 | 1ms | Recorded |
| passed | BrandLift-managed routes cannot enter a manual export media-prompts.unit.92 | 0ms | Recorded |
| passed | a mixed selection exports its ready rows without weakening manifest validation media-prompts.unit.91 | 0ms | Recorded |
| passed | unmaterialized rows cannot be exported or matched to an upload media-prompts.unit.90 | 0ms | Recorded |
| passed | Flow ZIP renames produce unique semantic, dimension, and related-order auto-matches media-prompts.unit.89 | 3ms | Recorded |
| passed | ambiguous archive entries remain blocked instead of being auto-confirmed media-prompts.unit.88 | 0ms | Recorded |
| passed | Flow semantic filenames map offering names after generic visual words are removed media-prompts.unit.87 | 1ms | Recorded |
| passed | truncated filenames receive a unique semantic auto-match media-prompts.unit.86 | 1ms | Recorded |
| passed | Google Flow ZIP names that retain the requested extension auto-match exactly media-prompts.unit.85 | 2ms | Recorded |
| passed | filename matching ignores extensions and recognizes generator suffixes media-prompts.unit.84 | 0ms | Recorded |
| passed | Google Flow batch rejects mixed selections before formatting media-prompts.unit.83 | 0ms | Recorded |
| passed | Google Flow batch allows 100 items and rejects item 101 media-prompts.unit.82 | 7ms | Recorded |
| passed | Google Flow projection fails closed when a required portable-package section is missing media-prompts.unit.81 | 0ms | Recorded |
| passed | Google Flow projection keeps generation, art, negative, and QA instructions without internal JSON media-prompts.unit.80 | 1ms | Recorded |
| passed | Google Flow batch uses one final asset-only rename pass and a stable mapping token media-prompts.unit.79 | 1ms | Recorded |
| passed | Google Flow batch preserves projected prompt order, filenames, settings, and lineage media-prompts.unit.78 | 1ms | Recorded |
| passed | hero-video manifests carry the exact approved first-and-last-frame attachment media-prompts.unit.77 | 2ms | Recorded |
| passed | manifest rejects stale Nano Banana Pro production ratios media-prompts.unit.76 | 0ms | Recorded |
| passed | a newly created handoff satisfies the production manifest invariant media-prompts.unit.75 | 0ms | Recorded |
| passed | production manifest rejects a ready prompt without a current work item media-prompts.unit.74 | 2ms | Recorded |
| passed | manifest preserves exact prompt lineage and selected items media-prompts.unit.73 | 3ms | Recorded |
| passed | shared JSON parser failures remain controlled client errors media-prompts.unit.72 | 2ms | Recorded |
| passed | mutation access accepts an exact origin and rejects a cross-origin request media-prompts.unit.71 | 1ms | Recorded |
| passed | mutation readiness requires private Blob storage media-prompts.unit.70 | 2ms | Recorded |
| passed | upload attempt idempotency replays duplicates and separates retries media-prompts.unit.69 | 0ms | Recorded |
| passed | reserve input parser rejects unknown fields and unsafe media declarations media-prompts.unit.68 | 0ms | Recorded |
| passed | reserve input parser rejects unconfirmed or unsafe ZIP provenance media-prompts.unit.67 | 1ms | Recorded |
| passed | reserve input parser preserves confirmed ZIP provenance media-prompts.unit.66 | 1ms | Recorded |
| passed | reserve input parser remains compatible with the legacy rights acknowledgment media-prompts.unit.65 | 0ms | Recorded |
| passed | reserve input parser accepts and normalizes the documented contract media-prompts.unit.64 | 2ms | Recorded |
| passed | filename generation rejects invalid lineage values media-prompts.unit.63 | 0ms | Recorded |
| passed | filenames are deterministic and use a media-aware extension media-prompts.unit.62 | 1ms | Recorded |
| passed | target parsing rejects incomplete, duplicate, and unknown fields media-prompts.unit.61 | 1ms | Recorded |
| passed | target parsing accepts and normalizes an exact selection media-prompts.unit.60 | 0ms | Recorded |
| passed | target parsing allows an omitted selection media-prompts.unit.59 | 0ms | Recorded |
| passed | image negative guidance is read only from the governed main-prompt structure media-prompts.unit.58 | 0ms | Recorded |
| passed | hero-video handoff snapshots expose one work-item-bound source attachment media-prompts.unit.57 | 1ms | Recorded |
| passed | manual handoff responses require complete lifecycle lineage media-prompts.unit.56 | 0ms | Recorded |
| passed | negative guidance is read only from a non-empty structured request field media-prompts.unit.55 | 0ms | Recorded |
| passed | business-type initial creation includes only the eight source-image media families media-prompts.unit.54 | 1ms | Recorded |
| passed | recognizes ZIP files by MIME or extension media-prompts.unit.53 | 0ms | Recorded |
| passed | rejects unsupported ISO-BMFF brands instead of treating every ftyp file as MP4 media-prompts.unit.52 | 0ms | Recorded |
| passed | recognizes supported media signatures and rejects extension spoofing media-prompts.unit.51 | 1ms | Recorded |
| passed | rejects traversal, encryption, duplicate names, and expansion bombs media-prompts.unit.50 | 1ms | Recorded |
| passed | skips only directories and named metadata without extracting them media-prompts.unit.49 | 0ms | Recorded |
| passed | validates the supplied Flow archive shape before extraction media-prompts.unit.48 | 2ms | Recorded |
| passed | the real ZIP reader rejects duplicate extracted media content media-prompts.unit.47 | 12ms | Recorded |
| passed | the real ZIP reader extracts media and records cryptographic provenance media-prompts.unit.46 | 141ms | Recorded |
| passed | generated API and lease credentials are opaque and unique media-prompts.unit.45 | 1ms | Recorded |
| passed | secret comparisons fail closed media-prompts.unit.44 | 0ms | Recorded |
| passed | canonical JSON rejects unsupported values and cycles media-prompts.unit.43 | 1ms | Recorded |
| passed | canonical JSON hashes objects independently of key order media-prompts.unit.42 | 1ms | Recorded |
| passed | machine request headers are parsed narrowly media-prompts.unit.41 | 1ms | Recorded |
| passed | JSON request parsing enforces media type, object shape, and byte limit media-prompts.unit.40 | 36ms | Recorded |
| passed | protocol configuration applies bounded defaults and overrides media-prompts.unit.39 | 1ms | Recorded |
| passed | governed output counts require an explicitly ready package media-prompts.unit.38 | 1ms | Recorded |
| passed | lease credentials are accepted only from fenced headers media-prompts.unit.37 | 19ms | Recorded |
| passed | heartbeat progress and failures use controlled safe schemas media-prompts.unit.36 | 0ms | Recorded |
| passed | completion accepts reported evidence but rejects duplicate upload IDs media-prompts.unit.35 | 1ms | Recorded |
| passed | upload reservation input accepts only the governed output contract media-prompts.unit.34 | 1ms | Recorded |
| passed | Blob upload wire parser rejects unsupported and unbounded callback data media-prompts.unit.33 | 1ms | Recorded |
| passed | Blob upload wire parser accepts the signed upload-completed callback media-prompts.unit.32 | 0ms | Recorded |
| passed | Blob upload wire parser accepts token requests without rebuilding them media-prompts.unit.31 | 1ms | Recorded |
| passed | detects MP4 and WebM containers media-prompts.unit.30 | 0ms | Recorded |
| passed | detects supported image signatures media-prompts.unit.29 | 1ms | Recorded |
| passed | a different persisted checksum cannot be treated as an idempotent replay media-prompts.unit.28 | 0ms | Recorded |
| passed | an existing server verification retains its original checked timestamp media-prompts.unit.27 | 0ms | Recorded |
| passed | checksum verification is not applied to assets without ZIP provenance media-prompts.unit.26 | 0ms | Recorded |
| passed | authoritative checksum mismatch fails file integrity and remains reviewable media-prompts.unit.25 | 0ms | Recorded |
| passed | authoritative checksum verification upgrades matching ZIP provenance media-prompts.unit.24 | 1ms | Recorded |
| passed | keeps promotional and unclassified readable text fail-closed media-prompts.unit.23 | 0ms | Recorded |
| passed | allows exact prompt-authorized wording without requiring an override media-prompts.unit.22 | 0ms | Recorded |
| passed | routes incidental environmental signage to human review without failing the text gate media-prompts.unit.21 | 0ms | Recorded |
| passed | target relevance and prompt adherence are critical dimensions media-prompts.unit.20 | 0ms | Recorded |
| passed | off-theme videos are recreated even when every other score is perfect media-prompts.unit.19 | 0ms | Recorded |
| passed | off-theme images are recreated even when every other score is perfect media-prompts.unit.18 | 0ms | Recorded |
| passed | hard-gate failure overrides a high weighted score media-prompts.unit.17 | 0ms | Recorded |
| passed | applies an activated control profile threshold and weights media-prompts.unit.16 | 0ms | Recorded |
| passed | requests modification below the governed threshold media-prompts.unit.15 | 0ms | Recorded |
| passed | accepts media at or above the governed threshold media-prompts.unit.14 | 1ms | Recorded |
| passed | review queue rejects unknown, repeated, and malformed parameters media-prompts.unit.13 | 0ms | Recorded |
| passed | review queue cursor round trips exact stable ordering fields media-prompts.unit.12 | 2ms | Recorded |
| passed | review queue filters require a complete target pair media-prompts.unit.11 | 1ms | Recorded |
| passed | review queue search params default to the open review queue media-prompts.unit.10 | 11ms | Recorded |
| passed | continues polling scored assets while governed repair is finalizing media-prompts.unit.9 | 0ms | Recorded |
| passed | polls a newly queued import until its dispatch grace period expires media-prompts.unit.8 | 0ms | Recorded |
| passed | reports an unscored running analysis as active media-prompts.unit.7 | 0ms | Recorded |
| passed | reports processing failures before considering a persisted score media-prompts.unit.6 | 0ms | Recorded |
| passed | reports a verified scored asset as complete media-prompts.unit.5 | 0ms | Recorded |
| passed | keeps a scored asset in progress while its governed repair is finalizing media-prompts.unit.4 | 1ms | Recorded |
| passed | non-revision dispositions cannot leave revision guidance required media-prompts.unit.3 | 0ms | Recorded |
| passed | deterministic escalation forces actionable revision guidance media-prompts.unit.2 | 1ms | Recorded |
| passed | semantic learning keys deduplicate formatting-equivalent rules media-prompts.unit.1 | 2ms | Recorded |
| passed | amusement park and casino no longer share category-level scene cores media-prompts.unit.130 | 4ms | Recorded |
| passed | every portable prompt embeds its complete context, settings, attribution, and controls media-prompts.unit.114 | 18ms | Recorded |
| passed | hero-video packages fail closed without an endpoint and become ready only with a fully approved attachment media-prompts.unit.115 | 2ms | Recorded |
| passed | every category and media type resolves complete governed policy metadata media-prompts.unit.116 | 7ms | Recorded |
| passed | all eleven media types have the reviewed people-presence mode media-prompts.unit.117 | 0ms | Recorded |
| passed | trust people selection is deterministic by reviewed category media-prompts.unit.118 | 1ms | Recorded |
| passed | every resolved copy prompt carries its complete people policy media-prompts.unit.119 | 91ms | Recorded |
| passed | zero-person roles use static depictions without person-dependent PPE cues media-prompts.unit.120 | 4ms | Recorded |
| passed | static safety adaptation retains useful non-human constraints media-prompts.unit.121 | 0ms | Recorded |
| passed | resolved subjects avoid double articles and duplicated action verbs media-prompts.unit.122 | 3ms | Recorded |
| passed | hero video motion never contradicts stationary safety requirements media-prompts.unit.123 | 1ms | Recorded |
| passed | outcome roles remain result-first instead of reintroducing human outcomes media-prompts.unit.124 | 1ms | Recorded |
| passed | the reviewed high-risk business types preserve their exact safety boundaries media-prompts.unit.125 | 1ms | Recorded |
| passed | business visual contracts produce eight semantically distinct on-theme prompts media-prompts.unit.126 | 13ms | Recorded |
| passed | every category resolves a structured business visual profile before scene planning media-prompts.unit.127 | 3ms | Recorded |
| passed | reviewed amusement-park and bicycle-store plans require concrete business anchors media-prompts.unit.128 | 5ms | Recorded |
| passed | reviewed Brewpub plan expresses craft, atmosphere, and eight visibly different intentions media-prompts.unit.129 | 3ms | Recorded |
Duration: 2.0s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +30 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | review queue filters require a complete target pair media-prompts.unit.11 | 1ms | Recorded |
| passed | machine request headers are parsed narrowly media-prompts.unit.41 | 1ms | Recorded |
| passed | canonical JSON hashes objects independently of key order media-prompts.unit.42 | 1ms | Recorded |
| passed | canonical JSON rejects unsupported values and cycles media-prompts.unit.43 | 1ms | Recorded |
| passed | secret comparisons fail closed media-prompts.unit.44 | 0ms | Recorded |
| passed | generated API and lease credentials are opaque and unique media-prompts.unit.45 | 1ms | Recorded |
| passed | the real ZIP reader extracts media and records cryptographic provenance media-prompts.unit.46 | 141ms | Recorded |
| passed | the real ZIP reader rejects duplicate extracted media content media-prompts.unit.47 | 12ms | Recorded |
| passed | validates the supplied Flow archive shape before extraction media-prompts.unit.48 | 2ms | Recorded |
| passed | skips only directories and named metadata without extracting them media-prompts.unit.49 | 0ms | Recorded |
| passed | rejects traversal, encryption, duplicate names, and expansion bombs media-prompts.unit.50 | 1ms | Recorded |
| passed | recognizes supported media signatures and rejects extension spoofing media-prompts.unit.51 | 1ms | Recorded |
| passed | rejects unsupported ISO-BMFF brands instead of treating every ftyp file as MP4 media-prompts.unit.52 | 0ms | Recorded |
| passed | recognizes ZIP files by MIME or extension media-prompts.unit.53 | 0ms | Recorded |
| passed | business-type initial creation includes only the eight source-image media families media-prompts.unit.54 | 1ms | Recorded |
| passed | negative guidance is read only from a non-empty structured request field media-prompts.unit.55 | 0ms | Recorded |
| passed | manual handoff responses require complete lifecycle lineage media-prompts.unit.56 | 0ms | Recorded |
| passed | hero-video handoff snapshots expose one work-item-bound source attachment media-prompts.unit.57 | 1ms | Recorded |
| passed | image negative guidance is read only from the governed main-prompt structure media-prompts.unit.58 | 0ms | Recorded |
| passed | target parsing allows an omitted selection media-prompts.unit.59 | 0ms | Recorded |
| passed | target parsing accepts and normalizes an exact selection media-prompts.unit.60 | 0ms | Recorded |
| passed | target parsing rejects incomplete, duplicate, and unknown fields media-prompts.unit.61 | 1ms | Recorded |
| passed | filenames are deterministic and use a media-aware extension media-prompts.unit.62 | 1ms | Recorded |
| passed | filename generation rejects invalid lineage values media-prompts.unit.63 | 0ms | Recorded |
| passed | reserve input parser accepts and normalizes the documented contract media-prompts.unit.64 | 2ms | Recorded |
| passed | reserve input parser remains compatible with the legacy rights acknowledgment media-prompts.unit.65 | 0ms | Recorded |
| passed | reserve input parser preserves confirmed ZIP provenance media-prompts.unit.66 | 1ms | Recorded |
| passed | reserve input parser rejects unconfirmed or unsafe ZIP provenance media-prompts.unit.67 | 1ms | Recorded |
| passed | reserve input parser rejects unknown fields and unsafe media declarations media-prompts.unit.68 | 0ms | Recorded |
| passed | upload attempt idempotency replays duplicates and separates retries media-prompts.unit.69 | 0ms | Recorded |
| passed | mutation readiness requires private Blob storage media-prompts.unit.70 | 2ms | Recorded |
| passed | mutation access accepts an exact origin and rejects a cross-origin request media-prompts.unit.71 | 1ms | Recorded |
| passed | shared JSON parser failures remain controlled client errors media-prompts.unit.72 | 2ms | Recorded |
| passed | manifest preserves exact prompt lineage and selected items media-prompts.unit.73 | 3ms | Recorded |
| passed | production manifest rejects a ready prompt without a current work item media-prompts.unit.74 | 2ms | Recorded |
| passed | a newly created handoff satisfies the production manifest invariant media-prompts.unit.75 | 0ms | Recorded |
| passed | manifest rejects stale Nano Banana Pro production ratios media-prompts.unit.76 | 0ms | Recorded |
| passed | hero-video manifests carry the exact approved first-and-last-frame attachment media-prompts.unit.77 | 2ms | Recorded |
| passed | Google Flow batch preserves projected prompt order, filenames, settings, and lineage media-prompts.unit.78 | 1ms | Recorded |
| passed | Google Flow batch uses one final asset-only rename pass and a stable mapping token media-prompts.unit.79 | 1ms | Recorded |
| passed | Google Flow projection keeps generation, art, negative, and QA instructions without internal JSON media-prompts.unit.80 | 1ms | Recorded |
| passed | Google Flow projection fails closed when a required portable-package section is missing media-prompts.unit.81 | 0ms | Recorded |
| passed | Google Flow batch allows 100 items and rejects item 101 media-prompts.unit.82 | 7ms | Recorded |
| passed | Google Flow batch rejects mixed selections before formatting media-prompts.unit.83 | 0ms | Recorded |
| passed | filename matching ignores extensions and recognizes generator suffixes media-prompts.unit.84 | 0ms | Recorded |
| passed | Google Flow ZIP names that retain the requested extension auto-match exactly media-prompts.unit.85 | 2ms | Recorded |
| passed | truncated filenames receive a unique semantic auto-match media-prompts.unit.86 | 1ms | Recorded |
| passed | Flow semantic filenames map offering names after generic visual words are removed media-prompts.unit.87 | 1ms | Recorded |
| passed | ambiguous archive entries remain blocked instead of being auto-confirmed media-prompts.unit.88 | 0ms | Recorded |
| passed | Flow ZIP renames produce unique semantic, dimension, and related-order auto-matches media-prompts.unit.89 | 3ms | Recorded |
| passed | unmaterialized rows cannot be exported or matched to an upload media-prompts.unit.90 | 0ms | Recorded |
| passed | a mixed selection exports its ready rows without weakening manifest validation media-prompts.unit.91 | 0ms | Recorded |
| passed | BrandLift-managed routes cannot enter a manual export media-prompts.unit.92 | 0ms | Recorded |
| passed | hero-video handoffs accept one exact approved endpoint binding media-prompts.unit.93 | 1ms | Recorded |
| passed | hero-video handoffs reject blocked or mismatched endpoint bindings media-prompts.unit.94 | 1ms | Recorded |
| passed | prototype manifest exports prompts without inventing durable work items media-prompts.unit.95 | 10ms | Recorded |
| passed | prototype manifest rejects prompts without the demo marker media-prompts.unit.96 | 2ms | Recorded |
| passed | prototype image prompts use provider-supported production ratios media-prompts.unit.97 | 1ms | Recorded |
| passed | normalizes open, bounded, clamped, and suffix byte ranges media-prompts.unit.98 | 2ms | Recorded |
| passed | rejects malformed, multiple, empty, and unsatisfiable ranges media-prompts.unit.99 | 1ms | Recorded |
| passed | Media Library reads and mutations preserve the server-derived operator media-prompts.unit.100 | 4ms | Recorded |
| passed | Media Library rejects client and emulated operators media-prompts.unit.101 | 2ms | Recorded |
| passed | Media Library rejects cross-origin mutations on every production path media-prompts.unit.102 | 1ms | Recorded |
| passed | catalog status and session overrides partition business targets with completion precedence media-prompts.unit.103 | 1ms | Recorded |
| passed | resume returns to the Flow batch without durable initial-creation review work media-prompts.unit.104 | 0ms | Recorded |
| passed | resume opens review for an initial asset or persisted review decision media-prompts.unit.105 | 0ms | Recorded |
| passed | library asset URLs request every business-type asset page across recipe versions media-prompts.unit.106 | 0ms | Recorded |
| passed | active review queues stay within the API limit while loading a full media kit media-prompts.unit.107 | 0ms | Recorded |
| passed | active workflow state survives a page remount during persisted analysis media-prompts.unit.108 | 0ms | Recorded |
| passed | v11 exposes provider-valid Nano Banana Pro and Veo 3.1 manual recommendations media-prompts.unit.109 | 4ms | Recorded |
| passed | v8 maps unsupported legacy image ratios to native production ratios media-prompts.unit.110 | 1ms | Recorded |
| passed | hero contracts reserve clean copy space and non-identifiable framing media-prompts.unit.111 | 8ms | Recorded |
| passed | Veo prompts carry a deterministic closed-cycle loop contract media-prompts.unit.112 | 2ms | Recorded |
| passed | every Nano Banana Pro package carries deterministic inline negative guidance without a provider pseudo-field media-prompts.unit.113 | 16ms | Recorded |
| passed | every portable prompt embeds its complete context, settings, attribution, and controls media-prompts.unit.114 | 18ms | Recorded |
| passed | hero-video packages fail closed without an endpoint and become ready only with a fully approved attachment media-prompts.unit.115 | 2ms | Recorded |
| passed | every category and media type resolves complete governed policy metadata media-prompts.unit.116 | 7ms | Recorded |
| passed | all eleven media types have the reviewed people-presence mode media-prompts.unit.117 | 0ms | Recorded |
| passed | trust people selection is deterministic by reviewed category media-prompts.unit.118 | 1ms | Recorded |
| passed | every resolved copy prompt carries its complete people policy media-prompts.unit.119 | 91ms | Recorded |
| passed | zero-person roles use static depictions without person-dependent PPE cues media-prompts.unit.120 | 4ms | Recorded |
| passed | static safety adaptation retains useful non-human constraints media-prompts.unit.121 | 0ms | Recorded |
| passed | resolved subjects avoid double articles and duplicated action verbs media-prompts.unit.122 | 3ms | Recorded |
| passed | hero video motion never contradicts stationary safety requirements media-prompts.unit.123 | 1ms | Recorded |
| passed | outcome roles remain result-first instead of reintroducing human outcomes media-prompts.unit.124 | 1ms | Recorded |
| passed | the reviewed high-risk business types preserve their exact safety boundaries media-prompts.unit.125 | 1ms | Recorded |
| passed | business visual contracts produce eight semantically distinct on-theme prompts media-prompts.unit.126 | 13ms | Recorded |
| passed | every category resolves a structured business visual profile before scene planning media-prompts.unit.127 | 3ms | Recorded |
| passed | reviewed amusement-park and bicycle-store plans require concrete business anchors media-prompts.unit.128 | 5ms | Recorded |
| passed | reviewed Brewpub plan expresses craft, atmosphere, and eight visibly different intentions media-prompts.unit.129 | 3ms | Recorded |
| passed | amusement park and casino no longer share category-level scene cores media-prompts.unit.130 | 4ms | Recorded |
| passed | semantic diversity validation rejects angle-only duplicate scenes media-prompts.unit.131 | 3ms | Recorded |
| passed | copy/paste packages keep audit data outside a concise resolved creative prompt media-prompts.unit.132 | 1ms | Recorded |
| passed | production and delivery ratios remain distinct for the social crop media-prompts.unit.133 | 0ms | Recorded |
| passed | icon prompts use the strict zero-glyph safety, text, and QA policies media-prompts.unit.134 | 1ms | Recorded |
| passed | photographic prompts review incidental environmental text but reject promotional text media-prompts.unit.135 | 1ms | Recorded |
| passed | recipes route each asset through the approved manual or internal production method media-prompts.unit.136 | 1ms | Recorded |
| passed | the icon recipe materializes six independent one-output slots media-prompts.unit.137 | 4ms | Recorded |
| passed | every template placeholder is declared, including people policy and depiction media-prompts.unit.138 | 0ms | Recorded |
| passed | JSON request parsing enforces media type, object shape, and byte limit media-prompts.unit.40 | 36ms | Recorded |
| passed | protocol configuration applies bounded defaults and overrides media-prompts.unit.39 | 1ms | Recorded |
| passed | governed output counts require an explicitly ready package media-prompts.unit.38 | 1ms | Recorded |
| passed | lease credentials are accepted only from fenced headers media-prompts.unit.37 | 19ms | Recorded |
| passed | heartbeat progress and failures use controlled safe schemas media-prompts.unit.36 | 0ms | Recorded |
| passed | completion accepts reported evidence but rejects duplicate upload IDs media-prompts.unit.35 | 1ms | Recorded |
| passed | upload reservation input accepts only the governed output contract media-prompts.unit.34 | 1ms | Recorded |
| passed | Blob upload wire parser rejects unsupported and unbounded callback data media-prompts.unit.33 | 1ms | Recorded |
| passed | Blob upload wire parser accepts the signed upload-completed callback media-prompts.unit.32 | 0ms | Recorded |
| passed | Blob upload wire parser accepts token requests without rebuilding them media-prompts.unit.31 | 1ms | Recorded |
| passed | detects MP4 and WebM containers media-prompts.unit.30 | 0ms | Recorded |
| passed | detects supported image signatures media-prompts.unit.29 | 1ms | Recorded |
| passed | a different persisted checksum cannot be treated as an idempotent replay media-prompts.unit.28 | 0ms | Recorded |
| passed | an existing server verification retains its original checked timestamp media-prompts.unit.27 | 0ms | Recorded |
| passed | checksum verification is not applied to assets without ZIP provenance media-prompts.unit.26 | 0ms | Recorded |
| passed | authoritative checksum mismatch fails file integrity and remains reviewable media-prompts.unit.25 | 0ms | Recorded |
| passed | authoritative checksum verification upgrades matching ZIP provenance media-prompts.unit.24 | 1ms | Recorded |
| passed | keeps promotional and unclassified readable text fail-closed media-prompts.unit.23 | 0ms | Recorded |
| passed | allows exact prompt-authorized wording without requiring an override media-prompts.unit.22 | 0ms | Recorded |
| passed | routes incidental environmental signage to human review without failing the text gate media-prompts.unit.21 | 0ms | Recorded |
| passed | target relevance and prompt adherence are critical dimensions media-prompts.unit.20 | 0ms | Recorded |
| passed | off-theme videos are recreated even when every other score is perfect media-prompts.unit.19 | 0ms | Recorded |
| passed | off-theme images are recreated even when every other score is perfect media-prompts.unit.18 | 0ms | Recorded |
| passed | hard-gate failure overrides a high weighted score media-prompts.unit.17 | 0ms | Recorded |
| passed | applies an activated control profile threshold and weights media-prompts.unit.16 | 0ms | Recorded |
| passed | requests modification below the governed threshold media-prompts.unit.15 | 0ms | Recorded |
| passed | accepts media at or above the governed threshold media-prompts.unit.14 | 1ms | Recorded |
| passed | review queue rejects unknown, repeated, and malformed parameters media-prompts.unit.13 | 0ms | Recorded |
| passed | review queue cursor round trips exact stable ordering fields media-prompts.unit.12 | 2ms | Recorded |
| passed | review queue search params default to the open review queue media-prompts.unit.10 | 11ms | Recorded |
| passed | continues polling scored assets while governed repair is finalizing media-prompts.unit.9 | 0ms | Recorded |
| passed | polls a newly queued import until its dispatch grace period expires media-prompts.unit.8 | 0ms | Recorded |
| passed | reports an unscored running analysis as active media-prompts.unit.7 | 0ms | Recorded |
| passed | reports processing failures before considering a persisted score media-prompts.unit.6 | 0ms | Recorded |
| passed | reports a verified scored asset as complete media-prompts.unit.5 | 0ms | Recorded |
| passed | keeps a scored asset in progress while its governed repair is finalizing media-prompts.unit.4 | 1ms | Recorded |
| passed | non-revision dispositions cannot leave revision guidance required media-prompts.unit.3 | 0ms | Recorded |
| passed | deterministic escalation forces actionable revision guidance media-prompts.unit.2 | 1ms | Recorded |
| passed | semantic learning keys deduplicate formatting-equivalent rules media-prompts.unit.1 | 2ms | Recorded |
Duration: 468.2s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | dashboard roles live-media-prompts dashboard.roles.live-media-prompts | 249068ms | Recorded |
| passed | dashboard roles production-lifecycle dashboard.roles.production-lifecycle | 177412ms | Recorded |
Duration: 468.2s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +1 passed, -1 failed.
01KXR09V2E30J3NZ8YMXRRHEPW',
[WebServer] stepId: 'step_01KXR09V2NM9BZPHJNBNVTAF83'
[WebServer] }
[WebServer] media_asset_processing_started {
[WebServer] assetId: '3c382be4-6e4c-4b49-9a79-1d996f2a68ad',
[WebServer] sourceEventId: 'media-library:playwright-role-platform-owner:c715645c-31b7-40ec-b222-57f49e717fc7',
[WebServer] workflowRunId: 'wrun_01KXR09V2DXYCF80M7KW58MWTY',
[WebServer] stepId: 'step_01KXR09V2KQ8ERFSVETYPM8Y2X'
[WebServer] }
[WebServer] media_asset_processing_completed {
[WebServer] assetId: 'd58291a1-f0dc-45b9-97d8-c08178d75319',
[WebServer] analysisRunId: '4d672267-66e6-4889-bc5a-3099977d5179',
[WebServer] status: 'verified',
[WebServer] score: 91.2,
[WebServer] recommendation: 'recreate',
[WebServer] workflowRunId: 'wrun_01KXR09TR8CXC70WB7ZGQH8B18',
[WebServer] stepId: 'step_01KXR09TRGME4VRYMNNR2WHGXW'
[WebServer] }
[WebServer] media_asset_processing_completed {
[WebServer] assetId: '2e5ca02c-a945-4604-8684-b899009e4bd4',
[WebServer] analysisRunId: '91b27ad0-23d3-42d6-9126-733334b16f79',
[WebServer] status: 'verified',
[WebServer] score: 95,
[WebServer] recommendation: 'manual_review',
[WebServer] workflowRunId: 'wrun_01KXR09TR6SFPYJRJJRDMV6XT2',
[WebServer] stepId: 'step_01KXR09TRFTH6P0CFM2K8HRXFX'
[WebServer] }
[WebServer] media_asset_processing_completed {
[WebServer] assetId: '929ac4b3-c8dd-466a-b22f-6f4ccaa1a1f0',
[WebServer] analysisRunId: '3b6b2f04-fb07-43c8-9380-5f387258582a',
[WebServer] status: 'verified',
[WebServer] score: 97.4,
[WebServer] recommendation: 'manual_review',
[WebServer] workflowRunId: 'wrun_01KXR09V2E30J3NZ8YMXRRHEPW',
[WebServer] stepId: 'step_01KXR09V2NM9BZPHJNBNVTAF83'
[WebServer] }
[WebServer] media_asset_processing_completed {
[WebServer] assetId: '88deaed0-3f5c-47be-9467-ac7ddd0aced0',
[WebServer] analysisRunId: '7e869430-0eec-4c44-84aa-bc827063781b',
[WebServer] status: 'verified',
[WebServer] score: 99.24,
[WebServer] recommendation: 'accept',
[WebServer] workflowRunId: 'wrun_01KXR09TR8CXC70WB7ZGQH8B19',
[WebServer] stepId: 'step_01KXR09TRJ6ZNTEWM8CXJC26VP'
[WebServer] }
[WebServer] media_asset_processing_completed {
[WebServer] assetId: '737d1186-54a2-4cfe-9c12-33cbbbf8fb48',
[WebServer] analysisRunId: '92d70e84-a0d7-4691-adb4-5860d9a19fce',
[WebServer] status: 'verified',
[WebServer] score: 93.06,
[WebServer] recommendation: 'recreate',
[WebServer] workflowRunId: 'wrun_01KXR09TR7YBJYVWB1VZCAMW12',
[WebServer] stepId: 'step_01KXR09TRHBZE0EA7Q0J6C1J81'
[WebServer] }
[WebServer] media_asset_processing_completed {
[WebServer] assetId: '3c382be4-6e4c-4b49-9a79-1d996f2a68ad',
[WebServer] analysisRunId: 'd95061c2-6089-480e-add5-45472acc754d',
[WebServer] status: 'verified',
[WebServer] score: 88,
[WebServer] recommendation: 'reject',
[WebServer] workflowRunId: 'wrun_01KXR09V2DXYCF80M7KW58MWTY',
[WebServer] stepId: 'step_01KXR09V2KQ8ERFSVETYPM8Y2X'
[WebServer] }
[WebServer] media_asset_processing_completed {
[WebServer] assetId: '2eb41015-9c3e-47a1-bee3-2c09c6e78de8',
[WebServer] analysisRunId: '9dec06b8-fe8e-4ff4-8da4-c0d2723452f4',
[WebServer] status: 'verified',
[WebServer] score: 100,
[WebServer] recommendation: 'accept',
[WebServer] workflowRunId: 'wrun_01KXR09V2E30J3NZ8YMXRRHEPX',
[WebServer] stepId: 'step_01KXR09V2N0RQC2DWJEXNZ5JP5'
[WebServer] }
[WebServer] media_asset_processing_completed {
[WebServer] assetId: '1454d8c6-c69f-4cb1-a8f9-b3f1b784a4f2',
[WebServer] analysisRunId: '67d42618-a2d9-4b2d-a232-7fd10fc2a51e',
[WebServer] status: 'verified',
[WebServer] score: 87.2,
[WebServer] recommendation: 'recreate',
[WebServer] workflowRunId: 'wrun_01KXR09V2DXYCF80M7KW58MWTZ',
[WebServer] stepId: 'step_01KXR09V2JYQX2VKFHB95RK7QZ'
[WebServer] }
Slow test file: [chromium] › tests\playwright\dashboard-role-emulation.spec.ts (7.1m)
Consider running tests from slow files in parallel. See: https://playwright.dev/docs/test-parallel
2 passed (7.3m)s\\node_modules_0twcaj7._.js:4:19979\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:90:53188\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:4:19979\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:4:18169\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:90:48239\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:89:28036\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:89:54799'
[WebServer] }
[WebServer] [Workflow] Error while running workflow {
[WebServer] workflowRunId: 'wrun_01KXR029DNZEV3XETAX2VH5MCT',
[WebServer] errorCode: 'USER_ERROR',
[WebServer] errorName: 'FatalError',
[WebServer] errorStack: 'FatalError: Imagen 4 did not return the required white or transparent background.\n' +
[WebServer] ' at generateDesignLogoStep (C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\_0u2hgw_._.js:2:91206)\n' +
[WebServer] ' at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:90:53233\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:4:19979\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:90:53188\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:4:19979\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:4:18169\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:90:48239\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:89:28036\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:89:54799'
[WebServer] }
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | dashboard roles production-lifecycle dashboard.roles.production-lifecycle | 177412ms | Recorded |
| passed | dashboard roles live-media-prompts dashboard.roles.live-media-prompts | 249068ms | Recorded |
Duration: 456.1s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
Open operational recoveryError: The durable media analyses must complete or expose their governed retry action. The durable media analyses must complete or expose their governed retry action. [2mexpect([22m[31mreceived[39m[2m).[22mtoMatch[2m([22m[32mexpected[39m[2m)[22m Expected pattern: [32m/^(?:complete|retry)$/u[39m Received string: [31m"running"[39m Call Log: - Timeout 135000ms exceeded while waiting on the predicate
workflowRunId: 'wrun_01KXQZNMYZX01SHC2WCRFJ07SC',
[WebServer] stepId: 'step_01KXQZNMZ35V6MQJZKQ9ZTHP1R'
[WebServer] }
[WebServer] media_asset_processing_completed {
[WebServer] assetId: '9e3ad17c-90d2-439d-be57-7c6dea3a3a08',
[WebServer] analysisRunId: '2d6cf522-064c-4e2b-9dba-dc2dbae6432f',
[WebServer] status: 'verified',
[WebServer] score: 87.4,
[WebServer] recommendation: 'recreate',
[WebServer] workflowRunId: 'wrun_01KXQZNMR2ZSYHTFXYV7WV3AFV',
[WebServer] stepId: 'step_01KXQZNMRAN44FYJPB2E25WEWH'
[WebServer] }
[WebServer] media_asset_processing_completed {
[WebServer] assetId: '6b35ef84-34a4-40c4-a422-db2231612034',
[WebServer] analysisRunId: '82705817-dada-45b8-a1d0-104befcdd46e',
[WebServer] status: 'verified',
[WebServer] score: 80.8,
[WebServer] recommendation: 'recreate',
[WebServer] workflowRunId: 'wrun_01KXQZNMR2ZSYHTFXYV7WV3AFT',
[WebServer] stepId: 'step_01KXQZNMR68XQFD78MVV0RH3A5'
[WebServer] }
[WebServer] media_asset_processing_completed {
[WebServer] assetId: '49136d51-9308-4aa5-ae61-b036d400b706',
[WebServer] analysisRunId: '750cef06-f568-40db-8f32-ce9e66473a4e',
[WebServer] status: 'verified',
[WebServer] score: 76.4,
[WebServer] recommendation: 'reject',
[WebServer] workflowRunId: 'wrun_01KXQZNMRATYPKFEEZJB6GAS29',
[WebServer] stepId: 'step_01KXQZNMRFR6DKK2D72B86YZ51'
[WebServer] }
1) [chromium] › tests\playwright\dashboard-role-emulation.spec.ts:1393:5 › [dashboard.roles.live-media-prompts] Media Library generates and exposes the governed eight-image review handoff
Error: The durable media analyses must complete or expose their governed retry action.
The durable media analyses must complete or expose their governed retry action.
expect(received).toMatch(expected)
Expected pattern: /^(?:complete|retry)$/u
Received string: "running"
Call Log:
- Timeout 135000ms exceeded while waiting on the predicate
1472 | },
1473 | )
> 1474 | .toMatch(/^(?:complete|retry)$/u);
| ^
1475 | }
1476 | await expect(analysisComplete).toBeVisible({ timeout: 5_000 });
1477 | for (const slotKey of initialMediaSlotKeys) {
at C:\Users\doern\Code\gold-brandlift\tests\playwright\dashboard-role-emulation.spec.ts:1474:10
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tmp\playwright\dashboard-roles\dashboard-role-emulation---e50ab--eight-image-review-handoff-chromium\test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tmp\playwright\dashboard-roles\dashboard-role-emulation---e50ab--eight-image-review-handoff-chromium\video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
Error Context: tmp\playwright\dashboard-roles\dashboard-role-emulation---e50ab--eight-image-review-handoff-chromium\error-context.md
attachment #4: trace (application/zip) ─────────────────────────────────────────────────────────
tmp\playwright\dashboard-roles\dashboard-role-emulation---e50ab--eight-image-review-handoff-chromium\trace.zip
Usage:
npx playwright show-trace tmp\playwright\dashboard-roles\dashboard-role-emulation---e50ab--eight-image-review-handoff-chromium\trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Slow test file: [chromium] › tests\playwright\dashboard-role-emulation.spec.ts (6.9m)
Consider running tests from slow files in parallel. See: https://playwright.dev/docs/test-parallel
1 failed
[chromium] › tests\playwright\dashboard-role-emulation.spec.ts:1393:5 › [dashboard.roles.live-media-prompts] Media Library generates and exposes the governed eight-image review handoff
1 passed (7.1m)Vercel CLI 55.0.0 (Node.js 24.16.0)
Retrieving project…
> Downloading `development` environment variables for brandliftsxo/gold-brandlift
Downloading
✓ Created C:\Users\doern\AppData\Local\Temp\gold-brandlift-live-ai-12ff53c5-2a82-43e0-acc7-38edc0f557ae.env file
[WebServer] [QueueClient] Region not detected — defaulting to "iad1". On Vercel this is set automatically via VERCEL_REGION. To silence this warning, pass region explicitly: new QueueClient({ region: "iad1" })
[WebServer] [QueueClient] Region not detected — defaulting to "iad1". On Vercel this is set automatically via VERCEL_REGION. To silence this warning, pass region explicitly: new QueueClient({ region: "iad1" })
[WebServer] [QueueClient] Region not detected — defaulting to "iad1". On Vercel this is set automatically via VERCEL_REGION. To silence this warning, pass region explicitly: new QueueClient({ region: "iad1" })
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] media_analysis_structured_output_failed {
[WebServer] attempt: 1,
[WebServer] causeType: 'AI_TypeValidationError',
[WebServer] finishReason: 'stop',
[WebServer] responseId: 'aitxt-iRaPjMYcs5PmBgSrO33pTEMr',
[WebServer] inputTokens: 28045,
[WebServer] outputTokens: 1522
[WebServer] }
[WebServer] media_analysis_structured_output_failed {
[WebServer] attempt: 1,
[WebServer] causeType: 'AI_TypeValidationError',
[WebServer] finishReason: 'stop',
[WebServer] responseId: 'aitxt-311yvjlgZCMeCHo1ceefnqsc',
[WebServer] inputTokens: 30603,
[WebServer] outputTokens: 4059
[WebServer] }| Result | Validation | Duration | Evidence |
|---|---|---|---|
| failed | dashboard roles live-media-prompts dashboard.roles.live-media-promptsError: The durable media analyses must complete or expose their governed retry action. The durable media analyses must complete or expose their governed retry action. [2mexpect([22m[31mreceived[39m[2m).[22mtoMatch[2m([22m[32mexpected[39m[2m)[22m Expected pattern: [32m/^(?:complete|retry)$/u[39m Received string: [31m"running"[39m Call Log: - Timeout 135000ms exceeded while waiting on the predicate | 287981ms | Recorded |
| passed | dashboard roles production-lifecycle dashboard.roles.production-lifecycle | 124246ms | Recorded |
Duration: 498.4s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +1 passed, -1 failed.
Open operational recoveryError: The durable media analyses must complete or expose their governed retry action. The durable media analyses must complete or expose their governed retry action. [2mexpect([22m[31mreceived[39m[2m).[22mtoMatch[2m([22m[32mexpected[39m[2m)[22m Expected pattern: [32m/^(?:complete|retry)$/u[39m Received string: [31m"running"[39m Call Log: - Timeout 90000ms exceeded while waiting on the predicate
{
[WebServer] assetId: '23984483-4924-4615-a4de-2b89c9f7bd8e',
[WebServer] sourceEventId: 'media-library:playwright-role-platform-owner:df864e3a-a6fc-4f07-9a41-478e928d2e38',
[WebServer] workflowRunId: 'wrun_01KXQW7Z33563N4BB5R470FPDK',
[WebServer] stepId: 'step_01KXQW7Z3BC6Q4QQ7YMCZR0KSK'
[WebServer] }
[WebServer] media_asset_processing_started {
[WebServer] assetId: '17611ec4-130e-4ba8-9372-6ed40214d1c7',
[WebServer] sourceEventId: 'media-library:playwright-role-platform-owner:0419ec80-1a80-4d6b-97c8-87ec55ea035b',
[WebServer] workflowRunId: 'wrun_01KXQW7Z5P758661GQTH1G5HT4',
[WebServer] stepId: 'step_01KXQW7Z5Y4HYSHRVGQSXPNRFN'
[WebServer] }
[WebServer] media_asset_processing_started {
[WebServer] assetId: 'f42b471e-67cd-4b65-9020-9add72cf392a',
[WebServer] sourceEventId: 'media-library:playwright-role-platform-owner:65131924-25a3-4f46-ac9a-036e00c10a2a',
[WebServer] workflowRunId: 'wrun_01KXQW7Z68SS0BTZK011B7FEV9',
[WebServer] stepId: 'step_01KXQW7Z7YMWX5P7PEP0PMS9ZX'
[WebServer] }
[WebServer] media_asset_processing_started {
[WebServer] assetId: '666d1c3d-7265-4fa0-9f23-c2cadddeee7d',
[WebServer] sourceEventId: 'media-library:playwright-role-platform-owner:b73af6eb-ad86-4c87-ba76-0bbdb2d25a62',
[WebServer] workflowRunId: 'wrun_01KXQW7Z9DEHB13W27CD12Q8MP',
[WebServer] stepId: 'step_01KXQW7Z9HSTSF7BRMSNSJ64XW'
[WebServer] }
1) [chromium] › tests\playwright\dashboard-role-emulation.spec.ts:1692:5 › [dashboard.roles.live-media-prompts] Media Library builds and persists the governed eight-image handoff
Error: The durable media analyses must complete or expose their governed retry action.
The durable media analyses must complete or expose their governed retry action.
expect(received).toMatch(expected)
Expected pattern: /^(?:complete|retry)$/u
Received string: "running"
Call Log:
- Timeout 90000ms exceeded while waiting on the predicate
1771 | },
1772 | )
> 1773 | .toMatch(/^(?:complete|retry)$/u);
| ^
1774 | }
1775 | await expect(analysisComplete).toBeVisible({ timeout: 5_000 });
1776 | await approveAllNormallyApprovableMedia(page);
at C:\Users\doern\Code\gold-brandlift\tests\playwright\dashboard-role-emulation.spec.ts:1773:10
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
tmp\playwright\dashboard-roles\dashboard-role-emulation---771b4-overned-eight-image-handoff-chromium\test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #2: video (video/webm) ──────────────────────────────────────────────────────────────
tmp\playwright\dashboard-roles\dashboard-role-emulation---771b4-overned-eight-image-handoff-chromium\video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
Error Context: tmp\playwright\dashboard-roles\dashboard-role-emulation---771b4-overned-eight-image-handoff-chromium\error-context.md
attachment #4: trace (application/zip) ─────────────────────────────────────────────────────────
tmp\playwright\dashboard-roles\dashboard-role-emulation---771b4-overned-eight-image-handoff-chromium\trace.zip
Usage:
npx playwright show-trace tmp\playwright\dashboard-roles\dashboard-role-emulation---771b4-overned-eight-image-handoff-chromium\trace.zip
────────────────────────────────────────────────────────────────────────────────────────────────
Slow test file: [chromium] › tests\playwright\dashboard-role-emulation.spec.ts (7.4m)
Consider running tests from slow files in parallel. See: https://playwright.dev/docs/test-parallel
1 failed
[chromium] › tests\playwright\dashboard-role-emulation.spec.ts:1692:5 › [dashboard.roles.live-media-prompts] Media Library builds and persists the governed eight-image handoff
1 passed (7.8m)\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:89:28036\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:89:54799'
[WebServer] }
[WebServer] [Workflow] Error while running workflow {
[WebServer] workflowRunId: 'wrun_01KXQVZT5401P6QHZX3JKJKWKE',
[WebServer] errorCode: 'USER_ERROR',
[WebServer] errorName: 'FatalError',
[WebServer] errorStack: 'FatalError: Imagen 4 did not return the required white or transparent background.\n' +
[WebServer] ' at generateDesignLogoStep (C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\_0u2hgw_._.js:2:91206)\n' +
[WebServer] ' at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:90:53233\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:4:19979\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:90:53188\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:4:19979\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:4:18169\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:90:48239\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:89:28036\n' +
[WebServer] ' at async C:\\Users\\doern\\Code\\gold-brandlift\\.next\\server\\chunks\\node_modules_0twcaj7._.js:89:54799'
[WebServer] }
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] onUploadCompleted provided but no callbackUrl could be determined. Please provide a callbackUrl in onBeforeGenerateToken or set the VERCEL_BLOB_CALLBACK_URL environment variable.
[WebServer] [local world] Queue operation failed: [TypeError: fetch failed] {
[WebServer] [cause]: Error: read ECONNRESET
[WebServer] at ignore-listed frames {
[WebServer] errno: -4077,
[WebServer] code: 'ECONNRESET',
[WebServer] syscall: 'read'
[WebServer] }
[WebServer] }
[WebServer] media_analysis_structured_output_failed {
[WebServer] attempt: 1,
[WebServer] causeType: 'AI_TypeValidationError',
[WebServer] finishReason: 'stop',
[WebServer] responseId: 'aitxt-V2gTQYvnhgXImXabueAitTVr',
[WebServer] inputTokens: 27487,
[WebServer] outputTokens: 1920
[WebServer] }| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | dashboard roles production-lifecycle dashboard.roles.production-lifecycle | 211379ms | Recorded |
| failed | dashboard roles live-media-prompts dashboard.roles.live-media-promptsError: The durable media analyses must complete or expose their governed retry action. The durable media analyses must complete or expose their governed retry action. [2mexpect([22m[31mreceived[39m[2m).[22mtoMatch[2m([22m[32mexpected[39m[2m)[22m Expected pattern: [32m/^(?:complete|retry)$/u[39m Received string: [31m"running"[39m Call Log: - Timeout 90000ms exceeded while waiting on the predicate | 235560ms | Recorded |
Duration: 314.9s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
No earlier run is available for comparison.
Open operational recovery2 captured baseline validation results failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| failed | dashboard roles production-lifecycle dashboard.roles.production-lifecycleError: Logo generation did not pass its governed visual checks after six explicit retries. [2mexpect([22m[31mreceived[39m[2m).[22mtoBeLessThan[2m([22m[32mexpected[39m[2m)[22m Expected: < [32m6[39m Received: [31m6[39m | 182513ms | Recorded |
| failed | dashboard roles live-media-prompts dashboard.roles.live-media-promptsError: Media slot offering_image_2 failed after three bounded governed attempts: A positive credit balance is required for all requests, including BYOK, so fallback providers remain available. Add credits at https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%3Fmodal%3Dtop-up to continue. | 90266ms | Recorded |
Duration: 141.2s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | dashboard roles mobile dashboard.roles.mobile | 904ms | Recorded |
| passed | dashboard roles website-lifecycle dashboard.roles.website-lifecycle | 19289ms | Recorded |
| passed | dashboard roles production-lifecycle dashboard.roles.production-lifecycle | 43734ms | Recorded |
| passed | dashboard roles cookie-fail-closed dashboard.roles.cookie-fail-closed | 1187ms | Recorded |
| passed | dashboard roles lead-api-authorization dashboard.roles.lead-api-authorization | 3354ms | Recorded |
| passed | dashboard roles design-api-authorization dashboard.roles.design-api-authorization | 3185ms | Recorded |
| passed | dashboard roles client-authorization dashboard.roles.client-authorization | 847ms | Recorded |
| passed | dashboard roles agency-isolation dashboard.roles.agency-isolation | 3910ms | Recorded |
| passed | dashboard roles test-lab-retry dashboard.roles.test-lab-retry | 20385ms | Recorded |
| passed | dashboard roles platform-emulation dashboard.roles.platform-emulation | 9957ms | Recorded |
Duration: 141.2s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | dashboard roles lead-api-authorization dashboard.roles.lead-api-authorization | 3354ms | Recorded |
| passed | dashboard roles test-lab-retry dashboard.roles.test-lab-retry | 20385ms | Recorded |
| passed | dashboard roles agency-isolation dashboard.roles.agency-isolation | 3910ms | Recorded |
| passed | dashboard roles client-authorization dashboard.roles.client-authorization | 847ms | Recorded |
| passed | dashboard roles design-api-authorization dashboard.roles.design-api-authorization | 3185ms | Recorded |
| passed | dashboard roles mobile dashboard.roles.mobile | 904ms | Recorded |
| passed | dashboard roles website-lifecycle dashboard.roles.website-lifecycle | 19289ms | Recorded |
| passed | dashboard roles production-lifecycle dashboard.roles.production-lifecycle | 43734ms | Recorded |
| passed | dashboard roles cookie-fail-closed dashboard.roles.cookie-fail-closed | 1187ms | Recorded |
| passed | dashboard roles platform-emulation dashboard.roles.platform-emulation | 9957ms | Recorded |
Duration: 141.2s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +1 passed, -1 failed.
000-0000-4000-8000-000000000101',
[WebServer] candidateId: '10000000-0000-4000-8000-000000000102',
[WebServer] actorId: 'playwright-role-platform-owner',
[WebServer] decision: 'verified',
[WebServer] replayed: false,
[WebServer] readyToBuild: true
[WebServer] }
[WebServer] e2e_checkpoint_started {
[WebServer] runId: 'd4fa3dba-4976-4e45-8d0b-f5bab04e56b1',
[WebServer] executionId: '2700c0c2-b716-4fe4-b7e9-6003a2ca58fa',
[WebServer] workflowRunId: 'wrun_01KXQQNPMBBMNHF8KSBZ2JTMP3',
[WebServer] stepId: 'step_01KXQQNPMJB875A6RQRXNMR6GQ',
[WebServer] attempt: 1
[WebServer] }
[WebServer] e2e_checkpoint_completed {
[WebServer] runId: 'd4fa3dba-4976-4e45-8d0b-f5bab04e56b1',
[WebServer] executionId: '2700c0c2-b716-4fe4-b7e9-6003a2ca58fa',
[WebServer] workflowRunId: 'wrun_01KXQQNPMBBMNHF8KSBZ2JTMP3',
[WebServer] stepId: 'step_01KXQQNPMJB875A6RQRXNMR6GQ'
[WebServer] }
[WebServer] e2e_checkpoint_started {
[WebServer] runId: 'd4fa3dba-4976-4e45-8d0b-f5bab04e56b1',
[WebServer] executionId: '487a6e26-543c-4625-b832-840e1f9ab35a',
[WebServer] workflowRunId: 'wrun_01KXQQNV680N5F3BN653Z6RMRW',
[WebServer] stepId: 'step_01KXQQNV6DX4TEQWKXVHCBVH10',
[WebServer] attempt: 1
[WebServer] }
[WebServer] e2e_checkpoint_completed {
[WebServer] runId: 'd4fa3dba-4976-4e45-8d0b-f5bab04e56b1',
[WebServer] executionId: '487a6e26-543c-4625-b832-840e1f9ab35a',
[WebServer] workflowRunId: 'wrun_01KXQQNV680N5F3BN653Z6RMRW',
[WebServer] stepId: 'step_01KXQQNV6DX4TEQWKXVHCBVH10'
[WebServer] }
[WebServer] e2e_checkpoint_started {
[WebServer] runId: 'd4fa3dba-4976-4e45-8d0b-f5bab04e56b1',
[WebServer] executionId: '53fe4ef7-2442-4b71-9d94-8e28b37983fa',
[WebServer] workflowRunId: 'wrun_01KXQQNZEG9GSZHP3EE31QT43E',
[WebServer] stepId: 'step_01KXQQNZEP33GWV4666QMEKHVK',
[WebServer] attempt: 1
[WebServer] }
[WebServer] e2e_checkpoint_completed {
[WebServer] runId: 'd4fa3dba-4976-4e45-8d0b-f5bab04e56b1',
[WebServer] executionId: '53fe4ef7-2442-4b71-9d94-8e28b37983fa',
[WebServer] workflowRunId: 'wrun_01KXQQNZEG9GSZHP3EE31QT43E',
[WebServer] stepId: 'step_01KXQQNZEP33GWV4666QMEKHVK'
[WebServer] }
[WebServer] e2e_checkpoint_started {
[WebServer] runId: 'd4fa3dba-4976-4e45-8d0b-f5bab04e56b1',
[WebServer] executionId: 'bb23c16c-372b-42e0-8919-4a5b46941bc9',
[WebServer] workflowRunId: 'wrun_01KXQQP747PQKEKP5S15CEQ9GC',
[WebServer] stepId: 'step_01KXQQP74BTYRZN8JG0A5ECDMS',
[WebServer] attempt: 1
[WebServer] }
[WebServer] e2e_checkpoint_completed {
[WebServer] runId: 'd4fa3dba-4976-4e45-8d0b-f5bab04e56b1',
[WebServer] executionId: 'bb23c16c-372b-42e0-8919-4a5b46941bc9',
[WebServer] workflowRunId: 'wrun_01KXQQP747PQKEKP5S15CEQ9GC',
[WebServer] stepId: 'step_01KXQQP74BTYRZN8JG0A5ECDMS'
[WebServer] }
[WebServer] e2e_checkpoint_started {
[WebServer] runId: 'd4fa3dba-4976-4e45-8d0b-f5bab04e56b1',
[WebServer] executionId: '5f4b5fa5-0b22-4903-a59b-084c42660d0c',
[WebServer] workflowRunId: 'wrun_01KXQQPCXB2M36Q85GY4DZ1A9V',
[WebServer] stepId: 'step_01KXQQPCXHZG5019V9QS1AF05K',
[WebServer] attempt: 1
[WebServer] }
[WebServer] e2e_checkpoint_completed {
[WebServer] runId: 'd4fa3dba-4976-4e45-8d0b-f5bab04e56b1',
[WebServer] executionId: '5f4b5fa5-0b22-4903-a59b-084c42660d0c',
[WebServer] workflowRunId: 'wrun_01KXQQPCXB2M36Q85GY4DZ1A9V',
[WebServer] stepId: 'step_01KXQQPCXHZG5019V9QS1AF05K'
[WebServer] }
[9/11] [chromium] › tests\playwright\dashboard-role-emulation.spec.ts:1536:5 › [dashboard.roles.website-lifecycle] client revision, agency approval, publication, and rollback preserve immutable versions
[10/11] [chromium] › tests\playwright\dashboard-role-emulation.spec.ts:1692:5 › [dashboard.roles.live-media-prompts] Media Library builds and persists the governed eight-image handoff
[11/11] [chromium] › tests\playwright\dashboard-role-emulation.spec.ts:1864:5 › [dashboard.roles.mobile] all three role shells stay usable at 390px without page overflow
1 skipped
10 passed (1.9m)[WebServer] [QueueClient] Region not detected — defaulting to "iad1". On Vercel this is set automatically via VERCEL_REGION. To silence this warning, pass region explicitly: new QueueClient({ region: "iad1" })
[WebServer] [QueueClient] Region not detected — defaulting to "iad1". On Vercel this is set automatically via VERCEL_REGION. To silence this warning, pass region explicitly: new QueueClient({ region: "iad1" })
[WebServer] [QueueClient] Region not detected — defaulting to "iad1". On Vercel this is set automatically via VERCEL_REGION. To silence this warning, pass region explicitly: new QueueClient({ region: "iad1" })| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | dashboard roles cookie-fail-closed dashboard.roles.cookie-fail-closed | 1187ms | Recorded |
| passed | dashboard roles website-lifecycle dashboard.roles.website-lifecycle | 19289ms | Recorded |
| passed | dashboard roles mobile dashboard.roles.mobile | 904ms | Recorded |
| passed | dashboard roles platform-emulation dashboard.roles.platform-emulation | 9957ms | Recorded |
| passed | dashboard roles test-lab-retry dashboard.roles.test-lab-retry | 20385ms | Recorded |
| passed | dashboard roles agency-isolation dashboard.roles.agency-isolation | 3910ms | Recorded |
| passed | dashboard roles client-authorization dashboard.roles.client-authorization | 847ms | Recorded |
| passed | dashboard roles design-api-authorization dashboard.roles.design-api-authorization | 3185ms | Recorded |
| passed | dashboard roles lead-api-authorization dashboard.roles.lead-api-authorization | 3354ms | Recorded |
| passed | dashboard roles production-lifecycle dashboard.roles.production-lifecycle | 43734ms | Recorded |
Duration: 227.5s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: -1 passed, +1 failed.
Open operational recoveryError: [2mexpect([22m[31mlocator[39m[2m).[22mtoHaveCount[2m([22m[32mexpected[39m[2m)[22m failed Locator: getByRole('menu', { name: 'Actions for Playwright Suspended Client' }) Expected: [32m0[39m Received: [31m1[39m Timeout: 20000ms Call log: [2m - Expect "toHaveCount" with timeout 20000ms[22m [2m - waiting for getByRole('menu', { name: 'Actions for Playwright Suspended Client' })[22m [2m 43 × locator resolved to 1 element[22m [2m - unexpected value "1"[22m
ied',
[WebServer] replayed: false,
[WebServer] readyToBuild: true
[WebServer] }
[WebServer] e2e_checkpoint_started {
[WebServer] runId: '4932526b-c15a-44c3-bb64-eb9d3197680c',
[WebServer] executionId: 'c6328345-ba7f-40a6-9f01-0ccf617deef1',
[WebServer] workflowRunId: 'wrun_01KXQQEYGCJ4SNKRH2R7ZFCVG5',
[WebServer] stepId: 'step_01KXQQEYGRMRT2GHX1WBX9PQ8F',
[WebServer] attempt: 1
[WebServer] }
[WebServer] e2e_checkpoint_completed {
[WebServer] runId: '4932526b-c15a-44c3-bb64-eb9d3197680c',
[WebServer] executionId: 'c6328345-ba7f-40a6-9f01-0ccf617deef1',
[WebServer] workflowRunId: 'wrun_01KXQQEYGCJ4SNKRH2R7ZFCVG5',
[WebServer] stepId: 'step_01KXQQEYGRMRT2GHX1WBX9PQ8F'
[WebServer] }
[WebServer] e2e_checkpoint_started {
[WebServer] runId: '4932526b-c15a-44c3-bb64-eb9d3197680c',
[WebServer] executionId: '5fe19d9c-b289-4a19-a171-41101bf072ae',
[WebServer] workflowRunId: 'wrun_01KXQQF2XP0BH6ZR9XA1W1M418',
[WebServer] stepId: 'step_01KXQQF2XWW356Y6FEG3VA6NPD',
[WebServer] attempt: 1
[WebServer] }
[WebServer] e2e_checkpoint_completed {
[WebServer] runId: '4932526b-c15a-44c3-bb64-eb9d3197680c',
[WebServer] executionId: '5fe19d9c-b289-4a19-a171-41101bf072ae',
[WebServer] workflowRunId: 'wrun_01KXQQF2XP0BH6ZR9XA1W1M418',
[WebServer] stepId: 'step_01KXQQF2XWW356Y6FEG3VA6NPD'
[WebServer] }
[WebServer] e2e_checkpoint_started {
[WebServer] runId: '4932526b-c15a-44c3-bb64-eb9d3197680c',
[WebServer] executionId: '5ad80b1e-e9e0-4c8d-852d-6e6f940e252e',
[WebServer] workflowRunId: 'wrun_01KXQQF7NP60T1CDX1XZ9J1XT1',
[WebServer] stepId: 'step_01KXQQF7NTBSDWB9NHZ6AWKQQ3',
[WebServer] attempt: 1
[WebServer] }
[WebServer] e2e_checkpoint_completed {
[WebServer] runId: '4932526b-c15a-44c3-bb64-eb9d3197680c',
[WebServer] executionId: '5ad80b1e-e9e0-4c8d-852d-6e6f940e252e',
[WebServer] workflowRunId: 'wrun_01KXQQF7NP60T1CDX1XZ9J1XT1',
[WebServer] stepId: 'step_01KXQQF7NTBSDWB9NHZ6AWKQQ3'
[WebServer] }
[WebServer] e2e_checkpoint_started {
[WebServer] runId: '4932526b-c15a-44c3-bb64-eb9d3197680c',
[WebServer] executionId: '9ba24b37-6daa-4e47-9d12-0d5c517fe8af',
[WebServer] workflowRunId: 'wrun_01KXQQFJAF29CWKVR4YJDGG17S',
[WebServer] stepId: 'step_01KXQQFJANMSE3HY5ZRCE63WTF',
[WebServer] attempt: 1
[WebServer] }
[WebServer] e2e_checkpoint_completed {
[WebServer] runId: '4932526b-c15a-44c3-bb64-eb9d3197680c',
[WebServer] executionId: '9ba24b37-6daa-4e47-9d12-0d5c517fe8af',
[WebServer] workflowRunId: 'wrun_01KXQQFJAF29CWKVR4YJDGG17S',
[WebServer] stepId: 'step_01KXQQFJANMSE3HY5ZRCE63WTF'
[WebServer] }
[WebServer] e2e_checkpoint_started {
[WebServer] runId: '4932526b-c15a-44c3-bb64-eb9d3197680c',
[WebServer] executionId: 'f02a12bb-6b21-4370-a55f-69fb0c2a4d81',
[WebServer] workflowRunId: 'wrun_01KXQQFQP9C47X1HMQNZFG026R',
[WebServer] stepId: 'step_01KXQQFQPEMHTTQX1WMYA0ARKP',
[WebServer] attempt: 1
[WebServer] }
[WebServer] e2e_checkpoint_completed {
[WebServer] runId: '4932526b-c15a-44c3-bb64-eb9d3197680c',
[WebServer] executionId: 'f02a12bb-6b21-4370-a55f-69fb0c2a4d81',
[WebServer] workflowRunId: 'wrun_01KXQQFQP9C47X1HMQNZFG026R',
[WebServer] stepId: 'step_01KXQQFQPEMHTTQX1WMYA0ARKP'
[WebServer] }
[9/11] [chromium] › tests\playwright\dashboard-role-emulation.spec.ts:1536:5 › [dashboard.roles.website-lifecycle] client revision, agency approval, publication, and rollback preserve immutable versions
[10/11] [chromium] › tests\playwright\dashboard-role-emulation.spec.ts:1692:5 › [dashboard.roles.live-media-prompts] Media Library builds and persists the governed eight-image handoff
[11/11] [chromium] › tests\playwright\dashboard-role-emulation.spec.ts:1864:5 › [dashboard.roles.mobile] all three role shells stay usable at 390px without page overflow
1 failed
[chromium] › tests\playwright\dashboard-role-emulation.spec.ts:954:5 › [dashboard.roles.agency-isolation] agency sees only assigned clients and can emulate an active client
1 skipped
9 passed (2.4m)[QueueClient] Region not detected — defaulting to "iad1". On Vercel this is set automatically via VERCEL_REGION. To silence this warning, pass region explicitly: new QueueClient({ region: "iad1" })
[QueueClient] Region not detected — defaulting to "iad1". On Vercel this is set automatically via VERCEL_REGION. To silence this warning, pass region explicitly: new QueueClient({ region: "iad1" })
[WebServer] [QueueClient] Region not detected — defaulting to "iad1". On Vercel this is set automatically via VERCEL_REGION. To silence this warning, pass region explicitly: new QueueClient({ region: "iad1" })
[WebServer] [QueueClient] Region not detected — defaulting to "iad1". On Vercel this is set automatically via VERCEL_REGION. To silence this warning, pass region explicitly: new QueueClient({ region: "iad1" })
[WebServer] [QueueClient] Region not detected — defaulting to "iad1". On Vercel this is set automatically via VERCEL_REGION. To silence this warning, pass region explicitly: new QueueClient({ region: "iad1" })| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | dashboard roles cookie-fail-closed dashboard.roles.cookie-fail-closed | 1209ms | Recorded |
| passed | dashboard roles lead-api-authorization dashboard.roles.lead-api-authorization | 3427ms | Recorded |
| passed | dashboard roles design-api-authorization dashboard.roles.design-api-authorization | 3828ms | Recorded |
| passed | dashboard roles client-authorization dashboard.roles.client-authorization | 1794ms | Recorded |
| passed | dashboard roles platform-emulation dashboard.roles.platform-emulation | 10466ms | Recorded |
| passed | dashboard roles test-lab-retry dashboard.roles.test-lab-retry | 21031ms | Recorded |
| failed | dashboard roles agency-isolation dashboard.roles.agency-isolationError: [2mexpect([22m[31mlocator[39m[2m).[22mtoHaveCount[2m([22m[32mexpected[39m[2m)[22m failed Locator: getByRole('menu', { name: 'Actions for Playwright Suspended Client' }) Expected: [32m0[39m Received: [31m1[39m Timeout: 20000ms Call log: [2m - Expect "toHaveCount" with timeout 20000ms[22m [2m - waiting for getByRole('menu', { name: 'Actions for Playwright Suspended Client' })[22m [2m 43 × locator resolved to 1 element[22m [2m - unexpected value "1"[22m | 22210ms | Recorded |
| passed | dashboard roles mobile dashboard.roles.mobile | 916ms | Recorded |
| passed | dashboard roles website-lifecycle dashboard.roles.website-lifecycle | 19335ms | Recorded |
| passed | dashboard roles production-lifecycle dashboard.roles.production-lifecycle | 48680ms | Recorded |
Duration: 148.8s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
s with live state and actions [12/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:102:7 › [dashboard.page.data] /dashboard/data loads with live state and actions [13/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:102:7 › [dashboard.page.workflows] /dashboard/workflows loads with live state and actions [14/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:102:7 › [dashboard.page.agencies] /dashboard/agencies loads with live state and actions [15/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:102:7 › [dashboard.page.clients] /dashboard/clients loads with live state and actions [16/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:102:7 › [dashboard.page.control-engine] /dashboard/control-engine loads with live state and actions [17/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:102:7 › [dashboard.page.audit] /dashboard/audit loads with live state and actions [18/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:102:7 › [dashboard.page.automated-testing] /dashboard/automated-testing loads with live state and actions [19/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:102:7 › [dashboard.page.daily-briefing] /dashboard/daily-briefing loads with live state and actions [20/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:102:7 › [dashboard.page.settings] /dashboard/settings loads with live state and actions [21/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:121:5 › [owner.review-mirror.consistency] owner landing shows the latest mirror check [22/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:143:5 › [dashboard.interaction.navigation] navigation supports active state, history, and refresh [23/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:168:5 › [dashboard.lifecycle.production-boundary] customer lifecycle operations expose governed checkpoints without validation fixtures [24/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:192:5 › [dashboard.data.attribution-controls] all governed attribution controls remain reachable on mobile [25/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:222:5 › [dashboard.data.section-strategy] governed section recommendations and composer are native admin controls [26/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:268:5 › [dashboard.data.geography-controls] admins can validate a governed postal search area [27/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:294:5 › [dashboard.media-library.workspace] governed media production is available without Test Center scaffolding [28/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:320:5 › [dashboard.daily-briefing.workspace] owner intelligence is native, stored, and actionable [29/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:356:5 › [dashboard.settings.provider-health] platform administrators can run bounded provider verification [30/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:382:5 › [dashboard.test-lab.registry] persistent suites, runner readiness, and history are operator-visible [31/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:456:5 › [dashboard.test-lab.safe-rerun] an operator can run the live master-data suite and inspect its persisted results [32/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:501:5 › [dashboard.test-lab.incident-recovery] a failed governed run links to operational recovery without exposing an unsafe retry [33/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:535:5 › [dashboard.audit.domain-history] material activity from governed domains is searchable and inspectable [34/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:556:5 › [dashboard.responsive.all-routes] all routes prevent page overflow across supported viewports [35/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:586:5 › [dashboard.accessibility.primary] primary dashboard structure is keyboard and screen-reader understandable 35 passed (2.5m)
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | dashboard e2e native-capability-workspaces dashboard.e2e.native-capability-workspaces | 5767ms | Recorded |
| passed | dashboard leads discovery dashboard.leads.discovery | 2364ms | Recorded |
| passed | dashboard page overview dashboard.page.overview | 580ms | Recorded |
| passed | dashboard page leads dashboard.page.leads | 1620ms | Recorded |
| passed | dashboard page verification dashboard.page.verification | 1500ms | Recorded |
| passed | dashboard page websites dashboard.page.websites | 2601ms | Recorded |
| passed | dashboard page deployments dashboard.page.deployments | 728ms | Recorded |
| passed | dashboard page editing dashboard.page.editing | 699ms | Recorded |
| passed | dashboard page assets dashboard.page.assets | 726ms | Recorded |
| passed | dashboard page media-library dashboard.page.media-library | 1380ms | Recorded |
| passed | dashboard page approvals dashboard.page.approvals | 749ms | Recorded |
| passed | dashboard page data dashboard.page.data | 2656ms | Recorded |
| passed | dashboard page workflows dashboard.page.workflows | 686ms | Recorded |
| passed | dashboard page agencies dashboard.page.agencies | 701ms | Recorded |
| passed | dashboard page clients dashboard.page.clients | 705ms | Recorded |
| passed | dashboard page control-engine dashboard.page.control-engine | 755ms | Recorded |
| passed | dashboard page audit dashboard.page.audit | 1245ms | Recorded |
| passed | dashboard page automated-testing dashboard.page.automated-testing | 2705ms | Recorded |
| passed | dashboard page daily-briefing dashboard.page.daily-briefing | 1859ms | Recorded |
| passed | dashboard page settings dashboard.page.settings | 2439ms | Recorded |
| passed | owner review-mirror consistency owner.review-mirror.consistency | 1842ms | Recorded |
| passed | dashboard interaction navigation dashboard.interaction.navigation | 1290ms | Recorded |
| passed | dashboard lifecycle production-boundary dashboard.lifecycle.production-boundary | 775ms | Recorded |
| passed | dashboard data attribution-controls dashboard.data.attribution-controls | 2313ms | Recorded |
| passed | dashboard data section-strategy dashboard.data.section-strategy | 3096ms | Recorded |
| passed | dashboard data geography-controls dashboard.data.geography-controls | 2803ms | Recorded |
| passed | dashboard media-library workspace dashboard.media-library.workspace | 833ms | Recorded |
| passed | dashboard daily-briefing workspace dashboard.daily-briefing.workspace | 2756ms | Recorded |
| passed | dashboard settings provider-health dashboard.settings.provider-health | 1727ms | Recorded |
| passed | dashboard test-lab registry dashboard.test-lab.registry | 3567ms | Recorded |
| passed | dashboard test-lab safe-rerun dashboard.test-lab.safe-rerun | 22201ms | Recorded |
| passed | dashboard test-lab incident-recovery dashboard.test-lab.incident-recovery | 3614ms | Recorded |
| passed | dashboard audit domain-history dashboard.audit.domain-history | 1385ms | Recorded |
| passed | dashboard responsive all-routes dashboard.responsive.all-routes | 61332ms | Recorded |
| passed | dashboard accessibility primary dashboard.accessibility.primary | 700ms | Recorded |
Duration: 148.8s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | dashboard e2e native-capability-workspaces dashboard.e2e.native-capability-workspaces | 5767ms | Recorded |
| passed | dashboard leads discovery dashboard.leads.discovery | 2364ms | Recorded |
| passed | dashboard page overview dashboard.page.overview | 580ms | Recorded |
| passed | dashboard page leads dashboard.page.leads | 1620ms | Recorded |
| passed | dashboard page verification dashboard.page.verification | 1500ms | Recorded |
| passed | dashboard page websites dashboard.page.websites | 2601ms | Recorded |
| passed | dashboard page deployments dashboard.page.deployments | 728ms | Recorded |
| passed | dashboard page editing dashboard.page.editing | 699ms | Recorded |
| passed | dashboard page assets dashboard.page.assets | 726ms | Recorded |
| passed | dashboard page media-library dashboard.page.media-library | 1380ms | Recorded |
| passed | dashboard page approvals dashboard.page.approvals | 749ms | Recorded |
| passed | dashboard page data dashboard.page.data | 2656ms | Recorded |
| passed | dashboard page workflows dashboard.page.workflows | 686ms | Recorded |
| passed | dashboard page agencies dashboard.page.agencies | 701ms | Recorded |
| passed | dashboard page clients dashboard.page.clients | 705ms | Recorded |
| passed | dashboard page control-engine dashboard.page.control-engine | 755ms | Recorded |
| passed | dashboard page audit dashboard.page.audit | 1245ms | Recorded |
| passed | dashboard page automated-testing dashboard.page.automated-testing | 2705ms | Recorded |
| passed | dashboard page daily-briefing dashboard.page.daily-briefing | 1859ms | Recorded |
| passed | dashboard page settings dashboard.page.settings | 2439ms | Recorded |
| passed | owner review-mirror consistency owner.review-mirror.consistency | 1842ms | Recorded |
| passed | dashboard interaction navigation dashboard.interaction.navigation | 1290ms | Recorded |
| passed | dashboard lifecycle production-boundary dashboard.lifecycle.production-boundary | 775ms | Recorded |
| passed | dashboard data attribution-controls dashboard.data.attribution-controls | 2313ms | Recorded |
| passed | dashboard data section-strategy dashboard.data.section-strategy | 3096ms | Recorded |
| passed | dashboard data geography-controls dashboard.data.geography-controls | 2803ms | Recorded |
| passed | dashboard media-library workspace dashboard.media-library.workspace | 833ms | Recorded |
| passed | dashboard daily-briefing workspace dashboard.daily-briefing.workspace | 2756ms | Recorded |
| passed | dashboard settings provider-health dashboard.settings.provider-health | 1727ms | Recorded |
| passed | dashboard test-lab registry dashboard.test-lab.registry | 3567ms | Recorded |
| passed | dashboard test-lab safe-rerun dashboard.test-lab.safe-rerun | 22201ms | Recorded |
| passed | dashboard test-lab incident-recovery dashboard.test-lab.incident-recovery | 3614ms | Recorded |
| passed | dashboard audit domain-history dashboard.audit.domain-history | 1385ms | Recorded |
| passed | dashboard responsive all-routes dashboard.responsive.all-routes | 61332ms | Recorded |
| passed | dashboard accessibility primary dashboard.accessibility.primary | 700ms | Recorded |
Duration: 148.8s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | dashboard page overview dashboard.page.overview | 580ms | Recorded |
| passed | dashboard accessibility primary dashboard.accessibility.primary | 700ms | Recorded |
| passed | dashboard responsive all-routes dashboard.responsive.all-routes | 61332ms | Recorded |
| passed | dashboard e2e native-capability-workspaces dashboard.e2e.native-capability-workspaces | 5767ms | Recorded |
| passed | dashboard leads discovery dashboard.leads.discovery | 2364ms | Recorded |
| passed | dashboard page leads dashboard.page.leads | 1620ms | Recorded |
| passed | dashboard page verification dashboard.page.verification | 1500ms | Recorded |
| passed | dashboard page websites dashboard.page.websites | 2601ms | Recorded |
| passed | dashboard page deployments dashboard.page.deployments | 728ms | Recorded |
| passed | dashboard page editing dashboard.page.editing | 699ms | Recorded |
| passed | dashboard page assets dashboard.page.assets | 726ms | Recorded |
| passed | dashboard page media-library dashboard.page.media-library | 1380ms | Recorded |
| passed | dashboard page approvals dashboard.page.approvals | 749ms | Recorded |
| passed | dashboard page data dashboard.page.data | 2656ms | Recorded |
| passed | dashboard page workflows dashboard.page.workflows | 686ms | Recorded |
| passed | dashboard page agencies dashboard.page.agencies | 701ms | Recorded |
| passed | dashboard page clients dashboard.page.clients | 705ms | Recorded |
| passed | dashboard page control-engine dashboard.page.control-engine | 755ms | Recorded |
| passed | dashboard page audit dashboard.page.audit | 1245ms | Recorded |
| passed | dashboard page automated-testing dashboard.page.automated-testing | 2705ms | Recorded |
| passed | dashboard page daily-briefing dashboard.page.daily-briefing | 1859ms | Recorded |
| passed | dashboard page settings dashboard.page.settings | 2439ms | Recorded |
| passed | owner review-mirror consistency owner.review-mirror.consistency | 1842ms | Recorded |
| passed | dashboard interaction navigation dashboard.interaction.navigation | 1290ms | Recorded |
| passed | dashboard lifecycle production-boundary dashboard.lifecycle.production-boundary | 775ms | Recorded |
| passed | dashboard data attribution-controls dashboard.data.attribution-controls | 2313ms | Recorded |
| passed | dashboard data section-strategy dashboard.data.section-strategy | 3096ms | Recorded |
| passed | dashboard data geography-controls dashboard.data.geography-controls | 2803ms | Recorded |
| passed | dashboard media-library workspace dashboard.media-library.workspace | 833ms | Recorded |
| passed | dashboard daily-briefing workspace dashboard.daily-briefing.workspace | 2756ms | Recorded |
| passed | dashboard settings provider-health dashboard.settings.provider-health | 1727ms | Recorded |
| passed | dashboard test-lab registry dashboard.test-lab.registry | 3567ms | Recorded |
| passed | dashboard test-lab safe-rerun dashboard.test-lab.safe-rerun | 22201ms | Recorded |
| passed | dashboard test-lab incident-recovery dashboard.test-lab.incident-recovery | 3614ms | Recorded |
| passed | dashboard audit domain-history dashboard.audit.domain-history | 1385ms | Recorded |
Duration: 2.2s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
> gold-brandlift@0.1.0 test:design-logo > node --conditions=react-server --import tsx --test lib/design-agent/logo-prompt.test.ts lib/design-agent/logo-image.test.ts lib/design-agent/logo-set.test.ts lib/design-agent/logo-workflow.test.ts lib/design-agent/tenant-binding.test.ts ✔ logo normalization rejects a blank white image (49.4867ms) ✔ logo normalization rejects a fully transparent meaningless image (27.5713ms) ✔ logo normalization rejects a non-white opaque background (24.9606ms) ✔ logo normalization creates a transparent 1024 PNG and coordinated variants (255.5378ms) ✔ logo prompt compilation is deterministic and excludes the business name (1.5882ms) ✔ logo prompt hashes and seed change when an approved input changes (0.2875ms) ✔ a stale local VERCEL_OIDC_TOKEN does not configure AI Gateway (0.2506ms) ✔ explicit local Gateway and private Blob credentials configure logo generation (0.1047ms) ✔ a current local Vercel OIDC token configures Gateway (0.1413ms) ✔ a Vercel deployment can use OIDC for Gateway and its attached private Blob (0.0877ms) ✔ three persisted and distinct logo candidates make the set ready (1.1722ms) ✔ duplicate image bytes keep a complete-looking set out of review (0.1649ms) ✔ a failed candidate exposes a partial set that needs attention (0.1213ms) ✔ candidate validation requires numbers 1, 2, and 3 with unique revision IDs (1.2801ms) ✔ preselection idempotency keys use the exported logo prompt version (0.1207ms) ✔ transient workflow attempts stay active until the durable retry budget is exhausted (0.1015ms) ✔ configuration failures return an explicit incomplete three-candidate aggregate (0.2987ms) ✔ all three candidates are launched in candidate order with prompt-versioned keys (0.2479ms) ✔ partial and rejected launches remain visible and all candidates are attempted (0.2425ms) ✔ production design accepts only the exact server-derived customer tenant (1.0052ms) ✔ non-production design retains the configured Google Places tenant boundary (0.1965ms) ℹ tests 21 ℹ suites 0 ℹ pass 21 ℹ fail 0 ℹ cancelled 0 ℹ skipped 0 ℹ todo 0 ℹ duration_ms 1748.988
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | transient workflow attempts stay active until the durable retry budget is exhausted design-agent.logo-governance.16 | 0ms | Recorded |
| passed | logo normalization rejects a blank white image design-agent.logo-governance.1 | 49ms | Recorded |
| passed | logo normalization rejects a fully transparent meaningless image design-agent.logo-governance.2 | 28ms | Recorded |
| passed | logo normalization rejects a non-white opaque background design-agent.logo-governance.3 | 25ms | Recorded |
| passed | logo normalization creates a transparent 1024 PNG and coordinated variants design-agent.logo-governance.4 | 256ms | Recorded |
| passed | logo prompt compilation is deterministic and excludes the business name design-agent.logo-governance.5 | 2ms | Recorded |
| passed | logo prompt hashes and seed change when an approved input changes design-agent.logo-governance.6 | 0ms | Recorded |
| passed | a stale local VERCEL_OIDC_TOKEN does not configure AI Gateway design-agent.logo-governance.7 | 0ms | Recorded |
| passed | explicit local Gateway and private Blob credentials configure logo generation design-agent.logo-governance.8 | 0ms | Recorded |
| passed | a current local Vercel OIDC token configures Gateway design-agent.logo-governance.9 | 0ms | Recorded |
| passed | a Vercel deployment can use OIDC for Gateway and its attached private Blob design-agent.logo-governance.10 | 0ms | Recorded |
| passed | preselection idempotency keys use the exported logo prompt version design-agent.logo-governance.15 | 0ms | Recorded |
| passed | a failed candidate exposes a partial set that needs attention design-agent.logo-governance.13 | 0ms | Recorded |
| passed | non-production design retains the configured Google Places tenant boundary design-agent.logo-governance.21 | 0ms | Recorded |
| passed | production design accepts only the exact server-derived customer tenant design-agent.logo-governance.20 | 1ms | Recorded |
| passed | duplicate image bytes keep a complete-looking set out of review design-agent.logo-governance.12 | 0ms | Recorded |
| passed | three persisted and distinct logo candidates make the set ready design-agent.logo-governance.11 | 1ms | Recorded |
| passed | candidate validation requires numbers 1, 2, and 3 with unique revision IDs design-agent.logo-governance.14 | 1ms | Recorded |
| passed | partial and rejected launches remain visible and all candidates are attempted design-agent.logo-governance.19 | 0ms | Recorded |
| passed | all three candidates are launched in candidate order with prompt-versioned keys design-agent.logo-governance.18 | 0ms | Recorded |
| passed | configuration failures return an explicit incomplete three-candidate aggregate design-agent.logo-governance.17 | 0ms | Recorded |
Duration: 2.2s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | partial and rejected launches remain visible and all candidates are attempted design-agent.logo-governance.19 | 0ms | Recorded |
| passed | production design accepts only the exact server-derived customer tenant design-agent.logo-governance.20 | 1ms | Recorded |
| passed | non-production design retains the configured Google Places tenant boundary design-agent.logo-governance.21 | 0ms | Recorded |
| passed | logo normalization rejects a blank white image design-agent.logo-governance.1 | 49ms | Recorded |
| passed | logo normalization rejects a fully transparent meaningless image design-agent.logo-governance.2 | 28ms | Recorded |
| passed | logo normalization rejects a non-white opaque background design-agent.logo-governance.3 | 25ms | Recorded |
| passed | logo normalization creates a transparent 1024 PNG and coordinated variants design-agent.logo-governance.4 | 256ms | Recorded |
| passed | logo prompt compilation is deterministic and excludes the business name design-agent.logo-governance.5 | 2ms | Recorded |
| passed | logo prompt hashes and seed change when an approved input changes design-agent.logo-governance.6 | 0ms | Recorded |
| passed | a stale local VERCEL_OIDC_TOKEN does not configure AI Gateway design-agent.logo-governance.7 | 0ms | Recorded |
| passed | explicit local Gateway and private Blob credentials configure logo generation design-agent.logo-governance.8 | 0ms | Recorded |
| passed | a current local Vercel OIDC token configures Gateway design-agent.logo-governance.9 | 0ms | Recorded |
| passed | a Vercel deployment can use OIDC for Gateway and its attached private Blob design-agent.logo-governance.10 | 0ms | Recorded |
| passed | three persisted and distinct logo candidates make the set ready design-agent.logo-governance.11 | 1ms | Recorded |
| passed | duplicate image bytes keep a complete-looking set out of review design-agent.logo-governance.12 | 0ms | Recorded |
| passed | a failed candidate exposes a partial set that needs attention design-agent.logo-governance.13 | 0ms | Recorded |
| passed | candidate validation requires numbers 1, 2, and 3 with unique revision IDs design-agent.logo-governance.14 | 1ms | Recorded |
| passed | preselection idempotency keys use the exported logo prompt version design-agent.logo-governance.15 | 0ms | Recorded |
| passed | transient workflow attempts stay active until the durable retry budget is exhausted design-agent.logo-governance.16 | 0ms | Recorded |
| passed | configuration failures return an explicit incomplete three-candidate aggregate design-agent.logo-governance.17 | 0ms | Recorded |
| passed | all three candidates are launched in candidate order with prompt-versioned keys design-agent.logo-governance.18 | 0ms | Recorded |
Duration: 2.2s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +1 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | non-production design retains the configured Google Places tenant boundary design-agent.logo-governance.21 | 0ms | Recorded |
| passed | production design accepts only the exact server-derived customer tenant design-agent.logo-governance.20 | 1ms | Recorded |
| passed | partial and rejected launches remain visible and all candidates are attempted design-agent.logo-governance.19 | 0ms | Recorded |
| passed | all three candidates are launched in candidate order with prompt-versioned keys design-agent.logo-governance.18 | 0ms | Recorded |
| passed | configuration failures return an explicit incomplete three-candidate aggregate design-agent.logo-governance.17 | 0ms | Recorded |
| passed | transient workflow attempts stay active until the durable retry budget is exhausted design-agent.logo-governance.16 | 0ms | Recorded |
| passed | preselection idempotency keys use the exported logo prompt version design-agent.logo-governance.15 | 0ms | Recorded |
| passed | candidate validation requires numbers 1, 2, and 3 with unique revision IDs design-agent.logo-governance.14 | 1ms | Recorded |
| passed | a failed candidate exposes a partial set that needs attention design-agent.logo-governance.13 | 0ms | Recorded |
| passed | duplicate image bytes keep a complete-looking set out of review design-agent.logo-governance.12 | 0ms | Recorded |
| passed | three persisted and distinct logo candidates make the set ready design-agent.logo-governance.11 | 1ms | Recorded |
| passed | a Vercel deployment can use OIDC for Gateway and its attached private Blob design-agent.logo-governance.10 | 0ms | Recorded |
| passed | a current local Vercel OIDC token configures Gateway design-agent.logo-governance.9 | 0ms | Recorded |
| passed | explicit local Gateway and private Blob credentials configure logo generation design-agent.logo-governance.8 | 0ms | Recorded |
| passed | a stale local VERCEL_OIDC_TOKEN does not configure AI Gateway design-agent.logo-governance.7 | 0ms | Recorded |
| passed | logo prompt hashes and seed change when an approved input changes design-agent.logo-governance.6 | 0ms | Recorded |
| passed | logo prompt compilation is deterministic and excludes the business name design-agent.logo-governance.5 | 2ms | Recorded |
| passed | logo normalization creates a transparent 1024 PNG and coordinated variants design-agent.logo-governance.4 | 256ms | Recorded |
| passed | logo normalization rejects a non-white opaque background design-agent.logo-governance.3 | 25ms | Recorded |
| passed | logo normalization rejects a fully transparent meaningless image design-agent.logo-governance.2 | 28ms | Recorded |
| passed | logo normalization rejects a blank white image design-agent.logo-governance.1 | 49ms | Recorded |
Duration: 150.2s
Requested by: vercel:doernaz-5523
Trigger: System
Environment: Connected production database
No earlier run is available for comparison.
000-0000-4000-8000-000000000101',
[WebServer] candidateId: '10000000-0000-4000-8000-000000000102',
[WebServer] actorId: 'playwright-role-platform-owner',
[WebServer] decision: 'verified',
[WebServer] replayed: false,
[WebServer] readyToBuild: true
[WebServer] }
[WebServer] e2e_checkpoint_started {
[WebServer] runId: '9e95c393-39da-4d6e-8700-0d2a7c0cfd58',
[WebServer] executionId: 'ce031547-9449-460d-b031-31a0e6c15f9f',
[WebServer] workflowRunId: 'wrun_01KXQMET68QSMM9AJS57EJN0B3',
[WebServer] stepId: 'step_01KXQMET6HDGNWE1B9AA77MQD4',
[WebServer] attempt: 1
[WebServer] }
[WebServer] e2e_checkpoint_completed {
[WebServer] runId: '9e95c393-39da-4d6e-8700-0d2a7c0cfd58',
[WebServer] executionId: 'ce031547-9449-460d-b031-31a0e6c15f9f',
[WebServer] workflowRunId: 'wrun_01KXQMET68QSMM9AJS57EJN0B3',
[WebServer] stepId: 'step_01KXQMET6HDGNWE1B9AA77MQD4'
[WebServer] }
[WebServer] e2e_checkpoint_started {
[WebServer] runId: '9e95c393-39da-4d6e-8700-0d2a7c0cfd58',
[WebServer] executionId: '5939c6f0-6c03-452a-9204-d56376e3ba50',
[WebServer] workflowRunId: 'wrun_01KXQMEYMG11A4EW5BZYG59YV9',
[WebServer] stepId: 'step_01KXQMEYMPNZXJWGCTZA0V96Z8',
[WebServer] attempt: 1
[WebServer] }
[WebServer] e2e_checkpoint_completed {
[WebServer] runId: '9e95c393-39da-4d6e-8700-0d2a7c0cfd58',
[WebServer] executionId: '5939c6f0-6c03-452a-9204-d56376e3ba50',
[WebServer] workflowRunId: 'wrun_01KXQMEYMG11A4EW5BZYG59YV9',
[WebServer] stepId: 'step_01KXQMEYMPNZXJWGCTZA0V96Z8'
[WebServer] }
[WebServer] e2e_checkpoint_started {
[WebServer] runId: '9e95c393-39da-4d6e-8700-0d2a7c0cfd58',
[WebServer] executionId: '7a63cc33-21d0-4a8f-9e4c-e1379e269c0d',
[WebServer] workflowRunId: 'wrun_01KXQMF304WS789RCX0YF6GTK9',
[WebServer] stepId: 'step_01KXQMF308V12B4RWQBNP1Z7VQ',
[WebServer] attempt: 1
[WebServer] }
[WebServer] e2e_checkpoint_completed {
[WebServer] runId: '9e95c393-39da-4d6e-8700-0d2a7c0cfd58',
[WebServer] executionId: '7a63cc33-21d0-4a8f-9e4c-e1379e269c0d',
[WebServer] workflowRunId: 'wrun_01KXQMF304WS789RCX0YF6GTK9',
[WebServer] stepId: 'step_01KXQMF308V12B4RWQBNP1Z7VQ'
[WebServer] }
[WebServer] e2e_checkpoint_started {
[WebServer] runId: '9e95c393-39da-4d6e-8700-0d2a7c0cfd58',
[WebServer] executionId: '574eae47-3161-4782-9a11-6b11efed3640',
[WebServer] workflowRunId: 'wrun_01KXQMFABB0VSJKG54QYGVKS9E',
[WebServer] stepId: 'step_01KXQMFABFMC82ETDPET8N9CP0',
[WebServer] attempt: 1
[WebServer] }
[WebServer] e2e_checkpoint_completed {
[WebServer] runId: '9e95c393-39da-4d6e-8700-0d2a7c0cfd58',
[WebServer] executionId: '574eae47-3161-4782-9a11-6b11efed3640',
[WebServer] workflowRunId: 'wrun_01KXQMFABB0VSJKG54QYGVKS9E',
[WebServer] stepId: 'step_01KXQMFABFMC82ETDPET8N9CP0'
[WebServer] }
[WebServer] e2e_checkpoint_started {
[WebServer] runId: '9e95c393-39da-4d6e-8700-0d2a7c0cfd58',
[WebServer] executionId: '700ccdb1-be20-4dd8-9680-489c85166bd5',
[WebServer] workflowRunId: 'wrun_01KXQMFF6EVBV5XQJH4HB8747W',
[WebServer] stepId: 'step_01KXQMFF6JBBJNBKX3JZ2ZQ20M',
[WebServer] attempt: 1
[WebServer] }
[WebServer] e2e_checkpoint_completed {
[WebServer] runId: '9e95c393-39da-4d6e-8700-0d2a7c0cfd58',
[WebServer] executionId: '700ccdb1-be20-4dd8-9680-489c85166bd5',
[WebServer] workflowRunId: 'wrun_01KXQMFF6EVBV5XQJH4HB8747W',
[WebServer] stepId: 'step_01KXQMFF6JBBJNBKX3JZ2ZQ20M'
[WebServer] }
[9/11] [chromium] › tests\playwright\dashboard-role-emulation.spec.ts:1448:5 › [dashboard.roles.website-lifecycle] client revision, agency approval, publication, and rollback preserve immutable versions
[10/11] [chromium] › tests\playwright\dashboard-role-emulation.spec.ts:1604:5 › [dashboard.roles.live-media-prompts] Media Library builds and persists the governed eight-image handoff
[11/11] [chromium] › tests\playwright\dashboard-role-emulation.spec.ts:1776:5 › [dashboard.roles.mobile] all three role shells stay usable at 390px without page overflow
1 skipped
10 passed (2.1m)[WebServer] [QueueClient] Region not detected — defaulting to "iad1". On Vercel this is set automatically via VERCEL_REGION. To silence this warning, pass region explicitly: new QueueClient({ region: "iad1" })
[WebServer] [QueueClient] Region not detected — defaulting to "iad1". On Vercel this is set automatically via VERCEL_REGION. To silence this warning, pass region explicitly: new QueueClient({ region: "iad1" })
[WebServer] [QueueClient] Region not detected — defaulting to "iad1". On Vercel this is set automatically via VERCEL_REGION. To silence this warning, pass region explicitly: new QueueClient({ region: "iad1" })| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | dashboard roles agency-isolation dashboard.roles.agency-isolation | 3829ms | Recorded |
| passed | dashboard roles platform-emulation dashboard.roles.platform-emulation | 20261ms | Recorded |
| passed | dashboard roles mobile dashboard.roles.mobile | 883ms | Recorded |
| passed | dashboard roles website-lifecycle dashboard.roles.website-lifecycle | 19782ms | Recorded |
| passed | dashboard roles production-lifecycle dashboard.roles.production-lifecycle | 41968ms | Recorded |
| passed | dashboard roles cookie-fail-closed dashboard.roles.cookie-fail-closed | 1170ms | Recorded |
| passed | dashboard roles lead-api-authorization dashboard.roles.lead-api-authorization | 2409ms | Recorded |
| passed | dashboard roles design-api-authorization dashboard.roles.design-api-authorization | 3435ms | Recorded |
| passed | dashboard roles client-authorization dashboard.roles.client-authorization | 905ms | Recorded |
| passed | dashboard roles test-lab-retry dashboard.roles.test-lab-retry | 20927ms | Recorded |
Duration: 140.5s
Requested by: vercel:doernaz-5523
Trigger: System
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
s with live state and actions [12/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:102:7 › [dashboard.page.data] /dashboard/data loads with live state and actions [13/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:102:7 › [dashboard.page.workflows] /dashboard/workflows loads with live state and actions [14/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:102:7 › [dashboard.page.agencies] /dashboard/agencies loads with live state and actions [15/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:102:7 › [dashboard.page.clients] /dashboard/clients loads with live state and actions [16/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:102:7 › [dashboard.page.control-engine] /dashboard/control-engine loads with live state and actions [17/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:102:7 › [dashboard.page.audit] /dashboard/audit loads with live state and actions [18/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:102:7 › [dashboard.page.automated-testing] /dashboard/automated-testing loads with live state and actions [19/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:102:7 › [dashboard.page.daily-briefing] /dashboard/daily-briefing loads with live state and actions [20/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:102:7 › [dashboard.page.settings] /dashboard/settings loads with live state and actions [21/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:121:5 › [owner.review-mirror.consistency] owner landing shows the latest mirror check [22/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:143:5 › [dashboard.interaction.navigation] navigation supports active state, history, and refresh [23/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:168:5 › [dashboard.lifecycle.production-boundary] customer lifecycle operations expose governed checkpoints without validation fixtures [24/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:192:5 › [dashboard.data.attribution-controls] all governed attribution controls remain reachable on mobile [25/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:222:5 › [dashboard.data.section-strategy] governed section recommendations and composer are native admin controls [26/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:248:5 › [dashboard.data.geography-controls] admins can validate a governed postal search area [27/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:274:5 › [dashboard.media-library.workspace] governed media production is available without Test Center scaffolding [28/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:300:5 › [dashboard.daily-briefing.workspace] owner intelligence is native, stored, and actionable [29/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:322:5 › [dashboard.settings.provider-health] platform administrators can run bounded provider verification [30/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:348:5 › [dashboard.test-lab.registry] persistent suites, runner readiness, and history are operator-visible [31/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:422:5 › [dashboard.test-lab.safe-rerun] an operator can run the live master-data suite and inspect its persisted results [32/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:467:5 › [dashboard.test-lab.incident-recovery] a failed governed run links to operational recovery without exposing an unsafe retry [33/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:501:5 › [dashboard.audit.domain-history] material activity from governed domains is searchable and inspectable [34/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:522:5 › [dashboard.responsive.all-routes] all routes prevent page overflow across supported viewports [35/35] [chromium] › tests\playwright\dashboard-pages.spec.ts:552:5 › [dashboard.accessibility.primary] primary dashboard structure is keyboard and screen-reader understandable 35 passed (2.3m)
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | dashboard leads discovery dashboard.leads.discovery | 2757ms | Recorded |
| passed | dashboard page overview dashboard.page.overview | 623ms | Recorded |
| passed | dashboard page leads dashboard.page.leads | 1668ms | Recorded |
| passed | dashboard page verification dashboard.page.verification | 747ms | Recorded |
| passed | dashboard page websites dashboard.page.websites | 743ms | Recorded |
| passed | dashboard page deployments dashboard.page.deployments | 1811ms | Recorded |
| passed | dashboard page editing dashboard.page.editing | 1839ms | Recorded |
| passed | dashboard page assets dashboard.page.assets | 756ms | Recorded |
| passed | dashboard page media-library dashboard.page.media-library | 1326ms | Recorded |
| passed | dashboard page approvals dashboard.page.approvals | 728ms | Recorded |
| passed | dashboard accessibility primary dashboard.accessibility.primary | 617ms | Recorded |
| passed | dashboard responsive all-routes dashboard.responsive.all-routes | 56885ms | Recorded |
| passed | dashboard audit domain-history dashboard.audit.domain-history | 1242ms | Recorded |
| passed | dashboard test-lab incident-recovery dashboard.test-lab.incident-recovery | 3991ms | Recorded |
| passed | dashboard page data dashboard.page.data | 2339ms | Recorded |
| passed | dashboard page workflows dashboard.page.workflows | 694ms | Recorded |
| passed | dashboard test-lab safe-rerun dashboard.test-lab.safe-rerun | 21886ms | Recorded |
| passed | dashboard test-lab registry dashboard.test-lab.registry | 3444ms | Recorded |
| passed | dashboard settings provider-health dashboard.settings.provider-health | 1737ms | Recorded |
| passed | dashboard daily-briefing workspace dashboard.daily-briefing.workspace | 842ms | Recorded |
| passed | dashboard media-library workspace dashboard.media-library.workspace | 833ms | Recorded |
| passed | dashboard data geography-controls dashboard.data.geography-controls | 2949ms | Recorded |
| passed | dashboard data section-strategy dashboard.data.section-strategy | 4504ms | Recorded |
| passed | dashboard data attribution-controls dashboard.data.attribution-controls | 2614ms | Recorded |
| passed | dashboard lifecycle production-boundary dashboard.lifecycle.production-boundary | 736ms | Recorded |
| passed | dashboard interaction navigation dashboard.interaction.navigation | 1221ms | Recorded |
| passed | owner review-mirror consistency owner.review-mirror.consistency | 1141ms | Recorded |
| passed | dashboard page settings dashboard.page.settings | 842ms | Recorded |
| passed | dashboard page daily-briefing dashboard.page.daily-briefing | 862ms | Recorded |
| passed | dashboard page automated-testing dashboard.page.automated-testing | 2632ms | Recorded |
| passed | dashboard page audit dashboard.page.audit | 1140ms | Recorded |
| passed | dashboard page clients dashboard.page.clients | 747ms | Recorded |
| passed | dashboard page agencies dashboard.page.agencies | 719ms | Recorded |
| passed | dashboard e2e native-capability-workspaces dashboard.e2e.native-capability-workspaces | 5992ms | Recorded |
| passed | dashboard page control-engine dashboard.page.control-engine | 774ms | Recorded |
Duration: 140.5s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
No earlier run is available for comparison.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | dashboard page editing dashboard.page.editing | 1839ms | Recorded |
| passed | dashboard page assets dashboard.page.assets | 756ms | Recorded |
| passed | dashboard page media-library dashboard.page.media-library | 1326ms | Recorded |
| passed | dashboard page approvals dashboard.page.approvals | 728ms | Recorded |
| passed | dashboard page data dashboard.page.data | 2339ms | Recorded |
| passed | dashboard page workflows dashboard.page.workflows | 694ms | Recorded |
| passed | dashboard page agencies dashboard.page.agencies | 719ms | Recorded |
| passed | dashboard page clients dashboard.page.clients | 747ms | Recorded |
| passed | dashboard page control-engine dashboard.page.control-engine | 774ms | Recorded |
| passed | dashboard page audit dashboard.page.audit | 1140ms | Recorded |
| passed | dashboard page automated-testing dashboard.page.automated-testing | 2632ms | Recorded |
| passed | dashboard page daily-briefing dashboard.page.daily-briefing | 862ms | Recorded |
| passed | dashboard page settings dashboard.page.settings | 842ms | Recorded |
| passed | owner review-mirror consistency owner.review-mirror.consistency | 1141ms | Recorded |
| passed | dashboard interaction navigation dashboard.interaction.navigation | 1221ms | Recorded |
| passed | dashboard lifecycle production-boundary dashboard.lifecycle.production-boundary | 736ms | Recorded |
| passed | dashboard data attribution-controls dashboard.data.attribution-controls | 2614ms | Recorded |
| passed | dashboard data section-strategy dashboard.data.section-strategy | 4504ms | Recorded |
| passed | dashboard data geography-controls dashboard.data.geography-controls | 2949ms | Recorded |
| passed | dashboard media-library workspace dashboard.media-library.workspace | 833ms | Recorded |
| passed | dashboard daily-briefing workspace dashboard.daily-briefing.workspace | 842ms | Recorded |
| passed | dashboard settings provider-health dashboard.settings.provider-health | 1737ms | Recorded |
| passed | dashboard test-lab registry dashboard.test-lab.registry | 3444ms | Recorded |
| passed | dashboard test-lab safe-rerun dashboard.test-lab.safe-rerun | 21886ms | Recorded |
| passed | dashboard test-lab incident-recovery dashboard.test-lab.incident-recovery | 3991ms | Recorded |
| passed | dashboard audit domain-history dashboard.audit.domain-history | 1242ms | Recorded |
| passed | dashboard responsive all-routes dashboard.responsive.all-routes | 56885ms | Recorded |
| passed | dashboard accessibility primary dashboard.accessibility.primary | 617ms | Recorded |
| passed | dashboard e2e native-capability-workspaces dashboard.e2e.native-capability-workspaces | 5992ms | Recorded |
| passed | dashboard leads discovery dashboard.leads.discovery | 2757ms | Recorded |
| passed | dashboard page overview dashboard.page.overview | 623ms | Recorded |
| passed | dashboard page leads dashboard.page.leads | 1668ms | Recorded |
| passed | dashboard page verification dashboard.page.verification | 747ms | Recorded |
| passed | dashboard page websites dashboard.page.websites | 743ms | Recorded |
| passed | dashboard page deployments dashboard.page.deployments | 1811ms | Recorded |
Duration: 5.1s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Static code quality code-quality.static.aggregate | 5142ms | Recorded |
Duration: 5.1s
Requested by: vercel:doernaz-5523
Trigger: System
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
> gold-brandlift@0.1.0 test:quality > npm run lint && npm run typecheck > gold-brandlift@0.1.0 lint > biome check Checked 528 files in 233ms. No fixes applied. > gold-brandlift@0.1.0 typecheck > tsc --noEmit
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Static code quality code-quality.static.aggregate | 5142ms | Recorded |
Duration: 5.1s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Static code quality code-quality.static.aggregate | 5142ms | Recorded |
Duration: 5.1s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Static code quality code-quality.static.aggregate | 5142ms | Recorded |
Duration: 55.3s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Production build production.build.aggregate | 55260ms | Recorded |
Duration: 55.3s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Production build production.build.aggregate | 55260ms | Recorded |
Duration: 55.3s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Production build production.build.aggregate | 55260ms | Recorded |
Duration: 55.3s
Requested by: vercel:doernaz-5523
Trigger: System
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
/_not-found ├ ƒ /.well-known/workflow/v1/flow ├ ƒ /.well-known/workflow/v1/step ├ ƒ /.well-known/workflow/v1/webhook/[token] ├ ƒ /api/cron/daily-briefing ├ ƒ /api/cron/media-outbox ├ ƒ /api/dashboard/apis/health ├ ƒ /api/dashboard/daily-briefing ├ ƒ /api/dashboard/daily-briefing/github ├ ƒ /api/dashboard/data ├ ƒ /api/dashboard/data/sections ├ ƒ /api/dashboard/data/sections/composer ├ ƒ /api/dashboard/data/sections/recommendations ├ ƒ /api/dashboard/data/sections/recommendations/[recommendationId] ├ ƒ /api/dashboard/design-agent ├ ƒ /api/dashboard/design-agent/revisions/[revisionId]/logo-candidate ├ ƒ /api/dashboard/design-agent/revisions/[revisionId]/logo-candidate/content ├ ƒ /api/dashboard/design-agent/revisions/[revisionId]/logo-candidate/review ├ ƒ /api/dashboard/design-agent/revisions/[revisionId]/logo-handoff ├ ƒ /api/dashboard/design-agent/revisions/[revisionId]/review ├ ƒ /api/dashboard/design-agent/runs ├ ƒ /api/dashboard/design-agent/runs/[runId] ├ ƒ /api/dashboard/design-agent/runs/[runId]/cancel ├ ƒ /api/dashboard/design-assets/[assetId] ├ ƒ /api/dashboard/end-to-end-testing ├ ƒ /api/dashboard/end-to-end-testing/[runId] ├ ƒ /api/dashboard/end-to-end-testing/[runId]/commands ├ ƒ /api/dashboard/geography ├ ƒ /api/dashboard/google-places/options ├ ƒ /api/dashboard/google-places/preview ├ ƒ /api/dashboard/google-places/searches ├ ƒ /api/dashboard/google-places/searches/[runId] ├ ƒ /api/dashboard/google-places/searches/[runId]/candidates/[candidateId]/review ├ ƒ /api/dashboard/google-places/searches/[runId]/candidates/[candidateId]/website-enrichment ├ ƒ /api/dashboard/google-places/searches/[runId]/enrich ├ ƒ /api/dashboard/google-places/session ├ ƒ /api/dashboard/leads/export ├ ƒ /api/dashboard/media/assets ├ ƒ /api/dashboard/media/assets/[assetId] ├ ƒ /api/dashboard/media/assets/[assetId]/analyze ├ ƒ /api/dashboard/media/assets/[assetId]/finalize ├ ƒ /api/dashboard/media/assets/[assetId]/preview ├ ƒ /api/dashboard/media/assets/[assetId]/reject ├ ƒ /api/dashboard/media/assets/[assetId]/source ├ ƒ /api/dashboard/media/business-type-workflow ├ ƒ /api/dashboard/media/handoffs ├ ƒ /api/dashboard/media/imports/[runId]/finalize ├ ƒ /api/dashboard/media/imports/reserve ├ ƒ /api/dashboard/media/prompts ├ ƒ /api/dashboard/media/prompts/[recipeItemId]/generate ├ ƒ /api/dashboard/media/uploads ├ ƒ /api/dashboard/test-lab/artifacts ├ ƒ /api/integrations/media-generator/v1/jobs/[runId] ├ ƒ /api/integrations/media-generator/v1/jobs/[runId]/complete ├ ƒ /api/integrations/media-generator/v1/jobs/[runId]/fail ├ ƒ /api/integrations/media-generator/v1/jobs/[runId]/heartbeat ├ ƒ /api/integrations/media-generator/v1/jobs/[runId]/started ├ ƒ /api/integrations/media-generator/v1/jobs/[runId]/uploads/reserve ├ ƒ /api/integrations/media-generator/v1/jobs/claim ├ ƒ /api/integrations/media-generator/v1/outbox/dispatch ├ ƒ /api/integrations/media-generator/v1/requests/materialize ├ ƒ /api/integrations/media-generator/v1/uploads ├ ƒ /api/owner/credentials ├ ƒ /api/owner/credentials/[credentialId] ├ ƒ /api/owner/credentials/[credentialId]/reveal ├ ƒ /api/owner/credentials/reveal ├ ƒ /api/queues/media-assets ├ ƒ /api/sites/[siteKey]/analytics ├ ƒ /api/workflows/section-recommendations ├ ƒ /api/workflows/section-recommendations/[workflowRunId] ├ ƒ /dashboard ├ ƒ /dashboard/[section] ├ ƒ /owner ├ ƒ /owner/daily-briefing ├ ƒ /preview-sites/[deploymentId]/[[...path]] ├ ƒ /sign-in/[[...sign-in]] ├ ƒ /sites/[siteKey]/[[...path]] ├ ƒ /test-center ├ ƒ /test-center/[section] ├ ○ /test-center/apis ├ ƒ /test-center/apis/google-places ├ ƒ /test-center/daily-briefing ├ ƒ /test-center/data ├ ƒ /test-center/data/sections ├ ○ /test-center/data/tests ├ ƒ /test-center/design-agent ├ ○ /test-center/design-overview ├ ƒ /test-center/end-to-end-testing ├ ƒ /test-center/geography ├ ○ /test-center/geography/tests ├ ○ /test-center/media └ ƒ /test-center/media/mockup ƒ Proxy (Middleware) ○ (Static) prerendered as static content ƒ (Dynamic) server-rendered on demand
[QueueClient] Region not detected — defaulting to "iad1". On Vercel this is set automatically via VERCEL_REGION. To silence this warning, pass region explicitly: new QueueClient({ region: "iad1" })
[QueueClient] Region not detected — defaulting to "iad1". On Vercel this is set automatically via VERCEL_REGION. To silence this warning, pass region explicitly: new QueueClient({ region: "iad1" })| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Production build production.build.aggregate | 55260ms | Recorded |
Duration: 0.7s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | accepts a complete governed attribution control business-type-attribution.unit.1 | 2ms | Recorded |
| passed | fails closed for duplicate or conflicting discovery terms business-type-attribution.unit.2 | 1ms | Recorded |
| passed | requires canonical weight and a blocking negative business-type-attribution.unit.3 | 0ms | Recorded |
| passed | converts an approved control into a versioned runtime profile business-type-attribution.unit.4 | 0ms | Recorded |
| passed | builds distinct governed attribution sets business-type-attribution.unit.5 | 2ms | Recorded |
| passed | provides type-specific synonyms instead of generic search phrases business-type-attribution.unit.6 | 0ms | Recorded |
| passed | fails closed when semantic or category policy coverage is missing business-type-attribution.unit.7 | 1ms | Recorded |
| passed | uses a versioned attribution policy business-type-attribution.unit.8 | 0ms | Recorded |
Duration: 0.7s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | accepts a complete governed attribution control business-type-attribution.unit.1 | 2ms | Recorded |
| passed | fails closed for duplicate or conflicting discovery terms business-type-attribution.unit.2 | 1ms | Recorded |
| passed | requires canonical weight and a blocking negative business-type-attribution.unit.3 | 0ms | Recorded |
| passed | converts an approved control into a versioned runtime profile business-type-attribution.unit.4 | 0ms | Recorded |
| passed | builds distinct governed attribution sets business-type-attribution.unit.5 | 2ms | Recorded |
| passed | provides type-specific synonyms instead of generic search phrases business-type-attribution.unit.6 | 0ms | Recorded |
| passed | fails closed when semantic or category policy coverage is missing business-type-attribution.unit.7 | 1ms | Recorded |
| passed | uses a versioned attribution policy business-type-attribution.unit.8 | 0ms | Recorded |
Duration: 0.7s
Requested by: vercel:doernaz-5523
Trigger: System
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
> gold-brandlift@0.1.0 test:business-type-attribution > node --conditions=react-server --import tsx --test lib/business-type-attribution-controls.test.ts scripts/business-type-attribution-seed-data.test.mjs ✔ accepts a complete governed attribution control (2.3671ms) ✔ fails closed for duplicate or conflicting discovery terms (0.6402ms) ✔ requires canonical weight and a blocking negative (0.2912ms) ✔ converts an approved control into a versioned runtime profile (0.2279ms) ✔ builds distinct governed attribution sets (1.8828ms) ✔ provides type-specific synonyms instead of generic search phrases (0.1451ms) ✔ fails closed when semantic or category policy coverage is missing (0.7866ms) ✔ uses a versioned attribution policy (0.085ms) ℹ tests 8 ℹ suites 0 ℹ pass 8 ℹ fail 0 ℹ cancelled 0 ℹ skipped 0 ℹ todo 0 ℹ duration_ms 193.5453
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | accepts a complete governed attribution control business-type-attribution.unit.1 | 2ms | Recorded |
| passed | fails closed for duplicate or conflicting discovery terms business-type-attribution.unit.2 | 1ms | Recorded |
| passed | requires canonical weight and a blocking negative business-type-attribution.unit.3 | 0ms | Recorded |
| passed | converts an approved control into a versioned runtime profile business-type-attribution.unit.4 | 0ms | Recorded |
| passed | builds distinct governed attribution sets business-type-attribution.unit.5 | 2ms | Recorded |
| passed | provides type-specific synonyms instead of generic search phrases business-type-attribution.unit.6 | 0ms | Recorded |
| passed | fails closed when semantic or category policy coverage is missing business-type-attribution.unit.7 | 1ms | Recorded |
| passed | uses a versioned attribution policy business-type-attribution.unit.8 | 0ms | Recorded |
Duration: 0.7s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | accepts a complete governed attribution control business-type-attribution.unit.1 | 2ms | Recorded |
| passed | fails closed for duplicate or conflicting discovery terms business-type-attribution.unit.2 | 1ms | Recorded |
| passed | requires canonical weight and a blocking negative business-type-attribution.unit.3 | 0ms | Recorded |
| passed | converts an approved control into a versioned runtime profile business-type-attribution.unit.4 | 0ms | Recorded |
| passed | builds distinct governed attribution sets business-type-attribution.unit.5 | 2ms | Recorded |
| passed | provides type-specific synonyms instead of generic search phrases business-type-attribution.unit.6 | 0ms | Recorded |
| passed | fails closed when semantic or category policy coverage is missing business-type-attribution.unit.7 | 1ms | Recorded |
| passed | uses a versioned attribution policy business-type-attribution.unit.8 | 0ms | Recorded |
Duration: 0.7s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
No earlier run is available for comparison.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | accepts a complete governed attribution control business-type-attribution.unit.1 | 2ms | Recorded |
| passed | fails closed for duplicate or conflicting discovery terms business-type-attribution.unit.2 | 1ms | Recorded |
| passed | requires canonical weight and a blocking negative business-type-attribution.unit.3 | 0ms | Recorded |
| passed | converts an approved control into a versioned runtime profile business-type-attribution.unit.4 | 0ms | Recorded |
| passed | builds distinct governed attribution sets business-type-attribution.unit.5 | 2ms | Recorded |
| passed | provides type-specific synonyms instead of generic search phrases business-type-attribution.unit.6 | 0ms | Recorded |
| passed | fails closed when semantic or category policy coverage is missing business-type-attribution.unit.7 | 1ms | Recorded |
| passed | uses a versioned attribution policy business-type-attribution.unit.8 | 0ms | Recorded |
Duration: 1.9s
Requested by: vercel:doernaz-5523
Trigger: System
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
> gold-brandlift@0.1.0 test:design-logo > node --conditions=react-server --import tsx --test lib/design-agent/logo-prompt.test.ts lib/design-agent/logo-image.test.ts lib/design-agent/logo-set.test.ts lib/design-agent/logo-workflow.test.ts lib/design-agent/tenant-binding.test.ts ✔ logo normalization rejects a blank white image (45.5263ms) ✔ logo normalization rejects a fully transparent meaningless image (25.1656ms) ✔ logo normalization rejects a non-white opaque background (21.3954ms) ✔ logo normalization creates a transparent 1024 PNG and coordinated variants (200.7778ms) ✔ logo prompt compilation is deterministic and excludes the business name (1.5736ms) ✔ logo prompt hashes and seed change when an approved input changes (0.2924ms) ✔ a stale local VERCEL_OIDC_TOKEN does not configure AI Gateway (0.2698ms) ✔ explicit local Gateway and private Blob credentials configure logo generation (0.1165ms) ✔ a current local Vercel OIDC token configures Gateway (0.1517ms) ✔ a Vercel deployment can use OIDC for Gateway and its attached private Blob (0.0914ms) ✔ three persisted and distinct logo candidates make the set ready (0.9103ms) ✔ duplicate image bytes keep a complete-looking set out of review (0.1126ms) ✔ a failed candidate exposes a partial set that needs attention (0.0888ms) ✔ candidate validation requires numbers 1, 2, and 3 with unique revision IDs (1.0796ms) ✔ preselection idempotency keys use the exported logo prompt version (0.1085ms) ✔ configuration failures return an explicit incomplete three-candidate aggregate (0.2531ms) ✔ all three candidates are launched in candidate order with prompt-versioned keys (0.1817ms) ✔ partial and rejected launches remain visible and all candidates are attempted (0.183ms) ✔ production design accepts only the exact server-derived customer tenant (0.7403ms) ✔ non-production design retains the configured Google Places tenant boundary (0.1413ms) ℹ tests 20 ℹ suites 0 ℹ pass 20 ℹ fail 0 ℹ cancelled 0 ℹ skipped 0 ℹ todo 0 ℹ duration_ms 1443.3105
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | non-production design retains the configured Google Places tenant boundary design-agent.logo-governance.20 | 0ms | Recorded |
| passed | production design accepts only the exact server-derived customer tenant design-agent.logo-governance.19 | 1ms | Recorded |
| passed | partial and rejected launches remain visible and all candidates are attempted design-agent.logo-governance.18 | 0ms | Recorded |
| passed | all three candidates are launched in candidate order with prompt-versioned keys design-agent.logo-governance.17 | 0ms | Recorded |
| passed | configuration failures return an explicit incomplete three-candidate aggregate design-agent.logo-governance.16 | 0ms | Recorded |
| passed | preselection idempotency keys use the exported logo prompt version design-agent.logo-governance.15 | 0ms | Recorded |
| passed | candidate validation requires numbers 1, 2, and 3 with unique revision IDs design-agent.logo-governance.14 | 1ms | Recorded |
| passed | a failed candidate exposes a partial set that needs attention design-agent.logo-governance.13 | 0ms | Recorded |
| passed | duplicate image bytes keep a complete-looking set out of review design-agent.logo-governance.12 | 0ms | Recorded |
| passed | three persisted and distinct logo candidates make the set ready design-agent.logo-governance.11 | 1ms | Recorded |
| passed | a Vercel deployment can use OIDC for Gateway and its attached private Blob design-agent.logo-governance.10 | 0ms | Recorded |
| passed | a current local Vercel OIDC token configures Gateway design-agent.logo-governance.9 | 0ms | Recorded |
| passed | explicit local Gateway and private Blob credentials configure logo generation design-agent.logo-governance.8 | 0ms | Recorded |
| passed | a stale local VERCEL_OIDC_TOKEN does not configure AI Gateway design-agent.logo-governance.7 | 0ms | Recorded |
| passed | logo prompt hashes and seed change when an approved input changes design-agent.logo-governance.6 | 0ms | Recorded |
| passed | logo prompt compilation is deterministic and excludes the business name design-agent.logo-governance.5 | 2ms | Recorded |
| passed | logo normalization creates a transparent 1024 PNG and coordinated variants design-agent.logo-governance.4 | 201ms | Recorded |
| passed | logo normalization rejects a non-white opaque background design-agent.logo-governance.3 | 21ms | Recorded |
| passed | logo normalization rejects a fully transparent meaningless image design-agent.logo-governance.2 | 25ms | Recorded |
| passed | logo normalization rejects a blank white image design-agent.logo-governance.1 | 46ms | Recorded |
Duration: 1.9s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
No earlier run is available for comparison.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | three persisted and distinct logo candidates make the set ready design-agent.logo-governance.11 | 1ms | Recorded |
| passed | duplicate image bytes keep a complete-looking set out of review design-agent.logo-governance.12 | 0ms | Recorded |
| passed | a failed candidate exposes a partial set that needs attention design-agent.logo-governance.13 | 0ms | Recorded |
| passed | candidate validation requires numbers 1, 2, and 3 with unique revision IDs design-agent.logo-governance.14 | 1ms | Recorded |
| passed | preselection idempotency keys use the exported logo prompt version design-agent.logo-governance.15 | 0ms | Recorded |
| passed | configuration failures return an explicit incomplete three-candidate aggregate design-agent.logo-governance.16 | 0ms | Recorded |
| passed | all three candidates are launched in candidate order with prompt-versioned keys design-agent.logo-governance.17 | 0ms | Recorded |
| passed | partial and rejected launches remain visible and all candidates are attempted design-agent.logo-governance.18 | 0ms | Recorded |
| passed | production design accepts only the exact server-derived customer tenant design-agent.logo-governance.19 | 1ms | Recorded |
| passed | logo normalization rejects a blank white image design-agent.logo-governance.1 | 46ms | Recorded |
| passed | logo normalization rejects a fully transparent meaningless image design-agent.logo-governance.2 | 25ms | Recorded |
| passed | logo normalization rejects a non-white opaque background design-agent.logo-governance.3 | 21ms | Recorded |
| passed | logo normalization creates a transparent 1024 PNG and coordinated variants design-agent.logo-governance.4 | 201ms | Recorded |
| passed | logo prompt compilation is deterministic and excludes the business name design-agent.logo-governance.5 | 2ms | Recorded |
| passed | non-production design retains the configured Google Places tenant boundary design-agent.logo-governance.20 | 0ms | Recorded |
| passed | logo prompt hashes and seed change when an approved input changes design-agent.logo-governance.6 | 0ms | Recorded |
| passed | a stale local VERCEL_OIDC_TOKEN does not configure AI Gateway design-agent.logo-governance.7 | 0ms | Recorded |
| passed | explicit local Gateway and private Blob credentials configure logo generation design-agent.logo-governance.8 | 0ms | Recorded |
| passed | a current local Vercel OIDC token configures Gateway design-agent.logo-governance.9 | 0ms | Recorded |
| passed | a Vercel deployment can use OIDC for Gateway and its attached private Blob design-agent.logo-governance.10 | 0ms | Recorded |
Duration: 1.1s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | verified decisions reject missing structured confirmer evidence google-places.unit-security.30 | 0ms | Recorded |
| passed | review and rejection decisions never accept publishable facts google-places.unit-security.28 | 0ms | Recorded |
| passed | verified lead decisions require a normalized recorded customer confirmation google-places.unit-security.27 | 2ms | Recorded |
| passed | keeps unrelated unexpected failures as non-retryable 500 responses google-places.unit-security.26 | 0ms | Recorded |
| passed | preserves explicit Google Places error mappings google-places.unit-security.25 | 0ms | Recorded |
| passed | maps allow-listed nested dependency codes without leaking messages google-places.unit-security.24 | 1ms | Recorded |
| passed | maps the pg-pool connection timeout to a controlled retryable 503 google-places.unit-security.23 | 14ms | Recorded |
| passed | live identity refresh requests only id and displayName and audits the Pro SKU google-places.unit-security.22 | 1ms | Recorded |
| passed | live details retain every returned photo behind opaque transient handles google-places.unit-security.21 | 2ms | Recorded |
| passed | live state and custom searches use explicit Text Search type and bias controls google-places.unit-security.20 | 1ms | Recorded |
| passed | live Nearby Search uses an explicit field mask and retries transient failures google-places.unit-security.19 | 14ms | Recorded |
| passed | live provider distinguishes TLS verification failures from timeouts google-places.unit-security.18 | 2ms | Recorded |
| passed | live provider fails closed unless all three authorization gates are present google-places.unit-security.17 | 0ms | Recorded |
| passed | filter snapshots accept bounded stable runtime rule keys google-places.unit-security.16 | 0ms | Recorded |
| passed | same-origin login creates a signed browser session accepted by access checks google-places.unit-security.37 | 3ms | Recorded |
| passed | production operator authentication returns a tenant-scoped actor google-places.unit-security.36 | 3ms | Recorded |
| passed | customer-confirmed locations persist as active verified facts with immutable source evidence google-places.unit-security.35 | 1ms | Recorded |
| passed | customer-confirmed locations produce canonical fact and source-lineage metadata google-places.unit-security.34 | 0ms | Recorded |
| passed | build readiness requires the persisted verified location boundary google-places.unit-security.33 | 0ms | Recorded |
| passed | verified decisions reject a missing or incomplete customer-confirmed location google-places.unit-security.32 | 0ms | Recorded |
| passed | customer confirmation timestamps fail closed when future or expired google-places.unit-security.31 | 0ms | Recorded |
| passed | verified decisions fail closed without customer evidence google-places.unit-security.29 | 0ms | Recorded |
| passed | identity-only refresh audit keys are not full enrichment runs google-places.unit-security.15 | 0ms | Recorded |
| passed | lead-label refresh requests require bounded unique run-candidate pairs google-places.unit-security.14 | 0ms | Recorded |
| passed | idempotency keys over 200 characters are rejected instead of truncated google-places.unit-security.13 | 0ms | Recorded |
| passed | an unavailable required exclusion signal routes to review instead of rejection google-places.unit-security.12 | 0ms | Recorded |
| passed | filter evaluator supports relational, contains, inequality, and presence operators google-places.unit-security.11 | 0ms | Recorded |
| passed | fictional mock search applies deterministic filter decisions before details and photo access google-places.unit-security.10 | 2ms | Recorded |
| passed | enrichment cost estimate includes one details call and each photo access google-places.unit-security.9 | 0ms | Recorded |
| passed | planner chooses Text Search for state, Nearby Search for filterable ZIP, and biased Text Search for custom ZIP google-places.unit-security.8 | 1ms | Recorded |
| passed | search geography validation is strict and enforces Google radius bounds google-places.unit-security.7 | 2ms | Recorded |
| passed | fails attribution when neither provider type nor governed terms match google-places.unit-security.6 | 0ms | Recorded |
| passed | warning negative intent requires review without inventing certainty google-places.unit-security.5 | 0ms | Recorded |
| passed | blocking negative intent overrides a positive provider type google-places.unit-security.4 | 0ms | Recorded |
| passed | accepts a governed synonym when no provider type matches google-places.unit-security.3 | 0ms | Recorded |
| passed | accepts a direct provider type match google-places.unit-security.2 | 0ms | Recorded |
| passed | uses the highest-weight governed search phrase google-places.unit-security.1 | 1ms | Recorded |
| passed | search filter rule overrides are bounded google-places.unit-security.55 | 0ms | Recorded |
| passed | candidate enrichment IDs are UUID-only, unique, and bounded google-places.unit-security.54 | 0ms | Recorded |
| passed | bounded JSON reader accepts objects and rejects unsafe bodies google-places.unit-security.53 | 1ms | Recorded |
| passed | tenant and run scope checks do not reveal cross-tenant resources google-places.unit-security.52 | 0ms | Recorded |
| passed | production ignores the local auto-auth flag google-places.unit-security.51 | 0ms | Recorded |
| passed | explicit local auto-auth bypasses a configured token only on loopback google-places.unit-security.50 | 1ms | Recorded |
| passed | configured development access requires a signed operator session google-places.unit-security.49 | 0ms | Recorded |
| passed | tokenless development access is restricted to loopback google-places.unit-security.48 | 0ms | Recorded |
| passed | mutations require matching Origin and same-origin fetch metadata google-places.unit-security.47 | 0ms | Recorded |
| passed | operator bearer tokens are validated without accepting malformed credentials google-places.unit-security.46 | 0ms | Recorded |
| passed | production operator authentication fails closed without safe configuration google-places.unit-security.45 | 1ms | Recorded |
| passed | dashboard session route rejects legacy logout without creating a browser credential google-places.unit-security.44 | 0ms | Recorded |
| passed | dashboard session route rejects raw-token login without exposing the token google-places.unit-security.43 | 2ms | Recorded |
| passed | logout clears the host-only session cookie with matching security flags google-places.unit-security.42 | 0ms | Recorded |
| passed | session login is same-origin POST only and fails closed without token configuration google-places.unit-security.41 | 1ms | Recorded |
| passed | server-side tenant and actor changes invalidate existing sessions google-places.unit-security.40 | 1ms | Recorded |
| passed | expired operator sessions are rejected google-places.unit-security.39 | 1ms | Recorded |
| passed | session signatures fail closed when tampered google-places.unit-security.38 | 1ms | Recorded |
| passed | operator responses are non-cacheable and advertise bearer auth google-places.unit-security.56 | 0ms | Recorded |
Duration: 1.1s
Requested by: vercel:doernaz-5523
Trigger: System
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
richment cost estimate includes one details call and each photo access (0.113ms) ✔ fictional mock search applies deterministic filter decisions before details and photo access (1.6711ms) ✔ filter evaluator supports relational, contains, inequality, and presence operators (0.3988ms) ✔ an unavailable required exclusion signal routes to review instead of rejection (0.3203ms) ✔ idempotency keys over 200 characters are rejected instead of truncated (0.1726ms) ✔ lead-label refresh requests require bounded unique run-candidate pairs (0.3007ms) ✔ identity-only refresh audit keys are not full enrichment runs (0.1216ms) ✔ filter snapshots accept bounded stable runtime rule keys (0.4337ms) ✔ live provider fails closed unless all three authorization gates are present (0.2661ms) ✔ live provider distinguishes TLS verification failures from timeouts (1.8415ms) ✔ live Nearby Search uses an explicit field mask and retries transient failures (13.6171ms) ✔ live state and custom searches use explicit Text Search type and bias controls (0.8532ms) ✔ live details retain every returned photo behind opaque transient handles (1.7354ms) ✔ live identity refresh requests only id and displayName and audits the Pro SKU (1.0762ms) ✔ maps the pg-pool connection timeout to a controlled retryable 503 (14.4689ms) ✔ maps allow-listed nested dependency codes without leaking messages (0.6458ms) ✔ preserves explicit Google Places error mappings (0.2588ms) ✔ keeps unrelated unexpected failures as non-retryable 500 responses (0.3834ms) ✔ verified lead decisions require a normalized recorded customer confirmation (2.0602ms) ✔ review and rejection decisions never accept publishable facts (0.1219ms) ✔ verified decisions fail closed without customer evidence (0.3006ms) ✔ verified decisions reject missing structured confirmer evidence (0.1502ms) ✔ customer confirmation timestamps fail closed when future or expired (0.1787ms) ✔ verified decisions reject a missing or incomplete customer-confirmed location (0.1443ms) ✔ build readiness requires the persisted verified location boundary (0.1099ms) ✔ customer-confirmed locations produce canonical fact and source-lineage metadata (0.1235ms) ✔ customer-confirmed locations persist as active verified facts with immutable source evidence (0.5128ms) ✔ production operator authentication returns a tenant-scoped actor (2.5818ms) ✔ same-origin login creates a signed browser session accepted by access checks (2.5437ms) ✔ session signatures fail closed when tampered (1.4021ms) ✔ expired operator sessions are rejected (0.6569ms) ✔ server-side tenant and actor changes invalidate existing sessions (0.7789ms) ✔ session login is same-origin POST only and fails closed without token configuration (0.5418ms) ✔ logout clears the host-only session cookie with matching security flags (0.4185ms) ✔ dashboard session route rejects raw-token login without exposing the token (2.0187ms) ✔ dashboard session route rejects legacy logout without creating a browser credential (0.4535ms) ✔ production operator authentication fails closed without safe configuration (0.9682ms) ✔ operator bearer tokens are validated without accepting malformed credentials (0.4107ms) ✔ mutations require matching Origin and same-origin fetch metadata (0.4193ms) ✔ tokenless development access is restricted to loopback (0.3656ms) ✔ configured development access requires a signed operator session (0.4344ms) ✔ explicit local auto-auth bypasses a configured token only on loopback (0.5115ms) ✔ production ignores the local auto-auth flag (0.2101ms) ✔ tenant and run scope checks do not reveal cross-tenant resources (0.2981ms) ✔ bounded JSON reader accepts objects and rejects unsafe bodies (1.001ms) ✔ candidate enrichment IDs are UUID-only, unique, and bounded (0.2316ms) ✔ search filter rule overrides are bounded (0.2592ms) ✔ operator responses are non-cacheable and advertise bearer auth (0.2704ms) ℹ tests 56 ℹ suites 0 ℹ pass 56 ℹ fail 0 ℹ cancelled 0 ℹ skipped 0 ℹ todo 0 ℹ duration_ms 578.1892
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | operator responses are non-cacheable and advertise bearer auth google-places.unit-security.56 | 0ms | Recorded |
| passed | search filter rule overrides are bounded google-places.unit-security.55 | 0ms | Recorded |
| passed | candidate enrichment IDs are UUID-only, unique, and bounded google-places.unit-security.54 | 0ms | Recorded |
| passed | bounded JSON reader accepts objects and rejects unsafe bodies google-places.unit-security.53 | 1ms | Recorded |
| passed | tenant and run scope checks do not reveal cross-tenant resources google-places.unit-security.52 | 0ms | Recorded |
| passed | production ignores the local auto-auth flag google-places.unit-security.51 | 0ms | Recorded |
| passed | explicit local auto-auth bypasses a configured token only on loopback google-places.unit-security.50 | 1ms | Recorded |
| passed | configured development access requires a signed operator session google-places.unit-security.49 | 0ms | Recorded |
| passed | tokenless development access is restricted to loopback google-places.unit-security.48 | 0ms | Recorded |
| passed | mutations require matching Origin and same-origin fetch metadata google-places.unit-security.47 | 0ms | Recorded |
| passed | operator bearer tokens are validated without accepting malformed credentials google-places.unit-security.46 | 0ms | Recorded |
| passed | production operator authentication fails closed without safe configuration google-places.unit-security.45 | 1ms | Recorded |
| passed | dashboard session route rejects legacy logout without creating a browser credential google-places.unit-security.44 | 0ms | Recorded |
| passed | dashboard session route rejects raw-token login without exposing the token google-places.unit-security.43 | 2ms | Recorded |
| passed | logout clears the host-only session cookie with matching security flags google-places.unit-security.42 | 0ms | Recorded |
| passed | session login is same-origin POST only and fails closed without token configuration google-places.unit-security.41 | 1ms | Recorded |
| passed | server-side tenant and actor changes invalidate existing sessions google-places.unit-security.40 | 1ms | Recorded |
| passed | expired operator sessions are rejected google-places.unit-security.39 | 1ms | Recorded |
| passed | session signatures fail closed when tampered google-places.unit-security.38 | 1ms | Recorded |
| passed | same-origin login creates a signed browser session accepted by access checks google-places.unit-security.37 | 3ms | Recorded |
| passed | production operator authentication returns a tenant-scoped actor google-places.unit-security.36 | 3ms | Recorded |
| passed | customer-confirmed locations persist as active verified facts with immutable source evidence google-places.unit-security.35 | 1ms | Recorded |
| passed | customer-confirmed locations produce canonical fact and source-lineage metadata google-places.unit-security.34 | 0ms | Recorded |
| passed | build readiness requires the persisted verified location boundary google-places.unit-security.33 | 0ms | Recorded |
| passed | verified decisions reject a missing or incomplete customer-confirmed location google-places.unit-security.32 | 0ms | Recorded |
| passed | customer confirmation timestamps fail closed when future or expired google-places.unit-security.31 | 0ms | Recorded |
| passed | verified decisions reject missing structured confirmer evidence google-places.unit-security.30 | 0ms | Recorded |
| passed | verified decisions fail closed without customer evidence google-places.unit-security.29 | 0ms | Recorded |
| passed | review and rejection decisions never accept publishable facts google-places.unit-security.28 | 0ms | Recorded |
| passed | verified lead decisions require a normalized recorded customer confirmation google-places.unit-security.27 | 2ms | Recorded |
| passed | keeps unrelated unexpected failures as non-retryable 500 responses google-places.unit-security.26 | 0ms | Recorded |
| passed | preserves explicit Google Places error mappings google-places.unit-security.25 | 0ms | Recorded |
| passed | maps allow-listed nested dependency codes without leaking messages google-places.unit-security.24 | 1ms | Recorded |
| passed | maps the pg-pool connection timeout to a controlled retryable 503 google-places.unit-security.23 | 14ms | Recorded |
| passed | live identity refresh requests only id and displayName and audits the Pro SKU google-places.unit-security.22 | 1ms | Recorded |
| passed | accepts a direct provider type match google-places.unit-security.2 | 0ms | Recorded |
| passed | uses the highest-weight governed search phrase google-places.unit-security.1 | 1ms | Recorded |
| passed | live details retain every returned photo behind opaque transient handles google-places.unit-security.21 | 2ms | Recorded |
| passed | live state and custom searches use explicit Text Search type and bias controls google-places.unit-security.20 | 1ms | Recorded |
| passed | live Nearby Search uses an explicit field mask and retries transient failures google-places.unit-security.19 | 14ms | Recorded |
| passed | live provider distinguishes TLS verification failures from timeouts google-places.unit-security.18 | 2ms | Recorded |
| passed | live provider fails closed unless all three authorization gates are present google-places.unit-security.17 | 0ms | Recorded |
| passed | filter snapshots accept bounded stable runtime rule keys google-places.unit-security.16 | 0ms | Recorded |
| passed | identity-only refresh audit keys are not full enrichment runs google-places.unit-security.15 | 0ms | Recorded |
| passed | lead-label refresh requests require bounded unique run-candidate pairs google-places.unit-security.14 | 0ms | Recorded |
| passed | idempotency keys over 200 characters are rejected instead of truncated google-places.unit-security.13 | 0ms | Recorded |
| passed | an unavailable required exclusion signal routes to review instead of rejection google-places.unit-security.12 | 0ms | Recorded |
| passed | filter evaluator supports relational, contains, inequality, and presence operators google-places.unit-security.11 | 0ms | Recorded |
| passed | fictional mock search applies deterministic filter decisions before details and photo access google-places.unit-security.10 | 2ms | Recorded |
| passed | enrichment cost estimate includes one details call and each photo access google-places.unit-security.9 | 0ms | Recorded |
| passed | planner chooses Text Search for state, Nearby Search for filterable ZIP, and biased Text Search for custom ZIP google-places.unit-security.8 | 1ms | Recorded |
| passed | search geography validation is strict and enforces Google radius bounds google-places.unit-security.7 | 2ms | Recorded |
| passed | fails attribution when neither provider type nor governed terms match google-places.unit-security.6 | 0ms | Recorded |
| passed | warning negative intent requires review without inventing certainty google-places.unit-security.5 | 0ms | Recorded |
| passed | blocking negative intent overrides a positive provider type google-places.unit-security.4 | 0ms | Recorded |
| passed | accepts a governed synonym when no provider type matches google-places.unit-security.3 | 0ms | Recorded |
Duration: 1.1s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | uses the highest-weight governed search phrase google-places.unit-security.1 | 1ms | Recorded |
| passed | accepts a direct provider type match google-places.unit-security.2 | 0ms | Recorded |
| passed | accepts a governed synonym when no provider type matches google-places.unit-security.3 | 0ms | Recorded |
| passed | blocking negative intent overrides a positive provider type google-places.unit-security.4 | 0ms | Recorded |
| passed | warning negative intent requires review without inventing certainty google-places.unit-security.5 | 0ms | Recorded |
| passed | fails attribution when neither provider type nor governed terms match google-places.unit-security.6 | 0ms | Recorded |
| passed | search geography validation is strict and enforces Google radius bounds google-places.unit-security.7 | 2ms | Recorded |
| passed | planner chooses Text Search for state, Nearby Search for filterable ZIP, and biased Text Search for custom ZIP google-places.unit-security.8 | 1ms | Recorded |
| passed | enrichment cost estimate includes one details call and each photo access google-places.unit-security.9 | 0ms | Recorded |
| passed | fictional mock search applies deterministic filter decisions before details and photo access google-places.unit-security.10 | 2ms | Recorded |
| passed | filter evaluator supports relational, contains, inequality, and presence operators google-places.unit-security.11 | 0ms | Recorded |
| passed | an unavailable required exclusion signal routes to review instead of rejection google-places.unit-security.12 | 0ms | Recorded |
| passed | idempotency keys over 200 characters are rejected instead of truncated google-places.unit-security.13 | 0ms | Recorded |
| passed | lead-label refresh requests require bounded unique run-candidate pairs google-places.unit-security.14 | 0ms | Recorded |
| passed | identity-only refresh audit keys are not full enrichment runs google-places.unit-security.15 | 0ms | Recorded |
| passed | filter snapshots accept bounded stable runtime rule keys google-places.unit-security.16 | 0ms | Recorded |
| passed | live provider fails closed unless all three authorization gates are present google-places.unit-security.17 | 0ms | Recorded |
| passed | live provider distinguishes TLS verification failures from timeouts google-places.unit-security.18 | 2ms | Recorded |
| passed | live Nearby Search uses an explicit field mask and retries transient failures google-places.unit-security.19 | 14ms | Recorded |
| passed | live state and custom searches use explicit Text Search type and bias controls google-places.unit-security.20 | 1ms | Recorded |
| passed | live details retain every returned photo behind opaque transient handles google-places.unit-security.21 | 2ms | Recorded |
| passed | live identity refresh requests only id and displayName and audits the Pro SKU google-places.unit-security.22 | 1ms | Recorded |
| passed | maps the pg-pool connection timeout to a controlled retryable 503 google-places.unit-security.23 | 14ms | Recorded |
| passed | maps allow-listed nested dependency codes without leaking messages google-places.unit-security.24 | 1ms | Recorded |
| passed | preserves explicit Google Places error mappings google-places.unit-security.25 | 0ms | Recorded |
| passed | keeps unrelated unexpected failures as non-retryable 500 responses google-places.unit-security.26 | 0ms | Recorded |
| passed | verified lead decisions require a normalized recorded customer confirmation google-places.unit-security.27 | 2ms | Recorded |
| passed | review and rejection decisions never accept publishable facts google-places.unit-security.28 | 0ms | Recorded |
| passed | verified decisions fail closed without customer evidence google-places.unit-security.29 | 0ms | Recorded |
| passed | verified decisions reject missing structured confirmer evidence google-places.unit-security.30 | 0ms | Recorded |
| passed | customer confirmation timestamps fail closed when future or expired google-places.unit-security.31 | 0ms | Recorded |
| passed | verified decisions reject a missing or incomplete customer-confirmed location google-places.unit-security.32 | 0ms | Recorded |
| passed | build readiness requires the persisted verified location boundary google-places.unit-security.33 | 0ms | Recorded |
| passed | customer-confirmed locations produce canonical fact and source-lineage metadata google-places.unit-security.34 | 0ms | Recorded |
| passed | customer-confirmed locations persist as active verified facts with immutable source evidence google-places.unit-security.35 | 1ms | Recorded |
| passed | production operator authentication returns a tenant-scoped actor google-places.unit-security.36 | 3ms | Recorded |
| passed | same-origin login creates a signed browser session accepted by access checks google-places.unit-security.37 | 3ms | Recorded |
| passed | session signatures fail closed when tampered google-places.unit-security.38 | 1ms | Recorded |
| passed | expired operator sessions are rejected google-places.unit-security.39 | 1ms | Recorded |
| passed | server-side tenant and actor changes invalidate existing sessions google-places.unit-security.40 | 1ms | Recorded |
| passed | session login is same-origin POST only and fails closed without token configuration google-places.unit-security.41 | 1ms | Recorded |
| passed | logout clears the host-only session cookie with matching security flags google-places.unit-security.42 | 0ms | Recorded |
| passed | dashboard session route rejects raw-token login without exposing the token google-places.unit-security.43 | 2ms | Recorded |
| passed | dashboard session route rejects legacy logout without creating a browser credential google-places.unit-security.44 | 0ms | Recorded |
| passed | production operator authentication fails closed without safe configuration google-places.unit-security.45 | 1ms | Recorded |
| passed | operator bearer tokens are validated without accepting malformed credentials google-places.unit-security.46 | 0ms | Recorded |
| passed | mutations require matching Origin and same-origin fetch metadata google-places.unit-security.47 | 0ms | Recorded |
| passed | tokenless development access is restricted to loopback google-places.unit-security.48 | 0ms | Recorded |
| passed | configured development access requires a signed operator session google-places.unit-security.49 | 0ms | Recorded |
| passed | explicit local auto-auth bypasses a configured token only on loopback google-places.unit-security.50 | 1ms | Recorded |
| passed | production ignores the local auto-auth flag google-places.unit-security.51 | 0ms | Recorded |
| passed | tenant and run scope checks do not reveal cross-tenant resources google-places.unit-security.52 | 0ms | Recorded |
| passed | bounded JSON reader accepts objects and rejects unsafe bodies google-places.unit-security.53 | 1ms | Recorded |
| passed | candidate enrichment IDs are UUID-only, unique, and bounded google-places.unit-security.54 | 0ms | Recorded |
| passed | search filter rule overrides are bounded google-places.unit-security.55 | 0ms | Recorded |
| passed | operator responses are non-cacheable and advertise bearer auth google-places.unit-security.56 | 0ms | Recorded |
Duration: 1.1s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | an unavailable required exclusion signal routes to review instead of rejection google-places.unit-security.12 | 0ms | Recorded |
| passed | filter evaluator supports relational, contains, inequality, and presence operators google-places.unit-security.11 | 0ms | Recorded |
| passed | fictional mock search applies deterministic filter decisions before details and photo access google-places.unit-security.10 | 2ms | Recorded |
| passed | enrichment cost estimate includes one details call and each photo access google-places.unit-security.9 | 0ms | Recorded |
| passed | planner chooses Text Search for state, Nearby Search for filterable ZIP, and biased Text Search for custom ZIP google-places.unit-security.8 | 1ms | Recorded |
| passed | search geography validation is strict and enforces Google radius bounds google-places.unit-security.7 | 2ms | Recorded |
| passed | fails attribution when neither provider type nor governed terms match google-places.unit-security.6 | 0ms | Recorded |
| passed | warning negative intent requires review without inventing certainty google-places.unit-security.5 | 0ms | Recorded |
| passed | blocking negative intent overrides a positive provider type google-places.unit-security.4 | 0ms | Recorded |
| passed | accepts a governed synonym when no provider type matches google-places.unit-security.3 | 0ms | Recorded |
| passed | accepts a direct provider type match google-places.unit-security.2 | 0ms | Recorded |
| passed | uses the highest-weight governed search phrase google-places.unit-security.1 | 1ms | Recorded |
| passed | preserves explicit Google Places error mappings google-places.unit-security.25 | 0ms | Recorded |
| passed | live details retain every returned photo behind opaque transient handles google-places.unit-security.21 | 2ms | Recorded |
| passed | live state and custom searches use explicit Text Search type and bias controls google-places.unit-security.20 | 1ms | Recorded |
| passed | live Nearby Search uses an explicit field mask and retries transient failures google-places.unit-security.19 | 14ms | Recorded |
| passed | live provider distinguishes TLS verification failures from timeouts google-places.unit-security.18 | 2ms | Recorded |
| passed | live provider fails closed unless all three authorization gates are present google-places.unit-security.17 | 0ms | Recorded |
| passed | filter snapshots accept bounded stable runtime rule keys google-places.unit-security.16 | 0ms | Recorded |
| passed | identity-only refresh audit keys are not full enrichment runs google-places.unit-security.15 | 0ms | Recorded |
| passed | lead-label refresh requests require bounded unique run-candidate pairs google-places.unit-security.14 | 0ms | Recorded |
| passed | idempotency keys over 200 characters are rejected instead of truncated google-places.unit-security.13 | 0ms | Recorded |
| passed | operator responses are non-cacheable and advertise bearer auth google-places.unit-security.56 | 0ms | Recorded |
| passed | search filter rule overrides are bounded google-places.unit-security.55 | 0ms | Recorded |
| passed | candidate enrichment IDs are UUID-only, unique, and bounded google-places.unit-security.54 | 0ms | Recorded |
| passed | bounded JSON reader accepts objects and rejects unsafe bodies google-places.unit-security.53 | 1ms | Recorded |
| passed | tenant and run scope checks do not reveal cross-tenant resources google-places.unit-security.52 | 0ms | Recorded |
| passed | production ignores the local auto-auth flag google-places.unit-security.51 | 0ms | Recorded |
| passed | explicit local auto-auth bypasses a configured token only on loopback google-places.unit-security.50 | 1ms | Recorded |
| passed | configured development access requires a signed operator session google-places.unit-security.49 | 0ms | Recorded |
| passed | tokenless development access is restricted to loopback google-places.unit-security.48 | 0ms | Recorded |
| passed | mutations require matching Origin and same-origin fetch metadata google-places.unit-security.47 | 0ms | Recorded |
| passed | operator bearer tokens are validated without accepting malformed credentials google-places.unit-security.46 | 0ms | Recorded |
| passed | production operator authentication fails closed without safe configuration google-places.unit-security.45 | 1ms | Recorded |
| passed | dashboard session route rejects legacy logout without creating a browser credential google-places.unit-security.44 | 0ms | Recorded |
| passed | dashboard session route rejects raw-token login without exposing the token google-places.unit-security.43 | 2ms | Recorded |
| passed | logout clears the host-only session cookie with matching security flags google-places.unit-security.42 | 0ms | Recorded |
| passed | session login is same-origin POST only and fails closed without token configuration google-places.unit-security.41 | 1ms | Recorded |
| passed | server-side tenant and actor changes invalidate existing sessions google-places.unit-security.40 | 1ms | Recorded |
| passed | expired operator sessions are rejected google-places.unit-security.39 | 1ms | Recorded |
| passed | session signatures fail closed when tampered google-places.unit-security.38 | 1ms | Recorded |
| passed | same-origin login creates a signed browser session accepted by access checks google-places.unit-security.37 | 3ms | Recorded |
| passed | production operator authentication returns a tenant-scoped actor google-places.unit-security.36 | 3ms | Recorded |
| passed | customer-confirmed locations persist as active verified facts with immutable source evidence google-places.unit-security.35 | 1ms | Recorded |
| passed | customer-confirmed locations produce canonical fact and source-lineage metadata google-places.unit-security.34 | 0ms | Recorded |
| passed | build readiness requires the persisted verified location boundary google-places.unit-security.33 | 0ms | Recorded |
| passed | verified decisions reject a missing or incomplete customer-confirmed location google-places.unit-security.32 | 0ms | Recorded |
| passed | customer confirmation timestamps fail closed when future or expired google-places.unit-security.31 | 0ms | Recorded |
| passed | verified decisions reject missing structured confirmer evidence google-places.unit-security.30 | 0ms | Recorded |
| passed | verified decisions fail closed without customer evidence google-places.unit-security.29 | 0ms | Recorded |
| passed | review and rejection decisions never accept publishable facts google-places.unit-security.28 | 0ms | Recorded |
| passed | verified lead decisions require a normalized recorded customer confirmation google-places.unit-security.27 | 2ms | Recorded |
| passed | keeps unrelated unexpected failures as non-retryable 500 responses google-places.unit-security.26 | 0ms | Recorded |
| passed | maps allow-listed nested dependency codes without leaking messages google-places.unit-security.24 | 1ms | Recorded |
| passed | maps the pg-pool connection timeout to a controlled retryable 503 google-places.unit-security.23 | 14ms | Recorded |
| passed | live identity refresh requests only id and displayName and audits the Pro SKU google-places.unit-security.22 | 1ms | Recorded |
Duration: 1.1s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
No earlier run is available for comparison.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | blocking negative intent overrides a positive provider type google-places.unit-security.4 | 0ms | Recorded |
| passed | planner chooses Text Search for state, Nearby Search for filterable ZIP, and biased Text Search for custom ZIP google-places.unit-security.8 | 1ms | Recorded |
| passed | search geography validation is strict and enforces Google radius bounds google-places.unit-security.7 | 2ms | Recorded |
| passed | fails attribution when neither provider type nor governed terms match google-places.unit-security.6 | 0ms | Recorded |
| passed | warning negative intent requires review without inventing certainty google-places.unit-security.5 | 0ms | Recorded |
| passed | customer-confirmed locations produce canonical fact and source-lineage metadata google-places.unit-security.34 | 0ms | Recorded |
| passed | customer-confirmed locations persist as active verified facts with immutable source evidence google-places.unit-security.35 | 1ms | Recorded |
| passed | production operator authentication returns a tenant-scoped actor google-places.unit-security.36 | 3ms | Recorded |
| passed | same-origin login creates a signed browser session accepted by access checks google-places.unit-security.37 | 3ms | Recorded |
| passed | session signatures fail closed when tampered google-places.unit-security.38 | 1ms | Recorded |
| passed | expired operator sessions are rejected google-places.unit-security.39 | 1ms | Recorded |
| passed | server-side tenant and actor changes invalidate existing sessions google-places.unit-security.40 | 1ms | Recorded |
| passed | session login is same-origin POST only and fails closed without token configuration google-places.unit-security.41 | 1ms | Recorded |
| passed | logout clears the host-only session cookie with matching security flags google-places.unit-security.42 | 0ms | Recorded |
| passed | dashboard session route rejects raw-token login without exposing the token google-places.unit-security.43 | 2ms | Recorded |
| passed | dashboard session route rejects legacy logout without creating a browser credential google-places.unit-security.44 | 0ms | Recorded |
| passed | production operator authentication fails closed without safe configuration google-places.unit-security.45 | 1ms | Recorded |
| passed | operator bearer tokens are validated without accepting malformed credentials google-places.unit-security.46 | 0ms | Recorded |
| passed | mutations require matching Origin and same-origin fetch metadata google-places.unit-security.47 | 0ms | Recorded |
| passed | tokenless development access is restricted to loopback google-places.unit-security.48 | 0ms | Recorded |
| passed | configured development access requires a signed operator session google-places.unit-security.49 | 0ms | Recorded |
| passed | explicit local auto-auth bypasses a configured token only on loopback google-places.unit-security.50 | 1ms | Recorded |
| passed | production ignores the local auto-auth flag google-places.unit-security.51 | 0ms | Recorded |
| passed | tenant and run scope checks do not reveal cross-tenant resources google-places.unit-security.52 | 0ms | Recorded |
| passed | bounded JSON reader accepts objects and rejects unsafe bodies google-places.unit-security.53 | 1ms | Recorded |
| passed | candidate enrichment IDs are UUID-only, unique, and bounded google-places.unit-security.54 | 0ms | Recorded |
| passed | search filter rule overrides are bounded google-places.unit-security.55 | 0ms | Recorded |
| passed | operator responses are non-cacheable and advertise bearer auth google-places.unit-security.56 | 0ms | Recorded |
| passed | uses the highest-weight governed search phrase google-places.unit-security.1 | 1ms | Recorded |
| passed | accepts a direct provider type match google-places.unit-security.2 | 0ms | Recorded |
| passed | accepts a governed synonym when no provider type matches google-places.unit-security.3 | 0ms | Recorded |
| passed | enrichment cost estimate includes one details call and each photo access google-places.unit-security.9 | 0ms | Recorded |
| passed | fictional mock search applies deterministic filter decisions before details and photo access google-places.unit-security.10 | 2ms | Recorded |
| passed | filter evaluator supports relational, contains, inequality, and presence operators google-places.unit-security.11 | 0ms | Recorded |
| passed | an unavailable required exclusion signal routes to review instead of rejection google-places.unit-security.12 | 0ms | Recorded |
| passed | idempotency keys over 200 characters are rejected instead of truncated google-places.unit-security.13 | 0ms | Recorded |
| passed | lead-label refresh requests require bounded unique run-candidate pairs google-places.unit-security.14 | 0ms | Recorded |
| passed | identity-only refresh audit keys are not full enrichment runs google-places.unit-security.15 | 0ms | Recorded |
| passed | filter snapshots accept bounded stable runtime rule keys google-places.unit-security.16 | 0ms | Recorded |
| passed | live provider fails closed unless all three authorization gates are present google-places.unit-security.17 | 0ms | Recorded |
| passed | live provider distinguishes TLS verification failures from timeouts google-places.unit-security.18 | 2ms | Recorded |
| passed | live Nearby Search uses an explicit field mask and retries transient failures google-places.unit-security.19 | 14ms | Recorded |
| passed | live state and custom searches use explicit Text Search type and bias controls google-places.unit-security.20 | 1ms | Recorded |
| passed | live details retain every returned photo behind opaque transient handles google-places.unit-security.21 | 2ms | Recorded |
| passed | live identity refresh requests only id and displayName and audits the Pro SKU google-places.unit-security.22 | 1ms | Recorded |
| passed | maps the pg-pool connection timeout to a controlled retryable 503 google-places.unit-security.23 | 14ms | Recorded |
| passed | maps allow-listed nested dependency codes without leaking messages google-places.unit-security.24 | 1ms | Recorded |
| passed | preserves explicit Google Places error mappings google-places.unit-security.25 | 0ms | Recorded |
| passed | keeps unrelated unexpected failures as non-retryable 500 responses google-places.unit-security.26 | 0ms | Recorded |
| passed | verified lead decisions require a normalized recorded customer confirmation google-places.unit-security.27 | 2ms | Recorded |
| passed | review and rejection decisions never accept publishable facts google-places.unit-security.28 | 0ms | Recorded |
| passed | verified decisions fail closed without customer evidence google-places.unit-security.29 | 0ms | Recorded |
| passed | verified decisions reject missing structured confirmer evidence google-places.unit-security.30 | 0ms | Recorded |
| passed | customer confirmation timestamps fail closed when future or expired google-places.unit-security.31 | 0ms | Recorded |
| passed | verified decisions reject a missing or incomplete customer-confirmed location google-places.unit-security.32 | 0ms | Recorded |
| passed | build readiness requires the persisted verified location boundary google-places.unit-security.33 | 0ms | Recorded |
Duration: 1.8s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | parses passed, failed, and skipped node test output dashboard.domain.36 | 1ms | Recorded |
| passed | deployed production access fails closed without a complete server identity dashboard.domain.1 | 2ms | Recorded |
| passed | deployed preview access fails closed instead of granting a development owner dashboard.domain.2 | 1ms | Recorded |
| passed | a production-mode local server also requires an explicit server identity dashboard.domain.3 | 1ms | Recorded |
| passed | deployed agency and client sessions fail closed without tenant scope dashboard.domain.4 | 0ms | Recorded |
| passed | server identity determines actor, role, and tenant scope dashboard.domain.5 | 0ms | Recorded |
| passed | dashboard catalog has unique routes and complete operational coverage dashboard.domain.6 | 2ms | Recorded |
| passed | role menus are distinct and server authorization uses the same section boundary dashboard.domain.7 | 0ms | Recorded |
| passed | automated testing registry includes every dashboard page dashboard.domain.8 | 0ms | Recorded |
| passed | production dashboard modules do not depend on Test Center implementations or routes dashboard.domain.9 | 32ms | Recorded |
| passed | Data Governance is restricted to a non-emulated platform operator dashboard.domain.10 | 2ms | Recorded |
| passed | Data Governance actions require a same-origin request dashboard.domain.11 | 3ms | Recorded |
| passed | Design Agent API permissions follow the effective dashboard role dashboard.domain.12 | 1ms | Recorded |
| passed | Design Agent API mutations require an exact same-origin request dashboard.domain.13 | 2ms | Recorded |
| passed | isolated end-to-end validation requires a non-emulated platform operator dashboard.domain.14 | 1ms | Recorded |
| passed | isolated end-to-end mutations require exact same-origin requests dashboard.domain.15 | 2ms | Recorded |
| passed | Google Places dashboard API permissions follow the effective role dashboard.domain.16 | 1ms | Recorded |
| passed | production lead APIs reject mock providers and invalid tenant scope dashboard.domain.17 | 0ms | Recorded |
| passed | Google Places dashboard mutations require exact same-origin requests dashboard.domain.18 | 2ms | Recorded |
| passed | lead decision reasons are sent to Postgres as serialized jsonb dashboard.domain.19 | 3ms | Recorded |
| passed | lifecycle recovery routes every checkpoint to its owning production workspace dashboard.domain.20 | 2ms | Recorded |
| passed | metric builder explains reviews, failures, cost, and test evidence dashboard.domain.21 | 14ms | Recorded |
| passed | metric builder never invents activity for an empty source dashboard.domain.22 | 0ms | Recorded |
| passed | strengthens PostgreSQL SSL aliases whose future semantics are weaker dashboard.domain.23 | 1ms | Recorded |
| passed | preserves explicit SSL disable and connection strings without a mode dashboard.domain.24 | 0ms | Recorded |
| passed | credential envelope round-trips without storing plaintext dashboard.domain.25 | 4ms | Recorded |
| passed | credential envelope rejects tampering dashboard.domain.26 | 0ms | Recorded |
| passed | credential summaries mask usernames dashboard.domain.27 | 0ms | Recorded |
| passed | login records require both username and password dashboard.domain.28 | 1ms | Recorded |
| passed | only a non-emulated platform owner can open the owner dashboard dashboard.domain.29 | 1ms | Recorded |
| passed | summarizes a successful mirror consistency check dashboard.domain.30 | 1ms | Recorded |
| passed | surfaces an in-progress consistency check dashboard.domain.31 | 0ms | Recorded |
| passed | surfaces a failed consistency check and its conclusion dashboard.domain.32 | 0ms | Recorded |
| passed | the production Test Lab baseline covers every allow-listed suite dashboard.domain.33 | 1ms | Recorded |
| passed | every seeded validation run contains complete honest evidence dashboard.domain.34 | 1ms | Recorded |
| passed | every Test Lab suite links to production capabilities dashboard.domain.35 | 0ms | Recorded |
| passed | does not misclassify build and route status glyphs as unit tests dashboard.domain.37 | 0ms | Recorded |
| passed | resolves the report produced by each allow-listed Playwright runner dashboard.domain.38 | 0ms | Recorded |
Duration: 1.8s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | resolves the report produced by each allow-listed Playwright runner dashboard.domain.38 | 0ms | Recorded |
| passed | does not misclassify build and route status glyphs as unit tests dashboard.domain.37 | 0ms | Recorded |
| passed | parses passed, failed, and skipped node test output dashboard.domain.36 | 1ms | Recorded |
| passed | every Test Lab suite links to production capabilities dashboard.domain.35 | 0ms | Recorded |
| passed | every seeded validation run contains complete honest evidence dashboard.domain.34 | 1ms | Recorded |
| passed | the production Test Lab baseline covers every allow-listed suite dashboard.domain.33 | 1ms | Recorded |
| passed | surfaces a failed consistency check and its conclusion dashboard.domain.32 | 0ms | Recorded |
| passed | surfaces an in-progress consistency check dashboard.domain.31 | 0ms | Recorded |
| passed | summarizes a successful mirror consistency check dashboard.domain.30 | 1ms | Recorded |
| passed | only a non-emulated platform owner can open the owner dashboard dashboard.domain.29 | 1ms | Recorded |
| passed | login records require both username and password dashboard.domain.28 | 1ms | Recorded |
| passed | credential summaries mask usernames dashboard.domain.27 | 0ms | Recorded |
| passed | credential envelope rejects tampering dashboard.domain.26 | 0ms | Recorded |
| passed | credential envelope round-trips without storing plaintext dashboard.domain.25 | 4ms | Recorded |
| passed | preserves explicit SSL disable and connection strings without a mode dashboard.domain.24 | 0ms | Recorded |
| passed | strengthens PostgreSQL SSL aliases whose future semantics are weaker dashboard.domain.23 | 1ms | Recorded |
| passed | metric builder never invents activity for an empty source dashboard.domain.22 | 0ms | Recorded |
| passed | metric builder explains reviews, failures, cost, and test evidence dashboard.domain.21 | 14ms | Recorded |
| passed | lifecycle recovery routes every checkpoint to its owning production workspace dashboard.domain.20 | 2ms | Recorded |
| passed | lead decision reasons are sent to Postgres as serialized jsonb dashboard.domain.19 | 3ms | Recorded |
| passed | Google Places dashboard mutations require exact same-origin requests dashboard.domain.18 | 2ms | Recorded |
| passed | production lead APIs reject mock providers and invalid tenant scope dashboard.domain.17 | 0ms | Recorded |
| passed | Google Places dashboard API permissions follow the effective role dashboard.domain.16 | 1ms | Recorded |
| passed | isolated end-to-end mutations require exact same-origin requests dashboard.domain.15 | 2ms | Recorded |
| passed | isolated end-to-end validation requires a non-emulated platform operator dashboard.domain.14 | 1ms | Recorded |
| passed | Design Agent API mutations require an exact same-origin request dashboard.domain.13 | 2ms | Recorded |
| passed | Design Agent API permissions follow the effective dashboard role dashboard.domain.12 | 1ms | Recorded |
| passed | Data Governance actions require a same-origin request dashboard.domain.11 | 3ms | Recorded |
| passed | Data Governance is restricted to a non-emulated platform operator dashboard.domain.10 | 2ms | Recorded |
| passed | production dashboard modules do not depend on Test Center implementations or routes dashboard.domain.9 | 32ms | Recorded |
| passed | automated testing registry includes every dashboard page dashboard.domain.8 | 0ms | Recorded |
| passed | role menus are distinct and server authorization uses the same section boundary dashboard.domain.7 | 0ms | Recorded |
| passed | dashboard catalog has unique routes and complete operational coverage dashboard.domain.6 | 2ms | Recorded |
| passed | server identity determines actor, role, and tenant scope dashboard.domain.5 | 0ms | Recorded |
| passed | deployed agency and client sessions fail closed without tenant scope dashboard.domain.4 | 0ms | Recorded |
| passed | a production-mode local server also requires an explicit server identity dashboard.domain.3 | 1ms | Recorded |
| passed | deployed preview access fails closed instead of granting a development owner dashboard.domain.2 | 1ms | Recorded |
| passed | deployed production access fails closed without a complete server identity dashboard.domain.1 | 2ms | Recorded |
Duration: 1.8s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | resolves the report produced by each allow-listed Playwright runner dashboard.domain.38 | 0ms | Recorded |
| passed | does not misclassify build and route status glyphs as unit tests dashboard.domain.37 | 0ms | Recorded |
| passed | parses passed, failed, and skipped node test output dashboard.domain.36 | 1ms | Recorded |
| passed | every Test Lab suite links to production capabilities dashboard.domain.35 | 0ms | Recorded |
| passed | every seeded validation run contains complete honest evidence dashboard.domain.34 | 1ms | Recorded |
| passed | the production Test Lab baseline covers every allow-listed suite dashboard.domain.33 | 1ms | Recorded |
| passed | surfaces a failed consistency check and its conclusion dashboard.domain.32 | 0ms | Recorded |
| passed | surfaces an in-progress consistency check dashboard.domain.31 | 0ms | Recorded |
| passed | summarizes a successful mirror consistency check dashboard.domain.30 | 1ms | Recorded |
| passed | only a non-emulated platform owner can open the owner dashboard dashboard.domain.29 | 1ms | Recorded |
| passed | login records require both username and password dashboard.domain.28 | 1ms | Recorded |
| passed | credential summaries mask usernames dashboard.domain.27 | 0ms | Recorded |
| passed | credential envelope rejects tampering dashboard.domain.26 | 0ms | Recorded |
| passed | credential envelope round-trips without storing plaintext dashboard.domain.25 | 4ms | Recorded |
| passed | preserves explicit SSL disable and connection strings without a mode dashboard.domain.24 | 0ms | Recorded |
| passed | strengthens PostgreSQL SSL aliases whose future semantics are weaker dashboard.domain.23 | 1ms | Recorded |
| passed | metric builder never invents activity for an empty source dashboard.domain.22 | 0ms | Recorded |
| passed | metric builder explains reviews, failures, cost, and test evidence dashboard.domain.21 | 14ms | Recorded |
| passed | lifecycle recovery routes every checkpoint to its owning production workspace dashboard.domain.20 | 2ms | Recorded |
| passed | lead decision reasons are sent to Postgres as serialized jsonb dashboard.domain.19 | 3ms | Recorded |
| passed | Google Places dashboard mutations require exact same-origin requests dashboard.domain.18 | 2ms | Recorded |
| passed | production lead APIs reject mock providers and invalid tenant scope dashboard.domain.17 | 0ms | Recorded |
| passed | Google Places dashboard API permissions follow the effective role dashboard.domain.16 | 1ms | Recorded |
| passed | isolated end-to-end mutations require exact same-origin requests dashboard.domain.15 | 2ms | Recorded |
| passed | isolated end-to-end validation requires a non-emulated platform operator dashboard.domain.14 | 1ms | Recorded |
| passed | Design Agent API mutations require an exact same-origin request dashboard.domain.13 | 2ms | Recorded |
| passed | Design Agent API permissions follow the effective dashboard role dashboard.domain.12 | 1ms | Recorded |
| passed | Data Governance actions require a same-origin request dashboard.domain.11 | 3ms | Recorded |
| passed | Data Governance is restricted to a non-emulated platform operator dashboard.domain.10 | 2ms | Recorded |
| passed | production dashboard modules do not depend on Test Center implementations or routes dashboard.domain.9 | 32ms | Recorded |
| passed | automated testing registry includes every dashboard page dashboard.domain.8 | 0ms | Recorded |
| passed | role menus are distinct and server authorization uses the same section boundary dashboard.domain.7 | 0ms | Recorded |
| passed | dashboard catalog has unique routes and complete operational coverage dashboard.domain.6 | 2ms | Recorded |
| passed | server identity determines actor, role, and tenant scope dashboard.domain.5 | 0ms | Recorded |
| passed | deployed agency and client sessions fail closed without tenant scope dashboard.domain.4 | 0ms | Recorded |
| passed | a production-mode local server also requires an explicit server identity dashboard.domain.3 | 1ms | Recorded |
| passed | deployed preview access fails closed instead of granting a development owner dashboard.domain.2 | 1ms | Recorded |
| passed | deployed production access fails closed without a complete server identity dashboard.domain.1 | 2ms | Recorded |
Duration: 1.8s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | deployed production access fails closed without a complete server identity dashboard.domain.1 | 2ms | Recorded |
| passed | deployed preview access fails closed instead of granting a development owner dashboard.domain.2 | 1ms | Recorded |
| passed | a production-mode local server also requires an explicit server identity dashboard.domain.3 | 1ms | Recorded |
| passed | deployed agency and client sessions fail closed without tenant scope dashboard.domain.4 | 0ms | Recorded |
| passed | server identity determines actor, role, and tenant scope dashboard.domain.5 | 0ms | Recorded |
| passed | dashboard catalog has unique routes and complete operational coverage dashboard.domain.6 | 2ms | Recorded |
| passed | role menus are distinct and server authorization uses the same section boundary dashboard.domain.7 | 0ms | Recorded |
| passed | automated testing registry includes every dashboard page dashboard.domain.8 | 0ms | Recorded |
| passed | production dashboard modules do not depend on Test Center implementations or routes dashboard.domain.9 | 32ms | Recorded |
| passed | Data Governance is restricted to a non-emulated platform operator dashboard.domain.10 | 2ms | Recorded |
| passed | Data Governance actions require a same-origin request dashboard.domain.11 | 3ms | Recorded |
| passed | Design Agent API permissions follow the effective dashboard role dashboard.domain.12 | 1ms | Recorded |
| passed | Design Agent API mutations require an exact same-origin request dashboard.domain.13 | 2ms | Recorded |
| passed | isolated end-to-end validation requires a non-emulated platform operator dashboard.domain.14 | 1ms | Recorded |
| passed | isolated end-to-end mutations require exact same-origin requests dashboard.domain.15 | 2ms | Recorded |
| passed | Google Places dashboard API permissions follow the effective role dashboard.domain.16 | 1ms | Recorded |
| passed | production lead APIs reject mock providers and invalid tenant scope dashboard.domain.17 | 0ms | Recorded |
| passed | Google Places dashboard mutations require exact same-origin requests dashboard.domain.18 | 2ms | Recorded |
| passed | lead decision reasons are sent to Postgres as serialized jsonb dashboard.domain.19 | 3ms | Recorded |
| passed | lifecycle recovery routes every checkpoint to its owning production workspace dashboard.domain.20 | 2ms | Recorded |
| passed | metric builder explains reviews, failures, cost, and test evidence dashboard.domain.21 | 14ms | Recorded |
| passed | metric builder never invents activity for an empty source dashboard.domain.22 | 0ms | Recorded |
| passed | strengthens PostgreSQL SSL aliases whose future semantics are weaker dashboard.domain.23 | 1ms | Recorded |
| passed | preserves explicit SSL disable and connection strings without a mode dashboard.domain.24 | 0ms | Recorded |
| passed | credential envelope round-trips without storing plaintext dashboard.domain.25 | 4ms | Recorded |
| passed | credential envelope rejects tampering dashboard.domain.26 | 0ms | Recorded |
| passed | credential summaries mask usernames dashboard.domain.27 | 0ms | Recorded |
| passed | login records require both username and password dashboard.domain.28 | 1ms | Recorded |
| passed | only a non-emulated platform owner can open the owner dashboard dashboard.domain.29 | 1ms | Recorded |
| passed | summarizes a successful mirror consistency check dashboard.domain.30 | 1ms | Recorded |
| passed | surfaces an in-progress consistency check dashboard.domain.31 | 0ms | Recorded |
| passed | surfaces a failed consistency check and its conclusion dashboard.domain.32 | 0ms | Recorded |
| passed | the production Test Lab baseline covers every allow-listed suite dashboard.domain.33 | 1ms | Recorded |
| passed | every seeded validation run contains complete honest evidence dashboard.domain.34 | 1ms | Recorded |
| passed | every Test Lab suite links to production capabilities dashboard.domain.35 | 0ms | Recorded |
| passed | parses passed, failed, and skipped node test output dashboard.domain.36 | 1ms | Recorded |
| passed | does not misclassify build and route status glyphs as unit tests dashboard.domain.37 | 0ms | Recorded |
| passed | resolves the report produced by each allow-listed Playwright runner dashboard.domain.38 | 0ms | Recorded |
Duration: 1.8s
Requested by: vercel:doernaz-5523
Trigger: System
Environment: Recorded validation environment
No earlier run is available for comparison.
> gold-brandlift@0.1.0 test:dashboard > node --conditions=react-server --import tsx --test lib/dashboard/access.test.ts lib/dashboard/catalog.test.ts lib/dashboard/data-governance-access.test.ts lib/dashboard/design-api-access.test.ts lib/dashboard/end-to-end-api-access.test.ts lib/dashboard/google-places-api-access.test.ts lib/dashboard/leads.test.ts lib/dashboard/lifecycle.test.ts lib/dashboard/service.test.ts lib/db/connection-string.test.ts lib/owner-dashboard/credentials.test.ts lib/owner-dashboard/repository.test.ts lib/owner-dashboard/review-mirror-status.test.ts lib/test-lab/catalog.test.ts lib/test-lab/execution.test.ts ✔ deployed production access fails closed without a complete server identity (1.7277ms) ✔ deployed preview access fails closed instead of granting a development owner (0.5487ms) ✔ a production-mode local server also requires an explicit server identity (0.5143ms) ✔ deployed agency and client sessions fail closed without tenant scope (0.4395ms) ✔ server identity determines actor, role, and tenant scope (0.4961ms) ✔ dashboard catalog has unique routes and complete operational coverage (1.5111ms) ✔ role menus are distinct and server authorization uses the same section boundary (0.4194ms) ✔ automated testing registry includes every dashboard page (0.2428ms) ✔ production dashboard modules do not depend on Test Center implementations or routes (31.5056ms) ✔ Data Governance is restricted to a non-emulated platform operator (1.843ms) ✔ Data Governance actions require a same-origin request (2.5456ms) ✔ Design Agent API permissions follow the effective dashboard role (1.4465ms) ✔ Design Agent API mutations require an exact same-origin request (2.3658ms) ✔ isolated end-to-end validation requires a non-emulated platform operator (1.3306ms) ✔ isolated end-to-end mutations require exact same-origin requests (2.3544ms) ✔ Google Places dashboard API permissions follow the effective role (1.3437ms) ✔ production lead APIs reject mock providers and invalid tenant scope (0.4084ms) ✔ Google Places dashboard mutations require exact same-origin requests (2.3883ms) ✔ lead decision reasons are sent to Postgres as serialized jsonb (2.9957ms) ✔ lifecycle recovery routes every checkpoint to its owning production workspace (1.8421ms) ✔ metric builder explains reviews, failures, cost, and test evidence (14.296ms) ✔ metric builder never invents activity for an empty source (0.2148ms) ✔ strengthens PostgreSQL SSL aliases whose future semantics are weaker (1.214ms) ✔ preserves explicit SSL disable and connection strings without a mode (0.2757ms) ✔ credential envelope round-trips without storing plaintext (4.2837ms) ✔ credential envelope rejects tampering (0.4932ms) ✔ credential summaries mask usernames (0.1816ms) ✔ login records require both username and password (1.0515ms) ✔ only a non-emulated platform owner can open the owner dashboard (0.778ms) ✔ summarizes a successful mirror consistency check (1.0215ms) ✔ surfaces an in-progress consistency check (0.2289ms) ✔ surfaces a failed consistency check and its conclusion (0.1919ms) ✔ the production Test Lab baseline covers every allow-listed suite (1.4978ms) ✔ every seeded validation run contains complete honest evidence (0.7723ms) ✔ every Test Lab suite links to production capabilities (0.3546ms) ✔ parses passed, failed, and skipped node test output (1.4148ms) ✔ does not misclassify build and route status glyphs as unit tests (0.1011ms) ✔ resolves the report produced by each allow-listed Playwright runner (0.1132ms) ℹ tests 38 ℹ suites 0 ℹ pass 38 ℹ fail 0 ℹ cancelled 0 ℹ skipped 0 ℹ todo 0 ℹ duration_ms 1295.4519
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | deployed production access fails closed without a complete server identity dashboard.domain.1 | 2ms | Recorded |
| passed | deployed preview access fails closed instead of granting a development owner dashboard.domain.2 | 1ms | Recorded |
| passed | a production-mode local server also requires an explicit server identity dashboard.domain.3 | 1ms | Recorded |
| passed | deployed agency and client sessions fail closed without tenant scope dashboard.domain.4 | 0ms | Recorded |
| passed | server identity determines actor, role, and tenant scope dashboard.domain.5 | 0ms | Recorded |
| passed | dashboard catalog has unique routes and complete operational coverage dashboard.domain.6 | 2ms | Recorded |
| passed | role menus are distinct and server authorization uses the same section boundary dashboard.domain.7 | 0ms | Recorded |
| passed | automated testing registry includes every dashboard page dashboard.domain.8 | 0ms | Recorded |
| passed | production dashboard modules do not depend on Test Center implementations or routes dashboard.domain.9 | 32ms | Recorded |
| passed | Data Governance is restricted to a non-emulated platform operator dashboard.domain.10 | 2ms | Recorded |
| passed | Data Governance actions require a same-origin request dashboard.domain.11 | 3ms | Recorded |
| passed | Design Agent API permissions follow the effective dashboard role dashboard.domain.12 | 1ms | Recorded |
| passed | Design Agent API mutations require an exact same-origin request dashboard.domain.13 | 2ms | Recorded |
| passed | isolated end-to-end validation requires a non-emulated platform operator dashboard.domain.14 | 1ms | Recorded |
| passed | isolated end-to-end mutations require exact same-origin requests dashboard.domain.15 | 2ms | Recorded |
| passed | Google Places dashboard API permissions follow the effective role dashboard.domain.16 | 1ms | Recorded |
| passed | production lead APIs reject mock providers and invalid tenant scope dashboard.domain.17 | 0ms | Recorded |
| passed | Google Places dashboard mutations require exact same-origin requests dashboard.domain.18 | 2ms | Recorded |
| passed | lead decision reasons are sent to Postgres as serialized jsonb dashboard.domain.19 | 3ms | Recorded |
| passed | lifecycle recovery routes every checkpoint to its owning production workspace dashboard.domain.20 | 2ms | Recorded |
| passed | metric builder explains reviews, failures, cost, and test evidence dashboard.domain.21 | 14ms | Recorded |
| passed | metric builder never invents activity for an empty source dashboard.domain.22 | 0ms | Recorded |
| passed | strengthens PostgreSQL SSL aliases whose future semantics are weaker dashboard.domain.23 | 1ms | Recorded |
| passed | preserves explicit SSL disable and connection strings without a mode dashboard.domain.24 | 0ms | Recorded |
| passed | credential envelope round-trips without storing plaintext dashboard.domain.25 | 4ms | Recorded |
| passed | credential envelope rejects tampering dashboard.domain.26 | 0ms | Recorded |
| passed | credential summaries mask usernames dashboard.domain.27 | 0ms | Recorded |
| passed | login records require both username and password dashboard.domain.28 | 1ms | Recorded |
| passed | only a non-emulated platform owner can open the owner dashboard dashboard.domain.29 | 1ms | Recorded |
| passed | summarizes a successful mirror consistency check dashboard.domain.30 | 1ms | Recorded |
| passed | surfaces an in-progress consistency check dashboard.domain.31 | 0ms | Recorded |
| passed | surfaces a failed consistency check and its conclusion dashboard.domain.32 | 0ms | Recorded |
| passed | the production Test Lab baseline covers every allow-listed suite dashboard.domain.33 | 1ms | Recorded |
| passed | every seeded validation run contains complete honest evidence dashboard.domain.34 | 1ms | Recorded |
| passed | every Test Lab suite links to production capabilities dashboard.domain.35 | 0ms | Recorded |
| passed | parses passed, failed, and skipped node test output dashboard.domain.36 | 1ms | Recorded |
| passed | does not misclassify build and route status glyphs as unit tests dashboard.domain.37 | 0ms | Recorded |
| passed | resolves the report produced by each allow-listed Playwright runner dashboard.domain.38 | 0ms | Recorded |
Duration: 1.1s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Section Strategy preserves the server-derived platform operator section-recommendations.unit.1 | 3ms | Recorded |
| passed | Section Strategy rejects clients and emulated operators section-recommendations.unit.2 | 1ms | Recorded |
| passed | Section Strategy rejects cross-origin mutations section-recommendations.unit.3 | 0ms | Recorded |
| passed | seeded governed component catalog exactly matches the planner allow-list section-recommendations.unit.4 | 1ms | Recorded |
| passed | every planner component resolves to exactly one contract-complete seed variant section-recommendations.unit.5 | 0ms | Recorded |
| passed | all governed kinds resolve to one active seed family section-recommendations.unit.6 | 0ms | Recorded |
| passed | blueprint variants do not alter the legacy five-page recommendation plan section-recommendations.unit.7 | 0ms | Recorded |
| passed | every active seed variant has exactly one governed runtime consumer section-recommendations.unit.8 | 0ms | Recorded |
Duration: 1.1s
Requested by: vercel:doernaz-5523
Trigger: System
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
> gold-brandlift@0.1.0 test:section-seeds > node --conditions=react-server --import tsx --test scripts/section-recommendation-seed-data.test.mjs lib/section-recommendations/access.test.ts ✔ Section Strategy preserves the server-derived platform operator (2.8474ms) ✔ Section Strategy rejects clients and emulated operators (0.5568ms) ✔ Section Strategy rejects cross-origin mutations (0.3327ms) ✔ seeded governed component catalog exactly matches the planner allow-list (1.2993ms) ✔ every planner component resolves to exactly one contract-complete seed variant (0.4139ms) ✔ all governed kinds resolve to one active seed family (0.1328ms) ✔ blueprint variants do not alter the legacy five-page recommendation plan (0.4993ms) ✔ every active seed variant has exactly one governed runtime consumer (0.2644ms) ℹ tests 8 ℹ suites 0 ℹ pass 8 ℹ fail 0 ℹ cancelled 0 ℹ skipped 0 ℹ todo 0 ℹ duration_ms 550.2618
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | every active seed variant has exactly one governed runtime consumer section-recommendations.unit.8 | 0ms | Recorded |
| passed | blueprint variants do not alter the legacy five-page recommendation plan section-recommendations.unit.7 | 0ms | Recorded |
| passed | all governed kinds resolve to one active seed family section-recommendations.unit.6 | 0ms | Recorded |
| passed | every planner component resolves to exactly one contract-complete seed variant section-recommendations.unit.5 | 0ms | Recorded |
| passed | Section Strategy preserves the server-derived platform operator section-recommendations.unit.1 | 3ms | Recorded |
| passed | Section Strategy rejects clients and emulated operators section-recommendations.unit.2 | 1ms | Recorded |
| passed | seeded governed component catalog exactly matches the planner allow-list section-recommendations.unit.4 | 1ms | Recorded |
| passed | Section Strategy rejects cross-origin mutations section-recommendations.unit.3 | 0ms | Recorded |
Duration: 1.1s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Section Strategy preserves the server-derived platform operator section-recommendations.unit.1 | 3ms | Recorded |
| passed | Section Strategy rejects clients and emulated operators section-recommendations.unit.2 | 1ms | Recorded |
| passed | Section Strategy rejects cross-origin mutations section-recommendations.unit.3 | 0ms | Recorded |
| passed | seeded governed component catalog exactly matches the planner allow-list section-recommendations.unit.4 | 1ms | Recorded |
| passed | every planner component resolves to exactly one contract-complete seed variant section-recommendations.unit.5 | 0ms | Recorded |
| passed | all governed kinds resolve to one active seed family section-recommendations.unit.6 | 0ms | Recorded |
| passed | blueprint variants do not alter the legacy five-page recommendation plan section-recommendations.unit.7 | 0ms | Recorded |
| passed | every active seed variant has exactly one governed runtime consumer section-recommendations.unit.8 | 0ms | Recorded |
Duration: 1.1s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Section Strategy preserves the server-derived platform operator section-recommendations.unit.1 | 3ms | Recorded |
| passed | Section Strategy rejects clients and emulated operators section-recommendations.unit.2 | 1ms | Recorded |
| passed | Section Strategy rejects cross-origin mutations section-recommendations.unit.3 | 0ms | Recorded |
| passed | seeded governed component catalog exactly matches the planner allow-list section-recommendations.unit.4 | 1ms | Recorded |
| passed | every planner component resolves to exactly one contract-complete seed variant section-recommendations.unit.5 | 0ms | Recorded |
| passed | all governed kinds resolve to one active seed family section-recommendations.unit.6 | 0ms | Recorded |
| passed | blueprint variants do not alter the legacy five-page recommendation plan section-recommendations.unit.7 | 0ms | Recorded |
| passed | every active seed variant has exactly one governed runtime consumer section-recommendations.unit.8 | 0ms | Recorded |
Duration: 1.1s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
No earlier run is available for comparison.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | blueprint variants do not alter the legacy five-page recommendation plan section-recommendations.unit.7 | 0ms | Recorded |
| passed | every active seed variant has exactly one governed runtime consumer section-recommendations.unit.8 | 0ms | Recorded |
| passed | Section Strategy preserves the server-derived platform operator section-recommendations.unit.1 | 3ms | Recorded |
| passed | Section Strategy rejects clients and emulated operators section-recommendations.unit.2 | 1ms | Recorded |
| passed | Section Strategy rejects cross-origin mutations section-recommendations.unit.3 | 0ms | Recorded |
| passed | seeded governed component catalog exactly matches the planner allow-list section-recommendations.unit.4 | 1ms | Recorded |
| passed | every planner component resolves to exactly one contract-complete seed variant section-recommendations.unit.5 | 0ms | Recorded |
| passed | all governed kinds resolve to one active seed family section-recommendations.unit.6 | 0ms | Recorded |
Duration: 55.0s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
No earlier run is available for comparison.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Production build production.build.aggregate | 55000ms | Recorded |
Duration: 23.7s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Lead-to-launch persistence database lifecycle-persistence.database.aggregate | 23700ms | Recorded |
Duration: 23.7s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Lead-to-launch persistence database lifecycle-persistence.database.aggregate | 23700ms | Recorded |
Duration: 23.7s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Lead-to-launch persistence database lifecycle-persistence.database.aggregate | 23700ms | Recorded |
Duration: 23.7s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Lead-to-launch persistence database lifecycle-persistence.database.aggregate | 23700ms | Recorded |
Duration: 23.7s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
No earlier run is available for comparison.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Lead-to-launch persistence database lifecycle-persistence.database.aggregate | 23700ms | Recorded |
Duration: 25.8s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Media analysis state machine database media-analysis.database.aggregate | 25800ms | Recorded |
Duration: 25.8s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Media analysis state machine database media-analysis.database.aggregate | 25800ms | Recorded |
Duration: 25.8s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Media analysis state machine database media-analysis.database.aggregate | 25800ms | Recorded |
Duration: 25.8s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Media analysis state machine database media-analysis.database.aggregate | 25800ms | Recorded |
Duration: 25.8s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
No earlier run is available for comparison.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Media analysis state machine database media-analysis.database.aggregate | 25800ms | Recorded |
Duration: 4.0s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Business-type attribution runtime database business-type-attribution.database.aggregate | 4036ms | Recorded |
Duration: 4.0s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Business-type attribution runtime database business-type-attribution.database.aggregate | 4036ms | Recorded |
Duration: 4.0s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Business-type attribution runtime database business-type-attribution.database.aggregate | 4036ms | Recorded |
Duration: 4.0s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Business-type attribution runtime database business-type-attribution.database.aggregate | 4036ms | Recorded |
Duration: 4.0s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
No earlier run is available for comparison.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Business-type attribution runtime database business-type-attribution.database.aggregate | 4036ms | Recorded |
Duration: 4.9s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
No earlier run is available for comparison.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Static code quality code-quality.static.aggregate | 4927ms | Recorded |
Duration: 2.5s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | production design adapter never starts a duplicate attached workflow lifecycle-orchestration.unit.33 | 0ms | Recorded |
| passed | production capability errors retain their controlled retry contract lifecycle-orchestration.unit.31 | 0ms | Recorded |
| passed | production fact adapter returns canonical fact references lifecycle-orchestration.unit.30 | 0ms | Recorded |
| passed | production profile adapter exposes the persisted artifact and review gaps lifecycle-orchestration.unit.29 | 1ms | Recorded |
| passed | non-production review policy removes the production gate and records test-only acceptance lifecycle-orchestration.unit.1 | 2ms | Recorded |
| passed | production review policy remains fail-closed lifecycle-orchestration.unit.2 | 0ms | Recorded |
| passed | completed and needs-review discovery runs are both reviewable lifecycle-orchestration.unit.3 | 0ms | Recorded |
| passed | temporary assumed verification is visibly non-production and scoped to selected offerings lifecycle-orchestration.unit.4 | 0ms | Recorded |
| passed | live discovery output retains only IDs, rank, and qualification metadata lifecycle-orchestration.unit.5 | 0ms | Recorded |
| passed | transient Google Places rows are readable, attributed, and capped without changing persisted output lifecycle-orchestration.unit.6 | 1ms | Recorded |
| passed | live enrichment output discards details and photo access payloads lifecycle-orchestration.unit.7 | 0ms | Recorded |
| passed | replayed live enrichment records no request or cost for the checkpoint lifecycle-orchestration.unit.8 | 0ms | Recorded |
| passed | every downstream checkpoint is a non-skippable production capability lifecycle-orchestration.unit.9 | 0ms | Recorded |
| passed | normalizes a complete transient Place Details and photo response lifecycle-orchestration.unit.10 | 7ms | Recorded |
| passed | rejects transient enrichment payloads that are not explicitly no-store lifecycle-orchestration.unit.11 | 1ms | Recorded |
| passed | normalizes typed references and exposes only approved workspace links lifecycle-orchestration.unit.12 | 1ms | Recorded |
| passed | dispatch leases claim new work and recover only expired reservations lifecycle-orchestration.unit.13 | 1ms | Recorded |
| passed | internal dispatch leases are never exposed as workflow run IDs lifecycle-orchestration.unit.14 | 0ms | Recorded |
| passed | direct executions become recoverable only after the bounded stale window lifecycle-orchestration.unit.15 | 0ms | Recorded |
| passed | workflow catalog preserves all five phases and 26 ordered checkpoints lifecycle-orchestration.unit.16 | 2ms | Recorded |
| passed | continue is review-gated and cannot skip a locked next checkpoint lifecycle-orchestration.unit.17 | 1ms | Recorded |
| passed | retry, pause, resume, and single-running guards fail closed lifecycle-orchestration.unit.18 | 0ms | Recorded |
| passed | the legacy Step 2 needs-review misclassification can be replayed once lifecycle-orchestration.unit.19 | 0ms | Recorded |
| passed | a stale Design Agent capability-input failure can be repaired and retried lifecycle-orchestration.unit.20 | 0ms | Recorded |
| passed | only explicit user-entered live Google Places runs parse lifecycle-orchestration.unit.21 | 5ms | Recorded |
| passed | new requests reject fixture, mock, existing-lead, and invalid search bounds lifecycle-orchestration.unit.22 | 3ms | Recorded |
| passed | execution clicks need no separate authorization payload lifecycle-orchestration.unit.23 | 0ms | Recorded |
| passed | Google Places retries reuse one stable provider idempotency key lifecycle-orchestration.unit.24 | 0ms | Recorded |
| passed | production verification reports real readiness without mutating the lead lifecycle-orchestration.unit.25 | 1ms | Recorded |
| passed | production lead decision fails closed until customer confirmation exists lifecycle-orchestration.unit.26 | 1ms | Recorded |
| passed | production lead decision reuses the authoritative verified handoff lifecycle-orchestration.unit.27 | 1ms | Recorded |
| passed | production lead decision never advances a rejected lead lifecycle-orchestration.unit.28 | 0ms | Recorded |
| passed | production review fails closed when the run sequence has no current attempt lifecycle-orchestration.unit.56 | 0ms | Recorded |
| passed | production review resolves the run sequence instead of the first current attempt lifecycle-orchestration.unit.55 | 1ms | Recorded |
| passed | production design adapter clears the gate only after all logos and one direction are reviewed lifecycle-orchestration.unit.54 | 0ms | Recorded |
| passed | every supporting capability exposes an honest status, evidence, and destination lifecycle-orchestration.unit.53 | 2ms | Recorded |
| passed | platform contract names every supporting capability in the reference design lifecycle-orchestration.unit.52 | 1ms | Recorded |
| passed | platform contract retains all five phases and 26 diagram functions lifecycle-orchestration.unit.51 | 2ms | Recorded |
| passed | assumed verification is local-only and can be disabled for gate testing lifecycle-orchestration.unit.50 | 1ms | Recorded |
| passed | production end-to-end access fails closed unless explicitly enabled lifecycle-orchestration.unit.49 | 1ms | Recorded |
| passed | dashboard end-to-end routes require platform identity and same-origin mutations lifecycle-orchestration.unit.48 | 3ms | Recorded |
| passed | stored attempt outputs redact nested secrets without mutating safe fields lifecycle-orchestration.unit.47 | 3ms | Recorded |
| passed | capability resolution distinguishes local secrets from Vercel deployment identity lifecycle-orchestration.unit.46 | 0ms | Recorded |
| passed | critical catalog and seed gaps fail closed lifecycle-orchestration.unit.45 | 0ms | Recorded |
| passed | a selected type with incomplete icons is blocked while another ready type can start lifecycle-orchestration.unit.44 | 1ms | Recorded |
| passed | required provider gaps block an otherwise seed-ready production run lifecycle-orchestration.unit.43 | 2ms | Recorded |
| passed | website package manifests are deterministic and remain non-deployable lifecycle-orchestration.unit.42 | 8ms | Recorded |
| passed | validation aggregation allows passed and informational warnings but blocks unresolved review lifecycle-orchestration.unit.41 | 0ms | Recorded |
| passed | the production media gate does not treat missing prompts or internal assembly as complete lifecycle-orchestration.unit.40 | 0ms | Recorded |
| passed | the production media gate exposes workflow and asset review blockers lifecycle-orchestration.unit.39 | 0ms | Recorded |
| passed | the production media gate accepts a completed recipe with approved materialized assets lifecycle-orchestration.unit.38 | 2ms | Recorded |
| passed | production design adapter rejects a duplicated logo checksum lifecycle-orchestration.unit.37 | 1ms | Recorded |
| passed | production design adapter completes only with exactly three distinct logos lifecycle-orchestration.unit.36 | 0ms | Recorded |
| passed | production design adapter accepts one ready logo only when the Test Center fallback is explicit lifecycle-orchestration.unit.35 | 0ms | Recorded |
| passed | production design adapter exposes failed logo validation without retrying it lifecycle-orchestration.unit.34 | 0ms | Recorded |
| passed | production design adapter launches the durable workflow and returns a generating review boundary lifecycle-orchestration.unit.32 | 3ms | Recorded |
Duration: 2.5s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | non-production review policy removes the production gate and records test-only acceptance lifecycle-orchestration.unit.1 | 2ms | Recorded |
| passed | production review policy remains fail-closed lifecycle-orchestration.unit.2 | 0ms | Recorded |
| passed | completed and needs-review discovery runs are both reviewable lifecycle-orchestration.unit.3 | 0ms | Recorded |
| passed | temporary assumed verification is visibly non-production and scoped to selected offerings lifecycle-orchestration.unit.4 | 0ms | Recorded |
| passed | live discovery output retains only IDs, rank, and qualification metadata lifecycle-orchestration.unit.5 | 0ms | Recorded |
| passed | transient Google Places rows are readable, attributed, and capped without changing persisted output lifecycle-orchestration.unit.6 | 1ms | Recorded |
| passed | live enrichment output discards details and photo access payloads lifecycle-orchestration.unit.7 | 0ms | Recorded |
| passed | replayed live enrichment records no request or cost for the checkpoint lifecycle-orchestration.unit.8 | 0ms | Recorded |
| passed | every downstream checkpoint is a non-skippable production capability lifecycle-orchestration.unit.9 | 0ms | Recorded |
| passed | normalizes a complete transient Place Details and photo response lifecycle-orchestration.unit.10 | 7ms | Recorded |
| passed | rejects transient enrichment payloads that are not explicitly no-store lifecycle-orchestration.unit.11 | 1ms | Recorded |
| passed | normalizes typed references and exposes only approved workspace links lifecycle-orchestration.unit.12 | 1ms | Recorded |
| passed | dispatch leases claim new work and recover only expired reservations lifecycle-orchestration.unit.13 | 1ms | Recorded |
| passed | internal dispatch leases are never exposed as workflow run IDs lifecycle-orchestration.unit.14 | 0ms | Recorded |
| passed | direct executions become recoverable only after the bounded stale window lifecycle-orchestration.unit.15 | 0ms | Recorded |
| passed | workflow catalog preserves all five phases and 26 ordered checkpoints lifecycle-orchestration.unit.16 | 2ms | Recorded |
| passed | continue is review-gated and cannot skip a locked next checkpoint lifecycle-orchestration.unit.17 | 1ms | Recorded |
| passed | retry, pause, resume, and single-running guards fail closed lifecycle-orchestration.unit.18 | 0ms | Recorded |
| passed | the legacy Step 2 needs-review misclassification can be replayed once lifecycle-orchestration.unit.19 | 0ms | Recorded |
| passed | a stale Design Agent capability-input failure can be repaired and retried lifecycle-orchestration.unit.20 | 0ms | Recorded |
| passed | only explicit user-entered live Google Places runs parse lifecycle-orchestration.unit.21 | 5ms | Recorded |
| passed | new requests reject fixture, mock, existing-lead, and invalid search bounds lifecycle-orchestration.unit.22 | 3ms | Recorded |
| passed | execution clicks need no separate authorization payload lifecycle-orchestration.unit.23 | 0ms | Recorded |
| passed | Google Places retries reuse one stable provider idempotency key lifecycle-orchestration.unit.24 | 0ms | Recorded |
| passed | production verification reports real readiness without mutating the lead lifecycle-orchestration.unit.25 | 1ms | Recorded |
| passed | production lead decision fails closed until customer confirmation exists lifecycle-orchestration.unit.26 | 1ms | Recorded |
| passed | production lead decision reuses the authoritative verified handoff lifecycle-orchestration.unit.27 | 1ms | Recorded |
| passed | production lead decision never advances a rejected lead lifecycle-orchestration.unit.28 | 0ms | Recorded |
| passed | production profile adapter exposes the persisted artifact and review gaps lifecycle-orchestration.unit.29 | 1ms | Recorded |
| passed | production fact adapter returns canonical fact references lifecycle-orchestration.unit.30 | 0ms | Recorded |
| passed | production capability errors retain their controlled retry contract lifecycle-orchestration.unit.31 | 0ms | Recorded |
| passed | production design adapter launches the durable workflow and returns a generating review boundary lifecycle-orchestration.unit.32 | 3ms | Recorded |
| passed | production design adapter never starts a duplicate attached workflow lifecycle-orchestration.unit.33 | 0ms | Recorded |
| passed | production design adapter exposes failed logo validation without retrying it lifecycle-orchestration.unit.34 | 0ms | Recorded |
| passed | production design adapter accepts one ready logo only when the Test Center fallback is explicit lifecycle-orchestration.unit.35 | 0ms | Recorded |
| passed | production design adapter completes only with exactly three distinct logos lifecycle-orchestration.unit.36 | 0ms | Recorded |
| passed | production design adapter rejects a duplicated logo checksum lifecycle-orchestration.unit.37 | 1ms | Recorded |
| passed | the production media gate accepts a completed recipe with approved materialized assets lifecycle-orchestration.unit.38 | 2ms | Recorded |
| passed | the production media gate exposes workflow and asset review blockers lifecycle-orchestration.unit.39 | 0ms | Recorded |
| passed | the production media gate does not treat missing prompts or internal assembly as complete lifecycle-orchestration.unit.40 | 0ms | Recorded |
| passed | validation aggregation allows passed and informational warnings but blocks unresolved review lifecycle-orchestration.unit.41 | 0ms | Recorded |
| passed | website package manifests are deterministic and remain non-deployable lifecycle-orchestration.unit.42 | 8ms | Recorded |
| passed | required provider gaps block an otherwise seed-ready production run lifecycle-orchestration.unit.43 | 2ms | Recorded |
| passed | a selected type with incomplete icons is blocked while another ready type can start lifecycle-orchestration.unit.44 | 1ms | Recorded |
| passed | critical catalog and seed gaps fail closed lifecycle-orchestration.unit.45 | 0ms | Recorded |
| passed | capability resolution distinguishes local secrets from Vercel deployment identity lifecycle-orchestration.unit.46 | 0ms | Recorded |
| passed | stored attempt outputs redact nested secrets without mutating safe fields lifecycle-orchestration.unit.47 | 3ms | Recorded |
| passed | dashboard end-to-end routes require platform identity and same-origin mutations lifecycle-orchestration.unit.48 | 3ms | Recorded |
| passed | production end-to-end access fails closed unless explicitly enabled lifecycle-orchestration.unit.49 | 1ms | Recorded |
| passed | assumed verification is local-only and can be disabled for gate testing lifecycle-orchestration.unit.50 | 1ms | Recorded |
| passed | platform contract retains all five phases and 26 diagram functions lifecycle-orchestration.unit.51 | 2ms | Recorded |
| passed | platform contract names every supporting capability in the reference design lifecycle-orchestration.unit.52 | 1ms | Recorded |
| passed | every supporting capability exposes an honest status, evidence, and destination lifecycle-orchestration.unit.53 | 2ms | Recorded |
| passed | production design adapter clears the gate only after all logos and one direction are reviewed lifecycle-orchestration.unit.54 | 0ms | Recorded |
| passed | production review resolves the run sequence instead of the first current attempt lifecycle-orchestration.unit.55 | 1ms | Recorded |
| passed | production review fails closed when the run sequence has no current attempt lifecycle-orchestration.unit.56 | 0ms | Recorded |
Duration: 2.5s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | non-production review policy removes the production gate and records test-only acceptance lifecycle-orchestration.unit.1 | 2ms | Recorded |
| passed | production review policy remains fail-closed lifecycle-orchestration.unit.2 | 0ms | Recorded |
| passed | completed and needs-review discovery runs are both reviewable lifecycle-orchestration.unit.3 | 0ms | Recorded |
| passed | temporary assumed verification is visibly non-production and scoped to selected offerings lifecycle-orchestration.unit.4 | 0ms | Recorded |
| passed | live discovery output retains only IDs, rank, and qualification metadata lifecycle-orchestration.unit.5 | 0ms | Recorded |
| passed | transient Google Places rows are readable, attributed, and capped without changing persisted output lifecycle-orchestration.unit.6 | 1ms | Recorded |
| passed | live enrichment output discards details and photo access payloads lifecycle-orchestration.unit.7 | 0ms | Recorded |
| passed | replayed live enrichment records no request or cost for the checkpoint lifecycle-orchestration.unit.8 | 0ms | Recorded |
| passed | every downstream checkpoint is a non-skippable production capability lifecycle-orchestration.unit.9 | 0ms | Recorded |
| passed | normalizes a complete transient Place Details and photo response lifecycle-orchestration.unit.10 | 7ms | Recorded |
| passed | rejects transient enrichment payloads that are not explicitly no-store lifecycle-orchestration.unit.11 | 1ms | Recorded |
| passed | normalizes typed references and exposes only approved workspace links lifecycle-orchestration.unit.12 | 1ms | Recorded |
| passed | dispatch leases claim new work and recover only expired reservations lifecycle-orchestration.unit.13 | 1ms | Recorded |
| passed | internal dispatch leases are never exposed as workflow run IDs lifecycle-orchestration.unit.14 | 0ms | Recorded |
| passed | direct executions become recoverable only after the bounded stale window lifecycle-orchestration.unit.15 | 0ms | Recorded |
| passed | workflow catalog preserves all five phases and 26 ordered checkpoints lifecycle-orchestration.unit.16 | 2ms | Recorded |
| passed | continue is review-gated and cannot skip a locked next checkpoint lifecycle-orchestration.unit.17 | 1ms | Recorded |
| passed | retry, pause, resume, and single-running guards fail closed lifecycle-orchestration.unit.18 | 0ms | Recorded |
| passed | the legacy Step 2 needs-review misclassification can be replayed once lifecycle-orchestration.unit.19 | 0ms | Recorded |
| passed | a stale Design Agent capability-input failure can be repaired and retried lifecycle-orchestration.unit.20 | 0ms | Recorded |
| passed | only explicit user-entered live Google Places runs parse lifecycle-orchestration.unit.21 | 5ms | Recorded |
| passed | new requests reject fixture, mock, existing-lead, and invalid search bounds lifecycle-orchestration.unit.22 | 3ms | Recorded |
| passed | execution clicks need no separate authorization payload lifecycle-orchestration.unit.23 | 0ms | Recorded |
| passed | Google Places retries reuse one stable provider idempotency key lifecycle-orchestration.unit.24 | 0ms | Recorded |
| passed | production verification reports real readiness without mutating the lead lifecycle-orchestration.unit.25 | 1ms | Recorded |
| passed | production lead decision fails closed until customer confirmation exists lifecycle-orchestration.unit.26 | 1ms | Recorded |
| passed | production lead decision reuses the authoritative verified handoff lifecycle-orchestration.unit.27 | 1ms | Recorded |
| passed | production lead decision never advances a rejected lead lifecycle-orchestration.unit.28 | 0ms | Recorded |
| passed | production profile adapter exposes the persisted artifact and review gaps lifecycle-orchestration.unit.29 | 1ms | Recorded |
| passed | production fact adapter returns canonical fact references lifecycle-orchestration.unit.30 | 0ms | Recorded |
| passed | production capability errors retain their controlled retry contract lifecycle-orchestration.unit.31 | 0ms | Recorded |
| passed | production design adapter launches the durable workflow and returns a generating review boundary lifecycle-orchestration.unit.32 | 3ms | Recorded |
| passed | production design adapter never starts a duplicate attached workflow lifecycle-orchestration.unit.33 | 0ms | Recorded |
| passed | production design adapter exposes failed logo validation without retrying it lifecycle-orchestration.unit.34 | 0ms | Recorded |
| passed | production design adapter accepts one ready logo only when the Test Center fallback is explicit lifecycle-orchestration.unit.35 | 0ms | Recorded |
| passed | production design adapter completes only with exactly three distinct logos lifecycle-orchestration.unit.36 | 0ms | Recorded |
| passed | production design adapter rejects a duplicated logo checksum lifecycle-orchestration.unit.37 | 1ms | Recorded |
| passed | the production media gate accepts a completed recipe with approved materialized assets lifecycle-orchestration.unit.38 | 2ms | Recorded |
| passed | the production media gate exposes workflow and asset review blockers lifecycle-orchestration.unit.39 | 0ms | Recorded |
| passed | the production media gate does not treat missing prompts or internal assembly as complete lifecycle-orchestration.unit.40 | 0ms | Recorded |
| passed | validation aggregation allows passed and informational warnings but blocks unresolved review lifecycle-orchestration.unit.41 | 0ms | Recorded |
| passed | website package manifests are deterministic and remain non-deployable lifecycle-orchestration.unit.42 | 8ms | Recorded |
| passed | required provider gaps block an otherwise seed-ready production run lifecycle-orchestration.unit.43 | 2ms | Recorded |
| passed | a selected type with incomplete icons is blocked while another ready type can start lifecycle-orchestration.unit.44 | 1ms | Recorded |
| passed | critical catalog and seed gaps fail closed lifecycle-orchestration.unit.45 | 0ms | Recorded |
| passed | capability resolution distinguishes local secrets from Vercel deployment identity lifecycle-orchestration.unit.46 | 0ms | Recorded |
| passed | stored attempt outputs redact nested secrets without mutating safe fields lifecycle-orchestration.unit.47 | 3ms | Recorded |
| passed | dashboard end-to-end routes require platform identity and same-origin mutations lifecycle-orchestration.unit.48 | 3ms | Recorded |
| passed | production end-to-end access fails closed unless explicitly enabled lifecycle-orchestration.unit.49 | 1ms | Recorded |
| passed | assumed verification is local-only and can be disabled for gate testing lifecycle-orchestration.unit.50 | 1ms | Recorded |
| passed | platform contract retains all five phases and 26 diagram functions lifecycle-orchestration.unit.51 | 2ms | Recorded |
| passed | platform contract names every supporting capability in the reference design lifecycle-orchestration.unit.52 | 1ms | Recorded |
| passed | every supporting capability exposes an honest status, evidence, and destination lifecycle-orchestration.unit.53 | 2ms | Recorded |
| passed | production design adapter clears the gate only after all logos and one direction are reviewed lifecycle-orchestration.unit.54 | 0ms | Recorded |
| passed | production review resolves the run sequence instead of the first current attempt lifecycle-orchestration.unit.55 | 1ms | Recorded |
| passed | production review fails closed when the run sequence has no current attempt lifecycle-orchestration.unit.56 | 0ms | Recorded |
Duration: 2.5s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | non-production review policy removes the production gate and records test-only acceptance lifecycle-orchestration.unit.1 | 2ms | Recorded |
| passed | production review policy remains fail-closed lifecycle-orchestration.unit.2 | 0ms | Recorded |
| passed | completed and needs-review discovery runs are both reviewable lifecycle-orchestration.unit.3 | 0ms | Recorded |
| passed | temporary assumed verification is visibly non-production and scoped to selected offerings lifecycle-orchestration.unit.4 | 0ms | Recorded |
| passed | live discovery output retains only IDs, rank, and qualification metadata lifecycle-orchestration.unit.5 | 0ms | Recorded |
| passed | transient Google Places rows are readable, attributed, and capped without changing persisted output lifecycle-orchestration.unit.6 | 1ms | Recorded |
| passed | live enrichment output discards details and photo access payloads lifecycle-orchestration.unit.7 | 0ms | Recorded |
| passed | replayed live enrichment records no request or cost for the checkpoint lifecycle-orchestration.unit.8 | 0ms | Recorded |
| passed | every downstream checkpoint is a non-skippable production capability lifecycle-orchestration.unit.9 | 0ms | Recorded |
| passed | normalizes a complete transient Place Details and photo response lifecycle-orchestration.unit.10 | 7ms | Recorded |
| passed | rejects transient enrichment payloads that are not explicitly no-store lifecycle-orchestration.unit.11 | 1ms | Recorded |
| passed | normalizes typed references and exposes only approved workspace links lifecycle-orchestration.unit.12 | 1ms | Recorded |
| passed | dispatch leases claim new work and recover only expired reservations lifecycle-orchestration.unit.13 | 1ms | Recorded |
| passed | internal dispatch leases are never exposed as workflow run IDs lifecycle-orchestration.unit.14 | 0ms | Recorded |
| passed | direct executions become recoverable only after the bounded stale window lifecycle-orchestration.unit.15 | 0ms | Recorded |
| passed | workflow catalog preserves all five phases and 26 ordered checkpoints lifecycle-orchestration.unit.16 | 2ms | Recorded |
| passed | continue is review-gated and cannot skip a locked next checkpoint lifecycle-orchestration.unit.17 | 1ms | Recorded |
| passed | retry, pause, resume, and single-running guards fail closed lifecycle-orchestration.unit.18 | 0ms | Recorded |
| passed | the legacy Step 2 needs-review misclassification can be replayed once lifecycle-orchestration.unit.19 | 0ms | Recorded |
| passed | a stale Design Agent capability-input failure can be repaired and retried lifecycle-orchestration.unit.20 | 0ms | Recorded |
| passed | only explicit user-entered live Google Places runs parse lifecycle-orchestration.unit.21 | 5ms | Recorded |
| passed | new requests reject fixture, mock, existing-lead, and invalid search bounds lifecycle-orchestration.unit.22 | 3ms | Recorded |
| passed | execution clicks need no separate authorization payload lifecycle-orchestration.unit.23 | 0ms | Recorded |
| passed | Google Places retries reuse one stable provider idempotency key lifecycle-orchestration.unit.24 | 0ms | Recorded |
| passed | production verification reports real readiness without mutating the lead lifecycle-orchestration.unit.25 | 1ms | Recorded |
| passed | production lead decision fails closed until customer confirmation exists lifecycle-orchestration.unit.26 | 1ms | Recorded |
| passed | production lead decision reuses the authoritative verified handoff lifecycle-orchestration.unit.27 | 1ms | Recorded |
| passed | production lead decision never advances a rejected lead lifecycle-orchestration.unit.28 | 0ms | Recorded |
| passed | production profile adapter exposes the persisted artifact and review gaps lifecycle-orchestration.unit.29 | 1ms | Recorded |
| passed | production fact adapter returns canonical fact references lifecycle-orchestration.unit.30 | 0ms | Recorded |
| passed | production capability errors retain their controlled retry contract lifecycle-orchestration.unit.31 | 0ms | Recorded |
| passed | production design adapter launches the durable workflow and returns a generating review boundary lifecycle-orchestration.unit.32 | 3ms | Recorded |
| passed | production design adapter never starts a duplicate attached workflow lifecycle-orchestration.unit.33 | 0ms | Recorded |
| passed | production design adapter exposes failed logo validation without retrying it lifecycle-orchestration.unit.34 | 0ms | Recorded |
| passed | production design adapter accepts one ready logo only when the Test Center fallback is explicit lifecycle-orchestration.unit.35 | 0ms | Recorded |
| passed | production design adapter completes only with exactly three distinct logos lifecycle-orchestration.unit.36 | 0ms | Recorded |
| passed | production design adapter rejects a duplicated logo checksum lifecycle-orchestration.unit.37 | 1ms | Recorded |
| passed | the production media gate accepts a completed recipe with approved materialized assets lifecycle-orchestration.unit.38 | 2ms | Recorded |
| passed | the production media gate exposes workflow and asset review blockers lifecycle-orchestration.unit.39 | 0ms | Recorded |
| passed | the production media gate does not treat missing prompts or internal assembly as complete lifecycle-orchestration.unit.40 | 0ms | Recorded |
| passed | validation aggregation allows passed and informational warnings but blocks unresolved review lifecycle-orchestration.unit.41 | 0ms | Recorded |
| passed | website package manifests are deterministic and remain non-deployable lifecycle-orchestration.unit.42 | 8ms | Recorded |
| passed | required provider gaps block an otherwise seed-ready production run lifecycle-orchestration.unit.43 | 2ms | Recorded |
| passed | a selected type with incomplete icons is blocked while another ready type can start lifecycle-orchestration.unit.44 | 1ms | Recorded |
| passed | critical catalog and seed gaps fail closed lifecycle-orchestration.unit.45 | 0ms | Recorded |
| passed | capability resolution distinguishes local secrets from Vercel deployment identity lifecycle-orchestration.unit.46 | 0ms | Recorded |
| passed | stored attempt outputs redact nested secrets without mutating safe fields lifecycle-orchestration.unit.47 | 3ms | Recorded |
| passed | dashboard end-to-end routes require platform identity and same-origin mutations lifecycle-orchestration.unit.48 | 3ms | Recorded |
| passed | production end-to-end access fails closed unless explicitly enabled lifecycle-orchestration.unit.49 | 1ms | Recorded |
| passed | assumed verification is local-only and can be disabled for gate testing lifecycle-orchestration.unit.50 | 1ms | Recorded |
| passed | platform contract retains all five phases and 26 diagram functions lifecycle-orchestration.unit.51 | 2ms | Recorded |
| passed | platform contract names every supporting capability in the reference design lifecycle-orchestration.unit.52 | 1ms | Recorded |
| passed | every supporting capability exposes an honest status, evidence, and destination lifecycle-orchestration.unit.53 | 2ms | Recorded |
| passed | production design adapter clears the gate only after all logos and one direction are reviewed lifecycle-orchestration.unit.54 | 0ms | Recorded |
| passed | production review resolves the run sequence instead of the first current attempt lifecycle-orchestration.unit.55 | 1ms | Recorded |
| passed | production review fails closed when the run sequence has no current attempt lifecycle-orchestration.unit.56 | 0ms | Recorded |
Duration: 2.5s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
No earlier run is available for comparison.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Google Places retries reuse one stable provider idempotency key lifecycle-orchestration.unit.24 | 0ms | Recorded |
| passed | production verification reports real readiness without mutating the lead lifecycle-orchestration.unit.25 | 1ms | Recorded |
| passed | production lead decision fails closed until customer confirmation exists lifecycle-orchestration.unit.26 | 1ms | Recorded |
| passed | production lead decision reuses the authoritative verified handoff lifecycle-orchestration.unit.27 | 1ms | Recorded |
| passed | production lead decision never advances a rejected lead lifecycle-orchestration.unit.28 | 0ms | Recorded |
| passed | production profile adapter exposes the persisted artifact and review gaps lifecycle-orchestration.unit.29 | 1ms | Recorded |
| passed | production fact adapter returns canonical fact references lifecycle-orchestration.unit.30 | 0ms | Recorded |
| passed | production capability errors retain their controlled retry contract lifecycle-orchestration.unit.31 | 0ms | Recorded |
| passed | production design adapter launches the durable workflow and returns a generating review boundary lifecycle-orchestration.unit.32 | 3ms | Recorded |
| passed | production design adapter never starts a duplicate attached workflow lifecycle-orchestration.unit.33 | 0ms | Recorded |
| passed | production design adapter exposes failed logo validation without retrying it lifecycle-orchestration.unit.34 | 0ms | Recorded |
| passed | production design adapter accepts one ready logo only when the Test Center fallback is explicit lifecycle-orchestration.unit.35 | 0ms | Recorded |
| passed | production design adapter completes only with exactly three distinct logos lifecycle-orchestration.unit.36 | 0ms | Recorded |
| passed | production design adapter rejects a duplicated logo checksum lifecycle-orchestration.unit.37 | 1ms | Recorded |
| passed | the production media gate accepts a completed recipe with approved materialized assets lifecycle-orchestration.unit.38 | 2ms | Recorded |
| passed | the production media gate exposes workflow and asset review blockers lifecycle-orchestration.unit.39 | 0ms | Recorded |
| passed | the production media gate does not treat missing prompts or internal assembly as complete lifecycle-orchestration.unit.40 | 0ms | Recorded |
| passed | validation aggregation allows passed and informational warnings but blocks unresolved review lifecycle-orchestration.unit.41 | 0ms | Recorded |
| passed | website package manifests are deterministic and remain non-deployable lifecycle-orchestration.unit.42 | 8ms | Recorded |
| passed | required provider gaps block an otherwise seed-ready production run lifecycle-orchestration.unit.43 | 2ms | Recorded |
| passed | a selected type with incomplete icons is blocked while another ready type can start lifecycle-orchestration.unit.44 | 1ms | Recorded |
| passed | critical catalog and seed gaps fail closed lifecycle-orchestration.unit.45 | 0ms | Recorded |
| passed | capability resolution distinguishes local secrets from Vercel deployment identity lifecycle-orchestration.unit.46 | 0ms | Recorded |
| passed | stored attempt outputs redact nested secrets without mutating safe fields lifecycle-orchestration.unit.47 | 3ms | Recorded |
| passed | dashboard end-to-end routes require platform identity and same-origin mutations lifecycle-orchestration.unit.48 | 3ms | Recorded |
| passed | production end-to-end access fails closed unless explicitly enabled lifecycle-orchestration.unit.49 | 1ms | Recorded |
| passed | assumed verification is local-only and can be disabled for gate testing lifecycle-orchestration.unit.50 | 1ms | Recorded |
| passed | platform contract retains all five phases and 26 diagram functions lifecycle-orchestration.unit.51 | 2ms | Recorded |
| passed | platform contract names every supporting capability in the reference design lifecycle-orchestration.unit.52 | 1ms | Recorded |
| passed | every supporting capability exposes an honest status, evidence, and destination lifecycle-orchestration.unit.53 | 2ms | Recorded |
| passed | production design adapter clears the gate only after all logos and one direction are reviewed lifecycle-orchestration.unit.54 | 0ms | Recorded |
| passed | production review resolves the run sequence instead of the first current attempt lifecycle-orchestration.unit.55 | 1ms | Recorded |
| passed | production review fails closed when the run sequence has no current attempt lifecycle-orchestration.unit.56 | 0ms | Recorded |
| passed | production review policy remains fail-closed lifecycle-orchestration.unit.2 | 0ms | Recorded |
| passed | non-production review policy removes the production gate and records test-only acceptance lifecycle-orchestration.unit.1 | 2ms | Recorded |
| passed | completed and needs-review discovery runs are both reviewable lifecycle-orchestration.unit.3 | 0ms | Recorded |
| passed | temporary assumed verification is visibly non-production and scoped to selected offerings lifecycle-orchestration.unit.4 | 0ms | Recorded |
| passed | live discovery output retains only IDs, rank, and qualification metadata lifecycle-orchestration.unit.5 | 0ms | Recorded |
| passed | transient Google Places rows are readable, attributed, and capped without changing persisted output lifecycle-orchestration.unit.6 | 1ms | Recorded |
| passed | live enrichment output discards details and photo access payloads lifecycle-orchestration.unit.7 | 0ms | Recorded |
| passed | replayed live enrichment records no request or cost for the checkpoint lifecycle-orchestration.unit.8 | 0ms | Recorded |
| passed | every downstream checkpoint is a non-skippable production capability lifecycle-orchestration.unit.9 | 0ms | Recorded |
| passed | normalizes a complete transient Place Details and photo response lifecycle-orchestration.unit.10 | 7ms | Recorded |
| passed | rejects transient enrichment payloads that are not explicitly no-store lifecycle-orchestration.unit.11 | 1ms | Recorded |
| passed | normalizes typed references and exposes only approved workspace links lifecycle-orchestration.unit.12 | 1ms | Recorded |
| passed | dispatch leases claim new work and recover only expired reservations lifecycle-orchestration.unit.13 | 1ms | Recorded |
| passed | internal dispatch leases are never exposed as workflow run IDs lifecycle-orchestration.unit.14 | 0ms | Recorded |
| passed | direct executions become recoverable only after the bounded stale window lifecycle-orchestration.unit.15 | 0ms | Recorded |
| passed | workflow catalog preserves all five phases and 26 ordered checkpoints lifecycle-orchestration.unit.16 | 2ms | Recorded |
| passed | continue is review-gated and cannot skip a locked next checkpoint lifecycle-orchestration.unit.17 | 1ms | Recorded |
| passed | retry, pause, resume, and single-running guards fail closed lifecycle-orchestration.unit.18 | 0ms | Recorded |
| passed | the legacy Step 2 needs-review misclassification can be replayed once lifecycle-orchestration.unit.19 | 0ms | Recorded |
| passed | a stale Design Agent capability-input failure can be repaired and retried lifecycle-orchestration.unit.20 | 0ms | Recorded |
| passed | only explicit user-entered live Google Places runs parse lifecycle-orchestration.unit.21 | 5ms | Recorded |
| passed | new requests reject fixture, mock, existing-lead, and invalid search bounds lifecycle-orchestration.unit.22 | 3ms | Recorded |
| passed | execution clicks need no separate authorization payload lifecycle-orchestration.unit.23 | 0ms | Recorded |
Duration: 0.6s
Requested by: vercel:doernaz-5523
Trigger: System
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
> gold-brandlift@0.1.0 test:auth > node --import tsx --test lib/dashboard/auth-boundary.test.ts lib/dashboard/authenticated-membership.test.ts ✔ the identity boundary covers every production dashboard surface (0.428ms) ✔ deployed protected routes fail closed without configured authentication (0.0964ms) ✔ a signed Clerk user resolves through its persisted platform membership (0.5323ms) ✔ agency and client roles retain their persisted tenant boundary (0.1324ms) ✔ missing, ambiguous, and mismatched memberships fail closed (0.3335ms) ℹ tests 5 ℹ suites 0 ℹ pass 5 ℹ fail 0 ℹ cancelled 0 ℹ skipped 0 ℹ todo 0 ℹ duration_ms 119.9759
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | a signed Clerk user resolves through its persisted platform membership authentication.security.3 | 1ms | Recorded |
| passed | deployed protected routes fail closed without configured authentication authentication.security.2 | 0ms | Recorded |
| passed | the identity boundary covers every production dashboard surface authentication.security.1 | 0ms | Recorded |
| passed | missing, ambiguous, and mismatched memberships fail closed authentication.security.5 | 0ms | Recorded |
| passed | agency and client roles retain their persisted tenant boundary authentication.security.4 | 0ms | Recorded |
Duration: 0.6s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | missing, ambiguous, and mismatched memberships fail closed authentication.security.5 | 0ms | Recorded |
| passed | agency and client roles retain their persisted tenant boundary authentication.security.4 | 0ms | Recorded |
| passed | a signed Clerk user resolves through its persisted platform membership authentication.security.3 | 1ms | Recorded |
| passed | deployed protected routes fail closed without configured authentication authentication.security.2 | 0ms | Recorded |
| passed | the identity boundary covers every production dashboard surface authentication.security.1 | 0ms | Recorded |
Duration: 0.6s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | missing, ambiguous, and mismatched memberships fail closed authentication.security.5 | 0ms | Recorded |
| passed | agency and client roles retain their persisted tenant boundary authentication.security.4 | 0ms | Recorded |
| passed | a signed Clerk user resolves through its persisted platform membership authentication.security.3 | 1ms | Recorded |
| passed | deployed protected routes fail closed without configured authentication authentication.security.2 | 0ms | Recorded |
| passed | the identity boundary covers every production dashboard surface authentication.security.1 | 0ms | Recorded |
Duration: 0.6s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | the identity boundary covers every production dashboard surface authentication.security.1 | 0ms | Recorded |
| passed | agency and client roles retain their persisted tenant boundary authentication.security.4 | 0ms | Recorded |
| passed | a signed Clerk user resolves through its persisted platform membership authentication.security.3 | 1ms | Recorded |
| passed | missing, ambiguous, and mismatched memberships fail closed authentication.security.5 | 0ms | Recorded |
| passed | deployed protected routes fail closed without configured authentication authentication.security.2 | 0ms | Recorded |
Duration: 0.6s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
No earlier run is available for comparison.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | deployed protected routes fail closed without configured authentication authentication.security.2 | 0ms | Recorded |
| passed | a signed Clerk user resolves through its persisted platform membership authentication.security.3 | 1ms | Recorded |
| passed | missing, ambiguous, and mismatched memberships fail closed authentication.security.5 | 0ms | Recorded |
| passed | agency and client roles retain their persisted tenant boundary authentication.security.4 | 0ms | Recorded |
| passed | the identity boundary covers every production dashboard surface authentication.security.1 | 0ms | Recorded |
Duration: 26.8s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Immutable website lifecycle database site-lifecycle.database.aggregate | 26800ms | Recorded |
Duration: 26.8s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Immutable website lifecycle database site-lifecycle.database.aggregate | 26800ms | Recorded |
Duration: 26.8s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Immutable website lifecycle database site-lifecycle.database.aggregate | 26800ms | Recorded |
Duration: 26.8s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Immutable website lifecycle database site-lifecycle.database.aggregate | 26800ms | Recorded |
Duration: 26.8s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Connected production database
No earlier run is available for comparison.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Immutable website lifecycle database site-lifecycle.database.aggregate | 26800ms | Recorded |
Duration: 1.2s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Owner Intelligence returns the server-derived platform owner owner-intelligence.security.1 | 1ms | Recorded |
| passed | Owner Intelligence rejects administrators, clients, and emulation owner-intelligence.security.2 | 0ms | Recorded |
| passed | Daily Briefing mutations accept exact and forwarded same-origin requests owner-intelligence.security.3 | 2ms | Recorded |
| passed | Daily Briefing mutations reject missing and cross-origin requests owner-intelligence.security.4 | 0ms | Recorded |
| passed | maps the repository's legacy owner to its current organization owner-intelligence.security.5 | 1ms | Recorded |
| passed | preserves repositories that do not have a configured alias owner-intelligence.security.6 | 0ms | Recorded |
| passed | turns a hidden private repository response into recovery guidance owner-intelligence.security.7 | 0ms | Recorded |
Duration: 1.2s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | turns a hidden private repository response into recovery guidance owner-intelligence.security.7 | 0ms | Recorded |
| passed | preserves repositories that do not have a configured alias owner-intelligence.security.6 | 0ms | Recorded |
| passed | maps the repository's legacy owner to its current organization owner-intelligence.security.5 | 1ms | Recorded |
| passed | Daily Briefing mutations reject missing and cross-origin requests owner-intelligence.security.4 | 0ms | Recorded |
| passed | Daily Briefing mutations accept exact and forwarded same-origin requests owner-intelligence.security.3 | 2ms | Recorded |
| passed | Owner Intelligence rejects administrators, clients, and emulation owner-intelligence.security.2 | 0ms | Recorded |
| passed | Owner Intelligence returns the server-derived platform owner owner-intelligence.security.1 | 1ms | Recorded |
Duration: 1.2s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | turns a hidden private repository response into recovery guidance owner-intelligence.security.7 | 0ms | Recorded |
| passed | Owner Intelligence returns the server-derived platform owner owner-intelligence.security.1 | 1ms | Recorded |
| passed | Owner Intelligence rejects administrators, clients, and emulation owner-intelligence.security.2 | 0ms | Recorded |
| passed | Daily Briefing mutations accept exact and forwarded same-origin requests owner-intelligence.security.3 | 2ms | Recorded |
| passed | Daily Briefing mutations reject missing and cross-origin requests owner-intelligence.security.4 | 0ms | Recorded |
| passed | maps the repository's legacy owner to its current organization owner-intelligence.security.5 | 1ms | Recorded |
| passed | preserves repositories that do not have a configured alias owner-intelligence.security.6 | 0ms | Recorded |
Duration: 1.2s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Owner Intelligence rejects administrators, clients, and emulation owner-intelligence.security.2 | 0ms | Recorded |
| passed | Daily Briefing mutations accept exact and forwarded same-origin requests owner-intelligence.security.3 | 2ms | Recorded |
| passed | Daily Briefing mutations reject missing and cross-origin requests owner-intelligence.security.4 | 0ms | Recorded |
| passed | maps the repository's legacy owner to its current organization owner-intelligence.security.5 | 1ms | Recorded |
| passed | preserves repositories that do not have a configured alias owner-intelligence.security.6 | 0ms | Recorded |
| passed | turns a hidden private repository response into recovery guidance owner-intelligence.security.7 | 0ms | Recorded |
| passed | Owner Intelligence returns the server-derived platform owner owner-intelligence.security.1 | 1ms | Recorded |
Duration: 1.2s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
No earlier run is available for comparison.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | turns a hidden private repository response into recovery guidance owner-intelligence.security.7 | 0ms | Recorded |
| passed | preserves repositories that do not have a configured alias owner-intelligence.security.6 | 0ms | Recorded |
| passed | maps the repository's legacy owner to its current organization owner-intelligence.security.5 | 1ms | Recorded |
| passed | Daily Briefing mutations reject missing and cross-origin requests owner-intelligence.security.4 | 0ms | Recorded |
| passed | Daily Briefing mutations accept exact and forwarded same-origin requests owner-intelligence.security.3 | 2ms | Recorded |
| passed | Owner Intelligence rejects administrators, clients, and emulation owner-intelligence.security.2 | 0ms | Recorded |
| passed | Owner Intelligence returns the server-derived platform owner owner-intelligence.security.1 | 1ms | Recorded |
Duration: 1.2s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Geography Controls rejects clients and emulated operators geography-controls.security.2 | 0ms | Recorded |
| passed | Geography Controls preserves the server-derived platform operator geography-controls.security.1 | 2ms | Recorded |
| passed | Geography Controls rejects cross-origin mutations geography-controls.security.3 | 0ms | Recorded |
Duration: 1.2s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Geography Controls preserves the server-derived platform operator geography-controls.security.1 | 2ms | Recorded |
| passed | Geography Controls rejects clients and emulated operators geography-controls.security.2 | 0ms | Recorded |
| passed | Geography Controls rejects cross-origin mutations geography-controls.security.3 | 0ms | Recorded |
Duration: 1.2s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Geography Controls rejects cross-origin mutations geography-controls.security.3 | 0ms | Recorded |
| passed | Geography Controls rejects clients and emulated operators geography-controls.security.2 | 0ms | Recorded |
| passed | Geography Controls preserves the server-derived platform operator geography-controls.security.1 | 2ms | Recorded |
Duration: 1.2s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Geography Controls rejects cross-origin mutations geography-controls.security.3 | 0ms | Recorded |
| passed | Geography Controls rejects clients and emulated operators geography-controls.security.2 | 0ms | Recorded |
| passed | Geography Controls preserves the server-derived platform operator geography-controls.security.1 | 2ms | Recorded |
Duration: 1.2s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
No earlier run is available for comparison.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Geography Controls preserves the server-derived platform operator geography-controls.security.1 | 2ms | Recorded |
| passed | Geography Controls rejects cross-origin mutations geography-controls.security.3 | 0ms | Recorded |
| passed | Geography Controls rejects clients and emulated operators geography-controls.security.2 | 0ms | Recorded |
Duration: 1.7s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | Blob upload wire parser accepts token requests without rebuilding them media-prompts.unit.1 | 4ms | Recorded |
| passed | Blob upload wire parser accepts the signed upload-completed callback media-prompts.unit.2 | 0ms | Recorded |
| passed | Blob upload wire parser rejects unsupported and unbounded callback data media-prompts.unit.3 | 1ms | Recorded |
| passed | upload reservation input accepts only the governed output contract media-prompts.unit.4 | 1ms | Recorded |
| passed | completion accepts reported evidence but rejects duplicate upload IDs media-prompts.unit.5 | 1ms | Recorded |
| passed | heartbeat progress and failures use controlled safe schemas media-prompts.unit.6 | 1ms | Recorded |
| passed | lease credentials are accepted only from fenced headers media-prompts.unit.7 | 18ms | Recorded |
| passed | governed output counts require an explicitly ready package media-prompts.unit.8 | 1ms | Recorded |
| passed | protocol configuration applies bounded defaults and overrides media-prompts.unit.9 | 0ms | Recorded |
| passed | JSON request parsing enforces media type, object shape, and byte limit media-prompts.unit.10 | 30ms | Recorded |
| passed | machine request headers are parsed narrowly media-prompts.unit.11 | 1ms | Recorded |
| passed | canonical JSON hashes objects independently of key order media-prompts.unit.12 | 1ms | Recorded |
| passed | canonical JSON rejects unsupported values and cycles media-prompts.unit.13 | 1ms | Recorded |
| passed | secret comparisons fail closed media-prompts.unit.14 | 0ms | Recorded |
| passed | generated API and lease credentials are opaque and unique media-prompts.unit.15 | 1ms | Recorded |
| passed | the real ZIP reader extracts media and records cryptographic provenance media-prompts.unit.16 | 157ms | Recorded |
| passed | the real ZIP reader rejects duplicate extracted media content media-prompts.unit.17 | 30ms | Recorded |
| passed | validates the supplied Flow archive shape before extraction media-prompts.unit.18 | 2ms | Recorded |
| passed | skips only directories and named metadata without extracting them media-prompts.unit.19 | 0ms | Recorded |
| passed | rejects traversal, encryption, duplicate names, and expansion bombs media-prompts.unit.20 | 1ms | Recorded |
| passed | recognizes supported media signatures and rejects extension spoofing media-prompts.unit.21 | 0ms | Recorded |
| passed | rejects unsupported ISO-BMFF brands instead of treating every ftyp file as MP4 media-prompts.unit.22 | 0ms | Recorded |
| passed | recognizes ZIP files by MIME or extension media-prompts.unit.23 | 0ms | Recorded |
| passed | business-type initial creation includes only the eight source-image media families media-prompts.unit.24 | 1ms | Recorded |
| passed | negative guidance is read only from a non-empty structured request field media-prompts.unit.25 | 0ms | Recorded |
| passed | manual handoff responses require complete lifecycle lineage media-prompts.unit.26 | 0ms | Recorded |
| passed | hero-video handoff snapshots expose one work-item-bound source attachment media-prompts.unit.27 | 1ms | Recorded |
| passed | image negative guidance is read only from the governed main-prompt structure media-prompts.unit.28 | 0ms | Recorded |
| passed | target parsing allows an omitted selection media-prompts.unit.29 | 0ms | Recorded |
| passed | target parsing accepts and normalizes an exact selection media-prompts.unit.30 | 0ms | Recorded |
| passed | target parsing rejects incomplete, duplicate, and unknown fields media-prompts.unit.31 | 1ms | Recorded |
| passed | filenames are deterministic and use a media-aware extension media-prompts.unit.32 | 0ms | Recorded |
| passed | filename generation rejects invalid lineage values media-prompts.unit.33 | 0ms | Recorded |
| passed | reserve input parser accepts and normalizes the documented contract media-prompts.unit.34 | 2ms | Recorded |
| passed | reserve input parser remains compatible with the legacy rights acknowledgment media-prompts.unit.35 | 0ms | Recorded |
| passed | reserve input parser preserves confirmed ZIP provenance media-prompts.unit.36 | 2ms | Recorded |
| passed | reserve input parser rejects unconfirmed or unsafe ZIP provenance media-prompts.unit.37 | 1ms | Recorded |
| passed | reserve input parser rejects unknown fields and unsafe media declarations media-prompts.unit.38 | 1ms | Recorded |
| passed | upload attempt idempotency replays duplicates and separates retries media-prompts.unit.39 | 0ms | Recorded |
| passed | mutation readiness requires private Blob storage media-prompts.unit.40 | 3ms | Recorded |
| passed | mutation access accepts an exact origin and rejects a cross-origin request media-prompts.unit.41 | 2ms | Recorded |
| passed | shared JSON parser failures remain controlled client errors media-prompts.unit.42 | 3ms | Recorded |
| passed | manifest preserves exact prompt lineage and selected items media-prompts.unit.43 | 2ms | Recorded |
| passed | production manifest rejects a ready prompt without a current work item media-prompts.unit.44 | 2ms | Recorded |
| passed | a newly created handoff satisfies the production manifest invariant media-prompts.unit.45 | 0ms | Recorded |
| passed | manifest rejects stale Nano Banana Pro production ratios media-prompts.unit.46 | 0ms | Recorded |
| passed | hero-video manifests carry the exact approved first-and-last-frame attachment media-prompts.unit.47 | 2ms | Recorded |
| passed | Google Flow batch preserves projected prompt order, filenames, settings, and lineage media-prompts.unit.48 | 1ms | Recorded |
| passed | Google Flow batch uses one final asset-only rename pass and a stable mapping token media-prompts.unit.49 | 1ms | Recorded |
| passed | Google Flow projection keeps generation, art, negative, and QA instructions without internal JSON media-prompts.unit.50 | 0ms | Recorded |
| passed | Google Flow projection fails closed when a required portable-package section is missing media-prompts.unit.51 | 0ms | Recorded |
| passed | Google Flow batch allows 100 items and rejects item 101 media-prompts.unit.52 | 8ms | Recorded |
| passed | Google Flow batch rejects mixed selections before formatting media-prompts.unit.53 | 0ms | Recorded |
| passed | filename matching ignores extensions and recognizes generator suffixes media-prompts.unit.54 | 0ms | Recorded |
| passed | Google Flow ZIP names that retain the requested extension auto-match exactly media-prompts.unit.55 | 1ms | Recorded |
| passed | truncated filenames receive a unique semantic auto-match media-prompts.unit.56 | 1ms | Recorded |
| passed | Flow semantic filenames map offering names after generic visual words are removed media-prompts.unit.57 | 0ms | Recorded |
| passed | ambiguous archive entries remain blocked instead of being auto-confirmed media-prompts.unit.58 | 0ms | Recorded |
| passed | Flow ZIP renames produce unique semantic, dimension, and related-order auto-matches media-prompts.unit.59 | 2ms | Recorded |
| passed | unmaterialized rows cannot be exported or matched to an upload media-prompts.unit.60 | 0ms | Recorded |
| passed | a mixed selection exports its ready rows without weakening manifest validation media-prompts.unit.61 | 0ms | Recorded |
| passed | BrandLift-managed routes cannot enter a manual export media-prompts.unit.62 | 0ms | Recorded |
| passed | hero-video handoffs accept one exact approved endpoint binding media-prompts.unit.63 | 1ms | Recorded |
| passed | hero-video handoffs reject blocked or mismatched endpoint bindings media-prompts.unit.64 | 0ms | Recorded |
| passed | prototype manifest exports prompts without inventing durable work items media-prompts.unit.65 | 15ms | Recorded |
| passed | prototype manifest rejects prompts without the demo marker media-prompts.unit.66 | 3ms | Recorded |
| passed | prototype image prompts use provider-supported production ratios media-prompts.unit.67 | 1ms | Recorded |
| passed | normalizes open, bounded, clamped, and suffix byte ranges media-prompts.unit.68 | 2ms | Recorded |
| passed | rejects malformed, multiple, empty, and unsatisfiable ranges media-prompts.unit.69 | 1ms | Recorded |
| passed | Media Library reads and mutations preserve the server-derived operator media-prompts.unit.70 | 4ms | Recorded |
| passed | Media Library rejects client and emulated operators media-prompts.unit.71 | 1ms | Recorded |
| passed | Media Library rejects cross-origin mutations on every production path media-prompts.unit.72 | 1ms | Recorded |
| passed | catalog status and session overrides partition business targets with completion precedence media-prompts.unit.73 | 1ms | Recorded |
| passed | resume returns to the Flow batch without durable initial-creation review work media-prompts.unit.74 | 0ms | Recorded |
| passed | resume opens review for an initial asset or persisted review decision media-prompts.unit.75 | 0ms | Recorded |
| passed | library asset URLs request every business-type asset page across recipe versions media-prompts.unit.76 | 0ms | Recorded |
| passed | active review queues stay within the API limit while loading a full media kit media-prompts.unit.77 | 0ms | Recorded |
| passed | active workflow state survives a page remount during persisted analysis media-prompts.unit.78 | 0ms | Recorded |
| passed | v11 exposes provider-valid Nano Banana Pro and Veo 3.1 manual recommendations media-prompts.unit.79 | 3ms | Recorded |
| passed | v8 maps unsupported legacy image ratios to native production ratios media-prompts.unit.80 | 1ms | Recorded |
| passed | hero contracts reserve clean copy space and non-identifiable framing media-prompts.unit.81 | 7ms | Recorded |
| passed | Veo prompts carry a deterministic closed-cycle loop contract media-prompts.unit.82 | 1ms | Recorded |
| passed | every Nano Banana Pro package carries deterministic inline negative guidance without a provider pseudo-field media-prompts.unit.83 | 13ms | Recorded |
| passed | every portable prompt embeds its complete context, settings, attribution, and controls media-prompts.unit.84 | 20ms | Recorded |
| passed | hero-video packages fail closed without an endpoint and become ready only with a fully approved attachment media-prompts.unit.85 | 1ms | Recorded |
| passed | every category and media type resolves complete governed policy metadata media-prompts.unit.86 | 9ms | Recorded |
| passed | all eleven media types have the reviewed people-presence mode media-prompts.unit.87 | 0ms | Recorded |
| passed | trust people selection is deterministic by reviewed category media-prompts.unit.88 | 1ms | Recorded |
| passed | every resolved copy prompt carries its complete people policy media-prompts.unit.89 | 93ms | Recorded |
| passed | zero-person roles use static depictions without person-dependent PPE cues media-prompts.unit.90 | 4ms | Recorded |
| passed | static safety adaptation retains useful non-human constraints media-prompts.unit.91 | 0ms | Recorded |
| passed | resolved subjects avoid double articles and duplicated action verbs media-prompts.unit.92 | 3ms | Recorded |
| passed | hero video motion never contradicts stationary safety requirements media-prompts.unit.93 | 1ms | Recorded |
| passed | outcome roles remain result-first instead of reintroducing human outcomes media-prompts.unit.94 | 1ms | Recorded |
| passed | the reviewed high-risk business types preserve their exact safety boundaries media-prompts.unit.95 | 1ms | Recorded |
| passed | business visual contracts produce eight semantically distinct on-theme prompts media-prompts.unit.96 | 13ms | Recorded |
| passed | every category resolves a structured business visual profile before scene planning media-prompts.unit.97 | 2ms | Recorded |
| passed | reviewed amusement-park and bicycle-store plans require concrete business anchors media-prompts.unit.98 | 5ms | Recorded |
| passed | reviewed Brewpub plan expresses craft, atmosphere, and eight visibly different intentions media-prompts.unit.99 | 2ms | Recorded |
| passed | amusement park and casino no longer share category-level scene cores media-prompts.unit.100 | 3ms | Recorded |
| passed | semantic diversity validation rejects angle-only duplicate scenes media-prompts.unit.101 | 3ms | Recorded |
| passed | copy/paste packages keep audit data outside a concise resolved creative prompt media-prompts.unit.102 | 1ms | Recorded |
| passed | production and delivery ratios remain distinct for the social crop media-prompts.unit.103 | 0ms | Recorded |
| passed | icon prompts use the strict zero-glyph safety, text, and QA policies media-prompts.unit.104 | 1ms | Recorded |
| passed | photographic prompts review incidental environmental text but reject promotional text media-prompts.unit.105 | 1ms | Recorded |
| passed | recipes route each asset through the approved manual or internal production method media-prompts.unit.106 | 1ms | Recorded |
| passed | the icon recipe materializes six independent one-output slots media-prompts.unit.107 | 3ms | Recorded |
| passed | every template placeholder is declared, including people policy and depiction media-prompts.unit.108 | 0ms | Recorded |
Duration: 1.7s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
Compared with the prior run: +0 passed, +0 failed.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | active workflow state survives a page remount during persisted analysis media-prompts.unit.78 | 0ms | Recorded |
| passed | v8 maps unsupported legacy image ratios to native production ratios media-prompts.unit.80 | 1ms | Recorded |
| passed | hero contracts reserve clean copy space and non-identifiable framing media-prompts.unit.81 | 7ms | Recorded |
| passed | Veo prompts carry a deterministic closed-cycle loop contract media-prompts.unit.82 | 1ms | Recorded |
| passed | every Nano Banana Pro package carries deterministic inline negative guidance without a provider pseudo-field media-prompts.unit.83 | 13ms | Recorded |
| passed | every portable prompt embeds its complete context, settings, attribution, and controls media-prompts.unit.84 | 20ms | Recorded |
| passed | hero-video packages fail closed without an endpoint and become ready only with a fully approved attachment media-prompts.unit.85 | 1ms | Recorded |
| passed | every category and media type resolves complete governed policy metadata media-prompts.unit.86 | 9ms | Recorded |
| passed | all eleven media types have the reviewed people-presence mode media-prompts.unit.87 | 0ms | Recorded |
| passed | trust people selection is deterministic by reviewed category media-prompts.unit.88 | 1ms | Recorded |
| passed | every resolved copy prompt carries its complete people policy media-prompts.unit.89 | 93ms | Recorded |
| passed | zero-person roles use static depictions without person-dependent PPE cues media-prompts.unit.90 | 4ms | Recorded |
| passed | static safety adaptation retains useful non-human constraints media-prompts.unit.91 | 0ms | Recorded |
| passed | resolved subjects avoid double articles and duplicated action verbs media-prompts.unit.92 | 3ms | Recorded |
| passed | hero video motion never contradicts stationary safety requirements media-prompts.unit.93 | 1ms | Recorded |
| passed | outcome roles remain result-first instead of reintroducing human outcomes media-prompts.unit.94 | 1ms | Recorded |
| passed | the reviewed high-risk business types preserve their exact safety boundaries media-prompts.unit.95 | 1ms | Recorded |
| passed | business visual contracts produce eight semantically distinct on-theme prompts media-prompts.unit.96 | 13ms | Recorded |
| passed | every category resolves a structured business visual profile before scene planning media-prompts.unit.97 | 2ms | Recorded |
| passed | reviewed amusement-park and bicycle-store plans require concrete business anchors media-prompts.unit.98 | 5ms | Recorded |
| passed | reviewed Brewpub plan expresses craft, atmosphere, and eight visibly different intentions media-prompts.unit.99 | 2ms | Recorded |
| passed | amusement park and casino no longer share category-level scene cores media-prompts.unit.100 | 3ms | Recorded |
| passed | semantic diversity validation rejects angle-only duplicate scenes media-prompts.unit.101 | 3ms | Recorded |
| passed | copy/paste packages keep audit data outside a concise resolved creative prompt media-prompts.unit.102 | 1ms | Recorded |
| passed | production and delivery ratios remain distinct for the social crop media-prompts.unit.103 | 0ms | Recorded |
| passed | icon prompts use the strict zero-glyph safety, text, and QA policies media-prompts.unit.104 | 1ms | Recorded |
| passed | photographic prompts review incidental environmental text but reject promotional text media-prompts.unit.105 | 1ms | Recorded |
| passed | recipes route each asset through the approved manual or internal production method media-prompts.unit.106 | 1ms | Recorded |
| passed | the icon recipe materializes six independent one-output slots media-prompts.unit.107 | 3ms | Recorded |
| passed | every template placeholder is declared, including people policy and depiction media-prompts.unit.108 | 0ms | Recorded |
| passed | prototype image prompts use provider-supported production ratios media-prompts.unit.67 | 1ms | Recorded |
| passed | normalizes open, bounded, clamped, and suffix byte ranges media-prompts.unit.68 | 2ms | Recorded |
| passed | rejects malformed, multiple, empty, and unsatisfiable ranges media-prompts.unit.69 | 1ms | Recorded |
| passed | Media Library reads and mutations preserve the server-derived operator media-prompts.unit.70 | 4ms | Recorded |
| passed | Media Library rejects client and emulated operators media-prompts.unit.71 | 1ms | Recorded |
| passed | Media Library rejects cross-origin mutations on every production path media-prompts.unit.72 | 1ms | Recorded |
| passed | catalog status and session overrides partition business targets with completion precedence media-prompts.unit.73 | 1ms | Recorded |
| passed | resume returns to the Flow batch without durable initial-creation review work media-prompts.unit.74 | 0ms | Recorded |
| passed | resume opens review for an initial asset or persisted review decision media-prompts.unit.75 | 0ms | Recorded |
| passed | library asset URLs request every business-type asset page across recipe versions media-prompts.unit.76 | 0ms | Recorded |
| passed | mutation readiness requires private Blob storage media-prompts.unit.40 | 3ms | Recorded |
| passed | mutation access accepts an exact origin and rejects a cross-origin request media-prompts.unit.41 | 2ms | Recorded |
| passed | shared JSON parser failures remain controlled client errors media-prompts.unit.42 | 3ms | Recorded |
| passed | manifest preserves exact prompt lineage and selected items media-prompts.unit.43 | 2ms | Recorded |
| passed | production manifest rejects a ready prompt without a current work item media-prompts.unit.44 | 2ms | Recorded |
| passed | a newly created handoff satisfies the production manifest invariant media-prompts.unit.45 | 0ms | Recorded |
| passed | manifest rejects stale Nano Banana Pro production ratios media-prompts.unit.46 | 0ms | Recorded |
| passed | hero-video manifests carry the exact approved first-and-last-frame attachment media-prompts.unit.47 | 2ms | Recorded |
| passed | Google Flow batch preserves projected prompt order, filenames, settings, and lineage media-prompts.unit.48 | 1ms | Recorded |
| passed | Google Flow batch uses one final asset-only rename pass and a stable mapping token media-prompts.unit.49 | 1ms | Recorded |
| passed | Google Flow projection keeps generation, art, negative, and QA instructions without internal JSON media-prompts.unit.50 | 0ms | Recorded |
| passed | Google Flow projection fails closed when a required portable-package section is missing media-prompts.unit.51 | 0ms | Recorded |
| passed | Google Flow batch allows 100 items and rejects item 101 media-prompts.unit.52 | 8ms | Recorded |
| passed | Google Flow batch rejects mixed selections before formatting media-prompts.unit.53 | 0ms | Recorded |
| passed | filename matching ignores extensions and recognizes generator suffixes media-prompts.unit.54 | 0ms | Recorded |
| passed | Google Flow ZIP names that retain the requested extension auto-match exactly media-prompts.unit.55 | 1ms | Recorded |
| passed | truncated filenames receive a unique semantic auto-match media-prompts.unit.56 | 1ms | Recorded |
| passed | Flow semantic filenames map offering names after generic visual words are removed media-prompts.unit.57 | 0ms | Recorded |
| passed | ambiguous archive entries remain blocked instead of being auto-confirmed media-prompts.unit.58 | 0ms | Recorded |
| passed | Flow ZIP renames produce unique semantic, dimension, and related-order auto-matches media-prompts.unit.59 | 2ms | Recorded |
| passed | unmaterialized rows cannot be exported or matched to an upload media-prompts.unit.60 | 0ms | Recorded |
| passed | a mixed selection exports its ready rows without weakening manifest validation media-prompts.unit.61 | 0ms | Recorded |
| passed | BrandLift-managed routes cannot enter a manual export media-prompts.unit.62 | 0ms | Recorded |
| passed | hero-video handoffs accept one exact approved endpoint binding media-prompts.unit.63 | 1ms | Recorded |
| passed | hero-video handoffs reject blocked or mismatched endpoint bindings media-prompts.unit.64 | 0ms | Recorded |
| passed | prototype manifest exports prompts without inventing durable work items media-prompts.unit.65 | 15ms | Recorded |
| passed | prototype manifest rejects prompts without the demo marker media-prompts.unit.66 | 3ms | Recorded |
| passed | active review queues stay within the API limit while loading a full media kit media-prompts.unit.77 | 0ms | Recorded |
| passed | v11 exposes provider-valid Nano Banana Pro and Veo 3.1 manual recommendations media-prompts.unit.79 | 3ms | Recorded |
| passed | the real ZIP reader rejects duplicate extracted media content media-prompts.unit.17 | 30ms | Recorded |
| passed | the real ZIP reader extracts media and records cryptographic provenance media-prompts.unit.16 | 157ms | Recorded |
| passed | generated API and lease credentials are opaque and unique media-prompts.unit.15 | 1ms | Recorded |
| passed | secret comparisons fail closed media-prompts.unit.14 | 0ms | Recorded |
| passed | canonical JSON rejects unsupported values and cycles media-prompts.unit.13 | 1ms | Recorded |
| passed | canonical JSON hashes objects independently of key order media-prompts.unit.12 | 1ms | Recorded |
| passed | machine request headers are parsed narrowly media-prompts.unit.11 | 1ms | Recorded |
| passed | JSON request parsing enforces media type, object shape, and byte limit media-prompts.unit.10 | 30ms | Recorded |
| passed | protocol configuration applies bounded defaults and overrides media-prompts.unit.9 | 0ms | Recorded |
| passed | governed output counts require an explicitly ready package media-prompts.unit.8 | 1ms | Recorded |
| passed | lease credentials are accepted only from fenced headers media-prompts.unit.7 | 18ms | Recorded |
| passed | heartbeat progress and failures use controlled safe schemas media-prompts.unit.6 | 1ms | Recorded |
| passed | completion accepts reported evidence but rejects duplicate upload IDs media-prompts.unit.5 | 1ms | Recorded |
| passed | upload reservation input accepts only the governed output contract media-prompts.unit.4 | 1ms | Recorded |
| passed | Blob upload wire parser rejects unsupported and unbounded callback data media-prompts.unit.3 | 1ms | Recorded |
| passed | Blob upload wire parser accepts the signed upload-completed callback media-prompts.unit.2 | 0ms | Recorded |
| passed | negative guidance is read only from a non-empty structured request field media-prompts.unit.25 | 0ms | Recorded |
| passed | manual handoff responses require complete lifecycle lineage media-prompts.unit.26 | 0ms | Recorded |
| passed | hero-video handoff snapshots expose one work-item-bound source attachment media-prompts.unit.27 | 1ms | Recorded |
| passed | image negative guidance is read only from the governed main-prompt structure media-prompts.unit.28 | 0ms | Recorded |
| passed | target parsing allows an omitted selection media-prompts.unit.29 | 0ms | Recorded |
| passed | target parsing accepts and normalizes an exact selection media-prompts.unit.30 | 0ms | Recorded |
| passed | target parsing rejects incomplete, duplicate, and unknown fields media-prompts.unit.31 | 1ms | Recorded |
| passed | filenames are deterministic and use a media-aware extension media-prompts.unit.32 | 0ms | Recorded |
| passed | filename generation rejects invalid lineage values media-prompts.unit.33 | 0ms | Recorded |
| passed | reserve input parser accepts and normalizes the documented contract media-prompts.unit.34 | 2ms | Recorded |
| passed | reserve input parser remains compatible with the legacy rights acknowledgment media-prompts.unit.35 | 0ms | Recorded |
| passed | reserve input parser preserves confirmed ZIP provenance media-prompts.unit.36 | 2ms | Recorded |
| passed | reserve input parser rejects unconfirmed or unsafe ZIP provenance media-prompts.unit.37 | 1ms | Recorded |
| passed | reserve input parser rejects unknown fields and unsafe media declarations media-prompts.unit.38 | 1ms | Recorded |
| passed | upload attempt idempotency replays duplicates and separates retries media-prompts.unit.39 | 0ms | Recorded |
| passed | Blob upload wire parser accepts token requests without rebuilding them media-prompts.unit.1 | 4ms | Recorded |
| passed | validates the supplied Flow archive shape before extraction media-prompts.unit.18 | 2ms | Recorded |
| passed | skips only directories and named metadata without extracting them media-prompts.unit.19 | 0ms | Recorded |
| passed | business-type initial creation includes only the eight source-image media families media-prompts.unit.24 | 1ms | Recorded |
| passed | recognizes ZIP files by MIME or extension media-prompts.unit.23 | 0ms | Recorded |
| passed | rejects unsupported ISO-BMFF brands instead of treating every ftyp file as MP4 media-prompts.unit.22 | 0ms | Recorded |
| passed | recognizes supported media signatures and rejects extension spoofing media-prompts.unit.21 | 0ms | Recorded |
| passed | rejects traversal, encryption, duplicate names, and expansion bombs media-prompts.unit.20 | 1ms | Recorded |
Duration: 1.7s
Requested by: vercel:doernaz-5523
Trigger: Seed
Environment: Recorded validation environment
No earlier run is available for comparison.
| Result | Validation | Duration | Evidence |
|---|---|---|---|
| passed | normalizes open, bounded, clamped, and suffix byte ranges media-prompts.unit.68 | 2ms | Recorded |
| passed | rejects malformed, multiple, empty, and unsatisfiable ranges media-prompts.unit.69 | 1ms | Recorded |
| passed | Media Library reads and mutations preserve the server-derived operator media-prompts.unit.70 | 4ms | Recorded |
| passed | Media Library rejects client and emulated operators media-prompts.unit.71 | 1ms | Recorded |
| passed | Media Library rejects cross-origin mutations on every production path media-prompts.unit.72 | 1ms | Recorded |
| passed | catalog status and session overrides partition business targets with completion precedence media-prompts.unit.73 | 1ms | Recorded |
| passed | resume returns to the Flow batch without durable initial-creation review work media-prompts.unit.74 | 0ms | Recorded |
| passed | resume opens review for an initial asset or persisted review decision media-prompts.unit.75 | 0ms | Recorded |
| passed | library asset URLs request every business-type asset page across recipe versions media-prompts.unit.76 | 0ms | Recorded |
| passed | active review queues stay within the API limit while loading a full media kit media-prompts.unit.77 | 0ms | Recorded |
| passed | active workflow state survives a page remount during persisted analysis media-prompts.unit.78 | 0ms | Recorded |
| passed | v11 exposes provider-valid Nano Banana Pro and Veo 3.1 manual recommendations media-prompts.unit.79 | 3ms | Recorded |
| passed | v8 maps unsupported legacy image ratios to native production ratios media-prompts.unit.80 | 1ms | Recorded |
| passed | hero contracts reserve clean copy space and non-identifiable framing media-prompts.unit.81 | 7ms | Recorded |
| passed | Veo prompts carry a deterministic closed-cycle loop contract media-prompts.unit.82 | 1ms | Recorded |
| passed | every Nano Banana Pro package carries deterministic inline negative guidance without a provider pseudo-field media-prompts.unit.83 | 13ms | Recorded |
| passed | every portable prompt embeds its complete context, settings, attribution, and controls media-prompts.unit.84 | 20ms | Recorded |
| passed | hero-video packages fail closed without an endpoint and become ready only with a fully approved attachment media-prompts.unit.85 | 1ms | Recorded |
| passed | every category and media type resolves complete governed policy metadata media-prompts.unit.86 | 9ms | Recorded |
| passed | all eleven media types have the reviewed people-presence mode media-prompts.unit.87 | 0ms | Recorded |
| passed | trust people selection is deterministic by reviewed category media-prompts.unit.88 | 1ms | Recorded |
| passed | every resolved copy prompt carries its complete people policy media-prompts.unit.89 | 93ms | Recorded |
| passed | zero-person roles use static depictions without person-dependent PPE cues media-prompts.unit.90 | 4ms | Recorded |
| passed | static safety adaptation retains useful non-human constraints media-prompts.unit.91 | 0ms | Recorded |
| passed | resolved subjects avoid double articles and duplicated action verbs media-prompts.unit.92 | 3ms | Recorded |
| passed | hero video motion never contradicts stationary safety requirements media-prompts.unit.93 | 1ms | Recorded |
| passed | outcome roles remain result-first instead of reintroducing human outcomes media-prompts.unit.94 | 1ms | Recorded |
| passed | the reviewed high-risk business types preserve their exact safety boundaries media-prompts.unit.95 | 1ms | Recorded |
| passed | business visual contracts produce eight semantically distinct on-theme prompts media-prompts.unit.96 | 13ms | Recorded |
| passed | every category resolves a structured business visual profile before scene planning media-prompts.unit.97 | 2ms | Recorded |
| passed | reviewed amusement-park and bicycle-store plans require concrete business anchors media-prompts.unit.98 | 5ms | Recorded |
| passed | reviewed Brewpub plan expresses craft, atmosphere, and eight visibly different intentions media-prompts.unit.99 | 2ms | Recorded |
| passed | amusement park and casino no longer share category-level scene cores media-prompts.unit.100 | 3ms | Recorded |
| passed | semantic diversity validation rejects angle-only duplicate scenes media-prompts.unit.101 | 3ms | Recorded |
| passed | copy/paste packages keep audit data outside a concise resolved creative prompt media-prompts.unit.102 | 1ms | Recorded |
| passed | production and delivery ratios remain distinct for the social crop media-prompts.unit.103 | 0ms | Recorded |
| passed | icon prompts use the strict zero-glyph safety, text, and QA policies media-prompts.unit.104 | 1ms | Recorded |
| passed | photographic prompts review incidental environmental text but reject promotional text media-prompts.unit.105 | 1ms | Recorded |
| passed | recipes route each asset through the approved manual or internal production method media-prompts.unit.106 | 1ms | Recorded |
| passed | the icon recipe materializes six independent one-output slots media-prompts.unit.107 | 3ms | Recorded |
| passed | every template placeholder is declared, including people policy and depiction media-prompts.unit.108 | 0ms | Recorded |
| passed | Blob upload wire parser accepts token requests without rebuilding them media-prompts.unit.1 | 4ms | Recorded |
| passed | Blob upload wire parser accepts the signed upload-completed callback media-prompts.unit.2 | 0ms | Recorded |
| passed | Blob upload wire parser rejects unsupported and unbounded callback data media-prompts.unit.3 | 1ms | Recorded |
| passed | upload reservation input accepts only the governed output contract media-prompts.unit.4 | 1ms | Recorded |
| passed | completion accepts reported evidence but rejects duplicate upload IDs media-prompts.unit.5 | 1ms | Recorded |
| passed | heartbeat progress and failures use controlled safe schemas media-prompts.unit.6 | 1ms | Recorded |
| passed | lease credentials are accepted only from fenced headers media-prompts.unit.7 | 18ms | Recorded |
| passed | governed output counts require an explicitly ready package media-prompts.unit.8 | 1ms | Recorded |
| passed | protocol configuration applies bounded defaults and overrides media-prompts.unit.9 | 0ms | Recorded |
| passed | JSON request parsing enforces media type, object shape, and byte limit media-prompts.unit.10 | 30ms | Recorded |
| passed | machine request headers are parsed narrowly media-prompts.unit.11 | 1ms | Recorded |
| passed | canonical JSON hashes objects independently of key order media-prompts.unit.12 | 1ms | Recorded |
| passed | canonical JSON rejects unsupported values and cycles media-prompts.unit.13 | 1ms | Recorded |
| passed | secret comparisons fail closed media-prompts.unit.14 | 0ms | Recorded |
| passed | generated API and lease credentials are opaque and unique media-prompts.unit.15 | 1ms | Recorded |
| passed | the real ZIP reader extracts media and records cryptographic provenance media-prompts.unit.16 | 157ms | Recorded |
| passed | the real ZIP reader rejects duplicate extracted media content media-prompts.unit.17 | 30ms | Recorded |
| passed | validates the supplied Flow archive shape before extraction media-prompts.unit.18 | 2ms | Recorded |
| passed | skips only directories and named metadata without extracting them media-prompts.unit.19 | 0ms | Recorded |
| passed | rejects traversal, encryption, duplicate names, and expansion bombs media-prompts.unit.20 | 1ms | Recorded |
| passed | recognizes supported media signatures and rejects extension spoofing media-prompts.unit.21 | 0ms | Recorded |
| passed | rejects unsupported ISO-BMFF brands instead of treating every ftyp file as MP4 media-prompts.unit.22 | 0ms | Recorded |
| passed | recognizes ZIP files by MIME or extension media-prompts.unit.23 | 0ms | Recorded |
| passed | business-type initial creation includes only the eight source-image media families media-prompts.unit.24 | 1ms | Recorded |
| passed | negative guidance is read only from a non-empty structured request field media-prompts.unit.25 | 0ms | Recorded |
| passed | manual handoff responses require complete lifecycle lineage media-prompts.unit.26 | 0ms | Recorded |
| passed | hero-video handoff snapshots expose one work-item-bound source attachment media-prompts.unit.27 | 1ms | Recorded |
| passed | image negative guidance is read only from the governed main-prompt structure media-prompts.unit.28 | 0ms | Recorded |
| passed | target parsing allows an omitted selection media-prompts.unit.29 | 0ms | Recorded |
| passed | target parsing accepts and normalizes an exact selection media-prompts.unit.30 | 0ms | Recorded |
| passed | target parsing rejects incomplete, duplicate, and unknown fields media-prompts.unit.31 | 1ms | Recorded |
| passed | filenames are deterministic and use a media-aware extension media-prompts.unit.32 | 0ms | Recorded |
| passed | filename generation rejects invalid lineage values media-prompts.unit.33 | 0ms | Recorded |
| passed | reserve input parser accepts and normalizes the documented contract media-prompts.unit.34 | 2ms | Recorded |
| passed | reserve input parser remains compatible with the legacy rights acknowledgment media-prompts.unit.35 | 0ms | Recorded |
| passed | reserve input parser preserves confirmed ZIP provenance media-prompts.unit.36 | 2ms | Recorded |
| passed | reserve input parser rejects unconfirmed or unsafe ZIP provenance media-prompts.unit.37 | 1ms | Recorded |
| passed | reserve input parser rejects unknown fields and unsafe media declarations media-prompts.unit.38 | 1ms | Recorded |
| passed | upload attempt idempotency replays duplicates and separates retries media-prompts.unit.39 | 0ms | Recorded |
| passed | mutation readiness requires private Blob storage media-prompts.unit.40 | 3ms | Recorded |
| passed | mutation access accepts an exact origin and rejects a cross-origin request media-prompts.unit.41 | 2ms | Recorded |
| passed | shared JSON parser failures remain controlled client errors media-prompts.unit.42 | 3ms | Recorded |
| passed | manifest preserves exact prompt lineage and selected items media-prompts.unit.43 | 2ms | Recorded |
| passed | production manifest rejects a ready prompt without a current work item media-prompts.unit.44 | 2ms | Recorded |
| passed | a newly created handoff satisfies the production manifest invariant media-prompts.unit.45 | 0ms | Recorded |
| passed | manifest rejects stale Nano Banana Pro production ratios media-prompts.unit.46 | 0ms | Recorded |
| passed | hero-video manifests carry the exact approved first-and-last-frame attachment media-prompts.unit.47 | 2ms | Recorded |
| passed | Google Flow batch preserves projected prompt order, filenames, settings, and lineage media-prompts.unit.48 | 1ms | Recorded |
| passed | Google Flow batch uses one final asset-only rename pass and a stable mapping token media-prompts.unit.49 | 1ms | Recorded |
| passed | Google Flow projection keeps generation, art, negative, and QA instructions without internal JSON media-prompts.unit.50 | 0ms | Recorded |
| passed | Google Flow projection fails closed when a required portable-package section is missing media-prompts.unit.51 | 0ms | Recorded |
| passed | Google Flow batch allows 100 items and rejects item 101 media-prompts.unit.52 | 8ms | Recorded |
| passed | Google Flow batch rejects mixed selections before formatting media-prompts.unit.53 | 0ms | Recorded |
| passed | filename matching ignores extensions and recognizes generator suffixes media-prompts.unit.54 | 0ms | Recorded |
| passed | Google Flow ZIP names that retain the requested extension auto-match exactly media-prompts.unit.55 | 1ms | Recorded |
| passed | truncated filenames receive a unique semantic auto-match media-prompts.unit.56 | 1ms | Recorded |
| passed | Flow semantic filenames map offering names after generic visual words are removed media-prompts.unit.57 | 0ms | Recorded |
| passed | ambiguous archive entries remain blocked instead of being auto-confirmed media-prompts.unit.58 | 0ms | Recorded |
| passed | Flow ZIP renames produce unique semantic, dimension, and related-order auto-matches media-prompts.unit.59 | 2ms | Recorded |
| passed | unmaterialized rows cannot be exported or matched to an upload media-prompts.unit.60 | 0ms | Recorded |
| passed | a mixed selection exports its ready rows without weakening manifest validation media-prompts.unit.61 | 0ms | Recorded |
| passed | BrandLift-managed routes cannot enter a manual export media-prompts.unit.62 | 0ms | Recorded |
| passed | hero-video handoffs accept one exact approved endpoint binding media-prompts.unit.63 | 1ms | Recorded |
| passed | hero-video handoffs reject blocked or mismatched endpoint bindings media-prompts.unit.64 | 0ms | Recorded |
| passed | prototype manifest exports prompts without inventing durable work items media-prompts.unit.65 | 15ms | Recorded |
| passed | prototype manifest rejects prompts without the demo marker media-prompts.unit.66 | 3ms | Recorded |
| passed | prototype image prompts use provider-supported production ratios media-prompts.unit.67 | 1ms | Recorded |