Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2002,6 +2002,9 @@ jobs:
- name: Verify migration DDL idempotency ratchet
run: python ./scripts/verify/verify-migration-idempotency.py

- name: Verify web/desktop i18n dead-key gate
run: python ./scripts/verify/verify-i18n-deadkeys.py

# ── Architecture boundary gates (audit-A gate-ifiable candidates) ──
# Shared workbench/chatview/ui must stay free of Edge client imports;
# shared barrel must not leak Edge exports to platform apps; handler
Expand Down
966 changes: 0 additions & 966 deletions app/desktop/src/i18n/locales/en.json

Large diffs are not rendered by default.

966 changes: 0 additions & 966 deletions app/desktop/src/i18n/locales/zh.json

Large diffs are not rendered by default.

296 changes: 0 additions & 296 deletions app/web/src/i18n/locales/en/common.json
Original file line number Diff line number Diff line change
@@ -1,32 +1,4 @@
{
"brand.webPreview": "AgentHub Web Preview",
"nav.previewPages": "Preview pages",
"nav.workbench": "Workbench",
"nav.agentSquare": "Agent Square",
"nav.privateChats": "Private Chats",
"nav.groupWorkspace": "Group Workspace",
"nav.projectPreview": "Project Preview",
"shell.brand.surface": "Web shell",
"shell.toolbar.status": "Shell status",
"shell.status.edgeUnavailable": "Hub workbench unavailable",
"shell.sidebar.label": "Workspace navigation",
"shell.sidebar.pages": "Pages",
"shell.sidebar.boundary": "Source boundary",
"shell.sidebar.boundary.detail": "This Web shell labels unavailable, locked, catalog fallback, and demo states without implying remote data is connected.",
"shell.statusPanel.label": "Status and source panel",
"shell.statusPanel.current": "Current page",
"shell.statusPanel.source": "Source state",
"shell.statusPanel.routes": "Routes",
"shell.workspace.localEdge": "Hub workspace",
"shell.workspace.catalog": "Agent catalog",
"shell.workspace.hubSession": "Hub session",
"shell.workspace.group": "Group workspace",
"shell.workspace.project": "Project workspace",
"shell.page.workbench.description": "Hub workbench unavailable/error: the Web shell cannot confirm a Hub session snapshot for this browser session.",
"shell.page.agentSquare.description": "Agent Square catalog fallback: the page may show labeled catalog fallback content when Hub custom agents are unavailable.",
"shell.page.privateChats.description": "Private Chats Hub session required: private conversations stay locked until the Web client receives a Hub session.",
"shell.page.groupWorkspace.description": "Group demo fallback: group workspace content is clearly labeled demo data when Hub collaboration data is unavailable.",
"shell.page.projectPreview.description": "Project demo fallback: project workspace content is clearly labeled demo data when Edge or Hub project data is unavailable.",
"surface.status.realSnapshot.label": "Real snapshot",
"surface.status.realSnapshot.description": "Rendered from a verified live response or preserved service snapshot.",
"surface.status.localSource.label": "Local source",
Expand Down Expand Up @@ -65,76 +37,9 @@
"settings.platforms.description": "Desktop Platforms section baseline for cross-platform capability readiness.",
"settings.account.description": "Desktop Account section baseline for Hub session, TokenDance ID, and device proof.",
"settings.securityAudit.description": "Desktop Security Audit section baseline for audit trail, permission ledger, and secret scanning.",
"shell.source.error": "Hub unavailable/error",
"shell.source.error.detail": "Hub workbench unavailable/error: no verified Hub workbench source is connected in this Web shell.",
"shell.source.catalog": "Catalog fallback",
"shell.source.catalog.detail": "Agent Square catalog fallback: Hub custom-agent data is unavailable, so the catalog state is explicitly labeled as fallback.",
"shell.source.locked": "Hub session required",
"shell.source.locked.detail": "Private Chats Hub session required: the shell does not claim an active session or show fake private chat data.",
"shell.source.demo": "Demo fallback",
"shell.source.demo.detail": "Group/Project demo fallback: the shell labels collaboration and project preview data as demo content when real sources are unavailable.",
"settings.title": "Settings",
"webShell.brand.subtitle": "Web workspace",
"webShell.surface.aria": "Main workspace",
"webShell.surface.workspace": "Workspace",
"webShell.surface.messages": "Messages",
"webShell.surface.runDetail": "Run",
"webShell.nav.open": "Open navigation",
"webShell.nav.close": "Close navigation",
"webShell.nav.expand": "Expand sidebar",
"webShell.nav.collapse": "Collapse sidebar",
"webShell.sidebar.agents": "Agents",
"webShell.sidebar.threads": "Threads",
"webShell.status.ready": "ready",
"webShell.status.restReady": "Hub REST {{version}}",
"webShell.status.restIdle": "Hub path idle",
"webShell.status.realtimeSignIn": "Sign in for realtime",
"webShell.status.realtimeLive": "Hub WS live",
"webShell.status.realtimeState": "Hub WS {{state}}",
"webShell.account.account": "Account",
"webShell.account.signIn": "Sign in",
"webShell.runDetail.open": "Open run detail",
"webShell.runDetail.close": "Close run detail",
"webShell.route.eyebrow": "Context",
"webShell.route.aria": "{{surface}} route context",
"webShell.route.agentSquare.aria": "Agent Square shell route",
"webShell.route.agentSquare.title": "Agent catalog workspace",
"webShell.route.agentSquare.summary": "Agent catalog context stays with the command workspace: runtimes, threads, chat, and run detail remain visible together.",
"webShell.route.agentSquare.source": "Catalog",
"webShell.route.groupWorkspace.aria": "Group workspace shell route",
"webShell.route.groupWorkspace.title": "Group command workspace",
"webShell.route.groupWorkspace.summary": "Group context is held in the shared workspace so collaboration state, messages, and run detail stay in one operational view.",
"webShell.route.groupWorkspace.source": "Group ID",
"webShell.route.projectWorkspace.aria": "Project workspace shell route",
"webShell.route.projectWorkspace.title": "Project command workspace",
"webShell.route.projectWorkspace.summary": "Project context is held in the shared workspace so agents, threads, and run detail stay ready for dispatch.",
"webShell.route.projectWorkspace.source": "Project ID",
"webShell.route.metrics.agents": "Agents",
"webShell.route.metrics.threads": "Threads",
"webShell.route.metrics.shell": "Workspace",
"webShell.route.sources.catalog": "Catalog",
"webShell.route.sources.group": "Group ID",
"webShell.route.sources.project": "Project ID",
"webShell.route.sources.status": "State",
"webShell.route.sources.registry": "Registry",
"webShell.route.actions.messages": "Messages",
"webShell.route.actions.settings": "Settings",
"theme.light": "Light mode",
"theme.dark": "Dark mode",
"theme.switchToLight": "Switch to light theme",
"theme.switchToDark": "Switch to dark theme",
"loading": "Loading...",
"action.startRun": "Send",
"action.clearEvents": "Clear Events",
"action.cancelRun": "Cancel",
"action.create": "Create",
"action.save": "Save",
"action.close": "Close",
"action.dismiss": "Dismiss",
"action.apply": "Apply",
"action.discard": "Discard",
"action.approve": "Approve",
"action.reject": "Reject",
"auth.title": "AgentHub",
"auth.tagline": "Run AI coding agents locally",
"auth.advancedSettings": "Advanced settings",
Expand Down Expand Up @@ -162,209 +67,8 @@
"webChat.signInRequired": "Sign in is required to use web chat",
"webChat.deviceKicked": "This device session was signed out by the Hub (it may have been replaced by another login). Please sign in again.",
"webChat.deviceKicked.signIn": "Sign in",
"diff.empty.title": "No changes to display",
"diff.empty.description": "Diff output will appear here after the run reports changed files.",
"diff.changedFiles_one": "{{count}} changed file",
"diff.changedFiles_other": "{{count}} changed files",
"diff.actions.expandAll": "Expand all files",
"diff.actions.collapseAll": "Collapse all files",
"diff.actions.acceptFile": "Accept file",
"diff.actions.acceptAll": "Accept all changes in this file",
"diff.actions.undoAccept": "Undo accept",
"diff.actions.rejectFile": "Reject file",
"diff.actions.rejectAll": "Reject all changes in this file",
"diff.actions.undoReject": "Undo reject",
"view.teamRun": "TeamRun",
"teamRun.title": "TeamRun Console",
"teamRun.signInRequired": "Sign in to TokenDance ID to view and manage AgentTeams.",
"teamRun.teams": "Agent Teams",
"teamRun.refresh": "Refresh",
"teamRun.createTeam": "Create team",
"teamRun.teamNamePlaceholder": "Team name...",
"teamRun.teamDescPlaceholder": "Description (optional)...",
"teamRun.creating": "Creating...",
"teamRun.create": "Create",
"teamRun.loading": "Loading...",
"teamRun.noTeams": "No teams yet. Create one to start.",
"teamRun.selectTeam": "Select a Team",
"teamRun.selectTeamHint": "Choose a team from the sidebar to view its details and runs.",
"teamRun.unknownTeam": "Unknown Team",
"teamRun.startRun": "Start TeamRun",
"teamRun.triggerPlaceholder": "What should the team do?...",
"teamRun.cancel": "Cancel",
"teamRun.starting": "Starting...",
"teamRun.go": "Go",
"teamRun.tabMembers": "Members",
"teamRun.tabTasks": "Tasks",
"teamRun.tabApprovals": "Approvals",
"teamRun.tabEvents": "Events",
"teamRun.selectRun": "Select a run from the sidebar to view details.",
"teamRun.active": "Active",
"teamRun.completed": "Done",
"teamRun.noMembers": "No team members.",
"teamRun.noTasks": "No tasks in this run.",
"teamRun.activeTasks": "Active tasks",
"teamRun.completedTasks": "Completed tasks",
"teamRun.untitledTask": "Untitled task",
"teamRun.highRisk": "High risk",
"teamRun.noApprovals": "No approvals required for this run.",
"teamRun.pendingApprovals": "Pending approvals",
"teamRun.decidedApprovals": "Decided",
"teamRun.conflicts": "Conflicts",
"teamRun.approvalRequest": "Approval request",
"teamRun.requestedBy": "By {{name}}",
"teamRun.approve": "Approve",
"teamRun.deny": "Deny",
"teamRun.resolve": "Resolve",
"teamRun.noEvents": "No events recorded for this run.",
"teamRun.role.supervisor": "Supervisor",
"teamRun.role.reviewer": "Reviewer",
"teamRun.role.executor": "Worker",
"teamRun.role.worker": "Worker",
"teamRun.role.member": "Member",
"teamRun.status.queued": "Queued",
"teamRun.status.running": "Running",
"teamRun.status.completed": "Completed",
"teamRun.status.failed": "Failed",
"teamRun.status.cancelled": "Cancelled",
"teamRun.taskStatus.pending": "Pending",
"teamRun.taskStatus.dispatched": "Dispatched",
"teamRun.taskStatus.running": "Running",
"teamRun.taskStatus.done": "Done",
"teamRun.taskStatus.failed": "Failed",
"teamRun.taskStatus.cancelled": "Cancelled",
"teamRun.event.assignmentCreated": "Assignment created",
"teamRun.event.assignmentDispatched": "Assignment dispatched",
"teamRun.event.assignmentCompleted": "Assignment completed",
"teamRun.event.assignmentFailed": "Assignment failed",
"teamRun.event.assignmentCancelled": "Assignment cancelled",
"teamRun.event.taskCreated": "Task created",
"teamRun.event.routeDecided": "Route decided",
"teamRun.event.routeRejected": "Route rejected",
"teamRun.event.runStarted": "Run started",
"teamRun.event.runCompleted": "Run completed",
"teamRun.event.runFailed": "Run failed",
"teamRun.event.agentMessage": "Agent message",
"teamRun.event.approvalDecided": "Approval decided",
"teamRun.event.conflictResolved": "Conflict resolved",
"teamRun.event.unknown": "Event",
"code.copy": "Copy code",
"code.copied": "Copied",
"prompt.agentSuggestions": "Agent suggestions",
"prompt.routeAuto": "Auto",
"notification.bell": "Notifications",
"notification.bellUnread": "Notifications ({{count}} unread)",
"notification.panel": "Notifications panel",
"notification.title": "Notifications",
"notification.markAllRead": "Mark all read",
"notification.emptyTitle": "No notifications yet",
"notification.emptyDescription": "Agent approvals, mentions, and Hub delivery updates will appear here.",
"notification.markRead": "Mark as read",
"notification.type.friendRequest": "Friend request",
"notification.type.agentTask": "Agent task",
"notification.type.message": "Message",
"notification.type.system": "System",
"time.justNow": "just now",
"time.minutesAgo": "{{count}}m ago",
"time.hoursAgo": "{{count}}h ago",
"time.daysAgo": "{{count}}d ago",
"time.yesterday": "Yesterday",
"chat.action.copy": "Copy",
"chat.action.copied": "Copied",
"chat.action.retry": "Retry",
"chat.action.delete": "Delete",
"chat.action.reply": "Reply",
"chat.action.regenerate": "Regenerate",
"chat.sender.you": "You",
"chat.sender.agent": "Agent",
"chat.replyIndicator": "Replying to",
"chat.thinking": "Thinking…",
"chat.error.title": "Error",
"chat.error.unknown": "Unknown error",
"chat.error.showDetail": "Show details",
"chat.error.hideDetail": "Hide details",
"chat.compact.itemCount": "{{count}} items compacted",
"chat.viewFullDiff": "View full diff",
"chat.scrollToBottom": "Scroll to bottom",
"chat.newMessages": "New messages",
"chat.emptyTitle": "What should we do in AgentHub?",
"chat.emptyDescription": "Select an agent above and type a message to start collaborating with an AI coding agent.",
"chat.suggestion.newTask": "New task",
"chat.suggestion.explainCode": "Explain code",
"chat.suggestion.fixBugs": "Fix bugs",
"chat.fileAction.created": "Created",
"chat.fileAction.modified": "Modified",
"chat.fileAction.deleted": "Deleted",
"chat.fileAction.noPreview": "No preview available",
"chat.sessionInit": "Session initialized — {{model}}",
"chat.result.success": "Done — {{input}} in / {{output}} out tokens",
"chat.result.failed": "Failed: {{error}}",
"chat.retry": "Retry",
"welcome.title": "Welcome",
"welcome.eyebrow": "GET STARTED",
"welcome.headline": "AgentHub",
"welcome.noRuntimes": "No Runtime adapters detected",
"welcome.noRuntimesDescription": "Connect a Desktop runtime or refresh Hub session state before dispatching from this workspace.",
"welcome.edgeOffline": "Runtime route unavailable",
"welcome.edgeOfflineDescription": "Runtime routing is unavailable. Keep this workspace open while the Desktop runtime reconnects.",
"welcome.launcherLabel": "Runtime launcher",
"welcome.runtime": "Runtime",
"welcome.profile": "Profile",
"welcome.target": "Target",
"welcome.runtimeList": "Runtime list",
"welcome.runtimeDefaultDesc": "Default local runtime adapter.",
"welcome.profileName": "{{runtime}} Profile",
"welcome.profileFallback": "Auto profile",
"welcome.profileDesc": "Web profile composed from runtime, model routing, config source, and execution location.",
"welcome.profileAlias": "Alias",
"welcome.model": "Model",
"welcome.provider": "Provider",
"welcome.reasoning": "Reasoning",
"welcome.configSource": "Config source",
"welcome.localEdgeTarget": "Hub target",
"welcome.localEdgeReady": "Ready",
"welcome.execution": "Execution",
"welcome.approval": "Approval",
"welcome.identity": "Identity",
"welcome.remoteReady": "Ready",
"welcome.commandPlaceholder": "Type a command or describe what you need...",
"welcome.commandPlaceholderForAgent": "Type a command for {{runtime}} or describe what you need...",
"welcome.localEdge": "Hub runtime",
"welcome.tokendance": "TokenDance ID",
"welcome.approvalAsk": "Ask when needed",
"welcome.suggestionsLabel": "Try these prompts",
"agent.status.available": "Available",
"agent.status.unavailable": "Unavailable",
"agent.status.configuring": "Configuring",
"im.contact.empty": "No conversations yet",
"im.contact.emptyDescription": "Hub contacts and agent sessions will appear here after sign-in or sync.",
"im.contact.search": "Search conversations...",
"im.contact.title": "Contacts",
"im.contact.searchLabel": "Search conversations",
"im.contact.add": "Add",
"im.contact.cancel": "Cancel",
"im.contact.cancelAdd": "Cancel request",
"im.contact.nameLabel": "Contact name",
"im.contact.namePlaceholder": "Contact name...",
"im.contact.addConfirm": "Add contact",
"im.contact.online": "Online",
"im.contact.offline": "Offline",
"im.showArchived": "Show archived",
"im.hideArchived": "Hide archived",
"im.pinned": "Pinned",
"im.muted": "Muted",
"im.sort.recent": "Recent",
"im.sort.pinned": "Pinned",
"im.sort.name": "Name",
"im.message.sender.agent": "Agent",
"im.message.sender.user": "User",
"im.message.ariaLabel": "{{type}} message by {{name}}",
"im.message.emptyTitle": "No messages yet",
"im.message.emptyDescription": "Start a Hub conversation to begin.",
"im.search": "Search conversations...",
"im.searchClear": "Clear search",
"diff.actions.diffApplied": "Applied",
"diff.actions.applyDiff": "Apply diff",
"error.network": "Network error",
"error.auth": "Authentication error",
"error.agent": "Agent error",
Expand Down
Loading
Loading