Commit Graph

182 Commits

Author SHA1 Message Date
Marcos Fargas
80bfa3035f feat(shell): selector de cliente en sidebar, layout fijo, cabecera contextual y reordenacion de menu 2026-10-17 19:38:22 +02:00
Marcos Fargas
ae52f2f50a design: sistema visual de marca (Midnight/Orange, Canela, shell oscuro) 2026-10-17 19:37:55 +02:00
4Ventures
812052b7eb fix(publish): no saltar piezas programadas en revisión
El cron también publica revision_agencia/programada con horario vencido; mover en calendario deja la pieza en cola.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 15:55:12 +02:00
4Ventures
4c91c4b1f4 fix(pipeline): write-back RRSS al crear creatividades
Al terminar Claude/Freepik, el cover vuelve al pipeline sin esperar solo a Canva; plantillas Canva usan canal rrss.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 15:33:48 +02:00
4Ventures
ee6e6bace1 fix(historial): registrar todos los cambios de Zona de marca
Instrumenta kit, fuentes y estilo creativo; el listado filtra por rango e incluye hoy.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 14:05:17 +02:00
4Ventures
f127b0a4c4 feat(creatives): Canva Agua Miia post / story / LinkedIn
Mapea EAHYK-l1SFM, EAHYK9p_MlY y EAHYK_ylNJo por formato y plataforma en RRSS.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 14:00:34 +02:00
4Ventures
5de5e3c5e0 feat(creatives): plantilla Canva Agua Miia EAHYK-l1SFM
Permite pegar URL o ID de Brand Template, default por tenant y normalización al guardar para WF5 Ads/RRSS.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 13:51:15 +02:00
4Ventures
5c76ae18bb feat(brandkit): permitir subir PDF y DOCX como fuentes
Extrae texto del PDF/DOCX en Fuentes del kit de marca para no depender
de pegar el contenido a mano.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 13:26:06 +02:00
4Ventures
77fd628078 fix(pipeline): editar formato Post/Story y bloquear horarios pasados
Permite cambiar el formato al editar una pieza, normaliza Stories→story
al guardar y rechaza programaciones en fecha/hora ya pasada.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 13:05:30 +02:00
4Ventures
c434fa5834 fix: no mezclar banners/datos ECP ↔ De Tú a Tú Formación
Aísla marcas hermanas en creatives, sync y social cache para que cada
cuenta solo muestre sus propias campañas y creatividades.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 11:44:24 +02:00
4Ventures
4a1abd3318 feat: LinkedIn editorial, accesos agencia estables y deshacer en historial
Integra estrategias LinkedIn en calendarios (backlog publicado vs pendiente), unifica roles/cookies de vista agencia y permite deshacer cambios de brandbook dejando constancia en el historial.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 04:15:51 +02:00
4Ventures
3b57cdce53 feat(calendario): opciones de generación, regenerar y publish IG/FB
Cantidades posts/stories/reels, días, mix mismo día, instrucciones,
regenerar marcadas, texto por slide/guión reel, stories interactivas
y horarios IG/FB separados o iguales.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 16:36:45 +02:00
4Ventures
39b1f8ec02 feat: historial de cambios (usuario, fecha, detalle)
Tabla change_history, pantalla en Agencia OS y registro automático
al guardar o enriquecer Zona de marca.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 15:42:18 +02:00
Marcos Fargas
62a25e7236 fix(brand): sincronizacion bidireccional de linkedin_strategy_url y precarga automatica de campos b2b 2026-10-15 12:57:55 +02:00
Marcos Fargas
d049fa0f3b fix: eliminar footer rls en login y habilitar subida y sincronizacion de logo de cliente 2026-10-15 04:18:02 +02:00
4Ventures
3cb3ad1db1 feat: Zona de marca tipo Estilo/Brief + brandbooks desde ads/RRSS
UI con nav lateral numerada y panel editable; parse de brandbook JSON string;
enrich desde Meta/Google/IG/FB/web/CSS para que app.4ventures.es muestre el kit.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 03:24:45 +02:00
Marcos Fargas
102c100427 feat(activos): anadir directorio de personas del cliente y resolver fondos oscuros en inputs 2026-10-15 03:02:58 +02:00
Marcos Fargas
4f8ea26938 feat(activos): seccion para guardar y gestionar URLs con descripcion del cliente 2026-10-15 02:27:47 +02:00
Marcos Fargas
0ddd5e5907 feat(brandbook): anadir analizador e ingesta automatica de estrategias LinkedIn B2B con IA desde URL 2026-10-15 01:34:24 +02:00
Marcos Fargas
e4a605bdbd feat(brandbook): anadir ingesta automatica de fuentes desde URL web en seccion Fuentes 2026-10-15 01:14:38 +02:00
Marcos Fargas
85e9f4c184 feat(brandbook): anadir ingesta y analisis automatico de blog con IA en Zona de Marca 2026-10-15 00:18:22 +02:00
Marcos Fargas
8b101c094c fix: corregir parseBrandbook para deserializar strings de documents, restaurar paneles y sincronización bidireccional total entre Zona de Marca y Creatividades Ads 2026-10-14 17:47:30 +02:00
Marcos Fargas
6e8e9ee5c8 feat: restaurar todas las secciones en Creatividades Ads con sincronización bidireccional en tiempo real con Zona de Marca 2026-10-14 17:33:37 +02:00
4Ventures
9d7d799ec1 Add RRSS auto-generation via the Ads Claude/Freepik/Canva pipeline.
Pipeline pieces can be created manually or enqueued with channel=rrss, using brandbook, calendar copy and RRSS history; n8n writes results back to creative_pipeline.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 16:22:01 +02:00
Marcos Fargas
aed73e0171 feat: centralizar ADN y estilo de marca en Zona de Marca y simplificar panel de creatividades a operativa ads 2026-10-14 14:53:39 +02:00
4Ventures
0e8befe69a Show all client RRSS calendars in portfolio and restore Agua Miia October.
Agency vista global listed nothing; now cards per followed client. Persist bundled Oct 2026 for Agua Miia when missing so the operative plan is not hidden by a sole November row.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-14 13:20:18 +02:00
4Ventures
a225f8c2a6 Allow agency to fully delete an editorial calendar month.
Removes the calendar document and linked draft pipeline pieces, with confirm-by-typing the YYYY-MM code.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 18:07:24 +02:00
4Ventures
fd2bd9582d Let agency configure each client's left-nav modules from the ficha.
Checkboxes match the sidebar (incl. Social sub-items), with a live preview and route guard so clients cannot open disabled sections.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 17:52:55 +02:00
4Ventures
d3e383dd08 Limit client asset library to app-generated folders only.
Agency still sees the full Drive tree and portal uploads; clients only see Pipeline-creatividades / calendarios / brandbook-style paths.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 17:48:47 +02:00
4Ventures
1cf8e7c1bd Require 9:16 and 1.91:1 adaptations alongside every static 4:5 ad creative.
Generation briefs and Canva webhooks now declare all three Meta placements so WF3/WF5 deliver feed, Stories, and landscape from one Freepik base.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 17:03:40 +02:00
4Ventures
f80292cc1b Show agency creatives board when a client is selected in Contexto.
Creatividades Ads was always rendering the client approval UI, so agency never saw Pedir relevo / kanban on that route.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 16:37:51 +02:00
4Ventures
2b57b93220 Allow keeping selected calendar pieces/days and regenerating the rest.
Agency can mark good stories, keep only those days, or request a partial v2 for unmarked slots without replacing the whole month.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 13:57:13 +02:00
4Ventures
714f250eca Feed editorial calendar generation with past calendars and live network posts.
Brandbook plus calendar history and published pipeline/IG pieces now shape series mix and Claude strategist prompts without copying old titles.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 13:53:27 +02:00
4Ventures
3afec6402f fix calendar→pipeline sync to use unified borrador status.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 13:30:22 +02:00
4Ventures
46492c3873 Unify Ads/RRSS approval flow and add personalized Meta creative regen.
Agency validates first then client; Meta copy is 5+5+1 with on-image vs feed layers, emojis on feed, and partial v2 by image/hook/support/copy.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 13:17:36 +02:00
4Ventures
7819448edc Add Pipeline RRSS under Social with the existing editorial board.
Keep Creatividades Ads for paid Meta approval and surface organic pipeline again as a clear Social sub-nav link.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-13 09:55:46 +02:00
Marcos Fargas
b13270d9ac feat(creatives): implement 7 system improvements (Canva recompose, Slack actions, reject feedback loop, 9:16 stories, Meta campaign auto-detect, Claude Vision QA, angle analytics) 2026-10-13 02:41:02 +02:00
Marcos Fargas
142933a654 feat(creatives): add configurable per-client creative style and skill builder in UI and API 2026-10-13 01:44:44 +02:00
Marcos Fargas
2a1629cda8 feat(webhooks): dispatch async generation_request.created and creative.created events to n8n with 60s retry 2026-10-13 01:17:26 +02:00
Marcos Fargas
66d34853e6 feat(canva): support asset_final, created_by, include=client filters in GET and merge meta in PATCH 2026-10-12 22:40:23 +02:00
Marcos Fargas
ab64ead6c3 feat(brief): add product and landing_url to brief, map from campaign_products and inherit from source creative 2026-10-12 21:15:43 +02:00
Marcos Fargas
317a3aa46d feat(skills): update BPS & static skills, add audience to brief, inline angle/hook editing and montage notes 2026-10-12 20:32:15 +02:00
Marcos Fargas
34ce46774d feat(creatives): implement agency and client views (Tasks 6 & 7) with fatigue panel and Claude queue 2026-10-12 20:08:34 +02:00
Marcos Fargas
7b604c68ca fix(creatives): remove website col from tenant select 2026-10-12 19:21:48 +02:00
Marcos Fargas
cf34868bc3 feat(creatives): implement WF4 integrations, GET include=client, asset_final check and HMAC webhook 2026-10-12 19:18:21 +02:00
Marcos Fargas
487895a420 fix(integrations): allow querying queue without tenant_id and resilient tenant resolution in PATCH 2026-10-12 18:41:44 +02:00
Marcos Fargas
a7e2723a3e feat(integrations): add skills endpoint, enrich creative context with client info, and support meta in creatives 2026-10-12 18:40:11 +02:00
Marcos Fargas
52cebab3e6 feat(integrations): support history_days in fatigue candidates and ensure data envelope for WF2 2026-10-12 18:17:23 +02:00
Marcos Fargas
958c59a8ec feat(creatives): task 5 - approval actions, outgoing webhooks with HMAC, and publish patch 2026-10-12 13:44:54 +02:00
Marcos Fargas
0f9f03fad5 feat(creatives): task 4 - claude integration endpoints (generation-requests, creatives, context, events) 2026-10-12 13:35:50 +02:00