{
  "version": "3.6.57.25.40.210",
  "build": "3.6.57.25.40.210",
  "baseline": "25.40.87",
  "features": [
    "quote_erp_pos_layout",
    "print_letter_ticket80",
    "keyboard_shortcuts",
    "neolink_manual_stage1",
    "luna_presence_controls",
    "luna_sla_coverage",
    "luna_omnichannel_ai_panel",
    "luna_multi_product_quote_visibility",
    "quote_discount_0_100",
    "quote_discount_approval_over_35",
    "quote_discount_supervisor_management_queue",
    "luna_ab_selector_removed",
    "single_luna_production_ui",
    "frontend_build_version_aligned",
    "frontend_update_reload_loop_fixed",
    "whatsapp_multichannel_ui_v1",
    "whatsapp_conversation_channel_binding",
    "whatsapp_private_publicity_badges",
    "whatsapp_line_filter",
    "frontend_asset_cache_bust_aligned",
    "monthly_sales_report_v1",
    "advisor_monthly_breakdown",
    "supervisor_monthly_activity",
    "reports_print_to_pdf",
    "monthly_report_role_scope",
    "external_billing_pdf_snapshot_separate",
    "external_billing_receivable_distinction",
    "avoid_double_counting",
    "same_chat_social_quote_without_phone",
    "same_conversation_server_quote_gate",
    "sale_and_credit_identity_strict",
    "client_360_call_followup",
    "call_outcome_history",
    "call_next_due_task",
    "supervisor_call_for_advisor",
    "agenda_call_result",
    "official_deposit_image_one_click",
    "official_deposit_media_library_payments",
    "official_media_idempotent_multichannel_send",
    "quote_display_price_server_match",
    "quote_approved_price_stale_warning",
    "quote_server_hydration_after_save",
    "consumer_final_provisional_quote_display",
    "customer_id_quote_followup_link",
    "identity_separate_from_document_label",
    "home_store_goal_real_sales_to_close",
    "home_per_advisor_goal_actual_pipeline",
    "verified_external_sales_cutoff_separate_ledger",
    "role_scoped_advisor_dashboard",
    "operations_4_area_tabs_plus_inventory",
    "operations_action_priority",
    "goals_real_sales_and_ledger_separate",
    "goals_advisor_progress",
    "sales_stage_tabs",
    "sales_compact_list_view",
    "sales_search",
    "sales_compact_cards_default",
    "sales_independent_column_scroll",
    "sales_card_expand_collapse",
    "sales_density_toggle",
    "quote_approval_products_readonly_tabs",
    "quote_approval_reload_before_decision",
    "shared_company_work_calendar",
    "workdays_elapsed_and_remaining",
    "documented_crm_productive_days_partial",
    "sales_projection_per_advisor_cutoff",
    "sales_projection_without_pipeline",
    "required_daily_pace",
    "goal_calendar_manager_editor",
    "receipt_review_without_strict_auto_ocr",
    "original_whatsapp_message_evidence_link",
    "receipt_full_existing_audited_ocr_vision_workflow",
    "duplicate_payment_message_guard",
    "receipt_only_explicit_advisor_selection",
    "no_automatic_receipt_ocr",
    "suppressed_automatic_receipt_false_positives",
    "manual_receipt_original_message_link",
    "receipt_extraction_distinct_from_bank_verification",
    "unregistered_destination_audited_review",
    "recognized_account_bank_conflict_review",
    "payment_unverified_status_clarity",
    "deposit_authorized_destination_selector_and_payment_timestamp",
    "quote_sale_unit_price_raise_only",
    "quote_server_catalog_minimum_price_enforced",
    "quote_price_increase_separate_supervisor_management_approval",
    "quote_approval_fingerprint_includes_base_and_selling_prices",
    "quote_finalize_blocked_until_price_approval",
    "quote_price_approval_product_detail",
    "quote_price_increase_bell_actionable_backend",
    "quote_price_increase_notification_direct_review",
    "quote_price_increase_approvals_badge_refresh",
    "quote_price_editor_inline_no_overlap",
    "quote_price_base_hint_below_sale",
    "quote_cart_responsive_container_grid",
    "pos_cash_pilot_control_v1",
    "pos_customer_wholesale_crm_lookup_v1",
    "pos_payments_split_cash_vs_bank_v1",
    "pos_readiness_safe_disabled",
    "pos_single_drawer_shift_policy",
    "pos_supervisor_assignment_rosa",
    "pos_supervision_read_only_route",
    "pos_manager_cash_visibility",
    "pos_unverified_close_blocked_in_frontend",
    "erp_own_catalog_6292_imported_without_supplier_stock",
    "erp_products_search_actual_crm_and_pos_ledger",
    "erp_purchase_order_create_confirm_partial_receive",
    "erp_purchase_receipt_idempotent_pos_kardex",
    "erp_stock_pending_crm_reconciliation_explicit",
    "erp_expense_request_review_without_cash_disbursement",
    "erp_pos_sales_remain_disabled",
    "quote_confirm_sale_without_stock",
    "supplier_demand_consolidation_by_sku",
    "supplier_po_sales_traceability",
    "purchase_pdf_download",
    "purchase_excel_csv_export",
    "mandatory_sale_payment_proof_deposit_neolink_cash_cod",
    "sidebar_collapsible_modules_working_routes",
    "quote_single_payment_selector_no_duplicate",
    "full_screen_sale_proof_review",
    "sale_confirmed_dedicated_route",
    "pos_cash_sidebar_direct_access",
    "erp_products_stock_purchases_sourcing_expenses_sidebar",
    "pos_sidebar_customer_lookup_jump_pilot",
    "v25_40_2_stable_baseline_cherry_pick",
    "cash_turns_audit_and_inventory_physical_count",
    "startup_recovery_local_v2539",
    "no_automatic_version_reload",
    "v25_40_3_module_declaration_fix",
    "erp_finance_management_summary_read_only_v1",
    "erp_inventory_cut_preview_read_only_v1",
    "resume_active_quote_same_conversation",
    "quote_pipeline_idempotent_sync_v1",
    "sale_stock_opening_gate_v1",
    "unified_purchase_requests_v2",
    "frozen_reference_cost_on_confirmation_v1",
    "finance_summary_v2",
    "sale_requires_open_cash_shift_backend",
    "cash_shift_sales_breakdown_by_advisor_and_method",
    "cash_daily_consolidated_sales",
    "cash_customer_by_customer_close_report",
    "quick_sale_cash_checkout_v1",
    "quote_discount_postgres_decimal_half_up_and_authorized_send_preservation",
    "quick_sale_topbar_shortcut",
    "quick_sale_manager_cash_handover",
    "cash_handover_denominations_audit",
    "quick_sale_cart_preparation_pending_stock_v254013",
    "quick_sale_supplier_x130_same_quote_price_v254013",
    "workshop_orders_operational_v1",
    "workshop_receipt_diagnosis_estimate_v1",
    "cash_close_manager_review_v3",
    "workshop_service_variable_price",
    "workshop_pos_sale_link",
    "service_non_inventory",
    "quick_sale_service_price_server_validation",
    "open_shift_sales_continue_with_pending_close",
    "pending_close_warning_not_sales_lock",
    "shared_open_shift_authorized_sellers",
    "workshop_order_partial_documentary_stock_opening",
    "quick_sale_authorized_open_shift",
    "quick_sale_centered_confirmation_modal",
    "pending_close_warning_not_blocking",
    "quick_sale_post_sale_form_reset",
    "quick_sale_tendered_cash_reset",
    "quick_sale_payment_reference_reset",
    "Caja: abonos a créditos en efectivo reducen cartera, aumentan gaveta y no duplican ventas.",
    "workshop_same_quote_search_engine",
    "workshop_aym_rt_motorama_catalog",
    "workshop_quote_catalog_materialization_safe",
    "cash_final_recount_supersedes_stale_pending_close",
    "cash_close_current_expected_recalculation",
    "cash_close_independent_manager_supervisor_review",
    "cash_close_denominations_final_count_ui",
    "cash_close_button_real_workflow",
    "cash_close_expected_formula_breakdown",
    "cash_close_live_balanced_surplus_shortage",
    "cash_close_balanced_direct_close",
    "cash_close_difference_control",
    "cash_close_credit_collections_and_expenses_reconciled",
    "cash_close_pending_expenses_visible",
    "cash_expense_approve_and_pay_from_close",
    "cash_expected_recalculates_after_expense_payment",
    "quote_to_sale_workspace_v2",
    "quote_to_sale_same_quote_no_recapture",
    "quote_sale_payment_method_gate",
    "quote_sale_deposit_full_match_before_won",
    "quote_sale_cod_guide_upload_and_exact_match",
    "quote_sale_cash_atomic_receipt_and_sale",
    "quote_sale_neolink_verified_only",
    "quote_sale_missing_stock_to_unified_supply",
    "quote_sale_pipeline_won_financial_branch",
    "quote_sale_fel_request_pending_configuration",
    "quote_sale_centered_final_confirmation",
    "quote_to_sale_quick_sale_layout_v254028",
    "quote_to_sale_credit_15d_authorized_v254028",
    "quote_credit_receivable_and_erp_link_v1",
    "quote_sale_same_quote_editable",
    "quote_sale_add_remove_products",
    "quote_sale_acceptance_by_confirm_action",
    "quote_sale_fel_action_after_sale",
    "erp_credit_15d_constraint_support",
    "sales_receipt_internal_numbered_v1",
    "sales_receipt_print_pdf_browser",
    "confirmed_sale_to_fulfillment_queue",
    "submanager_pending_dispatch_notification",
    "credit_approval_postsale_receipt_dispatch",
    "credit_sale_auto_refresh_after_approval",
    "sale_confirm_reload_recovery",
    "confirmed_sales_today_month_year_history",
    "confirmed_sales_summary_and_search",
    "commercial_document_template_black_red_v1",
    "quote_pdf_official_template_v1",
    "sales_receipt_official_template_v1",
    "quick_sale_receipt_official_template_v1",
    "website_whatsapp_qr_on_documents",
    "fel_visual_template_reserved_until_certified",
    "quote_authorization_at_sale_confirmation",
    "quick_sale_audited_historical_inventory_transition",
    "sale_commercial_authorization_price_and_discount_v2540341",
    "quick_sale_workshop_pending_inventory_without_stock_block",
    "contextual_payment_receipts",
    "editable_receipt_review",
    "bounded_receipt_vision",
    "compact_workshop_orders",
    "latest_cutoff_plus_confirmed_sales_live",
    "management_search_customers_without_debt_and_opening_balance",
    "corporate_whatsapp_number_owner_onboarding",
    "payment_evidence_bank_account_reference_unique",
    "payment_evidence_batch_idempotent_retry",
    "deposit_processing_button_lock_feedback",
    "supplier_invoice_manual_entry_v1",
    "cadisa_supplier_enabled",
    "supplier_invoice_direct_pos_kardex_entry",
    "supplier_invoice_duplicate_guard",
    "supplier_invoice_cash_credit_terms",
    "purchase_invoice_inline_product_search",
    "supplier_invoice_photo_ocr",
    "supplier_invoice_visual_structured_extraction",
    "supplier_invoice_code_auto_match",
    "supplier_invoice_ocr_review_gate",
    "supplier_invoice_ocr_audit_link",
    "manual_product_code_creation",
    "product_code_auto_sequence",
    "product_create_from_invoice_ocr",
    "product_create_from_supplier_quotation_ocr",
    "supplier_sku_equivalence_learning_on_creation",
    "product_creation_without_fake_inventory",
    "supplier_ocr_list_price_and_discount",
    "supplier_net_cost_persisted",
    "supplier_public_price_x130_suggestion",
    "invoice_line_supplier_discount_audit",
    "quote_to_sale_stale_reference_cleanup",
    "quote_to_sale_workspace_preflight",
    "credit_quote_conversion_nonblocking_stock",
    "warehouse_by_confirmed_sale_and_guide",
    "explicit_delivery_classification",
    "warehouse_audited_transitions",
    "daily_activity_intervals",
    "focus_aware_heartbeat",
    "daily_activity_report_csv_print",
    "sale_edit_cancel_v57_preserved",
    "compact_sale_workspace_v59",
    "iris_guided_sale_correction_before_dispatch",
    "dispatch_inventory_reconciliation_v59",
    "goal_closure_review_and_source_reconciliation_v59",
    "daily_management_capture_v62",
    "quote_active_time_v62",
    "calls_and_messages_evidence_v62",
    "card_and_fri_contado_quote_sale",
    "card_fri_quick_sale_receipt_registry",
    "card_fri_credit_customer_payments",
    "reference_deduplication_across_sales_and_credit",
    "physical_cash_kept_separate",
    "card_fri_shift_and_daily_collections",
    "credit_receipt_print_reprint",
    "required_freight_quote_and_quick_sale_v64",
    "atomic_costed_confirmation_v64",
    "automatic_processor_and_cod_expenses_v64",
    "internal_preparation_allocations_no_double_expense_v64",
    "document_cost_reconciliation_v64",
    "accounting_candidates_not_posted_v64",
    "phased_all_stations_shipping_gate_v64",
    "internal_journal_posting_v65",
    "approved_monthly_expenses_to_journal_v65",
    "general_ledger_running_balance_v65",
    "trial_balance_and_statements_v65",
    "audited_reversals_immutable_postings_v65",
    "account_catalog_review_and_opening_v65",
    "month_close_reopen_guard_v65",
    "full_period_csv_print_v65",
    "supplier_public_not_net_x130_v67",
    "supplier_pricing_server_calculation_v67",
    "ocr_source_price_normalization_v67",
    "procurement_add_catalog_products",
    "procurement_manual_stock_replenishment",
    "procurement_link_demand_before_stock",
    "procurement_create_new_code_shortcut",
    "procurement_no_fake_sales_for_replenishment",
    "procurement_live_master_search_v71",
    "procurement_fuzzy_supplier_code_search_v71",
    "procurement_main_search_add_product_v71",
    "daily_work_time_hierarchy_v72",
    "paid_sale_edit_preserves_allocations_and_proofs",
    "guided_sale_edit_reconciles_cod_before_dispatch",
    "sale_correction_payment_and_credit_balance_preview",
    "mandatory_shipping_guide_with_file",
    "package_editor_supervisor_management",
    "shipment_documentary_correction_audit",
    "all_shipping_packages_view",
    "pipeline_direct_customer_chat_v76",
    "whatsapp_dual_onboarding_coexistence_or_cloud_api",
    "whatsapp_cloud_api_pin_registration",
    "whatsapp_onboarding_success_autoclose",
    "workshop_part_sale_price_edit",
    "workshop_save_line_edits_before_checkout",
    "unified_pos_sales_layout_v80",
    "quote_sale_left_control_rail_v80",
    "quick_sale_left_control_rail_v80",
    "workshop_unified_sales_shell_v80",
    "standard_shipping_guide_before_confirmation_v80",
    "deposit_shipping_guide_upload_v80",
    "management_direct_commercial_authorization_v80",
    "stale_quote_price_refresh_v80",
    "cash_shortfall_display_v80",
    "unified_sales_right_control_rail_v254081",
    "quick_sale_clean_pos_layout_v254081",
    "workshop_clean_pos_layout_v254081",
    "quote_sale_clean_pos_layout_v254081",
    "approved_pos_visual_v254083",
    "segmented_payment_cash_fri_card_credit_cod_v254083",
    "general_discount_in_checkout_rail_v254083",
    "quick_sale_toolbar_compact_actions_v254083",
    "workshop_payment_preselection_v254083",
    "hide_available_units_in_sales_ui_v254083",
    "hide_supplier_markup_formula_in_sales_ui_v254083",
    "pos_compact_header_no_dead_space",
    "quote_shipping_guide_safe_recovery_v84",
    "shipping_cost_persist_before_guide_gate",
    "logistics_freight_visible_v84",
    "human_only_single_credit_approval_button",
    "overdue_credit_exception_does_not_unlock_future_sales",
    "confirmed_sale_returns_request_and_human_review",
    "return_quantity_stock_credit_guards",
    "original_sales_payments_guides_preserved",
    "v87_returns_preserved",
    "pos_refined_mockup_consolidated_v88",
    "pos_inter_lighter_typography_v88",
    "pos_payment_fields_modal_only_v88",
    "pos_session_advisor_hidden_v88",
    "luna_pending_human_action_blocks_auto_resume",
    "luna_manual_pause_from_human_mode",
    "luna_manual_resume_only_after_pending_action",
    "messages_publicity_primary_inbox_v92",
    "messages_inbox_tabs_publicity_important_wholesale_pending_all",
    "messages_last_activity_sort_v92",
    "messages_selected_chat_remains_visible_after_send_v92",
    "goals_dashboard_professional_v93",
    "goals_kpi_total_sales_profit_purchases_ticket",
    "goals_year_sales_vs_purchases_chart",
    "goals_profit_vs_cost_chart",
    "goals_payment_method_chart",
    "goals_daily_sales_chart",
    "goals_top_products_view",
    "goals_location_filter_v93",
    "chat_price_list_pdf_v94",
    "price_list_command_from_chat",
    "price_list_stock_aym_rt_motorama_only",
    "price_list_client_header_and_discount",
    "chat_price_list_model_or_family",
    "chat_price_list_stock_only_aym_rt_motorama",
    "chat_price_list_client_header_and_discount",
    "chat_price_list_button",
    "chat_price_list_model_or_family_modal",
    "chat_price_list_stocked_only_aym_rt_motorama",
    "chat_price_list_pdf_client_header_discount",
    "chat_price_list_brand_filter_v97",
    "social_quote_same_chat_verified_identity_fallback_v104",
    "authoritative_confirmed_sales_total_v104",
    "sales_attribution_executor_vs_advisor_v104",
    "profit_loss_statement_v106",
    "authoritative_sales_profit_loss_v106",
    "cogs_snapshot_and_fallback_v106",
    "operating_costs_and_paid_expenses_v106",
    "private_month_profit_dashboard_v106",
    "private_profit_visible_only_authorized_user_v106",
    "exact_daniel_backend_access",
    "net_vat_management_basis",
    "captured_and_estimated_coverage",
    "nonblocking_private_kpi",
    "returns_and_expense_deduplication",
    "backend_per_product_cost_floor",
    "commercial_margin_per_operation",
    "private_cost_plus_five_vat_scenario",
    "hr_restored",
    "commission_attainment_margin_cap",
    "payroll_journal_accrual_payment",
    "daily_payroll_savings",
    "aguinaldo_bono14_budget_reserves",
    "commission_schemes_by_employee",
    "commission_effective_month_versions",
    "commission_server_simulator",
    "commission_percent_profit_fixed_mixed_custom_tiers",
    "workshop_mechanic_liquidations",
    "normal_labor_70_percent",
    "italika_rate_catalog",
    "separate_fuel_settlement",
    "workshop_direct_cost_accounting",
    "automatic_os_labor_calculation",
    "default_mechanic",
    "mechanic_and_italika_selection_in_os",
    "client_followup_closed_quote_v112",
    "supervisor_followup_actual_actor_v112",
    "mixed_payments_cash_deposit_card_fri",
    "deposit_exact_amount_and_explicit_excess_ack",
    "deposit_allocation_and_legacy_pos_reuse_guard",
    "mixed_payment_drawer_receipt_and_processor_fees",
    "quick_workshop_authorization_modal_v114",
    "quick_authorization_notification_auto_open_v114",
    "straxora_ia_brand_identity_v117",
    "individual_exclusive_portfolio_v118",
    "enterprise_design_system_v119",
    "sidebar_hierarchy_pending_visibility_v120",
    "payment_search_v121",
    "warm_b2b_palettes_v122",
    "navigation_hover_v123",
    "auth_layout_v124",
    "sidebar_collapsed_start_v125",
    "advisor_workspace_context_v126",
    "conversation_attention_colors_v127",
    "premium_commercial_dashboard_v142",
    "reconciled_authoritative_daily_charts",
    "rule_based_actionable_ai_insights",
    "premium_omnichannel_presentation",
    "rrhh_main_menu_and_completed_interview_report_v141",
    "premium_all_modules_v143",
    "startup_ready_gate",
    "startup_deadline_and_retry",
    "startup_session_race_guard",
    "mechanic_weekly_loan_editing",
    "mechanic_individual_pay_override",
    "mechanic_payout_gross_loan_net",
    "mechanic_installment_no_double_weekly_deduction",
    "received_pdf_in_crm_preview",
    "attachment_original_filename_download",
    "large_pdf_download_timeout_adaptive",
    "daily_calls_all_sources_v153",
    "call_description_duration_required_v153",
    "call_save_idempotency_v153",
    "mechanic_payment_atomic_post_v154",
    "private_profit_partial_explicit_v154",
    "hr_collapsible_sidebar_sections_v155",
    "hr_sidebar_navigation_context_fix_v156",
    "workshop_inline_client_create_v159",
    "workshop_separate_order_views_v159",
    "workshop_scoped_pagination_search_v159",
    "compact_approval_inbox_v160",
    "approval_category_counts_v160",
    "approval_inbox_error_and_session_guards_v160",
    "quote_failure_diagnosis_v164",
    "manager_quote_review_inbox_v164",
    "quote_review_preserves_financial_guards_v164",
    "quote_product_cost_base_and_additional_v165",
    "manager_quote_cost_audit_v165",
    "quote_cost_confirmation_snapshot_v165",
    "quote_margin_preview_1000_lines_v165",
    "management_shipping_explanation_v167",
    "shipping_exception_invalidation_v167",
    "shipping_audit_v167",
    "server_verified_session_recovery_v174",
    "local_logout_shared_tab_activity_v174",
    "pending_message_file_recovery_v174",
    "auth_response_generation_guard_v174",
    "client_edit_unassigned_authorized_v177",
    "client_edit_server_permission_authoritative",
    "client_edit_load_error_retry",
    "confirmed_sale_cod_to_deposit_v178",
    "sale_edit_deposit_receipt_upload",
    "payment_method_disabled_guard",
    "payment_change_idempotent_audit",
    "prepaid_sale_cod_guide_dispatch_block",
    "confirmed_sales_quote_pos_workshop_unified",
    "confirmed_sales_paginated_history",
    "confirmed_sales_search_all_history",
    "home_vat_control_separate_summary",
    "private_vat_control_role_guard",
    "chat_direct_contact_lookup_v181",
    "chat_inbox_aux_nonblocking_v181",
    "chat_target_session_guards_v181",
    "purchase_draft_owner_persistence_v183",
    "purchase_draft_local_immediate_backup_v183",
    "purchase_draft_version_conflicts_v183",
    "purchase_order_per_sku_validation_v183",
    "purchase_order_snapshot_safe_cleanup_v183",
    "purchase_legacy_backup_import_v183",
    "cash_partial_close_before_deposit_v184",
    "cash_private_deposit_proof_locks_reopen_v184",
    "cash_final_close_requires_reconciliation_v184",
    "cash_manager_audited_reopen_v184",
    "cash_explicit_retained_float_v184",
    "manager_open_out_of_hours_v184",
    "manager_noncash_sales_without_open_shift_v184",
    "cash_mixed_payments_require_open_shift_v184",
    "purchase_saved_order_download_prompt_v184",
    "purchase_professional_pdf_v184",
    "purchase_native_xlsx_v184",
    "purchase_export_retry_without_duplicate_order_v184",
    "purchase_full_quantity_same_row_v185",
    "purchase_automatic_demand_and_replenishment_v185",
    "purchase_validation_grouped_by_product_v185",
    "purchase_loaded_cost_autofill_v186",
    "purchase_pending_draft_completion_v186",
    "purchase_zero_quantity_preservation_v186",
    "purchase_pdf_xlsx_pending_values_v186",
    "purchase_inactive_inventory_replenishment_v186",
    "notifications_shared_global_maintenance_v187",
    "notifications_idempotent_noop_refresh_v187",
    "notifications_bounded_independent_reads_v187",
    "notifications_visible_update_errors_v187",
    "notifications_paginated_bell_operations_v187",
    "deposit_confirmation_exact_id_verification_v188",
    "deposit_uncertain_outcome_readonly_recheck_v188",
    "deposit_confirmation_stale_response_guard_v188",
    "credit_customer_real_name_first",
    "workshop_customer_visual_badge",
    "workshop_customer_amber_highlight",
    "workshop_history_company_scoped",
    "inbox_cursor_50_server_filters",
    "targeted_inbox_card_updates",
    "shared_message_facts",
    "shared_notification_worker",
    "user_scoped_notification_signal",
    "contacts_on_demand_50_keyset",
    "company_scoped_contact_search",
    "bounded_session_contact_cache",
    "persistent_update_notice",
    "finance_statement_hierarchy_drilldown",
    "finance_statement_csv_pdf",
    "finance_on_demand_comparison",
    "expenses_on_save_ui",
    "vat_only_on_payment_ui",
    "financial_source_integration",
    "expenses_auto_ledger_on_save",
    "supplier_payables_partial_payments",
    "receivables_aging",
    "cost_centers_and_account_hierarchy",
    "finance197_automatic_receipts_payroll_italika",
    "finance197_bank_reconciliation_payment_plans",
    "finance197_cash_forecast_13_weeks",
    "finance197_assets_monthly_depreciation",
    "finance197_budgets_projects_variance",
    "finance197_fx_documented_rates_revaluation",
    "finance197_general_ledger_financial_statements",
    "finance197_three_way_purchase_matching",
    "finance197_monthly_annual_close_guards",
    "finance197_daniel_private_workspace",
    "finance197_vat_paid_only_preserved",
    "finance197_deposit_fix_196_1_preserved",
    "fel198_digifact_test_setup",
    "fel198_vault_credentials",
    "fel198_company_access_and_connection_history",
    "returns_per_quote_pos_workshop_sale_v207",
    "unified_return_request_review_queue_v207",
    "returns_original_price_partial_total_idempotent_v207",
    "catalog_direct_product_editor_v208",
    "management_sent_shipment_edit_access_v208",
    "product_shipping_session_guards_v208",
    "company_credit_and_card_register",
    "credit_interest_conditions",
    "credit_payment_frequency_calendar",
    "credit_private_audit_and_idempotency"
  ],
  "release_note_25_30": "Cuenta destino autorizada por lista, fecha/hora y cliente obligatorios; banco y número resueltos en servidor; correcciones auditadas.",
  "release_note_25_31": "El precio de venta de cada artículo puede aumentarse, nunca disminuirse por debajo del precio base. La cotización requiere revisión de Supervisión o Gerencia y queda bloqueada para PDF/envío hasta aprobación.",
  "release_note_25_33": "Corrección de distribución en cotizador: campo precio venta integrado, base debajo, descuento independiente y diseño responsive. Sin cambios financieros ni reglas de autorización.",
  "release_note_25_35": "Caja central CAJA-01 compartida por turnos; Rosa designada para revisión de arqueos y Gerencia con visibilidad. Piloto sin operaciones financieras hasta completar controles del servidor e inventario.",
  "release_note_25_36": "Operación ERP real: maestro de productos propios, órdenes de compra, recepción parcial y kardex POS auditado, solicitud/revisión de gastos. Mantiene saldo CRM y POS separados hasta conciliación; no activa ventas ni pagos.",
  "release_note_25_39": "Menú lateral desplegable por módulo con accesos a rutas reales; se separa Cotización de Confirmación de venta en pantalla completa y se utiliza únicamente la forma de pago guardada de la cotización. No cambia los controles de respaldo, inventario, caja piloto ni FEL.",
  "frontend_build": "3.6.57.25.40.207",
  "label": "V25.40.203 · FEL con diseño rojo y negro",
  "release_note_25_40_2": "Rebase verificable V25.39 con Caja/Inventario aditivos, vigilancia de arranque con recuperación V25.39 y actualización manual sin recargas automáticas.",
  "release_note_25_40_3": "Corrige tres declaraciones duplicadas de funciones en app.js que impedían cargar todo el módulo ES y causaban pantalla de recuperación.",
  "release_note_25_40_4": "Consulta protegida de resultados provisionales e importación para comparar inventario de corte en solo lectura. No cambia cotizaciones, confirmaciones, stock, caja ni FEL.",
  "release_note_25_40_5": "Consolidación de V25.40.4 con reutilización de cotización y oportunidad, conciliación previa de inventario, solicitud unificada por SKU, costo referencial al confirmar y resultados provisionales.",
  "notes": "Cierres parciales con arqueo y fondo retenido explícito; boleta de depósito privada y conciliación para cierre definitivo. Reapertura gerencial auditada sólo antes de adjuntar la primera boleta. Apertura gerencial fuera de horario y ventas gerenciales sin efectivo sin turno abierto, conservando validaciones de crédito y pago. Compras ofrece PDF profesional y Excel real después de guardar la orden y conserva recuperación y borradores V183. La migración V184 ya está aplicada y verificada en el servidor. Para completar la actualización sólo falta subir el ZIP del frontend; no hay que ejecutar SQL.",
  "release_note_25_40_7": "Ventas confirmadas requieren CAJA-01 abierta; reporte de cierre por asesor, medio de pago y documento, consolidado diario separado de efectivo físico. No activa FEL ni el POS tradicional.",
  "release_note_25_40_8": "Corrige la sintaxis del módulo ES en recuperación de cotización. Un solo paquete Cloudflare raíz con diez archivos; startup watchdog muestra diagnóstico si no carga. Conserva las funciones de V25.40.7.",
  "release_note_25_40_9": "Añade corte documental 26/09/2026 07:30 procesado por lotes e idempotente desde sesión autorizada. No representa conteo físico; no incluye negativos/duplicados ni activa compras.",
  "release_note_25_40_11": "Venta rápida dedicada con turno propio, producto/cliente CRM, descuento hasta 35%, cobro y registro único POS/CRM/Kardex. POS general/FEL no se habilitan; conciliación externa pendiente.",
  "release_note_25_40_13": "Venta rápida muestra el precio del mismo motor comercial del cotizador, permite preparar el detalle sin corte pero bloquea cobro hasta inventario y turno verificados. Taller: recepción/diagnóstico/seguimiento sin facturación automática. No altera precios ni existencias históricos.",
  "release_label": "V25.40.203 · FEL con diseño rojo y negro",
  "fix": "Cierres parciales con arqueo y fondo retenido explícito; boleta de depósito privada y conciliación para cierre definitivo. Reapertura gerencial auditada sólo antes de adjuntar la primera boleta. Apertura gerencial fuera de horario y ventas gerenciales sin efectivo sin turno abierto, conservando validaciones de crédito y pago. Compras ofrece PDF profesional y Excel real después de guardar la orden y conserva recuperación y borradores V183. La migración V184 ya está aplicada y verificada en el servidor. Para completar la actualización sólo falta subir el ZIP del frontend; no hay que ejecutar SQL.",
  "release_note_25_40_15": "Corrige cierre de caja con revisión independiente visible a Gerencia/Subgerencia; modela mano de obra como servicio de precio variable sin inventario; enlaza órdenes de servicio a una única Venta rápida POS/CRM y conserva repuestos reales por Kardex. No aprueba cierres ni genera ventas automáticamente.",
  "release_note_25_40_16": "Orden de servicio con repuestos y mano de obra editables en Taller; detalle persistente por línea; traspaso completo a Venta rápida sin recaptura; vínculo único con venta POS/CRM; solicitud FEL registrada y bloqueada si FEL aún no está configurado; repuestos no salen de inventario hasta confirmar la venta.",
  "release_note_25_40_17": "Mientras CAJA-01 siga abierta, un arqueo de cierre pendiente es advertencia y no bloquea ventas de usuarios autorizados. El cierre no puede aprobarse con cifras viejas si hubo movimientos posteriores. La orden de taller actual recibió apertura documental únicamente para sus seis repuestos limpios del corte autorizado; servicios no afectan inventario.",
  "release_note_25_40_22": "Permite arqueo final actualizado aunque exista uno anterior pendiente; sustituye el arqueo obsoleto con auditoría, recalcula efectivo esperado, exige conteo por denominaciones y revisión independiente. No cierra ni aprueba turnos automáticamente.",
  "release_note_25_40_23": "Reemplaza el flujo abstracto de arqueo por un cierre real de caja: botón Cerrar caja, desglose de fondo/ventas efectivo/abonos/ingresos/gastos/retiros, conteo por denominaciones y estado en vivo Cuadrado/Sobrante/Faltante. Un cierre cuadrado termina el turno directamente; las diferencias se documentan y aplican la política de revisión según rol.",
  "release_note_25_40_24": "El cierre de caja muestra gastos en efectivo pendientes o aprobados sin pagar. Gerencia/Subgerencia puede aprobar y descontar el gasto desde el mismo cierre; solo entonces se crea cash_out y se recalcula el efectivo esperado. Un gasto solicitado no reduce la gaveta hasta su pago real.",
  "release_note_25_40_25": "Reemplaza la confirmación genérica por una pantalla Venta desde cotización: conserva cliente, asesor, líneas y descuentos; elige Efectivo/Depósito/transferencia/COD/NeoLink; exige respaldo real y coincidencia suficiente antes de GANADA; efectivo se registra atómicamente en CAJA-01; COD conserva cobro pendiente; faltantes o stock no conciliado pasan a Abastecimiento sin inventar existencia; la venta se registra una sola vez y el Pipeline queda en GANADA/WON_COD según la rama financiera. FEL sigue como solicitud pendiente si no está configurado.",
  "release_note_25_40_26": "Parte de V25.40.25. El botón Armar cotización deja de depender del owner_user_id cacheado en el navegador; la cartera se valida en Supabase mediante crm_quote_customer_preview_v1 y los RPC de cotización. Añade estado de apertura y error visible. No modifica ventas, caja, inventario, descuentos ni el flujo Cotización → Venta.",
  "release_note_25_40_27": "Parte de V25.40.26. Define el reset del flujo Cotización → Venta que era invocado pero no existía desde V25.40.25; limpia forma de pago, respaldo, efectivo, COD, aceptación, FEL y estado ERP al abrir una cotización nueva. No modifica ventas, caja, inventario ni autorizaciones existentes.",
  "release_note_25_40_28": "La conversión de cotización deja de ser un formulario administrativo y usa el patrón de Venta rápida: cotización precargada, productos a la izquierda y cobro dinámico a la derecha. Agrega Crédito 15 días usando autorización existente, línea disponible, cuenta por cobrar y enlace al pedido ERP; no entra efectivo a caja.",
  "release_note_25_40_29": "Venta desde cotización permite agregar, quitar y editar productos sobre el mismo quote_id antes de confirmar; Confirmar venta/Solicitar crédito implica aceptación del cliente. FEL pasa a un botón posterior a la venta y registra una solicitud real sin fingir certificación cuando el proveedor/API aún no está configurado. Corrige además restricciones ERP para crédito 15 días.",
  "release_note_25_40_30": "Al confirmar venta o completar autorización de crédito crea un recibo interno numerado, genera pedido operativo y despacho pendiente, notifica a Subgerencia y habilita PDF/impresión para colocar con el envío. Reutiliza la misma venta y cotización; no duplica documentos ni sustituye FEL.",
  "release_note_25_40_31": "La pantalla Venta desde cotización persiste la cotización activa ante recarga y reconstruye desde Supabase la venta ya confirmada. Crédito pendiente se refresca automáticamente hasta completar y habilita recibo/pedido. Ventas confirmadas incorpora resumen y filtros Hoy, Mes, Año e Histórico general con búsqueda y acceso al recibo/pedido.",
  "release_note_25_40_32": "Formato comercial oficial compartido por cotizaciones, recibos de venta/pedido y Venta rápida. Mantiene logo original, paleta negro/rojo/blanco, tabla compacta sin cuadrícula vertical, totales compactos y QR de sitio web/WhatsApp. FEL conserva su flujo separado y solo utilizará la plantilla cuando exista certificación real.",
  "release_note_25_40_34": "Cotización editable y enviable sin autorizaciones intermedias; descuentos/precios se validan al confirmar la venta. Corrige cotizaciones <=35% bloqueadas por una autorización antigua. Venta rápida permite transitoriamente vender SKU sin Kardex solo cuando existe inventario histórico A&M no conflictivo suficiente, creando apertura provisional exclusivamente por las unidades vendidas y dejando auditoría para conciliación física.",
  "release_note_25_40_34_1": "Integra sobre V25.40.34 la solicitud de autorización de precio y descuento de V25.40.30. Conserva cotización libre, recibos, ventas confirmadas, turnos y reportes. Muestra solicitudes pendientes y permite guardar cambios antes de autorizar la venta.",
  "release_note_25_40_35": "Permite cobrar en Venta rápida y Taller aunque falte apertura o existencia. Descuenta solo Kardex utilizable y registra el resto para revisión en Abastecimiento, sin aperturas ficticias ni saldos negativos. Conserva validaciones de caja, pago, precio y descuento.",
  "release_note_25_40_36": "El botón principal permite solicitar autorización comercial cuando aún no existe. Pendiente solo después de verificar el registro en servidor; permite consultar aprobación sin salir y muestra errores persistentes. No confirma ventas ni aprueba descuentos automáticamente.",
  "release_note_25_40_37": "Venta rápida y Taller aceptan descuentos entre 0 y 100 por línea y generales. Taller guarda el descuento sin autorización previa. Al cobrar más de 35%, se solicita aprobación del detalle exacto en Autorizaciones, reutilizando solicitudes pendientes; cambios requieren nueva aprobación.",
  "release_note_25_40_38": "Orden y confirmación muestran datos del cliente CRM. Pasar a Venta conserva el cliente vinculado y bloquea su sustitución accidental. Se preservan descuentos e inventario pendiente.",
  "release_note_25_40_39": "Solicitud de crédito desde Venta rápida/Taller, revisión por jerarquía, activación de línea por Gerencia/Subgerencia, confirmación y saldo a 15 días. Mantiene datos del cliente, descuento libre y pendientes de inventario.",
  "release_note_25_40_40": "Comprobantes editables y auditados, lectura visual única con espera limitada y caché de sesión, entrada manual eliminada, boletas en venta y abonos, órdenes de taller contraídas.",
  "release_note_25_40_41": "Ventana compacta de recuperación: efectivo, depósito y transferencia. Consulta autorizada de cartera sin abrir caja; efectivo conserva sus controles.",
  "release_note_25_40_42": "Reconoce cuentas personales autorizadas; selecciona destino por coincidencia exacta del servidor; separa titular de depositante y conserva lectura original; revisión permite guardar.",
  "release_note_25_40_43": "Cartera agrupada por cliente y saldo total; abonos en efectivo distribuidos por antigüedad en transacción atómica; comprobantes asociados al cliente.",
  "release_note_25_40_44": "Conserva cliente contextual al refrescar contactos; depositante no identificado no bloquea; preserva banco original firmado.",
  "release_note_25_40_45": "Edición auditada del saldo total por Gerencia/Subgerencia, motivo obligatorio, historial, control de saldo concurrente y ajustes separados de cobros.",
  "release_note_25_40_46": "Permite aumentar el precio unitario de productos en Venta rápida y conserva aumentos al refrescar existencias; valida mínimo comercial en servidor.",
  "release_note_25_40_47": "Selección de faltantes por proveedor, casillas de productos, cantidades editables, resumen de orden y validaciones junto al botón.",
  "release_note_25_40_48": "Inicio y Metas incluyen último corte histórico y ventas confirmadas posteriores una vez por documento; desglose visible y proyección consistente.",
  "release_note_25_40_49": "Gerencia busca clientes aunque no tengan deuda y registra saldo inicial con fecha, motivo, auditoría e idempotencia; nombre, teléfono y asesor distinguen resultados.",
  "release_note_25_40_50": "Vinculación corporativa con número esperado, responsable y tipo de línea; eventos de coexistencia, rutas y credenciales atómicas, conservación de privacidad/historial al reconectar.",
  "release_note_25_40_51": "Depósitos idempotentes: el servidor reutiliza el comprobante original cuando se reintenta por lentitud o timeout, impide duplicados por banco + cuenta destino + referencia y la interfaz muestra Procesando depósito mientras la solicitud está en curso. No altera ventas, caja, metas ni conciliaciones existentes.",
  "release_note_25_40_52": "Habilita Factura recibida en Compras y entradas, incluyendo CADISA. Permite buscar productos, registrar número/fecha/NIT/condición, contado o crédito, cantidades y costos; exige confirmar recepción física y crea la entrada en Kardex POS con idempotencia y bloqueo de factura duplicada. No registra pago al proveedor, no descuenta Caja/Banco y no crea asiento contable.",
  "release_note_25_40_53": "Agrega OCR + lectura visual a Factura recibida: permite subir una foto, extrae proveedor/NIT/número/fecha/condición/totales y líneas, busca códigos de proveedor y barras contra equivalencias y catálogo POS, agrega coincidencias seguras automáticamente y obliga a revisar u omitir las líneas ambiguas antes de registrar. Conserva idempotencia, recepción física obligatoria y no crea pagos ni egresos.",
  "release_note_25_40_54": "Habilita creación de códigos de producto manual y desde OCR de factura o cotización de proveedor. Evita duplicados por SKU/código de barras/equivalencia, permite generar AYM-######, vincula código del proveedor, incorpora el producto al catálogo POS/maestro comercial sin inventar existencia y permite crear códigos directamente desde líneas OCR no encontradas.",
  "release_note_25_40_55": "OCR de factura/cotización separa precio lista, descuento aplicado y costo neto por línea. NEXORA calcula precio público sugerido como costo neto ×1.30, lo precarga al crear códigos y conserva lista/descuento/costo/venta sugerida al registrar la factura.",
  "release_note_25_40_58": "Bodega independiente por guía, clasificación explícita de entregas y muestreo diario de actividad. No cambia ventas/cobros/inventario al consultar. Conserva edición/anulación V57.",
  "release_note_25_40_59": "Venta compacta; corrección autorizada por Iris antes del despacho conservando importe COD; pedidos despachados fuera de compras y en conciliación; pre-cierre de metas con fuentes verificadas y borradores revisables. Sin cambios en autenticación.",
  "release_note_25_40_60": "Muestra HH:MM:SS por asesor/día y en cierre de metas, impresión y borrador. Separa activo con foco, contador anterior y cobertura; une intervalos para evitar duplicados. No modifica autenticación, ventas, bodega ni el contador de actividad.",
  "release_note_25_40_61": "Agrega promedio histórico por día laboral (lunes a sábado, sin domingos) en Actividad laboral y Cierre de metas; acumulado, fechas, divisor, impresión y resumen CSV. No suma el histórico a los intervalos recientes ni altera sesiones, autenticación, ventas, permisos o despacho.",
  "release_note_25_40_62": "Gestión diaria prospectiva: ingreso autenticado/restauración, última actividad/salida explícita, tiempo activo por módulo y cotización, guardados verificados, llamadas manuales y telefonía separadas, mensajes por estado, tareas y seguimientos. Captura no bloqueante en el mismo heartbeat de 60 s, sin nuevos bucles de sondeo; no graba pantalla/voz/teclas y no inventa historia. Mantiene histórico V61.",
  "release_note": "Cierres parciales con arqueo y fondo retenido explícito; boleta de depósito privada y conciliación para cierre definitivo. Reapertura gerencial auditada sólo antes de adjuntar la primera boleta. Apertura gerencial fuera de horario y ventas gerenciales sin efectivo sin turno abierto, conservando validaciones de crédito y pago. Compras ofrece PDF profesional y Excel real después de guardar la orden y conserva recuperación y borradores V183. La migración V184 ya está aplicada y verificada en el servidor. Para completar la actualización sólo falta subir el ZIP del frontend; no hay que ejecutar SQL.",
  "release_note_25_40_64": "Captura de flete por venta, gastos automáticos de comisión y envío, conciliación con reporte, preparación interna sin duplicar nómina/insumos y propuestas contables pendientes de validar. Activación global del requisito de flete después de actualizar todos los puestos.",
  "v64": {
    "capture": "New V64 sales require delivery classification; shipping requires freight.",
    "global_gate": "Admin enables only after all stations are updated.",
    "bank_settlement": "Not automatically confirmed.",
    "statements": "Preparatory, not official financial statements."
  },
  "release_note_25_40_65": "Libro diario, mayor, comprobación, resultados y balance general sobre partidas contabilizadas internamente. Gastos del mes reutilizan propuestas existentes; catálogo revisable, apertura, reversos auditados y cierre/reapertura de meses. Sin contabilización automática de datos históricos.",
  "v65": {
    "posting": "explicit manager/submanager confirmation only",
    "supervisor": "read-only",
    "sources": "existing pos_accounting_events; no parallel general ledger",
    "initial_state": "chart unreviewed; no real opening balances or postings created by release",
    "statements": "partial until sources, openings and adjustments complete",
    "exports": "native CSV, full period up to 20,000 lines; print same complete set",
    "cash_effect": "none from bookkeeping actions"
  },
  "release_note_25_40_67": "Corrige manual/OCR/factura: público A&M = público/lista proveedor ×1.30, independiente del descuento de compra. Normaliza precios de OCR desde extracción original sin repetir IA. El costo neto sigue separado; no modifica ventas, catálogo existente, inventario ni contabilidad.",
  "v67": {
    "pricing_basis": "supplier_public_price",
    "missing_list": "pending; never net cost fallback",
    "existing_products": "no bulk repricing",
    "document_ocr": "original extraction retained; deterministic read-only normalization",
    "base_frontend": "V25.40.65",
    "backend_v66_preserved": true
  },
  "release_note_25_40_71": "Pedidos por surtir: la búsqueda principal consulta faltantes y catálogo maestro, admite SKU/nombre/código de barras/código RT-Motorama y tolera diferencias cortas de código. Enter o Añadir producto abre la búsqueda completa precargada. No crea ventas, stock ni pagos.",
  "release_note_25_40_72": "Seguimiento diario: supervisora ve asesores de su equipo; Subgerencia ve supervisora y asesores; Gerencia ve todos. Registro propio separado. Horas activas, pausas, última actividad, selector de día y actualización cada minuto mientras se consulta. Permisos aplicados en servidor; sin duplicar intervalos ni inventar horas.",
  "release_note_25_40_73": "Gerencia y Subgerencia pueden corregir ventas con pagos o guías antes del despacho. Conserva cobros y archivos, recalcula saldos, informa diferencia a favor y bloquea despacho COD si la guía no cuadra. Mantiene seguimiento diario V72.",
  "release_note_25_40_74": "Clientes completos por paginación; conserva asesor de cartera en nuevas cotizaciones y venta rápida; reporte mensual separa asesor acreditado y usuario del cierre. Conserva edición V73 y actividad V72.",
  "release_note_25_40_74_guias": "Guía y archivo obligatorios para preparar y despachar envíos. Registro directo en pendientes y edición de paquetes por Supervisión/Subgerencia/Gerencia, con historial y conservación del despacho realizado. Mantiene V72 y V73.",
  "release_note_25_40_75": "Integra clientes completos y atribución de cierres V74 con guías obligatorias y edición auditada de envíos. Conserva seguimiento V72 y corrección de ventas pagadas/con guía V73.",
  "release_note_25_40_76": "Botón Abrir chat en tarjetas, lista y cartera de crédito del pipeline. Reutiliza la conversación y permisos existentes. Conserva V75 completa.",
  "release_note_25_40_77": "WhatsApp corporativo permite elegir Coexistencia (App + CRM) o Cloud API exclusiva. Coexistencia usa whatsapp_business_app_onboarding; Cloud API usa flujo normal y registro con PIN de 6 dígitos. Al finalizar muestra confirmación y cierra el modal automáticamente. Conserva V76 completa.",
  "release_note_25_40_78": "Inventario real autorizado recuperado. Productos e Inventario muestran existencia, reservas y disponible desde Kardex; compras recibidas reconocidas. Conserva V77 completa.",
  "release_note_25_40_80": "Unifica Cotización→Venta, Venta rápida y Orden de servicio con carril operativo izquierdo y productos/servicios al frente. Añade guía estándar con archivo para envíos pagados por depósito/transferencia, vinculada de forma determinista a la cotización antes de confirmar. Gerencia/Subgerencia puede registrar su propia decisión comercial con auditoría sin solicitarse permiso a sí misma. Refresca precios vigentes cuando la cotización quedó obsoleta y muestra faltante real de efectivo.",
  "v80": {
    "base_frontend": "V25.40.79",
    "backend_migration": "nexora_v25_40_80_unified_sales_and_quote_guides",
    "edge_function": "erp-quote-shipping-guide-v80 v1",
    "quote_shipping_rule": "STD guide + permanent file required before confirming shipping; store/counter does not require guide",
    "management_authorization": "manager/submanager direct approve with existing request/review audit trail",
    "preserves": [
      "V79 editable workshop price",
      "V78 inventory recovery",
      "V77 WhatsApp coexistence/API",
      "V74 mandatory guide dispatch gate",
      "V73 audited confirmed-sale corrections"
    ]
  },
  "release_note_25_40_83": "Rediseño POS aprobado: productos al frente y Resumen y cobro a la derecha; tipo de cobro segmentado Efectivo/FRI/TC/Crédito/COD, descuento general en el rail, acciones compactas y ocultamiento de unidades disponibles/fórmula interna de margen en Venta rápida, Venta desde cotización y Orden de servicio.",
  "release_note_25_40_85": "Replica el estilo POS aprobado en Venta rápida, Venta desde cotización y Orden de servicio. Oculta asesor y datos internos, elimina el aviso grande de caja, agrega alta rápida de cliente en Venta rápida/Taller y mueve los datos específicos de cobro a una confirmación secundaria: efectivo calcula faltante/vuelto; TC exige autorización; FRI exige referencia; depósito/transferencia exige comprobante y, si hay envío, guía; COD exige guía. Cotización conserva su cliente precargado. Backend V85 valida y vincula guías de POS y alta rápida de clientes.",
  "release_note_25_40_87": "Devoluciones parciales/totales de productos despachados: solicitud, recepción confirmada por Gerencia/Subgerencia, condición, Kardex y saldo auditados. Caja y FEL requieren conciliación externa; conserva V86 completa.",
  "release_note_25_40_88": "Consolida la versión más reciente de devoluciones V87 con el POS refinado aprobado: tipografía Inter más ligera, asesor de sesión oculto, cliente fijo desde cotización, alta rápida de cliente en Venta rápida/Taller, campos específicos de cobro solo en modal de confirmación y limpieza visual sin categorías de productos. Conserva devoluciones parciales/totales y autorización de crédito V86.",
  "release_note_25_40_89": "Catálogo Maestro Operativo unificado para Venta rápida, Cotizaciones y Orden de servicio. La búsqueda consulta una sola tabla precalculada; A&M se alimenta del Kardex POS de NEXORA y RT/Motorama de sus inventarios vigentes. Los repuestos agotados en A&M, RT y Motorama quedan fuera de búsqueda y se reactivan automáticamente al volver a existir. Se eliminó la materialización durante cada búsqueda, se añadieron sincronización incremental e índices de búsqueda, cancelación de consultas obsoletas en frontend y resolución/materialización solo al seleccionar un producto. Conserva V88, devoluciones V87 y crédito V86. Cati y la capa V71 conservan sus contratos de catálogo pero ahora resuelven precio/disponibilidad desde el Catálogo Maestro V89; el candidato estructurado probado bajó a ~111 ms.",
  "release_note_25_40_91": "Cuando Luna detecta que el asesor tiene una acción pendiente (por ejemplo confirmar disponibilidad, gestionar reembolso o validar con bodega), el modo humano no se reactiva automáticamente por el temporizador. El panel muestra IA detenida · acción humana pendiente, conserva Reactivar IA como liberación manual y añade No activar IA para dejar la conversación pausada de forma persistente.",
  "release_note_25_40_92": "Bandejas de Mensajes separadas: Publicidad queda como bandeja principal; se agregan Importantes, Mayoristas, Pendientes y Todos. Todas se ordenan estrictamente por último mensaje/actividad. Al responder, el chat no desaparece de Publicidad y se mantiene visible aunque se mueva al inicio de la lista. Los filtros de canal/número quedan como refinamiento dentro de Todos.",
  "release_note_25_40_93": "Rediseña Metas como tablero gerencial: filtros compactos por sucursal/período, KPIs de ventas, ganancia bruta registrada, compras y ticket promedio, gráficas de ventas/compras, margen, tipos de pago y ventas diarias, vista de productos y asesores. Ventas acumuladas conserva la fuente comercial verificada; ganancia/compras/ticket se identifican como datos operativos de NEXORA/POS.",
  "release_note_25_40_94": "Generar listado de precios desde el chat: botón dedicado, modal por Moto/modelo o Familia de repuesto, descuento editable y PDF profesional con datos del cliente. Incluye solo códigos con existencia en A&M, RT o Motorama y columnas Código, Descripción, Precio público y Precio con descuento. Admite familias como Tracción, Cilindros y Pastillas mediante equivalencias de búsqueda.",
  "hotfix_25_40_96": {
    "fix": "Elimina declaraciones top-level duplicadas loadGoals/renderGoalsCommercial que impedían cargar app.js como ES module.",
    "validated_as_module": true,
    "base": "25.40.95",
    "preserves": [
      "Dashboard Metas V93",
      "Listado de precios V94/V95",
      "Bandejas V92",
      "IA V91"
    ]
  },
  "release_note_25_40_97": "Listado de precios desde chat permite elegir Todas las marcas o una marca específica disponible dentro de la moto/modelo o familia seleccionada. El PDF conserva filtro de existencia A&M/RT/Motorama y agrega la marca elegida en encabezado y nombre del archivo.",
  "release_note_25_40_101": "Cotizador y Venta desde cotización muestran las unidades disponibles al buscar y en cada línea usando nombres comerciales de bodega: Bodega Principal (inventario propio), Bodega R y Bodega M. Los identificadores internos AYM/RT/MOTORAMA se conservan únicamente en backend para no romper abastecimiento ni precios.",
  "release_note_25_40_102": "Venta rápida y Orden de servicio muestran Bodega Principal, Bodega R y Bodega M al buscar y en las líneas. Optimiza Autorizaciones: centro de notificaciones sin polling pesado cada 2 s, anti-solapamiento, refresco pesado limitado y carga de colas en segundo plano.",
  "release_note_25_40_104": "Corrige envío de cotizaciones PDF al mismo chat de Facebook/Instagram aun cuando el PDF no imprime destinatario, usando la identidad social verificada sin relajar Venta/FR/crédito. Corrige nombres conversacionales falsamente confirmados. Inicio y Metas usan venta confirmada autoritativa por fecha de registro; separa asesor acreditado de quien ejecutó/cerró la venta y muestra Venta asesor, Rosa/Supervisión y Venta Gerencia.",
  "release_note_25_40_106": "Primer estado de pérdidas y ganancias gerencial de NEXORA: ventas confirmadas autoritativas, costo de ventas por snapshot o respaldo verificable, utilidad bruta, fletes/comisiones, gastos pagados y ganancia del período. La ganancia mensual se muestra únicamente en el panel privado autorizado de Daniel. El estado identifica costos estimados, servicios sin costo directo, gastos pendientes y no se presenta como estado financiero certificado hasta completar cierre fiscal/contable.",
  "report_revision": "private_iva_review_2",
  "source_frontend": "25.40.183",
  "release_note_25_40_107": "Bloqueo servidor por línea debajo del costo o sin costo; ganancia comercial y margen en ventas y autorizaciones; estimación IVA costo neto vendido × 1.05 × 12%, separada de liquidación fiscal. Conserva privacidad de Daniel y correcciones posteriores de autorizaciones.",
  "release_note_25_40_108": "Recursos Humanos reintegrado sobre V107. Escala de comisiones con tope por utilidad, planilla quincenal, partidas de devengo y pago, proyección diaria y reservas presupuestarias de aguinaldo/Bono14.",
  "release_note_25_40_109": "Esquemas de comisión configurables, historial por vigencia y simulador. Integra planilla y ahorro, conserva V108.",
  "release_note_25_40_110": "Liquidaciones de mecánicos por OS, tarifas Italika y gasolina separada. Costos directos, partidas de devengo/pago y salidas reales de caja. Conserva V109.",
  "release_note_25_40_111": "Mano de obra cobrada en OS genera automáticamente el cálculo del mecánico. Predeterminado y selección en la orden; conserva V110.",
  "release_note_25_40_112": "Seguimiento general al cliente con cotizaciones cerradas, oportunidades abiertas opcionales y registro de gestiones por supervisión autorizada. Conserva al asesor responsable y registra por separado quién realizó la gestión. Conserva V111 completa.",
  "release_note_25_40_114": "Créditos y descuentos de Venta rápida/Taller se revisan en ventana emergente desde Autorizaciones o la campana. Las notificaciones pendientes nuevas abren el emergente en la misma cola que los créditos de cotización, con deduplicación y respeto de ventanas abiertas. Conserva reglas del servidor, pago mixto V113, seguimiento V112 y módulos V111.",
  "release_note_25_40_115": "Costos, ganancia y margen por venta/autorización visibles solo para Supervisión, Subgerencia y Gerencia. Datos filtrados también en servidor y errores; se conserva bloqueo bajo costo para todos. Conserva V114, pago mixto y control humano de Cati.",
  "release_note_25_40_116": "Tema NEXORA Ejecutivo aprobado por Daniel: menú grafito oscuro, tarjetas claras, acento teal y verde lima, tipografía ligera y controles compactos. Presentación sobre V115 completa; conserva funciones, permisos, pago mixto, taller, planilla, autorizaciones y privacidad financiera.",
  "v116": {
    "scope": "presentation_only",
    "base_frontend": "25.40.115",
    "backend_changes": false,
    "customer_print_styles_preserved": true
  },
  "release_note_25_40_117": "Identidad STRAXORA IA aprobada: nombre, logo, icono de navegador, eslogan y atribución a Stratix Marketing. Acceso, menú, POS, configuración, textos y encabezados/exportaciones. Base V116 conservada; sin cambios de datos, permisos ni contratos de backend.",
  "branding": {
    "name": "STRAXORA IA",
    "slogan": "Inteligencia que impulsa tu negocio",
    "parent": "Stratix Marketing",
    "previous_name": "NEXORA"
  },
  "release_note_25_40_118": "Gerencia puede asignar individualmente clientes a Rosa con atribución exclusiva de ventas nuevas. Sin reparto automático ni cambios de historial.",
  "release_note_25_40_119": "Sistema visual corporativo: tokens slate, superficies flat, bordes de 1px, radios hasta 6px, iconos Lucide locales, CTA único por sección y columnas numéricas a la derecha. Conserva funciones V118.",
  "release_note_25_40_120": "Jerarquía del menú lateral y visibilidad de chats pendientes y notificaciones sin leer; conserva V119.",
  "release_note_25_40_139": "Estabilidad de sesiones, avisos con errores visibles, descargas compartidas, guías, trazabilidad multimedia y conciliación de pago mixto. Conserva V138.",
  "release_note_25_40_140": "Taller Italika: armados, garantías, comprobantes, crédito a Elektra, abonos bancarios y liquidación de mecánicos. Conserva V139.",
  "release_note_25_40_146": "Armados calculados desde captura; órdenes preventivas y garantías Italika con porcentaje individual y consolidado único de mecánicos. Conserva V145.",
  "release_note_25_40_147": "Cotizaciones del chat con recuperación local por usuario y cliente, guardado atómico idempotente, control de versión, tiempo de espera y recargas del chat sin solaparse. Conserva V146.",
  "release_note_25_40_148": "Productos recién agregados al inicio en cotizaciones, ventas y órdenes de servicio; cotizador ampliado y filas compactas adaptables. Conserva V147.",
  "release_note_25_40_149": "Cotizador con acciones de iconos en cabecera fija, barra derecha compacta, encabezados comunes y filas de producto reducidas. Conserva V148.",
  "release_note_25_40_154": "Partidas automáticas al pagar taller y resultado provisional visible con pendientes identificados.",
  "release_note_25_40_155": "Opciones de Recursos Humanos integradas en su submenú lateral desplegable, cerrado al iniciar; acceso directo por sección y permisos conservados.",
  "release_note_25_40_156": "Corrige navegación de Recursos Humanos: conserva la sección seleccionada al pasar por la navegación de POS; elimina recuadro y espaciado exclusivo del apartado.",
  "base_version": "25.40.192",
  "release_note_25_40_157": "Alertas de gastos, depósitos, créditos y descuentos con revisión directa; clientes sin respuesta agrupados en un aviso con listado, búsqueda y filtros.",
  "release_note_25_40_159": "Taller: crear cliente en el ingreso de orden; vistas independientes de pendientes, confirmadas y canceladas con búsqueda y páginas; conserva el detalle y permisos.",
  "release_note_25_40_160": "Bandeja compacta de autorizaciones: categorías con contadores, pendientes prioritarios, estados vacíos unificados, actualización conjunta y diseño adaptable. Mantiene detalles y permisos.",
  "release_note_25_40_161": "Cotizador con existencias junto al nombre, texto más grande y columnas alineadas. Abrir cotización independiente desde el listado; conserva confirmación de venta, historial y permisos.",
  "release_note_25_40_162": "Autorizaciones se actualiza automáticamente mientras está visible y al recuperar conexión o regresar a la pestaña. Conserva pendientes durante la consulta, detecta respuestas incompletas y sincroniza el contador sin duplicar solicitudes.",
  "release_note_25_40_163": "Conserva precios, cantidades y descuentos de la cotización al guardar y preparar la venta; elimina actualización automática de precios y evita reemplazar cambios locales durante una consulta.",
  "release_note_25_40_164": "Cotización→Venta: los fallos al solicitar autorización o confirmar muestran el motivo y envían un caso único a Daniel Burgos. Bandeja Ventas bloqueadas y campana con acceso para revisar y editar la cotización. Conserva precios V163, permisos, costos restringidos y validaciones comerciales.",
  "release_note_25_40_165": "Gerencia puede corregir costo base y adicional por producto en una cotización antes de confirmar; historial con motivo y respaldo, reintentos idempotentes, validación comercial y costo de venta coherentes. Acceso desde Venta, Cotizador y Ventas bloqueadas. Corrige vista de margen de cotizaciones con más de 60 partidas. Conserva V164 completa.",
  "release_note_25_40_167": "Gerencia/Subgerencia revisan diferencias de envío, corrigen guías y autorizan excepciones con explicación obligatoria y auditoría. Las ediciones invalidan la excepción. Confirmación física separada, sin cobros nuevos ni cambios de deuda. Conserva frontend V165 y corrección de servidor V166.",
  "release_note_25_40_168": "Diagnóstico de casos según venta vinculada: muestra pago aplicado y saldo real, retira avisos de intentos anteriores de los pendientes y permite abrir la venta registrada. Conserva V167 completa.",
  "release_note_25_40_169": "Modificar venta desde autorización de crédito: editor completo para Gerencia/Subgerencia, motivo obligatorio, importe solicitado sincronizado, auditoría y comprobación de datos cambiados antes de autorizar. Ventana ampliada sin desbordamiento horizontal. Conserva V168 completa.",
  "release_note_25_40_170": "Corrige la captura de costos de productos inactivos usando el mismo criterio de validación comercial. Recupera referencias anteriores a la venta, identificadas como estimadas; restablece el resultado provisional privado de Daniel y muestra los motivos precisos si falta un costo. Conserva V169 completa.",
  "release_note_25_40_171": "Servidor: autorización de crédito genera recibo y logística una sola vez, conservando validaciones e idempotencia.",
  "release_note_25_40_172": "Gerencia y Subgerencia pueden eliminar guías sustituidas antes de salir, con explicación y confirmación obligatorias. Se recalculan cobros activos y se conserva el historial. Incluye todas las mejoras V170 y corrección servidor V171.",
  "release_note_25_40_173": "Elimina el enlace de vista previa V138 que aparecía al pie de todas las pantallas y recargaba el CRM al apuntar a /. Conserva V172 completo.",
  "release_note_25_40_174": "Valida la sesión al iniciar, regresar y enviar; cierre local con actividad compartida entre pestañas. Conserva mensajes y adjuntos pendientes por usuario, recupera errores de Auth y evita reenvíos automáticos y respuestas de sesiones anteriores.",
  "release_note_25_40_175": "Compras y entradas despliega Nueva entrada, Entradas realizadas y Órdenes de compra. Cada tarea usa una vista completa, conserva los borradores al cambiar de opción y mantiene los permisos y operaciones existentes. El historial separa facturas y recepciones de los pedidos pendientes.",
  "release_note_25_40_176": "Agrega Crear / modificar códigos dentro de Compras y entradas, búsqueda de productos, alta manual/OCR y edición auditada de datos y precios. Conserva las cuatro vistas y los borradores; mantener precios actuales es la opción predeterminada al editar.",
  "release_note_25_40_177": "Edición de clientes sin asesor coherente con los permisos de Supervisión y Gerencia. La ficha y el chat usan el permiso del servidor; los fallos de consulta muestran Reintentar y no falsos históricos vacíos.",
  "release_date": "2026-10-30",
  "release_note_25_40_179": "Panel para cambiar COD a depósito y adjuntar boleta en Editar venta; revisión financiera, retiro del recargo COD e historial. Candidato con pruebas remotas pendientes.",
  "release_status": "frontend_ready_pending_manual_publication",
  "release_note_25_40_180": "Ventas confirmadas integra cotizaciones, POS y órdenes de servicio con venta confirmada, detalle histórico, páginas de 100 y búsqueda en todo el historial. Integra el panel visual de IVA ya preparado, separado de la ganancia, conservando sus permisos. Se conserva V179 y su validación remota pendiente del cambio COD a depósito. Esta corrección no modifica pagos, fechas, inventario ni cálculos del servidor.",
  "release_note_25_40_181": "Apertura directa de chats desde Clientes, fichas y ventas con consulta exacta autorizada. Elimina recargas consecutivas de la bandeja, carga prioridades y canales de forma independiente y protege contra respuestas tardías de otra conversación o sesión. Conserva historial, adjuntos y funciones V180.",
  "release_note_25_40_182": "Compras distingue el costo del maestro de la referencia del proveedor. Permite elegir explícitamente Otro proveedor para un código existente sin equivalencia, revalida el SKU y solicita el costo real. Conserva borradores por proveedor y descarta búsquedas o clics de otro contexto. Incluye V181 completo; no modifica equivalencias, precios maestros ni inventario en el servidor.",
  "source_package": "STRAXORA_V25.40.203_COMPLETO.zip",
  "release_note_25_40_183": "Compras identifica cada SKU y campo pendiente sin recortar cantidades ni borrar trabajo. Guarda borradores incompletos por usuario y proveedor, con copia local, respaldo de servidor, recuperación, exportación e importación. Conserva cambios durante el envío y sólo limpia filas tras una orden confirmada. Incluye V182 completo.",
  "release_note_25_40_184": "Cierres parciales con arqueo y fondo retenido explícito; boleta de depósito privada y conciliación para cierre definitivo. Reapertura gerencial auditada sólo antes de adjuntar la primera boleta. Apertura gerencial fuera de horario y ventas gerenciales sin efectivo sin turno abierto, conservando validaciones de crédito y pago. Compras ofrece PDF profesional y Excel real después de guardar la orden y conserva recuperación y borradores V183. La migración V184 ya está aplicada y verificada en el servidor. Para completar la actualización sólo falta subir el ZIP del frontend; no hay que ejecutar SQL.",
  "v184": {
    "status": "backend_applied_verified_frontend_pending",
    "backend_required": true,
    "backend_status": "applied_verified",
    "frontend_published": false,
    "install_order": [
      "STRAXORA_V184_CAJA_Y_COMPRAS_COMPLETO.zip"
    ],
    "business_records_modified_for_testing": 0,
    "inherited_v179_status": "candidate_pending_server_validation",
    "migration_sha256": "f931d165540ebd2d36786d0bf1a95d19525822bf4d25bcc5cb6010fcaa100f88",
    "backend_installed": true,
    "frontend_status": "manual_upload_pending",
    "manual_sql_required": false,
    "sql_backup_file": "RESPALDO_SQL_V184_YA_APLICADO.sql",
    "backend_verified_at": "2026-10-22T04:54:43.819916+00:00",
    "backend_verification": {
      "total": 117,
      "ok": 116,
      "info": 1,
      "missing": 0,
      "drift": 0
    }
  },
  "release_note_25_40_185": "Compras conserva la cantidad solicitada en la misma fila, cubre primero los faltantes vigentes de ventas y destina el sobrante a reposición. Muestra el destino estimado y agrupa los datos pendientes por producto. Conserva borradores, costos capturados, PDF, Excel, permisos e idempotencia. Backend aplicado; frontend pendiente de publicación manual.",
  "v185": {
    "backend_status": "applied_verified",
    "backend_verified_at": "2026-10-23T19:31:06.246282+00:00",
    "frontend_status": "manual_upload_pending",
    "frontend_published": false,
    "manual_sql_required": false,
    "migration_name": "purchase_same_row_quantity_and_replenishment_v185",
    "function_body_md5": "aec801381402e02c55dd5fefb955a396",
    "install_order": [
      "STRAXORA_V185_COMPRAS_CANTIDADES_LIBRES_COMPLETO.zip"
    ],
    "business_records_modified_for_testing": 0
  },
  "release_note_25_40_186": "Compras recupera automáticamente los costos ya cargados por SKU y completa los campos vacíos no editados del borrador. Conserva costos escritos, cantidades y filas en cero; permite completar proveedor y datos realmente pendientes en la orden guardada, con PDF y Excel. Admite reposición de códigos de inventario existentes sin reactivar su venta. Servidor aplicado y verificado; pantalla pendiente de publicación manual.",
  "v186": {
    "backend_status": "applied_verified",
    "backend_verified_at": "2026-10-23T20:04:58.798528+00:00",
    "frontend_status": "manual_upload_pending",
    "frontend_published": false,
    "manual_sql_required": false,
    "migrations": [
      {
        "version": "20261023195003",
        "name": "purchase_draft_pending_supplier_and_costs_v186"
      },
      {
        "version": "20261023200357",
        "name": "purchase_loaded_cost_reference_and_replenishment_v186"
      }
    ],
    "install_order": [
      "STRAXORA_V186_COMPRAS_COSTOS_AUTOMATICOS_COMPLETO.zip"
    ],
    "business_records_modified_for_testing": 0
  },
  "release_note_25_40_187": "Notificaciones con actualización independiente de las tareas de mantenimiento, tiempos de espera acotados, errores visibles y conservación del último listado válido. Campana y Operaciones comparten páginas y contadores; permite cargar más avisos. El servidor evita reescribir avisos idénticos y repetir el mantenimiento global por cada usuario.",
  "v187": {
    "backend_status": "applied_verified",
    "backend_verified_at": "2026-10-24T15:49:16.252525+00:00",
    "frontend_status": "manual_upload_pending",
    "frontend_published": false,
    "manual_sql_required": false,
    "migrations": [
      {
        "name": "notification_refresh_delivery_and_pagination_v187",
        "version": "20261024154903"
      }
    ],
    "install_order": [
      "STRAXORA_V187_NOTIFICACIONES_CORREGIDAS_COMPLETO.zip"
    ],
    "business_records_created_for_testing": 0
  },
  "release_note_25_40_188": "La confirmación de depósitos se comprueba por ID en el servidor. El estado ya guardado no depende de la carga general de Operaciones ni de una lista anterior. Si no se puede comprobar el resultado, se permite volver a consultar conservando el intento y sin reenviar automáticamente la confirmación.",
  "v188": {
    "frontend_status": "manual_upload_pending",
    "frontend_published": false,
    "backend_status": "existing_endpoints_verified_no_change_required",
    "backend_verified_at": "2026-10-24T18:42:56.636263+00:00",
    "migrations": [],
    "manual_sql_required": false,
    "business_records_modified_for_testing": 0,
    "install_order": [
      "STRAXORA_V188_DEPOSITOS_CORREGIDOS_COMPLETO.zip"
    ]
  },
  "release_note_25_40_189": "Consultas de conversaciones, prioridades, resumen y actividad optimizadas en servidor, conservando permisos. La pantalla agrupa recargas por vista, suspende consultas por eventos con pestaña oculta o sin conexión y evita cargas simultáneas del dashboard. Lecturas de la conversación seleccionada y operaciones manuales conservan su flujo.",
  "v189": {
    "backend_status": "applied_verified",
    "frontend_status": "manual_upload_pending",
    "frontend_published": false,
    "manual_sql_required": false,
    "multi_company_ready": false
  },
  "release_note_25_40_190": "Historial de un solo chat al abrirlo: 50 mensajes recientes, anteriores bajo demanda y actualizaciones por ID. Conserva ventanas de atención con metadatos completos por conversación y limita multimedia al chat seleccionado.",
  "v190": {
    "backend_status": "applied_verified",
    "frontend_status": "manual_upload_pending",
    "frontend_published": false,
    "manual_sql_required": false,
    "all_inbox_pagination": "pending",
    "multi_company_ready": false
  },
  "release_note_25_40_193": "Reactivación WhatsApp validada por número de salida autorizado. La ventana de otro canal ya no bloquea iniciar desde Publicidad. El formulario consulta la conversación exacta y muestra el canal de salida. Conserva íntegramente V192.",
  "v193": {
    "backend_status": "applied_verified",
    "frontend_status": "manual_upload_pending",
    "frontend_published": false,
    "manual_sql_required": false,
    "source_frontend": "STRAXORA_V192_BANDEJA_Y_ALERTAS_OPTIMIZADAS_COMPLETO.zip",
    "edge_function": "whatsapp-send-template-v1",
    "edge_version": 19,
    "real_messages_sent_for_testing": 0
  },
  "v196": {
    "backend_status": "applied_verified",
    "frontend_status": "manual_upload_pending",
    "frontend_published": false,
    "manual_sql_required": false
  },
  "release_note_25_40_196_1": "Adjuntar boleta abre el formulario al frente y vuelve a la misma confirmación al guardar o cancelar, conservando importes y guía pendiente. Recupera el acceso previo a la boleta en venta desde cotización y el botón principal Depósito.",
  "v196_1": {
    "base_package": "STRAXORA_V196_NUCLEO_FINANCIERO_COMPLETO.zip",
    "frontend_status": "ready_for_manual_publication",
    "frontend_published": false,
    "backend_changes": false,
    "manual_sql_required": false,
    "real_sales_or_deposits_created_for_testing": 0,
    "new_polling_added": false
  },
  "frontend_published": false,
  "release_note_25_40_197": "Integra cobros, nómina, bancos, activos, presupuestos, divisas y cierres al Libro Mayor; agrega estados financieros y comparación de compras. Conserva gastos al guardar, IVA pagado, privacidad y corrección de depósitos V196.1.",
  "release_note_25_40_198": "Agrega la ficha del emisor TEST, credenciales protegidas, comprobación del acceso API Digifact e historial y consulta de la cola FEL por empresa. No habilita certificación ni producción.",
  "release_note_25_40_199": "Separa Contabilidad y Finanzas en el menú izquierdo con accesos directos y submenús; elimina las dos filas de pestañas internas. Conserva operaciones, permisos y FEL TEST V198.",
  "release_note_25_40_200": "Creador de borradores por venta, generación por día, productos pendientes, receptor, protección contra duplicados y automatización configurable de nuevas ventas. Certificación pendiente de integración Digifact.",
  "v200": {
    "backend_status": "applied_verified",
    "frontend_status": "manual_upload_pending",
    "manual_sql_required": false,
    "automatic_enabled": false,
    "production_issuance_enabled": false,
    "historical_sales_auto_processed": false,
    "migrations": [
      "fel_automatic_draft_generator_v200",
      "fel_draft_source_and_certification_guards_v200"
    ],
    "browser_checks": 65,
    "real_invoices_certified_for_testing": 0
  },
  "release_note_25_40_201": "Integración de envío FEL TEST, confirmación, protección contra duplicados y descarga condicional XML/PDF. Autenticación verificada; certificación pendiente por rechazo Digifact 3000/3064. Producción deshabilitada.",
  "v201": {
    "frontend_published": false,
    "manual_sql_required": false,
    "production_issuance_enabled": false,
    "test_generic_issuer": "5888492",
    "source_version": "25.40.200",
    "live_test_status": "rejected",
    "live_test_code": "3000/3064",
    "live_test_sale": "POS-00000128",
    "live_test_amount": 75,
    "connection_verified": true,
    "production_certification": false,
    "transport": "NUC XML V2"
  },
  "release_note_25_40_202": "Impresión FEL TEST con la plantilla comercial de Repuestos A&M. Datos de autorización, emisor, receptor e importes leídos del XML guardado. PDF original Digifact y XML conservados. Adenda corregida en servidor; prueba Q75 certificada. Producción deshabilitada.",
  "v202": {
    "frontend_published": false,
    "manual_sql_required": false,
    "source_version": "25.40.201",
    "production_issuance_enabled": false,
    "live_test_status": "certified_test",
    "print_source": "stored_certified_xml",
    "new_certification_required": false
  },
  "release_note_25_40_203": "Formato FEL alineado con la referencia de Repuestos A&M: conserva colores, tamaños, columnas y total rojo/negro al imprimir; metadatos del XML al pie. Solo cambia la presentación, sin nuevas certificaciones.",
  "v203": {
    "frontend_published": false,
    "source_version": "25.40.202",
    "backend_changed": false,
    "reference": "Recibo Repuestos A&M aportado por el usuario",
    "production_issuance_enabled": false,
    "new_certification_requests": 0
  },
  "release_note_25_40_205": "Informe de asesores por rango de fechas: actividad, jornada esperada, ventas y devoluciones por día, totales y promedios, CSV e impresión. Lectura por empresa y jerarquía; sin nuevas consultas automáticas. Incluye V203 y conserva la corrección de liquidación V204 aplicada en servidor.",
  "v205": {
    "backend_status": "applied_verified",
    "frontend_status": "manual_upload_pending",
    "frontend_published": false,
    "manual_sql_required": false
  },
  "release_note_25_40_206": "Menú por función: Caja separa cobros y depósitos; Contabilidad reúne conciliación bancaria, reportes COD y comisiones/fletes. Despachos e inventarios en sus áreas. Sin pestañas de Operaciones ni de costos; consultas por apartado y protección contra respuestas tardías.",
  "v206": {
    "source_version": "25.40.205",
    "frontend_status": "manual_upload_pending",
    "frontend_published": false,
    "backend_changes": false,
    "manual_sql_required": false,
    "business_records_changed_for_testing": 0
  },
  "release_note_25_40_207": "DEV desde cada venta confirmada y desde última venta rápida. Solicitudes parciales o totales, revisión de Gerencia/Subgerencia, stock según condición, ajuste de crédito o saldo a favor, integración contable e historial unificado.",
  "v207": {
    "source_version": "25.40.206",
    "backend_status": "applied_verified",
    "frontend_status": "manual_upload_pending",
    "frontend_published": false,
    "manual_sql_required": false,
    "cash_refund_automatic": false,
    "fiscal_credit_note_automatic": false,
    "business_records_persisted_for_testing": 0
  },
  "release_note_25_40_208": "Editar producto desde Catálogo maestro sin salir de la búsqueda. Gerencia y Subgerencia pueden abrir la edición de envíos despachados desde Seguimiento, Ventas confirmadas y Bodega. Formularios existentes, permisos verificados y protección de sesión.",
  "v208": {
    "source_version": "25.40.207",
    "frontend_status": "manual_upload_pending",
    "frontend_published": false,
    "backend_changes": false,
    "existing_backend_behavior": "verified_manager_and_submanager",
    "manual_sql_required": false,
    "business_records_persisted_for_testing": 0
  },
  "release_note_25_40_210": "Contabilidad: registro privado de créditos y tarjetas propios, tasas y tipo de interés, frecuencia, saldos al corte, vencimientos, calendario, historial y exportación. Backend V210 aplicado; V209 Luna continúa activo.",
  "v210": {
    "source_version": "25.40.208",
    "backend_status": "applied_verified",
    "frontend_status": "manual_upload_pending",
    "frontend_published": false,
    "manual_sql_required": false,
    "access": "existing_private_financial_access_Daniel",
    "payments_posted_automatically": false,
    "interest_computed_automatically": false,
    "business_records_persisted_for_testing": 0,
    "luna_v209": "active_unchanged"
  }
}
