feat: version 4.0.1 -- Nuevo con IA: aviso de proyectos parecidos y objetivo redactado

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Milton Gonzalez
2026-10-23 16:38:28 -05:00
parent 4b83a24e4c
commit 7e59f0181d
9 changed files with 75 additions and 6 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "project-linkedcorp-frontend",
"private": true,
"version": "4.0.0",
"version": "4.0.1",
"type": "module",
"scripts": {
"dev": "vite",
+2
View File
@@ -39,6 +39,7 @@ export const messages = {
ai_new_project_start: 'Fecha de inicio',
ai_new_project_fixed: 'El proyecto se crea en estado Planificado, contigo como responsable y único miembro. La IA propone el nombre, las actividades y sus tareas; podrás revisarlos antes de crear.',
ai_new_project_type: 'Tipo',
ai_new_project_similar: 'Ya existen proyectos parecidos; revisa que no sea el mismo (se abren en otra pestaña):',
ai_new_project_goal: 'Objetivo',
ai_new_project_desc: 'Descripción',
ai_new_project_end: 'Fin estimado',
@@ -600,6 +601,7 @@ export const messages = {
ai_new_project_start: 'Start date',
ai_new_project_fixed: 'The project is created as Planned, with you as owner and only member. AI proposes the name, activities and tasks; you will review them before creating.',
ai_new_project_type: 'Type',
ai_new_project_similar: 'Similar projects already exist; check it is not the same one (opens in a new tab):',
ai_new_project_goal: 'Goal',
ai_new_project_desc: 'Description',
ai_new_project_end: 'Estimated end',
@@ -92,6 +92,14 @@ export function NewProjectAiDialog({ open, deptOptions, minLength = 20, onClose,
</>
) : (
<>
{proposal.similarProjects?.length > 0 && (
<InfoBar tone="warning" dismissible={false}>
{t('ai_new_project_similar')}{' '}
{proposal.similarProjects.map((p, i) => (
<span key={p.id}>{i > 0 && ', '}<a href={`/proyectos/${p.id}`} target="_blank" rel="noreferrer">{p.code} {p.name}</a> ({p.statusName})</span>
))}
</InfoBar>
)}
<Field label={t('common_name')}>
<input className="input" value={name} maxLength={200} onChange={(e) => setName(e.target.value)} />
</Field>