Skip to content
Open
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
994 changes: 497 additions & 497 deletions crates/tui/locales/en.json

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions crates/tui/src/cloud_dispatch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1070,7 +1070,7 @@ pub fn format_job(job: &CloudJob) -> String {
];
if let Some(minutes) = runtime_minutes(job) {
lines.push(format!(
"Runtime: {minutes}m (Codewhale bookkeeping, not a bill)"
"Runtime: {minutes}m (codewhale bookkeeping, not a bill)"
));
}
if let Some(summary) = job.agent_summary.as_deref() {
Expand All @@ -1093,7 +1093,7 @@ pub fn format_status(
credentials: &CredentialState,
recent: &[CloudJob],
) -> String {
let mut lines = vec!["Codewhale cloud dispatch".to_string()];
let mut lines = vec!["codewhale cloud dispatch".to_string()];
match credentials {
CredentialState::Missing => {
if membership_signed_in() {
Expand All @@ -1103,7 +1103,7 @@ pub fn format_status(
);
} else {
lines.push(
"Cloud agents are included with your Codewhale membership. Sign in with `codewhale login` to enable `/dispatch`; cloud dispatch fails closed until then (no sandbox, no push, no PR)."
"Cloud agents are included with your codewhale membership. Sign in with `codewhale login` to enable `/dispatch`; cloud dispatch fails closed until then (no sandbox, no push, no PR)."
.to_string(),
);
}
Expand Down Expand Up @@ -1822,7 +1822,7 @@ pub fn missing_credentials_message() -> String {
if membership_signed_in() {
"Cloud agents are not available for this account yet; cloud dispatch fails closed (no sandbox, no push, no PR).".to_string()
} else {
"Cloud agents are included with your Codewhale membership. Sign in with `codewhale login` to enable `/dispatch`; cloud dispatch fails closed until then (no sandbox, no push, no PR).".to_string()
"Cloud agents are included with your codewhale membership. Sign in with `codewhale login` to enable `/dispatch`; cloud dispatch fails closed until then (no sandbox, no push, no PR).".to_string()
}
}

Expand Down Expand Up @@ -2059,7 +2059,7 @@ fn forge_host(forge: Forge) -> &'static str {

fn proposal_note(plan: &DispatchPlan) -> String {
format!(
"Proposed Codewhale cloud-agent offload to {} ({}) raising branch {}.",
"Proposed codewhale cloud-agent offload to {} ({}) raising branch {}.",
plan.remote.forge.as_str(),
plan.remote.name,
plan.branch
Expand Down
4 changes: 2 additions & 2 deletions crates/tui/src/commands/groups/config/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4633,7 +4633,7 @@ completion_sound = "bell"
assert!(search.is_error);
let search_msg = search.message.unwrap();
assert!(
search_msg.contains("Invalid search.provider"),
search_msg.contains("Can't use 'not-a-backend' for search.provider"),
"{search_msg}"
);
assert!(search_msg.contains("firecrawl"), "{search_msg}");
Expand All @@ -4642,7 +4642,7 @@ completion_sound = "bell"
assert!(notifications.is_error);
let notifications_msg = notifications.message.unwrap();
assert!(
notifications_msg.contains("Invalid notifications.method"),
notifications_msg.contains("Can't use 'semaphore' for notifications.method"),
"{notifications_msg}"
);
assert!(notifications_msg.contains("osc9"), "{notifications_msg}");
Expand Down
4 changes: 2 additions & 2 deletions crates/tui/src/commands/groups/config/permissions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ workspace = {other:?}
assert!(message.contains("active in this workspace"));
assert!(message.contains("#2 | ask | edit_file"));
assert!(message.contains("exact normalized path `src/lib.rs`"));
assert!(message.contains("not active in this workspace"));
assert!(message.contains("inactive in this workspace"));
}

#[test]
Expand Down Expand Up @@ -349,7 +349,7 @@ workspace = {other:?}
let malformed = permissions_command(&app, Some("list"));
let malformed_message = malformed.message.expect("malformed message");
assert!(malformed.is_error);
assert!(malformed_message.contains("Permission rule operation failed"));
assert!(malformed_message.contains("Could not update the permission rule"));
assert!(malformed_message.contains(&codewhale_config::quote_os_path(
&displayed_permissions_path
)));
Expand Down
9 changes: 3 additions & 6 deletions crates/tui/src/commands/groups/core/copy.rs
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ mod tests {
let result = execute_copy(&mut app);

let expected = format!(
"Accepted the last completed assistant response for clipboard delivery; a recovery copy is at {}",
"Copied the last response; a backup is at {}.",
tmp.path().join("exports").join("last-copy.md").display()
);
assert_eq!(result.message.as_deref(), Some(expected.as_str()));
Expand Down Expand Up @@ -169,7 +169,7 @@ mod tests {

assert_eq!(
result.message.as_deref(),
Some("No completed assistant response is available to copy")
Some("Nothing to copy yet — no completed response.")
);
}

Expand Down Expand Up @@ -353,10 +353,7 @@ mod tests {

assert!(!result.is_error);
let message = result.message.as_deref().unwrap_or_default();
assert!(
message.contains("no recovery file could be written"),
"{message}"
);
assert!(message.contains("no backup could be written"), "{message}");
assert!(message.contains("/export file <path>"), "{message}");
}

Expand Down
10 changes: 5 additions & 5 deletions crates/tui/src/commands/groups/core/core.rs
Original file line number Diff line number Diff line change
Expand Up @@ -873,7 +873,7 @@ mod tests {
let result = help(&mut app, Some("links"));
let msg = result.message.expect("help topic should return message");
assert!(msg.contains("links"));
assert!(msg.contains("Show Codewhale, community, and provider links"));
assert!(msg.contains("Show codewhale, community, and provider links"));
assert!(msg.contains("Usage: /links"));
assert!(msg.contains("Aliases: dashboard, api"));
}
Expand Down Expand Up @@ -1597,7 +1597,7 @@ mod tests {
assert_eq!(app.view_stack.top_kind(), Some(ModalKind::SubAgents));
assert_eq!(
app.status_message,
Some("Fetching current-session sub-agents...".to_string())
Some("Finding this session's sub-agents...".to_string())
);
}

Expand All @@ -1607,7 +1607,7 @@ mod tests {
let result = codewhale_links(&mut app);
assert!(result.message.is_some());
let msg = result.message.unwrap();
assert!(msg.contains("Codewhale & community"));
assert!(msg.contains("codewhale & community"));
assert!(msg.contains("https://codewhale.net/en/docs"));
assert!(msg.contains("https://codewhale.net/en/community"));
assert!(msg.contains("https://github.com/Hmbown/CodeWhale"));
Expand Down Expand Up @@ -1700,7 +1700,7 @@ mod tests {
let result = home_dashboard(&mut app);
assert!(result.message.is_some());
let msg = result.message.unwrap();
assert!(msg.contains("Codewhale"));
assert!(msg.contains("codewhale"));
assert!(!msg.contains("codewhale Home Dashboard"));
assert!(msg.contains("Model:"));
assert!(msg.contains("Mode:"));
Expand Down Expand Up @@ -1753,7 +1753,7 @@ mod tests {
assert!(msg.contains("/workspace - Switch folders or worktrees"));
assert!(msg.contains("/restore - Roll files back to a turn snapshot"));
assert!(msg.contains("/tokens - Show session spend and context"));
assert!(msg.contains("/links - Codewhale, community & provider links"));
assert!(msg.contains("/links - codewhale, community & provider links"));
assert!(msg.contains("/config - Inspect and change settings"));
assert!(
!msg.lines()
Expand Down
2 changes: 1 addition & 1 deletion crates/tui/src/commands/groups/plugins/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ fn list_show_validate_are_read_only_and_label_legacy_tools() {
let list = plugins(&mut app, Some("list")).message.unwrap();
assert!(list.contains("Plugin bundles (1)"));
assert!(list.contains("disabled"));
assert!(list.contains("Legacy executable plugin tools (1)"));
assert!(list.contains("Legacy plugin tools (1)"));
}

#[test]
Expand Down
19 changes: 9 additions & 10 deletions crates/tui/src/commands/groups/utility/mcp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -238,24 +238,23 @@ fn mcp_unknown_id(presentation: &mut dyn CommandPresentationContext) -> String {
&[("recommendations_command", "/mcp recommendations")],
)
.unwrap_or_else(|_| {
"Unknown recommended MCP ID. Run /mcp recommendations to inspect the curated list."
.to_string()
"Unknown MCP suggestion. Run /mcp recommendations to see the list.".to_string()
})
}

fn recommended_mcp_text(presentation: &mut dyn CommandPresentationContext) -> String {
let heading = presentation
.translate("mcp_recommendations_heading", &[])
.unwrap_or_else(|_| {
"Suggested Codewhale plugins (MCP components; nothing is installed automatically)"
"Suggested codewhale plugins (MCP components; nothing installs automatically)"
.to_string()
});
let safety = presentation
.translate(
"mcp_recommendations_safety",
&[("restart_command", "/mcp restart")],
)
.unwrap_or_else(|_| "Viewing this list adds or enables nothing.".to_string());
.unwrap_or_else(|_| "Looking adds nothing.".to_string());
let github = presentation
.translate(
"mcp_recommendation_github",
Expand All @@ -281,7 +280,7 @@ fn recommended_mcp_text(presentation: &mut dyn CommandPresentationContext) -> St
],
)
.unwrap_or_else(|_| {
format!("• chrome-devtools — official Chrome DevTools MCP via pinned npm package\n package: {CHROME_DEVTOOLS_MCP_PACKAGE}")
format!("• chrome-devtools — official Chrome DevTools MCP (pinned npm package)\n package: {CHROME_DEVTOOLS_MCP_PACKAGE}")
});
let playwright = presentation
.translate(
Expand All @@ -295,7 +294,7 @@ fn recommended_mcp_text(presentation: &mut dyn CommandPresentationContext) -> St
],
)
.unwrap_or_else(|_| {
format!("• playwright — Microsoft's official Playwright MCP via pinned npm package\n package: {PLAYWRIGHT_MCP_PACKAGE}")
format!("• playwright — Microsoft's official Playwright MCP (pinned npm package)\n package: {PLAYWRIGHT_MCP_PACKAGE}")
});
let cua = presentation
.translate(
Expand Down Expand Up @@ -396,7 +395,7 @@ mod tests {
"Unknown recommended MCP ID. Run {recommendations_command} to inspect the curated list.".to_string()
}
"mcp_recommendations_heading" => {
"Suggested Codewhale plugins (MCP components; nothing is installed automatically)"
"Suggested codewhale plugins (MCP components; nothing installs automatically)"
.to_string()
}
"mcp_recommendations_safety" => {
Expand Down Expand Up @@ -459,7 +458,7 @@ mod tests {
let recommended = mcp(&mut FakePresentation, Some("recommendations"))
.message
.expect("recommendations text");
assert!(recommended.contains("nothing is installed automatically"));
assert!(recommended.contains("nothing installs automatically"));
assert!(recommended.contains("provenance:"));
assert!(recommended.contains("https://api.githubcopilot.com/mcp/"));
assert!(recommended.contains("chrome-devtools-mcp@1.7.0"));
Expand Down Expand Up @@ -599,8 +598,8 @@ mod tests {
#[test]
fn recommendations_state_execution_and_install_boundaries() {
let text = recommended_mcp_text(&mut FakePresentation);
assert!(text.contains("nothing is installed automatically"));
assert!(text.contains("Suggested Codewhale plugins"));
assert!(text.contains("nothing installs automatically"));
assert!(text.contains("Suggested codewhale plugins"));
assert!(text.contains("never downloads or"));
assert!(text.contains("installs this binary"));
assert!(text.contains("experimental"));
Expand Down
2 changes: 1 addition & 1 deletion crates/tui/src/commands/groups/utility/update.rs
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ fn run_updater(updater: &Path, mode: UpdateMode) -> CommandResult {
CommandResult::message(format!("{}\n\n{transcript}", install_preamble(updater)))
}
UpdateMode::Install => CommandResult::message(format!(
"{transcript}\n\nRestart Codewhale to run the updated binary."
"{transcript}\n\nRestart codewhale to run the updated binary."
)),
}
}
Expand Down
Loading
Loading