diff --git a/apps/mobile/src/components/consent/consent-card.tsx b/apps/mobile/src/components/consent/consent-card.tsx
index a9a8cd0bd0..96b90d4c71 100644
--- a/apps/mobile/src/components/consent/consent-card.tsx
+++ b/apps/mobile/src/components/consent/consent-card.tsx
@@ -132,8 +132,8 @@ export function ConsentCard({ mode = 'onboarding' }: ConsentCardProps) {
const handleSecondaryAction = () => {
const message =
mode === 'review'
- ? 'Kilo Code needs this consent to function. Revoking will sign you out. You can accept again on next sign-in.'
- : 'Kilo Code needs to share data with AI providers to work. If you decline, you will be signed out.';
+ ? 'Kilo needs this consent to function. Revoking will sign you out. You can accept again on next sign-in.'
+ : 'Kilo needs to share data with AI providers to work. If you decline, you will be signed out.';
Alert.alert(actions.destructiveTitle, message, [
{ text: 'Cancel', style: 'cancel' },
@@ -190,13 +190,13 @@ export function ConsentCard({ mode = 'onboarding' }: ConsentCardProps) {
- Kilo Code
+ Kilo
Before we get started
- Kilo Code sends your messages to AI providers to generate responses. Here's
- what's shared and with whom.
+ Kilo sends your messages to AI providers to generate responses. Here's what's
+ shared and with whom.
Required to use Kilo
diff --git a/apps/mobile/src/components/login-screen.tsx b/apps/mobile/src/components/login-screen.tsx
index 946f0e2e60..4694add176 100644
--- a/apps/mobile/src/components/login-screen.tsx
+++ b/apps/mobile/src/components/login-screen.tsx
@@ -187,7 +187,7 @@ export function LoginScreen() {
>
- Welcome to Kilo Code
+ Welcome to Kilo
{/* Branch fade animations parked mid-flight on remount — e1 measured 2/2
diff --git a/apps/mobile/src/components/login/__tests__/idle-auth.mounted.test.tsx b/apps/mobile/src/components/login/__tests__/idle-auth.mounted.test.tsx
index 4c582a5f94..9c003cb9b7 100644
--- a/apps/mobile/src/components/login/__tests__/idle-auth.mounted.test.tsx
+++ b/apps/mobile/src/components/login/__tests__/idle-auth.mounted.test.tsx
@@ -136,15 +136,15 @@ describe('IdleAuth SSO recovery', () => {
});
});
-describe('IdleAuth sign-in-or-create copy', () => {
- it('shows the sign-in-or-create heading and a Continue button', async () => {
+describe('IdleAuth email continue copy', () => {
+ it('shows a Continue button with email accessibility', async () => {
const start = vi.fn();
const renderer = await mountIdleAuth(start);
- expect(texts(renderer.root)).toContain('Sign in or create an account');
expect(texts(renderer.root)).toContain('Continue');
+ expect(texts(renderer.root)).not.toContain('Sign in or create an account');
- const btn = findButton(renderer.root, 'Continue with email, sign in or create an account');
+ const btn = findButton(renderer.root, 'Continue with email');
expect(btn).toBeTruthy();
act(() => {
diff --git a/apps/mobile/src/components/login/idle-auth.tsx b/apps/mobile/src/components/login/idle-auth.tsx
index 6a4ca4da8f..d9414e9ba1 100644
--- a/apps/mobile/src/components/login/idle-auth.tsx
+++ b/apps/mobile/src/components/login/idle-auth.tsx
@@ -210,7 +210,6 @@ export function IdleAuth({
)}
- Sign in or create an account
void handleSendCode()}
- accessibilityLabel="Continue with email, sign in or create an account"
+ accessibilityLabel="Continue with email"
>
{busy === 'otp-send' ? : null}
Continue
diff --git a/apps/mobile/src/lib/auth/use-native-auth.test.ts b/apps/mobile/src/lib/auth/use-native-auth.test.ts
index 7bd5d79c2c..84e46a7f42 100644
--- a/apps/mobile/src/lib/auth/use-native-auth.test.ts
+++ b/apps/mobile/src/lib/auth/use-native-auth.test.ts
@@ -417,7 +417,7 @@ describe('useNativeAuth created-account announcement', () => {
await result?.verifyEmailCode('user@example.com', '123456');
});
- expect(announcingToast.success).toHaveBeenCalledWith('Account created. Welcome to Kilo Code.');
+ expect(announcingToast.success).toHaveBeenCalledWith('Account created. Welcome to Kilo.');
});
it('stays silent when created is absent', async () => {
diff --git a/apps/mobile/src/lib/auth/use-native-auth.ts b/apps/mobile/src/lib/auth/use-native-auth.ts
index c4449ef178..4d45806cdc 100644
--- a/apps/mobile/src/lib/auth/use-native-auth.ts
+++ b/apps/mobile/src/lib/auth/use-native-auth.ts
@@ -139,7 +139,7 @@ export function useNativeAuth(): NativeAuthResult {
'expiresIn' in parsed ? parsed.expiresIn : undefined
);
if (parsed.created === true) {
- announcingToast.success('Account created. Welcome to Kilo Code.');
+ announcingToast.success('Account created. Welcome to Kilo.');
}
} else if (result.errorCode === 'SSO_ERROR') {
handleSsoError(credential.email ?? '', result.ssoOrganizationId);
@@ -206,7 +206,7 @@ export function useNativeAuth(): NativeAuthResult {
'expiresIn' in parsed ? parsed.expiresIn : undefined
);
if (parsed.created === true) {
- announcingToast.success('Account created. Welcome to Kilo Code.');
+ announcingToast.success('Account created. Welcome to Kilo.');
}
} else if (result.errorCode === 'SSO_ERROR') {
handleSsoError(response.data.user.email, result.ssoOrganizationId);
@@ -304,7 +304,7 @@ export function useNativeAuth(): NativeAuthResult {
'expiresIn' in parsed ? parsed.expiresIn : undefined
);
if (parsed.created === true) {
- announcingToast.success('Account created. Welcome to Kilo Code.');
+ announcingToast.success('Account created. Welcome to Kilo.');
}
return true;
} catch (error) {
diff --git a/packages/notifications/src/push-presentation.ts b/packages/notifications/src/push-presentation.ts
index c3c1f5aa5e..379ef99139 100644
--- a/packages/notifications/src/push-presentation.ts
+++ b/packages/notifications/src/push-presentation.ts
@@ -45,17 +45,17 @@ export function androidChannelIdForPushData(data: PushData): AndroidNotification
export function genericPushContentForPushData(data: PushData): { title: string; body: string } {
switch (data.type) {
case 'cloud_agent_session':
- return { title: 'Kilo Code', body: 'Your agent session has an update' };
+ return { title: 'Kilo', body: 'Your agent session has an update' };
case 'chat.message':
- return { title: 'Kilo Code', body: 'You have a new message' };
+ return { title: 'Kilo', body: 'You have a new message' };
case 'instance-lifecycle':
- return { title: 'Kilo Code', body: 'Your instance has an update' };
+ return { title: 'Kilo', body: 'Your instance has an update' };
case 'scheduled-action':
- return { title: 'Kilo Code', body: 'A scheduled action has an update' };
+ return { title: 'Kilo', body: 'A scheduled action has an update' };
case 'low_balance':
- return { title: 'Kilo Code', body: 'Your balance needs attention' };
+ return { title: 'Kilo', body: 'Your balance needs attention' };
case 'security_finding':
- return { title: 'Kilo Code', body: 'A security finding needs attention' };
+ return { title: 'Kilo', body: 'A security finding needs attention' };
default: {
// Exhaustiveness: new PushData variants must be handled above.
const _exhaustive: never = data;
diff --git a/services/notifications/src/__tests__/dispatch-push.test.ts b/services/notifications/src/__tests__/dispatch-push.test.ts
index 38cc2a29b8..4a5af1345f 100644
--- a/services/notifications/src/__tests__/dispatch-push.test.ts
+++ b/services/notifications/src/__tests__/dispatch-push.test.ts
@@ -1286,7 +1286,7 @@ describe('NotificationChannelDO preview mode and channel', () => {
const stub = getDO('user-generic');
await stub.dispatchPush(baseInput({ userId: 'user-generic', idempotencyKey: 'k-generic' }));
const [[messages]] = vi.mocked(sendPushNotifications).mock.calls;
- expect(messages[0].title).toBe('Kilo Code');
+ expect(messages[0].title).toBe('Kilo');
expect(messages[0].title).not.toBe('T');
expect(messages[0].body).not.toBe('B');
});
@@ -1305,7 +1305,7 @@ describe('NotificationChannelDO preview mode and channel', () => {
const stub = getDO('user-throw');
await stub.dispatchPush(baseInput({ userId: 'user-throw', idempotencyKey: 'k-throw' }));
const [[messages]] = vi.mocked(sendPushNotifications).mock.calls;
- expect(messages[0].title).toBe('Kilo Code');
+ expect(messages[0].title).toBe('Kilo');
expect(messages[0].body).not.toBe('B');
});
});