diff --git a/AgentCompany-New/src/renderer/src/pages/chat/ChatThreadPanel.tsx b/AgentCompany-New/src/renderer/src/pages/chat/ChatThreadPanel.tsx
index 11b65777..0aa627a9 100644
--- a/AgentCompany-New/src/renderer/src/pages/chat/ChatThreadPanel.tsx
+++ b/AgentCompany-New/src/renderer/src/pages/chat/ChatThreadPanel.tsx
@@ -10,7 +10,7 @@ import type {
ChatThreadRecord,
FileObjectRecord,
} from "../../../../shared/domain";
-import { formatTime } from "../types";
+import { auditEventLabel, formatTime } from "../types";
import { ChatMessageRow } from "./ChatMessageRow";
import { senderName, type MessageContext } from "./chat-helpers";
@@ -241,7 +241,7 @@ function AuditReplay({ events }: { events: AuditEventRecord[] }) {
>
{formatTime(event.createdAt)}
- {event.entityType}.{event.action}
+ {auditEventLabel(event.entityType, event.action)}
))}
diff --git a/AgentCompany-New/src/renderer/src/pages/settings/AccountPanels.tsx b/AgentCompany-New/src/renderer/src/pages/settings/AccountPanels.tsx
index 465bae11..8905587b 100644
--- a/AgentCompany-New/src/renderer/src/pages/settings/AccountPanels.tsx
+++ b/AgentCompany-New/src/renderer/src/pages/settings/AccountPanels.tsx
@@ -1,6 +1,6 @@
import { Avatar, Pill } from "../../shared/ui";
import type { AuditEventRecord, EmployeeRecord } from "../../../../shared/domain";
-import { formatRelative } from "../types";
+import { formatRelative, humanizeToken } from "../types";
export function ProfilePanel({ employee }: { employee: EmployeeRecord }) {
return (
@@ -43,7 +43,7 @@ export function NotificationsPanel({ events, employee }: { events: AuditEventRec
style={{ padding: "12px 18px", borderBottom: index === visible.length - 1 ? "none" : "1px solid var(--border-soft)" }}
>
{event.entityType.replaceAll("_", " ")}
- {event.action}
+ {humanizeToken(event.action)}
{formatRelative(event.createdAt)}
))}
@@ -68,7 +68,7 @@ export function SecurityPanel({ events }: { events: AuditEventRecord[] }) {
style={{ padding: "12px 18px", borderBottom: index === security.length - 1 ? "none" : "1px solid var(--border-soft)" }}
>
{event.entityType.replaceAll("_", " ")}
- {event.action}
+ {humanizeToken(event.action)}
{formatRelative(event.createdAt)}
))}
diff --git a/AgentCompany-New/src/renderer/src/pages/types.ts b/AgentCompany-New/src/renderer/src/pages/types.ts
index 19bde80a..5525b995 100644
--- a/AgentCompany-New/src/renderer/src/pages/types.ts
+++ b/AgentCompany-New/src/renderer/src/pages/types.ts
@@ -46,6 +46,16 @@ export function formatTime(iso: string): string {
return date.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit", hour12: false });
}
+export function humanizeToken(value: string): string {
+ const spaced = value.replace(/_/g, " ").trim();
+ if (!spaced) return spaced;
+ return spaced.charAt(0).toUpperCase() + spaced.slice(1);
+}
+
+export function auditEventLabel(entityType: string, action: string): string {
+ return `${humanizeToken(entityType)} ${action.replace(/_/g, " ")}`.trim();
+}
+
export function formatBytes(bytes: number): string {
if (bytes < 1024) return `${bytes} B`;
if (bytes < 1024 * 1024) return `${Math.round(bytes / 1024)} KB`;
diff --git a/AgentCompany-New/tests/e2e/desktop.spec.ts b/AgentCompany-New/tests/e2e/desktop.spec.ts
index e63c812e..ab86a932 100644
--- a/AgentCompany-New/tests/e2e/desktop.spec.ts
+++ b/AgentCompany-New/tests/e2e/desktop.spec.ts
@@ -90,8 +90,8 @@ test("onboards, hires, and creates work in the Electron shell", async () => {
await expect(page.getByText("/escalate").first()).toBeVisible();
await page.getByRole("button", { name: "Open thread" }).first().click();
await expect(page.getByText("Audit")).toBeVisible();
- await expect(page.getByText("chat_message.sent").first()).toBeVisible();
- await expect(page.getByText("approval.requested").first()).toBeVisible();
+ await expect(page.getByText("Chat message sent").first()).toBeVisible();
+ await expect(page.getByText("Approval requested").first()).toBeVisible();
await page.getByRole("button", { name: "Approvals" }).click();
await expect(page.getByText("Escalate release").first()).toBeVisible();