Skip to content

fix(mobile): correct Khmer security agent remediation and deadline terms - #8470

Merged
iscekic merged 3 commits into
mainfrom
drain/km-security-agent-terms
Oct 21, 2026
Merged

iscekic merged 3 commits into
mainfrom
drain/km-security-agent-terms

Conversation

@iscekic

@iscekic iscekic commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

bot: corrects Khmer terminology in the mobile security-agent copy.

Summary

Values only in the Khmer mobile catalog; every key, placeholder and edge whitespace is unchanged.

Area Change
Remediation noun ការជួសជុល now renders remediation in the unavailable fallback, the analysis-required blocker and the SLA copy, replacing the កែតម្រូវ (adjust/correct) verb and the bare ជួសជុល.
Remediation deadlines The SLA heading, the deadline accessibility label and the tracking subtitle share one rendering: រយៈពេលកំណត់សម្រាប់ការជួសជុល.
Deadline The dashboard metrics empty state, the within-deadline detail and the dashboard posture row use កាលកំណត់, matching the existing no-deadline and deadline-passed labels instead of ថ្ងៃកំណត់ / រយៈពេលកំណត់.
Cancel The cancellation-requested status uses the same បោះបង់ verb as the cancel dialog and the cancelled result.
Dismiss One term, ច្រានចោល, across the dismiss screen and the safe-to-dismiss analysis state, replacing មិនអើពើ.
Manual origin The manual origin is a noun label, ខ្លួនឯង, using the panel manual wording without repeating the row label ដោយ.
Shallow analysis mode រាក់ (shallow depth), contrasting with the deep label ស៊ីជម្រៅ and leaving បឋម to the triage wording.

Review remarks from the head review:

  • the dashboard posture row now agrees with the metric detail on the 'within deadline' wording;
  • the manual origin no longer reads as 'started by by oneself' next to its row label.

Verification

  • pnpm --filter kilo-app check:i18n: 87 languages, every catalog matches en.json; oxlint i18n config reported 0 warnings and 0 errors.
  • node tools/i18n/check-plurals.mjs: every counted message and every locale declares its plural categories.
  • pnpm --filter kilo-app format:check: no files differ.
  • pnpm --filter kilo-app exec vitest run src/i18n: 16 files, 1611 tests passed.
  • Throwaway render test, deleted before commit: switched the app's own i18n instance to km and asserted every changed key returned the new value with exactUsedKey equal to the key (so the Khmer catalog answered, not the English fallback), with placeholders bound. Rendered values included:
    • securityAgent.analysisMode.shallow -> រាក់
    • securityAgent.dashboard.withinDeadline -> ក្នុងកាលកំណត់
    • securityAgent.dismiss.title -> ច្រានចោលបញ្ហាដែលរកឃើញ
    • securityAgent.remediation.cancellationRequested -> បានស្នើសុំបោះបង់ការជួសជុល
    • securityAgent.remediation.unavailable -> មិនអាចប្រើការជួសជុលសម្រាប់បញ្ហាដែលរកឃើញនេះបានទេ។
    • securityAgent.remediationStatus.originManual -> ខ្លួនឯង
    • securityAgent.sla.deadlinesHeading -> រយៈពេលកំណត់សម្រាប់ការជួសជុល (ថ្ងៃ)
    • securityAgent.dashboardMetrics.withinDeadlineDetail with within=3, total=5 -> 3 ក្នុងចំណោម 5 ក្នុងកាលកំណត់
  • Diff against main: 14 values changed, 3295 keys before and after, none added or removed.
  • The branch carries one merge of main, which brings the already-merged test-mock fix for an unrelated mobile suite that was red on the base.

Limitation: this is a copy-only catalog change and the strings live behind an authenticated security-agent surface, so the run above is the surface-level evidence; no screenshots were captured.

Proxy answers

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

  1. Question: originManual: securityAgent.remediationStatus.originManual is the value shown under the 'Started by' row, next to 'Automatic policy' and 'Include existing policy'. Which Khmer label should 'Manual' become?
    Answer: ដោយខ្លួនឯង
    Confidence: 0.80 · Precedent: Trust the code over documents: reuse the panel's existing 'manual' term, as the brief requires (session 269375d6e466, "only trust code")
  2. Question: dismiss term: The dismiss action in securityAgent.dismiss will use ច្រានចោល (the term 16 existing security-agent strings already use). Two nearby Khmer values still use មិនអើពើ: securityAgent.analysisState.safeToDismiss ('Safe to dismiss', same feature, same action) and common.dismissed ('Dismissed', shared with the agent-briefing screen). How far should the alignment go?
    Answer: Also safeToDismiss
    Confidence: 0.50 · Precedent: If you see a gap or an error, fix it (session 89824a222897, "if you saw a gap, fix it"). The fix stays inside securityAgent; the shared common key is out of the brief's scope.
  3. Question: dashboard deadline: The brief says use កាលកំណត់ for deadline across dashboardMetrics. Besides the cited noDeadlineData, securityAgent.dashboardMetrics.withinDeadlineDetail ('{{within}} of {{total}} within deadline') renders deadline as ក្នុងរយៈពេលកំណត់. Align it too?
    Answer: Align to ក្នុងកាលកំណត់
    Confidence: 0.85 · Precedent: Fix the class of the issue, not the single symptom (session 00eb2a1d3e4b, "fix the class"). The brief also says to use កាលកំណត់ across dashboardMetrics.
  4. Question: originManual: The review remarks that securityAgent.remediationStatus.originManual = ដោយខ្លួនឯង renders as 'Started by: by oneself' in a KvRow whose label is ចាប់ផ្តើមដោយ ('Started by'), repeating ដោយ. Which value should the manual origin carry?
    Answer: ខ្លួនឯង
    Confidence: 0.62 · Precedent: Git and pull requests: 'Run the standard PR loop: check each kilobot comment, fix it or reject it' (session 80d037e14f3a). The brief asks for a noun label that uses the panel's existing manual term. ខ្លួនឯង meets that, avoids repeating ដោយ, and keeps the manual-versus-automatic contrast.
  5. Question: refresh base: The only failing check on this PR's head is an unrelated main-branch test mock regression in the to-do list settings suite. The owner already merged its fix (PR test(mobile): stub BackHandler for the to-do list settings sheet #8475) into main. GitHub's pull-request merge ref is still built on the pre-fix main, so rerunning the failed jobs reproduces the old failure. How should I refresh the base?
    Answer: Merge main into the branch now
    Confidence: 0.90 · Precedent: Git and pull requests: merge main only when a conflict or a fix on main needs it (session a247f3c19b1e, "try merging main in, that may fix the issue")

Use the panel's remediation noun in the unavailable, blocker and SLA copy,
one deadline term across the dashboard metrics, the cancel term shared by
the cancel controls, one dismiss term across the feature, a parallel
manual origin label, and a depth term for the shallow analysis mode.
@iscekic iscekic added drain Work item from the findings drain janitor:i18n Janitor finding: mobile copy and catalog checks labels Oct 21, 2026
Comment thread apps/mobile/src/i18n/locales/km.json Resolved
Comment thread apps/mobile/src/i18n/locales/km.json Resolved
@kilo-code-bot

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

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Executive Summary

The incremental change (2 Khmer catalog values) resolves both prior suggestions: the dashboard "within deadline" labels now agree on ក្នុងកាលកំណត់, and originManual is ខ្លួនឯង, which no longer repeats the row label ដោយ. No new issues on the changed lines.

Assumptions: [INFERENCE] I cannot judge Khmer fluency natively; assessment is based on rendered key context and sibling strings. pnpm check:i18n, plurals, and the render test were not executed (read-only static review). Both changed values are plain strings with no placeholders, and JSON parses at HEAD.

Files Reviewed (1 file)
  • apps/mobile/src/i18n/locales/km.json
Previous Review Summary (commit 1fe3015)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit 1fe3015)

Status: 2 Issues Found | Recommendation: Address before merge

Executive Summary

Copy-only Khmer catalog change is structurally safe (JSON valid, placeholders unchanged, no duplicate values), but it leaves two user-visible terminology inconsistencies.

Assumptions: [INFERENCE] I cannot evaluate Khmer fluency natively; the two findings are grounded in the rendered context of each key and in the sibling strings, not in linguistic judgment of the chosen words.

Overview

Severity Count
CRITICAL 0
WARNING 0
SUGGESTION 2
Issue Details (click to expand)

SUGGESTION

File Line Issue
apps/mobile/src/i18n/locales/km.json 1713 withinDeadlineDetail now uses ក្នុងកាលកំណត់, while securityAgent.dashboard.withinDeadline (dashboard-sections.tsx:140, same dashboard screen) still uses ក្នុងរយៈពេលកំណត់ for the same "Within deadline" label
apps/mobile/src/i18n/locales/km.json 1989 originManual (ដោយខ្លួនឯង, "by yourself") is not a manual-origin noun phrase like its siblings and repeats ដោយ when rendered under remediation.startedBy (ចាប់ផ្តើមដោយ) at finding-remediation-panel.tsx:431
Files Reviewed (1 file)
  • apps/mobile/src/i18n/locales/km.json - 2 suggestions

Verification note: I did not execute pnpm check:i18n, check-plurals, or the catalog render test; the review is static. Placeholder sets ({{within}}, {{total}}, {{label}}) are unchanged, all 12 changed keys exist in en.json, and no changed value duplicates another Khmer value.

Fix these issues in Kilo Cloud


Reviewed by deepseek-flash-latest · Input: 37.1K · Output: 2.9K · Cached: 294.9K

Review guidance: REVIEW.md from base branch main

Use a noun manual-origin label that does not repeat the row label, and one
deadline rendering across the dashboard posture row and the metric detail.
@iscekic iscekic added the merge:bot Bot-owned review; merge when ready once readiness passes and a review approves. label Oct 21, 2026
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