diff --git a/src/renderer/src/components/settings/cloud-secrets/CloudSecretList.tsx b/src/renderer/src/components/settings/cloud-secrets/CloudSecretList.tsx
index ff9ec2de66d..2870cf1988e 100644
--- a/src/renderer/src/components/settings/cloud-secrets/CloudSecretList.tsx
+++ b/src/renderer/src/components/settings/cloud-secrets/CloudSecretList.tsx
@@ -22,6 +22,8 @@ export type CloudSecretPeople = {
viewerUserId: string | null
/** Display name for a teammate, or null when the roster does not know them. */
nameFor: (userId: string) => string | null
+ /** True once the team roster has loaded (so a user missing from it has left the team). */
+ rosterLoaded?: boolean
}
export type CloudSecretListMode =
diff --git a/src/renderer/src/components/settings/cloud-secrets/CloudSecretsActivity.tsx b/src/renderer/src/components/settings/cloud-secrets/CloudSecretsActivity.tsx
index b8b6834fb98..df08df1150a 100644
--- a/src/renderer/src/components/settings/cloud-secrets/CloudSecretsActivity.tsx
+++ b/src/renderer/src/components/settings/cloud-secrets/CloudSecretsActivity.tsx
@@ -47,7 +47,9 @@ function ActivityRow({
? t('cloudSecrets.activity.byYou', 'You')
: (people.nameFor(event.actor.userId) ??
event.actor.name ??
- t('cloudSecrets.activity.byTeammate', 'A teammate'))
+ (people.rosterLoaded && event.orgId
+ ? t('cloudSecrets.activity.byFormerTeammate', 'A former teammate')
+ : t('cloudSecrets.activity.bySomeone', 'Someone')))
return (
{actionLabel(event.action, t)}
@@ -58,7 +60,7 @@ function ActivityRow({
: cloudSecretScopeLabel(event.scope, t)}
{t('cloudSecrets.activity.byWhen', '{{who}} ยท {{when}}', {
diff --git a/src/renderer/src/components/settings/cloud-secrets/CloudSecretsPane.fixture.tsx b/src/renderer/src/components/settings/cloud-secrets/CloudSecretsPane.fixture.tsx
index 015ebb243eb..a253ab27d83 100644
--- a/src/renderer/src/components/settings/cloud-secrets/CloudSecretsPane.fixture.tsx
+++ b/src/renderer/src/components/settings/cloud-secrets/CloudSecretsPane.fixture.tsx
@@ -18,7 +18,7 @@ const REPOS: CloudSecretRepoChoice[] = [
{ key: 'github.com/acme/web', label: 'acme/web' },
{ key: 'github.com/acme/api', label: 'acme/api' }
]
-const people = { nameFor: (userId: string) => FIXTURE_NAMES[userId] ?? null }
+const people = { nameFor: (userId: string) => FIXTURE_NAMES[userId] ?? null, rosterLoaded: true }
const noop = (): void => {}
function Frame({ children }: { children: React.ReactNode }): React.JSX.Element {
@@ -340,7 +340,7 @@ export const activityAdmin = defineFixture({
+ return
}
/** Shown only where Orca Cloud is offered to this account. */
diff --git a/src/renderer/src/components/settings/cloud-secrets/cloud-secrets-fixture-data.ts b/src/renderer/src/components/settings/cloud-secrets/cloud-secrets-fixture-data.ts
index e603f0c75f3..ad19678f42a 100644
--- a/src/renderer/src/components/settings/cloud-secrets/cloud-secrets-fixture-data.ts
+++ b/src/renderer/src/components/settings/cloud-secrets/cloud-secrets-fixture-data.ts
@@ -143,7 +143,8 @@ export const FIXTURE_TEAM_ACTIVITY: CloudSecretEvent[] = [
event(5, 'created', 'org', 'ANTHROPIC_MODEL', 30, 'u_dana'),
event(6, 'created', 'org', 'AI_GATEWAY_API_KEY', 30, 'u_dana'),
// A member who has since left the team: no roster name, so it reads "A teammate".
- event(7, 'created', 'org', 'NPM_TOKEN', 170, 'u_gone')
+ event(7, 'created', 'org', 'NPM_TOKEN', 170, 'u_gone'),
+ event(8, 'created', 'org', 'SENTRY_DSN', 400, 'u_ravi')
]
export const FIXTURE_PERSONAL_ACTIVITY: CloudSecretEvent[] = [