diff --git a/internal/cloudcp/portal/dist/build_manifest.json b/internal/cloudcp/portal/dist/build_manifest.json
index 2edc92169..ebfcc7643 100644
--- a/internal/cloudcp/portal/dist/build_manifest.json
+++ b/internal/cloudcp/portal/dist/build_manifest.json
@@ -1,5 +1,5 @@
{
- "source_hash": "946e81ba109035add424a9d22f266067144be2241e1f08b75298bdf02ffad678",
+ "source_hash": "dad81b20a29d1cb8f0740582fb956ff300c845fada0f984319d215044c50fa1d",
"build_inputs": [
"package.json",
"tsconfig.json",
diff --git a/internal/cloudcp/portal/dist/portal_app.js b/internal/cloudcp/portal/dist/portal_app.js
index 6e9f0c807..029d18cae 100644
--- a/internal/cloudcp/portal/dist/portal_app.js
+++ b/internal/cloudcp/portal/dist/portal_app.js
@@ -67,7 +67,7 @@
}
function workspaceGuidance(workspace) {
if (workspace.state === "active" && workspace.health_status === "healthy") {
- return "This workspace looks ready for normal operator work. Use the fleet table to open it, or suspend it here if you are intentionally taking it out of service.";
+ return "This workspace looks ready for normal use. Use the fleet table to open it, or suspend it here if you are intentionally taking it out of service.";
}
if (workspace.state === "active" && workspace.health_status === "checking") {
return "This workspace is active but still waiting on a completed health check. Review it before you treat the hosted posture as settled.";
@@ -312,7 +312,7 @@
}
if (!entry.teamQuery.data.length) {
if (rosterPanel) rosterPanel.classList.add("state-only");
- setContainerMessage(roster, "No operators yet", "Invite someone new when this hosted account needs shared access.", false);
+ setContainerMessage(roster, "No one added yet", "Invite someone new when this hosted account needs shared access.", false);
return;
}
roster.textContent = "";
@@ -1835,7 +1835,7 @@
function renderAccountContextStrip(account) {
var workspaceLabel = workspaceCountLabel((account.workspaces || []).length);
var billingLabel = account.has_billing ? "Billing enabled" : "Billing offline";
- return '' + escapeHTML(accountKindLabel(account)) + '/' + escapeHTML(titleCase(account.role)) + ' access
' + escapeHTML(account.name) + '
' + escapeHTML(account.kind_label) + '' + escapeHTML(titleCase(account.role)) + '' + escapeHTML(workspaceLabel) + "
" + escapeHTML(account.kind === "msp" ? "Operator workspace account for hosted fleet, team control, and account billing." : "Hosted account operations for workspace access, team control, and billing.") + '
Role' + escapeHTML(titleCase(account.role)) + '
Hosted fleet' + escapeHTML(workspaceLabel) + '
Commercial' + escapeHTML(billingLabel) + "
";
+ return '' + escapeHTML(accountKindLabel(account)) + '/' + escapeHTML(titleCase(account.role)) + ' access
' + escapeHTML(account.name) + '
' + escapeHTML(account.kind_label) + '' + escapeHTML(titleCase(account.role)) + '' + escapeHTML(workspaceLabel) + "
" + escapeHTML(account.kind === "msp" ? "Hosted workspace account for fleet access, team control, and account billing." : "Hosted account access for workspaces, team control, and billing.") + '
Role' + escapeHTML(titleCase(account.role)) + '
Hosted fleet' + escapeHTML(workspaceLabel) + '
Commercial' + escapeHTML(billingLabel) + "
";
}
function shellSectionButton(section, activeSection, index, title, copy, badge) {
var badgeHTML = badge ? '' + escapeHTML(badge) + "" : "";
diff --git a/internal/cloudcp/portal/frontend/src/account_view.ts b/internal/cloudcp/portal/frontend/src/account_view.ts
index 2b90e7801..2bd0c533f 100644
--- a/internal/cloudcp/portal/frontend/src/account_view.ts
+++ b/internal/cloudcp/portal/frontend/src/account_view.ts
@@ -85,7 +85,7 @@ function workspaceCreatedLabel(workspace: PortalWorkspaceSummary): string {
function workspaceGuidance(workspace: PortalWorkspaceSummary): string {
if (workspace.state === 'active' && workspace.health_status === 'healthy') {
- return 'This workspace looks ready for normal operator work. Use the fleet table to open it, or suspend it here if you are intentionally taking it out of service.';
+ return 'This workspace looks ready for normal use. Use the fleet table to open it, or suspend it here if you are intentionally taking it out of service.';
}
if (workspace.state === 'active' && workspace.health_status === 'checking') {
return 'This workspace is active but still waiting on a completed health check. Review it before you treat the hosted posture as settled.';
@@ -369,7 +369,7 @@ export function renderTeamSection(accountID: string, entry: PortalAccountUIEntry
}
if (!entry.teamQuery.data.length) {
if (rosterPanel) rosterPanel.classList.add('state-only');
- setContainerMessage(roster, 'No operators yet', 'Invite someone new when this hosted account needs shared access.', false);
+ setContainerMessage(roster, 'No one added yet', 'Invite someone new when this hosted account needs shared access.', false);
return;
}
diff --git a/internal/cloudcp/portal/frontend/src/shell_view.test.ts b/internal/cloudcp/portal/frontend/src/shell_view.test.ts
index 4e293a0da..8ae2e8560 100644
--- a/internal/cloudcp/portal/frontend/src/shell_view.test.ts
+++ b/internal/cloudcp/portal/frontend/src/shell_view.test.ts
@@ -143,7 +143,7 @@ describe('shell view', function() {
expect(html).toContain('id="accounts-root"');
expect(html).toContain('MSP account');
expect(html).toContain('Acme MSP');
- expect(html).toContain('Operator workspace account');
+ expect(html).toContain('Hosted workspace account');
expect(html).toContain('3 workspaces');
expect(html).toContain('Add workspace');
expect(html).toContain('Manage billing');
diff --git a/internal/cloudcp/portal/frontend/src/shell_view.ts b/internal/cloudcp/portal/frontend/src/shell_view.ts
index 4add003b3..e9595bc10 100644
--- a/internal/cloudcp/portal/frontend/src/shell_view.ts
+++ b/internal/cloudcp/portal/frontend/src/shell_view.ts
@@ -296,7 +296,7 @@ function renderAccountContextStrip(account: PortalAccountSummary): string {
'' + escapeHTML(workspaceLabel) + '' +
'' +
'' +
- '
' + escapeHTML(account.kind === 'msp' ? 'Operator workspace account for hosted fleet, team control, and account billing.' : 'Hosted account operations for workspace access, team control, and billing.') + '
' +
+ '' + escapeHTML(account.kind === 'msp' ? 'Hosted workspace account for fleet access, team control, and account billing.' : 'Hosted account access for workspaces, team control, and billing.') + '
' +
'' +
'