Repository navigation
fix(mobile): give the start agent no-repository message provider-neutral copy - #8463
Conversation
…ral copy The StartAgent action path reports no-repository when neither the request nor the recent-session lookup names a repository, so no provider is known there. Render a dedicated provider-neutral message instead of the GitHub picker's copy. - add appActions.start.repositoryRequired in English and the 86 translated catalogs - render it from noRepositoryFailure - assert the reported message resolves to that key and names no provider
|
bot: Android emulator proof for the
Both screenshots are the same Home screen and toast position; only the message text differs. |
oxfmt keeps the three-argument call on one line.
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Executive SummaryThe only changes since the previous review are two Assumptions: Overview
Files Reviewed (2 incremental files, plus targeted re-checks)
Previous Review Summaries (4 snapshots, latest commit 96d2742)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit 96d2742)Status: No Issues Found | Recommendation: Merge Executive SummaryThe incremental commits since Assumptions: Overview
Files Reviewed (90 files)
Previous review (commit 3521f47)Status: No Issues Found | Recommendation: Merge Executive SummaryThe incremental commit only rewrites the Assumptions: Files Reviewed (87 files)
Previous review (commit 57488c8)Status: 1 Issue Found | Recommendation: Address before merge Executive SummaryThe provider-neutral copy is wired and translated correctly, but its "choose one in a new session" guidance also renders for Assumptions: Overview
Issue Details (click to expand)SUGGESTION
Files Reviewed (89 files)
Fix these issues in Kilo Cloud Previous reviewStatus: No Issues Found | Recommendation: Merge Executive SummaryThe Assumptions: Overview
Files Reviewed (89 files)
Reviewed by deepseek-flash-latest · Input: 37.4K · Output: 5.2K · Cached: 318.8K Review guidance: REVIEW.md from base branch |
The StartAgent no-repository failure also reaches intents that continue an existing session, where choosing a repository "in a new session" is the wrong next step. Reworded in English and the 86 translated catalogs.
|
bot: Recaptured after the reword (3521f47). Same setup: Android emulator, local dev stack, signed-in test account with no sessions, The toast now reads The earlier before/after pair in the previous comment still shows the failed-state difference; this capture is the reworded string on the same surface. |
…tral-repository-copy # Conflicts: # apps/mobile/src/i18n/locales/hu.json
A frozen install fails because jest-worker@30.5.1 names a structured-clone version that has no resolution entry, and the wasm runtime snapshots name emnapi versions that have no resolution entries either. Record both sets so the lockfile matches the dependency set that is already declared. No declared range changes.
Two ai-gateway tests stringify a fetch request body or URL union. Narrow each field to a string before asserting, which keeps the same assertions and drops the coercion.
…tral-repository-copy # Conflicts: # packages/web-shared/src/lib/ai-gateway/openai-chatgpt/refresh-terminal-race.test.ts # packages/web-shared/src/lib/ai-gateway/providers/upstream-request.aws-bedrock.test.ts



What changed
The
StartAgentaction path reportsno-repositorywhen the request names no repository and the recent-session lookup finds none. At that point no git provider is known, so the message it reports must not assume one.apps/mobile/src/lib/app-actions/start-agent.ts:noRepositoryFailure()now rendersappActions.start.repositoryRequired.apps/mobile/src/i18n/locales/*.json: the new key ships in English and in all 86 translated catalogs, next topromptRequired, in the voice of the existingappActions.startstrings.apps/mobile/src/lib/app-actions/start-agent.test.ts: the no-repository case asserts the reported message resolves to the new key and names no provider.The branch carries only these files against
main. Earlier merge commits in its history briefly repairedpnpm-lock.yamland twopackages/web-sharedtest files;mainhas since landed the same repairs, and the merge withmaintakes its version of both, so neither is part of this change.The string is intent-neutral, because the repository resolves before
sessionIdis read and the same failure also reaches an intent that continues an existing session:Start agent needs a repository. Open Kilo and choose one, then run it again.The GitHub / GitLab / Bitbucket picker empty states keep their existing provider-specific keys; only the action path, which resolves no provider, changes.
Verification
Checker and suite runs on this VM (all green):
The new assertion fails against the previous call site (single-test run: 1 failed, 16 passed) and passes with the change.
A full
pnpm install --frozen-lockfileon this head completes, andgit diff origin/mainlists only the mobile catalog and app-action files.End-to-end on the Android emulator
Local dev stack (
dev:start core mobile), CI dev-client APK, a fake account signed in through the email-code flow with no sessions, so the recents lookup resolves nothing. The action URL was fired at the running app:adb shell am start -a android.intent.action.VIEW \ -d 'kiloapp:///actions/start-agent?prompt=fix%20the%20failing%20build'The Metro log shows
start-agent.tsandstart-agent-runtime.tsbundling on each run. The app reports the failure through the app-root toast; screencaps were read back with OCR because the toast is not exposed inuiautomatoroutput.No repositories visible. Check repository access for the Kilo GitHub App, then refresh.Start agent needs a repository. Open Kilo and choose one, then run it again.Screenshots are in the comments below. The last pushes only merged main; the rendered string is unchanged, so the earlier captures still show the current copy.
Proxy answers
The owner's proxy gave these answers in the owner's place.
Answer: Start agent needs a repository. Open Kilo and choose one in a new session, then run it again.
Confidence: 0.65 · Precedent: UX and design quality: keep similar elements consistent across surfaces; this option matches the sibling promptRequired voice and names the fix action.
Answer: New key appActions.start.repositoryRequired inside the existing appActions.start block
Confidence: 0.70 · Precedent: UX and design quality: keep similar elements consistent across surfaces; the string belongs with the action path's own messages.
Answer: Only the action path; keep noRepositoriesVisible / Gitlab / Bitbucket picker copy as is
Confidence: 0.60 · Precedent: Git and pull requests: put each separate concern in its own PR; the brief keeps noRepositoriesVisible for the GitHub picker.
Answer: Android emulator: fire kiloapp:///actions/start-agent from a signed-in fake account with no recent repository and capture the toast on the new copy
Confidence: 0.85 · Precedent: Proof and verification: require valid end-to-end proof on every PR; use Android on the work VM by default.
StartAgentcall that continues an existing session (session id, no repository), where "choose one in a new session" is wrong guidance. How should the wording change?Answer: Drop the "in a new session" clause: "Start agent needs a repository. Open Kilo and choose one, then run it again."
Confidence: 0.77 · Precedent: Speed and least work: do the least amount of work, with no drop in quality. One neutral string is correct for both intents, so a second key and 86 more translations add no value.
Answer: Repair the lockfile in this PR
Confidence: 0.65 · Precedent: Autonomy: never accept blocked as an end state and fix errors even when unrelated; a work item must converge. Regenerate the lockfile with pnpm instead of editing it by hand, put it in its own commit, and note it in the pull request description. Main landed the same repair in the meantime, so its version now stands.
packages/web-sharedai-gateway tests. How should this PR proceed?Answer: Fix the three findings in this PR
Confidence: 0.75 · Precedent: Autonomy: fix a gap or an error even when it is unrelated, and a work item must converge. Main has since narrowed the same two files, so its version now stands.