Skip to content

fix(mobile): name the Thai MCP secret badge as a count - #8584

Merged
iscekic merged 1 commit into
mainfrom
drain/thai-mcp-secret-count-label
Oct 22, 2026
Merged

iscekic merged 1 commit into
mainfrom
drain/thai-mcp-secret-count-label

Conversation

@iscekic

@iscekic iscekic commented Oct 22, 2026

Copy link
Copy Markdown
Collaborator

What changed

The Thai lock badge on a profile's MCP server row is an accessibility label whose visible content is only the number of env/header keys. In Thai it read as "the counting of secrets", i.e. the act of counting rather than the quantity being announced.

This change retranslates that one value in the Thai mobile catalog to จำนวนความลับ: {{count}} — "number of secrets: N". It uses the quantity prefix the catalog already uses for counts (จำนวนครั้งที่รีสตาร์ท) and the term the adjacent variable-secret controls use (ทำเครื่องหมายว่าเป็นความลับ, ค่าความลับ), so the badge and its neighbours name the same thing.

Nothing else moves: same key, same {{count}} placeholder, same <label>: N shape every catalog now carries, no plural family invented (English has none for this key), no wording-exception entry, and no other locale touched.

Verification

  • Catalog path diff against main: 1 changed value, 0 added keys, 0 removed keys (3360 keys on both sides).

  • pnpm --filter kilo-app check:i18n — check-catalogs: 87 languages, every catalog matches en.json.

  • pnpm --filter kilo-app check:plurals — source plural families intact.

  • pnpm --filter kilo-app format:check — clean.

  • pnpm --filter kilo-app exec vitest run src/i18n src/components/profiles — 44 files, 1899 tests passed.

  • Android emulator, real dev stack, Thai locale, seeded profile with one MCP server carrying one header key:

    • before the change the row's badge accessibility label was การนับความลับ: 1;
    • after the Metro reload of the fixed catalog it is จำนวนความลับ: 1.

    Both read from uiautomator dump on the MCP servers screen; the visible child text stays the bare 1 in both runs. The changed string is an accessibility label, so it is not visible in pixels — the proof is the accessibility-tree dump, not the screenshots.

Proxy answers

The owner's proxy gave these answers in the owner's place.

  1. Question: Thai wording: The Thai value is "การนับความลับ: {{count}}" ("the counting of secrets"). Which replacement should the MCP server row's lock-badge accessibility label use? Neighbours: "จำนวนครั้งที่รีสตาร์ท" for a count, and "ความลับ" for env-variable secrets (the Secrets vault section uses "ข้อมูลลับ").
    Answer: จำนวนความลับ: {{count}}
    Confidence: 0.70 · Precedent: Keep similar elements consistent across surfaces, "thought row match the tool call row". The จำนวน prefix and the ความลับ term match the neighbouring copy and the shared ": N" shape.
  2. Question: Evidence depth: How much end-to-end proof does this one-value catalog change need?
    Answer: Also boot the Android emulator
    Confidence: 0.55 · Precedent: Require valid end-to-end proof on every PR: logs and/or screenshots are mandatory proof. Prove behavior with real clients. A mounted test is not end-to-end. Read the badge's content-desc on the emulator, and run the render smoke and check:i18n while the stack boots.
  3. Question: Scope: Many other catalogs render the same English source as a literal "secret counting" phrase (e.g. German "Geheime Zählung", Arabic "العد السري"). Should this pull request stay Thai-only?
    Answer: Thai only
    Confidence: 0.55 · Precedent: Put each separate concern in its own PR, "in a separate PR". The brief limits this PR to the Thai value. The other locales' literal "secret counting" wording is a separate translation concern.

The Thai lock badge on a profile's MCP server row announced "the counting of
secrets" followed by the number. The badge carries only the number as visible
text, so its accessibility label has to name the quantity.

Use the catalog's established quantity prefix and the wording the adjacent
variable-secret controls already use, so the label reads as a number of
secrets. The key, placeholder and the "<label>: {{count}}" shape stay as they
are, and no other catalog changes.
@iscekic iscekic added drain Work item from the findings drain janitor:i18n Janitor finding: mobile copy and catalog checks labels Oct 22, 2026
@iscekic

iscekic commented Oct 22, 2026

Copy link
Copy Markdown
Collaborator Author

bot: Emulator evidence for the Thai MCP server row badge on this PR.

Exercised: local dev stack on the work VM, Android emulator, app switched to Thai, fake-account sign-in, a seeded profile owning one remote MCP server with one header key. Opened Profile → the profile → MCP servers.

Both captures are the same screen before and after the fixed Thai catalog was served by Metro; the visible badge content is the bare number in both runs, because the changed string is the badge's accessibility label. The label was read from the accessibility tree (uiautomator dump), which also enumerated every visible element on this screen:

  • before the fix: การนับความลับ: 1
  • after the fix: จำนวนความลับ: 1

Attachments:

MCP servers screen in Thai before the fix, badge showing the key count

MCP servers screen in Thai after the fix, badge showing the key count

@kilo-code-bot

kilo-code-bot Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Executive Summary

Single-value Thai catalog correction for the MCP secretCount accessibility label is well-formed, preserves the key and {{count}} placeholder, and matches the repository's documented exception for value-level mistranslation fixes.

Assumptions: [INFERENCE] No native Thai review was possible; the wording จำนวนความลับ: {{count}} ("number of secrets") is consistent with the count prefix (จำนวนครั้งที่รีสตาร์ท) and secret terminology (ความลับ) already used in the catalog, and the PR documents emulator verification of the rendered accessibility label.

Files Reviewed (1 file)
  • apps/mobile/src/i18n/locales/th.json - no issues; key set and placeholder unchanged, value is unique within the catalog, and the edit falls under the non-English value-correction exception in apps/mobile/AGENTS.md.

Reviewed by deepseek-flash-latest · Input: 84.1K · Output: 3.1K · Cached: 248.3K

Review guidance: REVIEW.md from base branch main

@iscekic iscekic added the merge:bot Bot-owned review; merge when ready once readiness passes and a review approves. label Oct 22, 2026
@iscekic
iscekic enabled auto-merge October 22, 2026 12:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

drain Work item from the findings drain janitor:i18n Janitor finding: mobile copy and catalog checks merge:bot Bot-owned review; merge when ready once readiness passes and a review approves.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants