Conversation
- add templates modal to select additional templates - add logic to remove selection of template if user clears text input box - extract the templates to a central place to be used for chat main page and templates modal - add keys to templates for better rendering and as identifiers - remove commented 'Linkedin' template
|
You have run out of free Bugbot PR reviews for this billing cycle. This will reset on October 5. To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial. |
WalkthroughIntroduces a new templates data module and TemplatesModal component, refactors ChatTemplatesMenu to use quick-access chips plus a modal, and threads selectedTemplateKey through ProjectChatRoute. Updates various UI strings to use uppercase “ECHO.” Broad localization resource updates reflect file moves and new/renamed msgids. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested labels
Pre-merge checks and finishing touches❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests
Tip 👮 Agentic pre-merge checks are now available in preview!Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.
Please see the documentation for more information. Example: reviews:
pre_merge_checks:
custom_checks:
- name: "Undocumented Breaking Changes"
mode: "warning"
instructions: |
Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).Please share your feedback with us on this Discord post. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 32
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (16)
echo/frontend/src/locales/fr-FR.po (3)
271-281: Typos and phrasing in Compare & Contrast prompt.Fix misspelling and awkward phrasing; keep tone intact.
-"Aller au-delà des comparaisons superficieles +"Aller au-delà des comparaisons superficielles @@ -"Structurer l'analyse pour construire une compréhension +"Structurer l'analyse pour favoriser la compréhension - "Dessiner des insights qui contredisent les idées conventionnelles + "Dégager des insights qui remettent en cause les idées reçues
2657-2659: “Ceci est …”, not “Cette est …”.-msgstr "Cette est une vue en direct du portail du participant. Vous devrez actualiser la page pour voir les dernières modifications." +msgstr "Ceci est une vue en direct du portail du participant. Vous devrez actualiser la page pour voir les dernières modifications."
2989-2993: Conjugation: “enverrons”, not “envoyerons”.-msgstr "Nous vous envoyerons un message uniquement si votre hôte génère un rapport, nous ne partageons jamais vos informations avec personne. Vous pouvez vous désinscrire à tout moment." +msgstr "Nous vous enverrons un message uniquement si votre hôte génère un rapport, nous ne partageons jamais vos informations avec personne. Vous pouvez vous désinscrire à tout moment."echo/frontend/src/locales/en-US.po (2)
2735-2737: en-US spelling: analyze.msgid "library.description" -msgstr "This is your project library. Create views to analyse your entire project at once." +msgstr "This is your project library. Create views to analyze your entire project at once."
3204-3206: en-US spelling: analyze.-msgstr "Your view has been created. Please wait as we process and analyse the data." +msgstr "Your view has been created. Please wait as we process and analyze the data."echo/frontend/src/locales/nl-NL.po (6)
14-14: Set correct Plural-Forms headerMissing plural rules will break pluralized strings. Set Dutch plural forms.
-"Plural-Forms: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n"
285-307: Complete and tighten the “Analyze these elements…” translationSeveral bullets are missing and tone is off. Proposed fuller, crisper Dutch.
msgid "" "Analyze these elements with depth and nuance. Please:\n" @@ msgstr "" -"Analyseer deze elementen met diepte en nuance. Neem de volgende punten in acht:\n" -"\n" -"Focus op verrassende verbindingen en contrasten\n" -"Ga verder dan duidelijke oppervlakte-niveau vergelijkingen\n" -"Identificeer verborgen patronen die de meeste analyses missen\n" -"Blijf analytisch exact terwijl je aantrekkelijk bent\n" -"\n" -"Opmerking: Als de vergelijkingen te superficieel zijn, laat het me weten dat we meer complex materiaal nodig hebben om te analyseren." +"Analyseer deze elementen met diepgang en nuance. Graag:\n" +"\n" +"Leg onverwachte verbanden en contrasten bloot\n" +"Ga verder dan voor de hand liggende vergelijkingen op oppervlakteniveau\n" +"Identificeer verborgen patrononen die de meeste analyses missen\n" +"Bewaar analytische scherpte en blijf boeiend\n" +"Gebruik voorbeelden die onderliggende principes verhelderen\n" +"Structureer de analyse zodat het begrip opbouwt\n" +"Trek inzichten die de conventionele wijsheid uitdagen\n" +"\n" +"Opmerking: Als de gelijkenissen/verschillen te oppervlakkig zijn, geef aan dat we complexer materiaal nodig hebben om te analyseren."
1012-1015: Wrong language mix in “Enable Report Notifications”German/Dutch mashup. Use Dutch.
-msgstr "Berichtsbenachrichtigingen inschakelen" +msgstr "Rapportmeldingen inschakelen"
203-206: Use “chat” consistentlyWe mix “gesprek” vs “chat”. Align with the rest of the UI.
-msgstr "Voeg toe aan dit gesprek" +msgstr "Voeg toe aan deze chat"
2267-2270: Use “chat” consistently-msgstr "Verwijder van dit gesprek" +msgstr "Verwijder uit deze chat"
903-903: Normalize Dutch pronouns in echo/frontend/src/locales/nl-NL.po — use informal "je"Mixed "je" and "u/uw" found; convert participant-facing "u/uw" → "je" for consistency.
- Examples to change: 1062: "Voer uw toegangscode in" → "Voer je toegangscode in"; 1318: "Geweldig! Uw documenten worden nu geüpload." → "Geweldig! Je documenten worden nu geüpload."; 3102: "Typ hier uw reactie" → "Typ hier je reactie".
- Many strings already use "je" (e.g., 18: "Je bent niet ingelogd") — run a global pass and review possessive cases (uw → je/jouw) for grammar.
echo/frontend/src/locales/es-ES.po (5)
14-14: Set correct Plural-Forms headerSpanish plural rules are missing; pluralized strings may break.
-"Plural-Forms: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n"
539-542: “Confirm Publishing” should not be “Publicar”Use “Confirmar publicación”.
-msgstr "Publicar" +msgstr "Confirmar publicación"
1794-1796: Consistency: stick to informal “tú” voice-msgstr "Por favor, habilite la participación para habilitar el uso compartido" +msgstr "Habilita la participación para poder compartir"
1701-1703: Natural phrasing for “Open for Participation?”-msgstr "¿Abierto para Participación?" +msgstr "¿Permitir participación?"
257-282: Improve fidelity of “Analyze these elements…”Sharper imperatives, complete bullets.
msgid "" "Analyze these elements with depth and nuance. Please:\n" @@ msgstr "" -"Analiza estos elementos con profundidad y matiz. Por favor:\n" -"\n" -"Enfoque en las conexiones inesperadas y contrastes\n" -"Pasa más allá de las comparaciones superficiales\n" -"Identifica patrones ocultos que la mayoría de las analíticas pasan por alto\n" -"Mantén el rigor analítico mientras sigues siendo atractivo\n" -"Usa ejemplos que iluminan principios más profundos\n" -"Estructura el análisis para construir una comprensión\n" -"Dibuja insights que contradicen ideas convencionales\n" -"\n" -"Nota: Si las similitudes/diferencias son demasiado superficiales, por favor házmelo saber, necesitamos material más complejo para analizar." +"Analiza estos elementos con profundidad y matiz. Por favor:\n" +"\n" +"Céntrate en conexiones y contrastes inesperados\n" +"Ve más allá de comparaciones obvias y superficiales\n" +"Identifica patrones ocultos que la mayoría pasa por alto\n" +"Mantén rigor analítico sin perder atractivo\n" +"Usa ejemplos que aclaren principios subyacentes\n" +"Estructura el análisis para construir comprensión\n" +"Extrae conclusiones que cuestionen la sabiduría convencional\n" +"\n" +"Nota: Si las similitudes/diferencias son demasiado superficiales, indícame que necesitamos material más complejo para analizar."
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (16)
echo/frontend/src/components/chat/ChatTemplatesMenu.tsx(2 hunks)echo/frontend/src/components/chat/TemplatesModal.tsx(1 hunks)echo/frontend/src/components/chat/templates.ts(1 hunks)echo/frontend/src/components/project/ProjectPortalEditor.tsx(3 hunks)echo/frontend/src/locales/de-DE.po(65 hunks)echo/frontend/src/locales/de-DE.ts(1 hunks)echo/frontend/src/locales/en-US.po(66 hunks)echo/frontend/src/locales/en-US.ts(1 hunks)echo/frontend/src/locales/es-ES.po(65 hunks)echo/frontend/src/locales/es-ES.ts(1 hunks)echo/frontend/src/locales/fr-FR.po(65 hunks)echo/frontend/src/locales/fr-FR.ts(1 hunks)echo/frontend/src/locales/nl-NL.po(67 hunks)echo/frontend/src/locales/nl-NL.ts(1 hunks)echo/frontend/src/routes/participant/ParticipantConversation.tsx(1 hunks)echo/frontend/src/routes/project/chat/ProjectChatRoute.tsx(4 hunks)
🧰 Additional context used
🧠 Learnings (2)
📚 Learning: 2025-05-30T15:36:40.131Z
Learnt from: ussaama
PR: Dembrane/echo#169
File: echo/frontend/src/locales/fr-FR.po:521-523
Timestamp: 2025-05-30T15:36:40.131Z
Learning: In the French localization file (fr-FR.po), "Dembrane Echo" is intentionally translated as "Echo Dembrane" for better French language flow and natural sound. This is not an error but a deliberate localization choice.
Applied to files:
echo/frontend/src/components/project/ProjectPortalEditor.tsxecho/frontend/src/locales/fr-FR.po
📚 Learning: 2025-08-19T10:14:31.647Z
Learnt from: ussaama
PR: Dembrane/echo#266
File: echo/frontend/src/components/chat/ChatAccordion.tsx:214-221
Timestamp: 2025-08-19T10:14:31.647Z
Learning: In the Echo frontend codebase using Lingui, i18n IDs in Trans components (e.g., `<Trans id="any.string.here">`) can be arbitrary strings and don't need to follow specific naming conventions. They are just references used in .po files, and the actual translations need to be manually defined in the locale files.
Applied to files:
echo/frontend/src/locales/de-DE.poecho/frontend/src/locales/en-US.po
🧬 Code graph analysis (7)
echo/frontend/src/components/chat/TemplatesModal.tsx (1)
echo/frontend/src/components/chat/templates.ts (2)
Templates(11-76)Template(4-9)
echo/frontend/src/locales/de-DE.ts (1)
echo/frontend/src/locales/en-US.ts (1)
messages(1-1)
echo/frontend/src/routes/project/chat/ProjectChatRoute.tsx (1)
echo/frontend/src/components/chat/ChatTemplatesMenu.tsx (1)
ChatTemplatesMenu(19-106)
echo/frontend/src/locales/nl-NL.ts (2)
echo/frontend/src/locales/de-DE.ts (1)
messages(1-1)echo/frontend/src/locales/en-US.ts (1)
messages(1-1)
echo/frontend/src/components/chat/ChatTemplatesMenu.tsx (2)
echo/frontend/src/components/chat/templates.ts (2)
quickAccessTemplates(78-78)Templates(11-76)echo/frontend/src/components/chat/TemplatesModal.tsx (1)
TemplatesModal(26-134)
echo/frontend/src/locales/fr-FR.ts (3)
echo/frontend/src/locales/de-DE.ts (1)
messages(1-1)echo/frontend/src/locales/en-US.ts (1)
messages(1-1)echo/frontend/src/locales/es-ES.ts (1)
messages(1-1)
echo/frontend/src/locales/en-US.ts (4)
echo/frontend/src/locales/de-DE.ts (1)
messages(1-1)echo/frontend/src/locales/es-ES.ts (1)
messages(1-1)echo/frontend/src/locales/fr-FR.ts (1)
messages(1-1)echo/frontend/src/locales/nl-NL.ts (1)
messages(1-1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: ci-check-server
🔇 Additional comments (14)
echo/frontend/src/locales/en-US.ts (1)
1-1: en-US catalog aligned with new template keys and ECHO casing. LGTM.No action needed.
echo/frontend/src/routes/participant/ParticipantConversation.tsx (1)
256-257: Cooldown toast copy — ECHO casing verified. LGTM.
CE1Qet contains "Please wait {timeStr} before requesting another ECHO." (other variants: Am5V3+ → "Echo", GXZvZ7 → "echo").echo/frontend/src/components/project/ProjectPortalEditor.tsx (1)
386-386: Revoke LGTM — i18n still contains mixed‑case "Echo" stringsrg output shows leftover "Echo" occurrences in frontend locale bundles (examples: "Dembrane Echo", "Echo is powered by AI. Please double-check responses.", "Please wait {timeStr} before requesting another Echo."). Replace those with "ECHO" across all locale/message files under echo/frontend (messages.*) and regenerate the compiled locales/build artifacts.
Likely an incorrect or invalid review comment.
echo/frontend/src/routes/project/chat/ProjectChatRoute.tsx (2)
334-340: Template auto‑clear on empty input — confirm UX intent.Sending a message usually clears the input; this effect will also clear the template right after submit. If the template should apply per-message, great. If users expect it to persist for the next prompt, consider clearing on explicit “Clear” only or omitting this effect.
576-576: Branding copy update to “ECHO” — LGTM.Also applies to: 606-606
echo/frontend/src/components/chat/templates.ts (1)
61-75: Strategic Planning template — meets ECHO‑452 objective. LGTM.Please confirm the backend recognizes the id
strategic-planning.echo/frontend/src/locales/nl-NL.ts (1)
1-1: NL locale refresh — LGTM.New keys for templates (“Meer templates”, “Zoek templates...”) and ECHO branding landed. No blockers spotted here.
echo/frontend/src/locales/es-ES.ts (1)
1-1: Spanish locale contains residual English strings — verify translations in echo/frontend/src/locales/es-ES.tsVerification script returned no output / errored; please open echo/frontend/src/locales/es-ES.ts and translate remaining English entries (examples): K1Omdr — "Are you sure you want to generate the library? This will take a while.", nAEwOZ — "Enter your access code", hjaZqm / O1x7Ay — "Project Overview", gqYJin / zyA8Hj / No7/sO — "This is your project library". LGTM after translation.
echo/frontend/src/locales/fr-FR.ts (1)
1-1: LGTM — fix fr-FR translations & small nits
- File: echo/frontend/src/locales/fr-FR.ts — translate remaining English fallthroughs: K1Omdr ("Are you sure you want to generate the library? This will take a while.") → "Êtes‑vous sûr de vouloir générer la bibliothèque ? Cela prendra un certain temps."; hjaZqm → "Aperçu du projet"; O1x7Ay → "Aperçu et édition du projet"; nAEwOZ → "Entrez votre code d'accès".
- Grammar nit: S6iyis currently "Veuillez ne fermer votre navigateur" → change to "Veuillez ne pas fermer votre navigateur".
- Branding: HA9VXi shows "ÉCHO" — align to canonical "ECHO" (no accent) across locale.
- Also fix other English leftovers (examples: gqYJin, zyA8Hj, AAC/NE, NMz7xK, D3SDJS, hX9DE4, EM1Aiy) and re-run a grep for "This |Are you|Enter your" to confirm none remain.
echo/frontend/src/locales/fr-FR.po (1)
2494-2496: Title case consistency (FR).Template titles use sentence case elsewhere (“Notes de réunion”). Prefer “Planification stratégique”.
[raise_nitpick_refactor]msgid "Strategic Planning" -msgstr "Planification Stratégique" +msgstr "Planification stratégique"echo/frontend/src/locales/en-US.po (1)
78-80: Trim stray leading space.
[raise_nitpick_refactor]msgid "library.generate.duration.message" -msgstr " Generating library can take up to an hour." +msgstr "Generating library can take up to an hour."echo/frontend/src/locales/nl-NL.po (2)
935-939: Style: lowercase “antwoorden”[raise_nitpick_refactor]
-msgstr "ECHO wordt aangedreven door AI. Controleer de Antwoorden nogmaals." +msgstr "ECHO wordt aangedreven door AI. Controleer de antwoorden nogmaals."
2431-2433: Consistency: prefer “sjablonen” over “templates”Matches “Templates” → “Sjablonen” elsewhere.
[raise_nitpick_refactor]-msgstr "Zoek templates..." +msgstr "Zoek sjablonen..."echo/frontend/src/locales/es-ES.po (1)
2966-2968: Add opening question mark[raise_nitpick_refactor]
-msgstr "Quieres añadir una plantilla a ECHO?" +msgstr "¿Quieres añadir una plantilla a ECHO?"
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - New Features - Quick-access chat templates as clickable pills, plus a searchable Templates modal. - New “Strategic Planning” template and improved template highlighting/selection. - External link to suggest new templates. - Bug Fixes - Selected template now clears when the input is emptied. - Style - Branding updated from “Echo” to “ECHO” across relevant UI text. - Chores - Localization updates across languages to support new template UI and branding. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Summary by CodeRabbit
New Features
Bug Fixes
Style
Chores