Files
multica/packages/views/locales/en/modals.json
Naiyuan Qing 302662aee3 fix(issues): batch status applies directly; coalesce staged parent notifications (MUL-4155) (#5151)
Batch sub-issue status changes triggered two wrong behaviours from one user
action:

- Frontend popped the pre-trigger "现在开始处理?" confirm modal for every
  non-backlog target, but done/cancelled can never start a run, so it degenerated
  into a misleading "won't start → OK" step. handleBatchStatus now applies
  directly (product decision: batch status, including backlog → active promotion,
  applies like a single-issue/CLI change). Assign agent/squad and delete still
  confirm. The now-unreachable status mode is removed from RunConfirmModal and
  its locale keys.

- Backend evaluated the stage barrier per-child inside the batch loop, using a
  mid-batch sibling snapshot. A batch closing several stages at once emitted one
  comment per intermediate stage, pinned the parent assignee's wake to a stale
  "advance Stage N+1" instruction (the accurate wake was swallowed by the
  pending-task dedup), and the outcome depended on issue_ids order.
  BatchUpdateIssues now collects terminal transitions and evaluates each parent
  once against the batch's final state (notifyParentsOfBatchChildDone): at most
  one accurate comment + one wake per parent, order-independent. Single-issue
  UpdateIssue is unchanged; WillEnqueueRun is untouched.

Tests: cross-stage batch done/cancelled (forward + reverse) and lower-stage-only
on the backend; status-direct / assign-confirm / delete-confirm routing on the
frontend.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: multica-agent <github@multica.ai>
2026-07-10 09:11:29 +08:00

212 lines
9.7 KiB
JSON

{
"common": {
"back": "Back",
"close": "Close",
"cancel": "Cancel",
"expand_tooltip": "Expand",
"collapse_tooltip": "Collapse"
},
"create_workspace": {
"title": "Create a new workspace",
"description": "Workspaces are shared environments where teams can work on projects and issues."
},
"delete_issue": {
"title": "Delete issue",
"description": "This will permanently delete this issue and all its comments. This action cannot be undone.",
"hint": "Any workspace member can delete issues.",
"cancel": "Cancel",
"confirm": "Delete",
"deleting": "Deleting...",
"toast_deleted": "Issue deleted",
"toast_delete_failed": "Failed to delete issue"
},
"feedback": {
"title": "Feedback",
"placeholder": "Tell us about your experience, bugs you've found, or features you'd like to see…",
"toast_uploading": "Please wait for uploads to finish…",
"toast_too_long": "Message is too long",
"toast_sent": "Thanks for the feedback!",
"toast_failed": "Failed to send feedback",
"send": "Send feedback",
"sending": "Sending…",
"github_hint_prefix": "Want faster handling and open discussion? Head to ",
"github_hint_link": "GitHub"
},
"issue_picker": {
"search_placeholder": "Search issues...",
"searching": "Searching...",
"no_results": "No issues found.",
"prompt_to_search": "Type to search issues"
},
"set_parent": {
"title": "Set parent issue",
"description": "Search for an issue to set as the parent of this issue",
"toast_failed": "Failed to update issue",
"toast_success": "Set {{identifier}} as parent issue"
},
"add_child": {
"title": "Add sub-issue",
"description": "Search for an issue to add as a sub-issue",
"toast_failed": "Failed to add sub-issue",
"toast_success": "Added {{identifier}} as sub-issue"
},
"run_confirm": {
"title_assign": "Assign and start?",
"checking": "Checking…",
"will_start_named": "Once assigned, {{name}} will start working on this issue right away.",
"will_start_named_squad": "Once assigned, {{name}}'s leader will review it and start assigning the work.",
"will_start": "This will start work on {{count}} issues right away.",
"will_start_squad": "This hands {{count}} issues to the squad's leader to review and assign.",
"nothing_assign": "Assigned — won't start working while in Backlog.",
"note_label": "Handoff note (optional)",
"note_placeholder": "Tell them what matters — scope, focus, or what to avoid…",
"note_unsupported": "Their runtime is too old to receive this handoff note; it may not be read.",
"start": "Start",
"dont_start": "Don't start yet",
"apply": "Apply",
"toast_failed": "Action failed",
"create_will_start": "{{name}} will start working right after creation.",
"create_will_start_squad": "{{name}}'s leader will review it and start assigning work right after creation.",
"create_parked": "Assigned — won't start working in Backlog."
},
"create_squad": {
"title": "Create Squad",
"description": "Create a collaborative squad with a leader agent and optional additional members.",
"name_label": "Name",
"name_placeholder": "e.g. Frontend Team",
"description_label": "Description",
"description_placeholder": "Describe what this squad is responsible for...",
"leader_label": "Leader Agent",
"leader_hint": "The leader receives all tasks assigned to this squad and coordinates the team.",
"leader_placeholder": "Select a leader agent",
"members_label": "Additional Members",
"members_optional": "(optional)",
"members_hint": "Members the leader can delegate sub-tasks to. Can be added later.",
"members_placeholder": "Add agents or workspace members",
"members_selected_count_one": "{{count}} selected",
"members_selected_count_other": "{{count}} selected",
"members_more_count": "+{{count}}",
"members_remove_aria": "Remove {{name}}",
"picker_search_placeholder": "Search agents and members...",
"group_my_agents": "My Agents",
"group_workspace_agents": "Workspace Agents",
"group_members": "Members",
"no_agents": "No active agents available. Create an agent first.",
"no_results": "No results",
"cancel": "Cancel",
"submit": "Create Squad",
"submitting": "Creating...",
"toast_created": "Squad created",
"toast_failed": "Failed to create squad",
"toast_member_add_failed": "Failed to add {{name}}: {{error}}"
},
"create_project": {
"title": "New Project",
"title_breadcrumb": "New project",
"icon_tooltip": "Choose icon",
"title_placeholder": "Project title",
"description_placeholder": "Add description...",
"description_hint": "Shared with agents as context for every task in this project.",
"lead": "Lead",
"no_lead": "No lead",
"lead_placeholder": "Assign lead...",
"members_group": "Members",
"agents_group": "Agents",
"no_results": "No results",
"submit": "Create Project",
"submitting": "Creating...",
"toast_created": "Project created",
"toast_failed": "Failed to create project",
"repos_pill": "Repos",
"repos_pill_count_one": "{{count}} repo",
"repos_pill_count_other": "{{count}} repos",
"repos_heading": "Attach GitHub repos to this project",
"repos_empty": "No workspace-level repos yet. Paste a URL below to attach one ad-hoc.",
"repos_search_placeholder": "Search repositories...",
"repos_search_empty": "No repositories match your search.",
"repos_url_placeholder": "https://github.com/owner/repo or git@github.com:owner/repo.git",
"repos_add": "Add",
"repos_selected": "Selected",
"source_pill_local": "Local directory",
"source_tab_repos": "GitHub repos",
"source_tab_local": "Local directory",
"local_heading": "Use a local working directory on this machine",
"local_on_device": "Bound to {{device}}",
"local_this_machine": "this machine",
"local_daemon_offline": "Daemon offline — start it to bind a local directory.",
"local_pick": "Choose directory…",
"local_picking": "Opening picker…",
"local_change": "Change directory…",
"local_clear": "Clear",
"local_pick_failed": "Could not open the directory picker.",
"local_invalid_dir": "This directory can't be used. Pick another.",
"local_hint": "Agents on other machines won't see this path — they'll fail to start. Use repos for shared work."
},
"create_issue": {
"sr_manual": "New Issue",
"sr_agent": "Quick create issue",
"manual_breadcrumb": "Create manually",
"agent_breadcrumb": "Create with agent",
"title_placeholder": "Issue title",
"description_placeholder": "Add description...",
"more_options_aria": "More options",
"title_required": "Enter a title to create",
"submit": "Create Issue",
"submitting": "Creating...",
"toast_created": "Issue created",
"view_issue": "View issue",
"toast_failed": "Failed to create issue",
"toast_duplicate_title": "Duplicate issue",
"toast_duplicate_view": "View existing issue",
"toast_link_subissues_all_failed": "Failed to link sub-issues",
"toast_link_subissues_partial": "Failed to link {{failed}} of {{total}} sub-issues",
"toast_link_labels_failed": "Failed to attach labels",
"switch_to_agent": "Switch to Agent",
"switch_to_agent_tooltip": "Switch to create with agent — describe in one line and let the agent file it",
"switch_to_manual": "Switch to Manual",
"switch_to_manual_tooltip": "Switch to manual create — fill the fields yourself",
"create_another": "Create another",
"remove_parent_aria": "Remove parent",
"remove_subissue_aria": "Remove sub-issue {{identifier}}",
"subissue_of": "Sub-issue of {{identifier}}",
"subissue_chip": "Sub-issue: {{identifier}}",
"parent_with_id": "Parent: {{identifier}}",
"set_due_date": "Set due date...",
"set_start_date": "Set start date...",
"set_parent": "Set parent issue...",
"add_subissue": "Add sub-issue...",
"remove_parent": "Remove parent",
"set_parent_picker": {
"title": "Set parent issue",
"description": "Search for an issue to set as the parent of the new issue"
},
"add_subissue_picker": {
"title": "Add sub-issue",
"description": "Search for an issue to add as a sub-issue of the new issue"
},
"agent": {
"created_by": "Created by",
"select_agent_aria": "Select agent",
"pick_an_agent": "Pick an agent…",
"no_agents": "No agents or squads available.",
"search_placeholder": "Search agents and squads…",
"agents_group": "Agents",
"squads_group": "Squads",
"version_missing": "This agent's daemon doesn't report a CLI version. Create with agent needs multica CLI ≥ {{min}}. Upgrade the daemon and reconnect, or switch to manual create.",
"version_below": "This agent's daemon CLI is {{current}} — Create with agent needs ≥ {{min}}. Upgrade the daemon, or switch to manual create.",
"prompt_placeholder": "Tell the agent what to do, e.g. \"let Bohan fix the inbox loading slowness in the Web project\"",
"submit": "Create",
"sending": "Sending…",
"uploading": "Uploading…",
"sent_label": "Sent",
"sent_count": "{{count}} sent",
"version_blocked_tooltip": "Daemon CLI must be ≥ {{min}}",
"toast_sent": "Sent to agent — you'll get an inbox notification when it's done",
"error_agent_unavailable_fallback": "Agent is unavailable. Pick another agent.",
"error_daemon_version": "This agent's daemon CLI ({{current}}) is below the required {{min}}. Upgrade the daemon to use Create with agent.",
"error_unknown": "Failed to submit. Try again.",
"sub_issue_of": "Sub-issue of {{identifier}}"
}
}
}