diff --git a/frontend/package.json b/frontend/package.json
index e1f5e91..c178dad 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -1,7 +1,7 @@
{
"name": "checklist-frontend",
"private": true,
- "version": "1.1.0",
+ "version": "1.2.0",
"type": "module",
"scripts": {
"dev": "vite",
diff --git a/frontend/public/service-worker.js b/frontend/public/service-worker.js
index e1fcd1e..14a2248 100644
--- a/frontend/public/service-worker.js
+++ b/frontend/public/service-worker.js
@@ -1,6 +1,6 @@
// Service Worker para PWA con detección de actualizaciones
// IMPORTANTE: Actualizar esta versión cada vez que se despliegue una nueva versión
-const CACHE_NAME = 'ayutec-v1.1.0';
+const CACHE_NAME = 'ayutec-v1.2.0';
const urlsToCache = [
'/',
'/index.html'
diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx
index 2e34423..a8dea73 100644
--- a/frontend/src/App.jsx
+++ b/frontend/src/App.jsx
@@ -2957,8 +2957,8 @@ function ChecklistsTab({ checklists, user, onChecklistCreated, onStartInspection
{editChecklistData.ai_mode === 'off' && '❌ El mecánico completa todo manualmente'}
- {editChecklistData.ai_mode === 'assisted' && '💡 IA sugiere respuestas, el mecánico confirma'}
- {editChecklistData.ai_mode === 'copilot' && '🤖 IA completa automáticamente, el mecánico revisa'}
+ {editChecklistData.ai_mode === 'assisted' && '💡 Asistente sugiere respuestas, el mecánico confirma'}
+ {editChecklistData.ai_mode === 'copilot' && '🤖 Asistente completa automáticamente, el mecánico revisa'}
@@ -3597,7 +3597,7 @@ function InspectionDetailModal({ inspection, user, onClose, onUpdate, onContinue
{user?.role === 'admin' && answer.ai_analysis && (
- 🤖 Análisis de IA
+ 🤖 Análisis Ayutec
{Array.isArray(answer.ai_analysis) ? (
@@ -4755,7 +4755,7 @@ function InspectionModal({ checklist, existingInspection, user, onClose, onCompl
}
}))
- alert('✅ Documentos cargados (sin análisis IA)')
+ alert('✅ Documentos cargados (sin análisis del asistente)')
} finally {
setAiAnalyzing(false)
}
@@ -4956,10 +4956,11 @@ function InspectionModal({ checklist, existingInspection, user, onClose, onCompl
- Número de OR
+ Número de OR *
setVehicleData({ ...vehicleData, or_number: e.target.value })}
className="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500"
@@ -5086,15 +5087,13 @@ function InspectionModal({ checklist, existingInspection, user, onClose, onCompl
type="button"
onClick={() => {
setShowAIChat(true)
- // Cargar historial si existe
- if (answers[currentQuestion.id]?.chatHistory) {
- setAiChatMessages(answers[currentQuestion.id].chatHistory)
- }
+ // SIEMPRE inicializar - cargar historial guardado O array vacío para nueva sesión
+ setAiChatMessages(answers[currentQuestion.id]?.chatHistory || [])
}}
className="w-full mt-3 px-4 py-3 bg-gradient-to-r from-purple-600 to-blue-600 text-white rounded-lg hover:from-purple-700 hover:to-blue-700 transition flex items-center justify-center gap-2 font-semibold shadow-lg"
>
💬
-
Consultar Asistente IA
+
Consultar Asistente
{answers[currentQuestion.id]?.chatHistory?.length > 0 && (
{answers[currentQuestion.id].chatHistory.length} mensajes
@@ -5282,7 +5281,7 @@ function InspectionModal({ checklist, existingInspection, user, onClose, onCompl
const confirmChange = window.confirm(
`⚠️ ADVERTENCIA DE COHERENCIA\n\n` +
`Tu respuesta: "${answer.value}"\n` +
- `Análisis de IA sugiere: "${aiData.expected_answer}"\n\n` +
+ `Asistente sugiere: "${aiData.expected_answer}"\n\n` +
`La imagen muestra:\n${aiData.observations || 'Sin detalles'}\n\n` +
`¿Deseas cambiar tu respuesta antes de continuar?\n\n` +
`• Presiona CANCELAR para revisar y cambiar tu respuesta\n` +
@@ -5328,7 +5327,7 @@ function InspectionModal({ checklist, existingInspection, user, onClose, onCompl
const confirmChange = window.confirm(
`⚠️ ADVERTENCIA DE COHERENCIA\n\n` +
`Tu respuesta: "${answer.value}"\n` +
- `Análisis de IA sugiere: "${aiData.expected_answer}"\n\n` +
+ `Asistente sugiere: "${aiData.expected_answer}"\n\n` +
`La imagen muestra:\n${aiData.observations || 'Sin detalles'}\n\n` +
`¿Deseas cambiar tu respuesta antes de completar?\n\n` +
`• Presiona CANCELAR para revisar y cambiar tu respuesta\n` +
@@ -5595,8 +5594,12 @@ function AIAssistantChatModal({ question, inspection, allAnswers, messages, setM
-
💬
-
Asistente IA
+
+
Asistente Ayutec
{question.text}
@@ -5623,9 +5626,15 @@ function AIAssistantChatModal({ question, inspection, allAnswers, messages, setM
{messages.length === 0 && (
-
🤖
+
+
+
- ¡Hola! Soy tu asistente técnico.
+ ¡Hola! Soy tu Asistente Ayutec.
He analizado las fotos anteriores. ¿En qué puedo ayudarte?
diff --git a/frontend/src/QuestionAnswerInput.jsx b/frontend/src/QuestionAnswerInput.jsx
index 0b65dab..daa06af 100644
--- a/frontend/src/QuestionAnswerInput.jsx
+++ b/frontend/src/QuestionAnswerInput.jsx
@@ -292,16 +292,16 @@ export function QuestionAnswerInput({ question, value, onChange, onSave }) {
)
}
- // AI_ASSISTANT (Chat con IA)
+ // AI_ASSISTANT (Chat con asistente)
if (questionType === 'ai_assistant') {
return (
💬
-
Asistente IA Disponible
+ Asistente Disponible
- Haz clic en el botón "💬 Consultar Asistente" debajo para abrir el chat con IA.
+ Haz clic en el botón "💬 Consultar Asistente" debajo para abrir el chat.
El asistente ha analizado las fotos anteriores y está listo para ayudarte.
diff --git a/frontend/src/QuestionTypeEditor.jsx b/frontend/src/QuestionTypeEditor.jsx
index 6f8dbb1..07029ec 100644
--- a/frontend/src/QuestionTypeEditor.jsx
+++ b/frontend/src/QuestionTypeEditor.jsx
@@ -24,7 +24,7 @@ const QUESTION_TYPES = [
{ value: 'date', label: '📅 Fecha', icon: '📆' },
{ value: 'time', label: '🕐 Hora', icon: '⏰' },
{ value: 'photo_only', label: '📸 Solo Fotografía', icon: '📷' },
- { value: 'ai_assistant', label: '🤖 Asistente IA (Chat)', icon: '💬' }
+ { value: 'ai_assistant', label: '🤖 Asistente (Chat)', icon: '💬' }
]
const STATUS_OPTIONS = [
@@ -543,9 +543,9 @@ export function QuestionTypeEditor({ value, onChange, maxPoints = 1 }) {
💬
-
Asistente IA Conversacional
+
Asistente Conversacional
- El mecánico podrá chatear con IA usando fotos de preguntas anteriores como contexto.
+ El mecánico podrá chatear con el asistente usando fotos de preguntas anteriores como contexto.
Configura qué preguntas anteriores usar y el comportamiento del asistente.
diff --git a/frontend/src/Sidebar.jsx b/frontend/src/Sidebar.jsx
index 72c8071..d741c36 100644
--- a/frontend/src/Sidebar.jsx
+++ b/frontend/src/Sidebar.jsx
@@ -153,7 +153,7 @@ export default function Sidebar({ user, activeTab, setActiveTab, sidebarOpen, se
className="w-10 h-10 object-contain bg-white rounded p-1"
/>
- Ayutec v1.1.0
+ Ayutec v1.2.0