Skip to content

feat(ai): actionable localized Copilot error messages (Phase 1 · Batch 1.2)#121

Merged
qnbs merged 2 commits into
mainfrom
phase1/ai-error-messages
Jun 13, 2026
Merged

feat(ai): actionable localized Copilot error messages (Phase 1 · Batch 1.2)#121
qnbs merged 2 commits into
mainfrom
phase1/ai-error-messages

Conversation

@qnbs

@qnbs qnbs commented Jun 13, 2026

Copy link
Copy Markdown
Owner

User description

Context

Batch 1.1 added classifyAiError() but its messageKey wasn't surfaced — on an AI failure the Copilot showed a generic t('copilot.error') "Something went wrong". This batch turns the classification into an actionable, localized message.

What this PR does

  • Realign messageKey errors.ai.*error.ai.* to match the existing singular error.* namespace in common.json (only the taxonomy test consumed it, so it's safe).
  • getAiErrorMessage(err, t) helper → t(classifyAiError(err).messageKey).
  • Copilot wiring: useGlobalCopilot.onError now shows the classified message (e.g. "Invalid or missing API key. Open Settings → AI & Models to add or update it.") instead of the generic fallback.
  • i18n: 9 error.ai.<category> keys added to all 11 locales (common.json) — translated for de/en/es/fr/it, English fallback for Beta/RTL (el/ja/pt/zh/ar/he); bundles rebuilt; i18n:check green at 2599 keys.
  • Tests: getAiErrorMessage unit test + two onError tests (auth → error.ai.auth, policy → error.ai.policy) added to the existing copilot hook suite — 42 green.

Scope (per plan)

  • Actionable text only — no new action buttons this batch (the messageKey foundation enables them later).
  • Copilot only — the helper is ready for the Writer / other AI call sites (follow-up).
  • Disjoint from PR fix(plugins): plugin-worker guard-restoration leak (FU-1) #120 (FU-1, worker files) — merges independently.

Verification

  • pnpm run i18n:check → 11 locales × 2599 keys, bundles rebuilt, content-guard OK.
  • pnpm exec vitest run taxonomy + copilot hook → 42 passed.
  • pnpm run lint (1312 files) + pnpm run typecheck → clean.

🤖 Generated with Claude Code


CodeAnt-AI Description

Show localized recovery tips when Copilot AI calls fail

What Changed

  • Copilot now shows a specific, localized error message when an AI request fails instead of the generic “Something went wrong” text.
  • Error messages now guide users toward the likely fix, such as checking an API key, reconnecting, or changing AI/privacy settings.
  • The same AI error messages are available in all supported locales, with translated text for core languages and English fallback for the rest.

Impact

✅ Clearer AI failure messages
✅ Faster recovery from invalid API key errors
✅ Fewer repeated failed Copilot attempts

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

…h 1.2)

Surfaces the Batch 1.1 error taxonomy to users.

- aiErrorTaxonomy: realign messageKey errors.ai.* -> error.ai.* (matches the
  existing singular error.* convention in common.json) + getAiErrorMessage(err, t)
  helper (t(classifyAiError(err).messageKey)).
- i18n: add 9 error.ai.<category> keys to all 11 locales (common.json) — translated
  de/en/es/fr/it, English fallback el/ja/pt/zh/ar/he; bundles rebuilt; i18n:check
  green (2599 keys).
- useGlobalCopilot.onError now shows the classified, localized message (e.g.
  'Invalid API key — open Settings → AI…') instead of the generic copilot.error.
- Tests: getAiErrorMessage unit test + 2 onError tests (auth, policy) in the
  existing copilot hook suite (42 green). lint + typecheck clean.

Actionable text only; action buttons + Writer wiring deferred. Disjoint from #120.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@codeant-ai

codeant-ai Bot commented Jun 13, 2026

Copy link
Copy Markdown

CodeAnt AI is reviewing your PR.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@vercel

vercel Bot commented Jun 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
storycraft-studio Ready Ready Preview, Comment Jun 13, 2026 3:40pm

@codeant-ai codeant-ai Bot added the size:L This PR changes 100-499 lines, ignoring generated files label Jun 13, 2026
Comment thread tests/unit/copilot/useGlobalCopilot.test.ts
@codeant-ai

codeant-ai Bot commented Jun 13, 2026

Copy link
Copy Markdown

CodeAnt AI finished reviewing your PR.

CodeAnt (Minor): clear aiOptions.current in beforeEach so each test starts from
clean shared state. 11/11 green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@qnbs
qnbs merged commit 72129af into main Jun 13, 2026
17 checks passed
@qnbs
qnbs deleted the phase1/ai-error-messages branch June 13, 2026 16:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L This PR changes 100-499 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant