Skip to content

OpenConceptLab/ocl_online#309 | Name the OCL AI Assistant in full in every Mapper catalog - #97

Merged
snyaggarwal merged 4 commits into
mainfrom
OpenConceptLab/ocl_online#309-ocl-ai-assistant-strings
Oct 13, 2026
Merged

snyaggarwal merged 4 commits into
mainfrom
OpenConceptLab/ocl_online#309-ocl-ai-assistant-strings

Conversation

@paynejd

@paynejd paynejd commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

What changed and why

The Mapper's strings now always call the assistant the OCL AI Assistant. No string says a bare "AI Assistant" or "AI recommendations" any more, in English or in the Spanish, Portuguese and Chinese forms.

  • en, es, zh (2679d1c): 12 map_project strings in each catalog:

    • the button label and settings heading (ai_assistant);
    • the quota meter (preview_quota_ai_calls);
    • the preview-limit dialog (preview_limit_title_ai_assistant, preview_limit_body_ai_assistant, preview_limit_body_ai_assistant_no_count) and ai_assistant_limit_reached;
    • the column-map header (column_send_to_ai_assistant), the output-language field (set_ai_assistant_output_language) and the input-language help (input_language_helper);
    • the prompt-template help (ai_prompt_template_description) and the row status tooltips (ai_recommendation_failed_retry, ai_recommendation_running).

    Each catalog keeps the form of the name it already uses elsewhere: "OCL AI Assistant", "asistente de IA de OCL", "OCL AI 助手".

  • pt-BR (18d557a): the same strings, plus the three AutoMatch estimate strings (preview_estimate_ai_all, preview_estimate_ai_partial, preview_estimate_ai_none). These still said "Recomendações de IA", wording the other catalogs dropped in Mapper: Auto Match starts a run with no matching algorithm, does nothing, and records it as failed ocl_issues#2872. They now follow the current English, with the catalog's own "Assistente de IA do OCL".

  • Hard-coded copy (2679d1c): the two "prompt template is not available" alerts in MapProject.jsx, and the English fallback of input_language_helper in ConfigurationForm.jsx.

  • Test (1e69fe9): src/i18n/__tests__/aiAssistantNaming.test.js reads all four catalogs. It fails on any string with a bare assistant name or "AI recommendation(s)", in English or in the catalog's own language. It also fails on any string about the assistant that doesn't name it in full.

On main, preview_estimate_ai_all and preview_estimate_ai_partial already say "The OCL AI Assistant will analyze …" in en, es and zh (OpenConceptLab/ocl_issues#2872), so this PR leaves them alone there.

How I tested it

  • The start-prod.sh secret-variable check from pr.yml: passes.
  • npm ci, then ESLint on src with --ext .jsx,.js: exit 0. I ran it with --no-eslintrc -c .eslintrc.json, because this worktree sits inside another checkout whose .eslintrc.json cascades into it. CI has no parent config, so the config is the same. The PR check runs the exact command.
  • PR check Lint and test passed: https://github.com/OpenConceptLab/oclmap/actions/runs/38281885971
  • npm run test:all on Node 22: 455/455 unit tests (8 new) and 6/6 integration tests pass.
  • The new test against main's catalogs: 8 of 8 fail. With this change: 8 of 8 pass.
  • A grep of the four catalogs finds no "AI recommendation" and no "AI Assistant" without "OCL" in front.
  • Visual check. I rendered the real AIAssistantButton (user and staff variants) in a replica of the candidates toolbar: SearchControls with the refresh, group and sort buttons. I used headless Chromium at 360, 420 and 520 px, before and after, in all four languages.
    • The label stays on one line and isn't clipped. The toolbar stays one row high.
    • The button grows by 31 px (en), 50 px (es, pt-BR) and 20 px (zh).
    • At 520 px everything fits in all four languages. At 360 and 420 px the toolbar overflowed before this change too.
    • In the split view the candidates panel is half the window, about 620 px on a 1280 px screen.

Acceptance criteria

  • The strings the ticket names follow the naming rule in en, es and zh. preview_estimate_ai_all and preview_estimate_ai_partial already did on main. 2679d1c fixes preview_quota_ai_calls, ai_assistant_limit_reached and preview_limit_body_ai_assistant. The "names it in full" test checks all five in each locale.
  • No string in the locale files says "AI recommendations", or "AI Assistant" without "OCL". The "no bare assistant name" test scans every string in all four catalogs, and the grep above is clean.
  • Ships with the next Mapper release, with no deploy of its own. Left unticked: that happens after merge. This PR changes only strings, two alert messages and a test, and needs no separate deploy.

Docs

No doc describes these strings. The README and the other Markdown files don't mention the assistant's UI name, so none changed.

Chose not to do

  • pt-BR goes beyond the en, es and zh the ticket lists. I fixed it because two of its strings still said "AI recommendations", and the other strings had the same bare name. It uses only wording the pt-BR catalog already has. It's its own commit (18d557a): to drop it, revert that commit and remove 'pt-BR' from the test's LOCALES.
  • "AI analysis" stays in ai_assistant_limit_reached and preview_limit_body_ai_assistant ("Matching will continue without AI analysis …"). It's neither banned form, and it matches the "Run AI Analysis" step.

Noticed, not fixed

  • Other labels still say "AI" without naming the assistant: "AI Recommended" (ai_recommended, a badge), "AI Alternate Candidate Suggestion", "AI Analysis" and "Run AI Analysis", "AI Prompt Template", and "AI will receive names in: …" (ai_effective_locales, ai_all_locales). They aren't a bare "AI Assistant" or "AI recommendations", so I left them. Renaming them is a product call.
  • es writes the name three ways: "asistente de IA de OCL" in most strings, "OCL Asistente de IA" (ocl_ai_assistant) and the English "OCL AI Assistant" (ocl_ai_candidates_analysis). None is bare, so I left them.
  • No code references ai_assistant_limit_reached.
  • The two alerts in MapProject.jsx are hard-coded English, not i18n keys.

Review

  • Codex defect review: 1 pass (codex-cli 0.162.1, commit 1e69fe9). Clean, no findings.
  • Simplification review: 2 suggested cuts, both kept. Nothing changed, so the Codex check of the cuts didn't run. The full gate passed again afterwards.
  • Still open: nothing. The reports and my responses are on OpenConceptLab/ocl_online#309.

closes OpenConceptLab/ocl_online#309

🤖 Generated with Claude Code

https://claude.ai/code/session_0148z998vjSjgiiLNQXAxcRU

Written by an Octoad session worker (worker-v0.11, recipe lean-loop, flow private>public, run openconceptlab-ocl-online-309-20261012-125058).

paynejd and others added 3 commits October 12, 2026 13:04
…the en, es and zh strings

The Mapper called its assistant a bare "AI Assistant" (es "Asistente de
IA", zh "AI 助手" or "智能助手") on its button and settings heading, in
the preview-limit dialog, the quota meter, the column-map header and the
input-language help, and said "AI recommendation" in the row status
tooltips and the prompt-template help. These strings now name the OCL AI
Assistant, in each catalog's existing form of the name ("asistente de IA
de OCL", "OCL AI 助手").

The two hard-coded "prompt template is not available" alerts in
MapProject.jsx, and the English fallback for input_language_helper in
ConfigurationForm.jsx, say "OCL AI Assistant" too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0148z998vjSjgiiLNQXAxcRU
The same strings in pt-BR said a bare "Assistente de IA", and the
AutoMatch estimate still said "Recomendações de IA" (AI
recommendations), wording the other catalogs had already dropped. They
now use the catalog's own "Assistente de IA do OCL", and the three
estimate strings follow the current English ("O Assistente de IA do OCL
analisará ...").

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0148z998vjSjgiiLNQXAxcRU
…the OCL AI Assistant in full

src/i18n/__tests__/aiAssistantNaming.test.js reads the en, es, pt-BR
and zh catalogs. It fails on any string with a bare assistant name or
"AI recommendation(s)", in English or in the catalog's own language, and
on any string about the assistant that doesn't name it in full.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0148z998vjSjgiiLNQXAxcRU
@paynejd paynejd added origin/ai-generated Issue or PR created by an AI agent origin/session-worker Opened by the Octoad session worker; a run record backs it labels Oct 12, 2026
@paynejd

paynejd commented Oct 12, 2026

Copy link
Copy Markdown
Member Author

Codex defect review, pass 1 (codex-cli 0.162.1, commit 1e69fe9): clean, no findings (P0 0, P1 0, P2 0, P3 0). Nothing changed, and with no P0 or P1 open the defect review stops after this pass. The full report is on OpenConceptLab/ocl_online#309.

@paynejd

paynejd commented Oct 12, 2026

Copy link
Copy Markdown
Member Author

Simplification review (a fresh Claude subagent, commit 1e69fe9): 2 suggested cuts, 1 shrink and 1 reuse. I kept the code for both, so nothing changed and the Codex check of the cuts didn't run. The full gate passed again at 1e69fe9: the secret-variable check, npm ci, ESLint (exit 0) and npm run test:all (455/455 unit, 6/6 integration). The report and my responses are on OpenConceptLab/ocl_online#309.

@paynejd
paynejd marked this pull request as ready for review October 12, 2026 17:19
@paynejd
paynejd requested a review from snyaggarwal October 12, 2026 18:05
@snyaggarwal
snyaggarwal merged commit 4413e41 into main Oct 13, 2026
2 checks passed
@snyaggarwal
snyaggarwal deleted the OpenConceptLab/ocl_online#309-ocl-ai-assistant-strings branch October 13, 2026 02:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

origin/ai-generated Issue or PR created by an AI agent origin/session-worker Opened by the Octoad session worker; a run record backs it

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants