opencode-swarm 7.73.3 → 7.74.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli/index.js CHANGED
@@ -52,7 +52,7 @@ var package_default;
52
52
  var init_package = __esm(() => {
53
53
  package_default = {
54
54
  name: "opencode-swarm",
55
- version: "7.73.3",
55
+ version: "7.74.0",
56
56
  description: "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
57
57
  main: "dist/index.js",
58
58
  types: "dist/index.d.ts",
@@ -14700,7 +14700,7 @@ var init_plan_schema = __esm(() => {
14700
14700
  init_zod();
14701
14701
  ExecutionProfileSchema = exports_external.object({
14702
14702
  parallelization_enabled: exports_external.boolean().default(false),
14703
- max_concurrent_tasks: exports_external.number().int().min(1).max(64).default(1),
14703
+ max_concurrent_tasks: exports_external.number().int().min(1).max(64).default(10),
14704
14704
  council_parallel: exports_external.boolean().default(true),
14705
14705
  locked: exports_external.boolean().default(false),
14706
14706
  auto_proceed: exports_external.boolean().default(false)
@@ -45190,7 +45190,7 @@ function buildStatusMessage(session, plan) {
45190
45190
  const overrideActive = session.maxConcurrencyOverride !== undefined;
45191
45191
  const configuredOverride = session.maxConcurrencyOverride ?? "absent";
45192
45192
  const hasPlan = plan !== null && plan !== undefined;
45193
- const planBaseline = hasPlan ? plan.execution_profile?.max_concurrent_tasks ?? 1 : 1;
45193
+ const planBaseline = hasPlan ? plan.execution_profile?.max_concurrent_tasks ?? 10 : 10;
45194
45194
  const parallelizationEnabled = hasPlan ? plan.execution_profile?.parallelization_enabled ?? false : false;
45195
45195
  const operationalEffective = !parallelizationEnabled ? 1 : session.maxConcurrencyOverride ?? planBaseline;
45196
45196
  let description;
@@ -45219,8 +45219,8 @@ var init_concurrency = __esm(() => {
45219
45219
  init_state();
45220
45220
  PRESETS = {
45221
45221
  min: 1,
45222
- medium: 3,
45223
- max: 8
45222
+ medium: 8,
45223
+ max: 16
45224
45224
  };
45225
45225
  });
45226
45226
 
package/dist/index.js CHANGED
@@ -69,7 +69,7 @@ var package_default;
69
69
  var init_package = __esm(() => {
70
70
  package_default = {
71
71
  name: "opencode-swarm",
72
- version: "7.73.3",
72
+ version: "7.74.0",
73
73
  description: "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
74
74
  main: "dist/index.js",
75
75
  types: "dist/index.d.ts",
@@ -16736,7 +16736,7 @@ var init_plan_schema = __esm(() => {
16736
16736
  init_zod();
16737
16737
  ExecutionProfileSchema = exports_external.object({
16738
16738
  parallelization_enabled: exports_external.boolean().default(false),
16739
- max_concurrent_tasks: exports_external.number().int().min(1).max(64).default(1),
16739
+ max_concurrent_tasks: exports_external.number().int().min(1).max(64).default(10),
16740
16740
  council_parallel: exports_external.boolean().default(true),
16741
16741
  locked: exports_external.boolean().default(false),
16742
16742
  auto_proceed: exports_external.boolean().default(false)
@@ -42662,8 +42662,30 @@ async function buildParallelExecutionGuidance(directory, sessionID, session) {
42662
42662
  }
42663
42663
  const profile = plan.execution_profile;
42664
42664
  const enabled = profile?.parallelization_enabled === true;
42665
- const maxConcurrent = profile?.max_concurrent_tasks ?? 1;
42666
- const effectiveMaxConcurrent = session?.maxConcurrencyOverride ?? maxConcurrent;
42665
+ const maxConcurrent = profile?.max_concurrent_tasks ?? 10;
42666
+ let effectiveMaxConcurrent = session?.maxConcurrencyOverride ?? maxConcurrent;
42667
+ const allTasks = plan.phases.flatMap((phase) => phase.tasks);
42668
+ const blockedTasks = allTasks.filter((task) => {
42669
+ if (task.status !== "blocked")
42670
+ return false;
42671
+ const reason = (task.blocked_reason ?? "").toLowerCase();
42672
+ return reason.includes("fail") || reason.includes("error") || reason.includes("exception");
42673
+ });
42674
+ const totalTasks = allTasks.length;
42675
+ let backoffTriggered = false;
42676
+ if (totalTasks > 0 && blockedTasks.length > 0) {
42677
+ const failureRate = blockedTasks.length / totalTasks;
42678
+ const FAILURE_RATE_THRESHOLD = 0.2;
42679
+ const BACKOFF_MULTIPLIER = 0.5;
42680
+ if (failureRate > FAILURE_RATE_THRESHOLD && blockedTasks.length >= 2) {
42681
+ const newConcurrency = Math.max(1, Math.floor(effectiveMaxConcurrent * BACKOFF_MULTIPLIER));
42682
+ if (newConcurrency < effectiveMaxConcurrent) {
42683
+ effectiveMaxConcurrent = newConcurrency;
42684
+ session.maxConcurrencyOverride = newConcurrency;
42685
+ backoffTriggered = true;
42686
+ }
42687
+ }
42688
+ }
42667
42689
  if (!enabled || effectiveMaxConcurrent <= 1)
42668
42690
  return null;
42669
42691
  if (hasActiveLeanTurbo(sessionID)) {
@@ -42675,7 +42697,6 @@ async function buildParallelExecutionGuidance(directory, sessionID, session) {
42675
42697
  const tasks = currentPhase.tasks;
42676
42698
  if (tasks.length === 0)
42677
42699
  return null;
42678
- const allTasks = plan.phases.flatMap((phase) => phase.tasks);
42679
42700
  const completed = new Set;
42680
42701
  for (const task of allTasks) {
42681
42702
  const taskId = task.id;
@@ -42709,7 +42730,8 @@ async function buildParallelExecutionGuidance(directory, sessionID, session) {
42709
42730
  if (eligible.length === 0) {
42710
42731
  return `[PARALLEL EXECUTION PROFILE] parallelization_enabled=true max_concurrent_tasks=${effectiveMaxConcurrent}; no dependency-ready pending tasks are available for a new coder slot. Continue the current task/gate.`;
42711
42732
  }
42712
- return `[PARALLEL EXECUTION PROFILE] parallelization_enabled=true max_concurrent_tasks=${effectiveMaxConcurrent}; ${occupied.size} slot(s) occupied. Eligible now: ${eligible.join(", ")}. [NEXT] dispatch up to ${availableSlots} eligible coder task(s) before waiting; preserve ONE task per coder call and call declare_scope for each task.`;
42733
+ const failureWarning = backoffTriggered ? ` (${blockedTasks.length} blocked task(s) detected concurrency auto-reduced due to failures)` : "";
42734
+ return `[PARALLEL EXECUTION PROFILE] parallelization_enabled=true max_concurrent_tasks=${effectiveMaxConcurrent}; ${occupied.size} slot(s) occupied. Eligible now: ${eligible.join(", ")}. [NEXT] dispatch up to ${availableSlots} eligible coder task(s) before waiting; preserve ONE task per coder call and call declare_scope for each task.${failureWarning}`;
42713
42735
  }
42714
42736
  function isParallelGuidancePhaseComplete(phase) {
42715
42737
  return phase.status === "complete" || phase.status === "completed" || phase.status === "closed";
@@ -42873,7 +42895,7 @@ function createDelegationGateHook(config2, directory) {
42873
42895
  return;
42874
42896
  const profile = plan.execution_profile;
42875
42897
  const parallelEnabled = profile?.parallelization_enabled === true;
42876
- const maxConcurrent = profile?.max_concurrent_tasks ?? 1;
42898
+ const maxConcurrent = profile?.max_concurrent_tasks ?? 10;
42877
42899
  const effectiveMaxConcurrent = session.maxConcurrencyOverride ?? maxConcurrent;
42878
42900
  if (!parallelEnabled || effectiveMaxConcurrent <= 1)
42879
42901
  return;
@@ -68784,7 +68806,7 @@ function buildStatusMessage(session, plan) {
68784
68806
  const overrideActive = session.maxConcurrencyOverride !== undefined;
68785
68807
  const configuredOverride = session.maxConcurrencyOverride ?? "absent";
68786
68808
  const hasPlan = plan !== null && plan !== undefined;
68787
- const planBaseline = hasPlan ? plan.execution_profile?.max_concurrent_tasks ?? 1 : 1;
68809
+ const planBaseline = hasPlan ? plan.execution_profile?.max_concurrent_tasks ?? 10 : 10;
68788
68810
  const parallelizationEnabled = hasPlan ? plan.execution_profile?.parallelization_enabled ?? false : false;
68789
68811
  const operationalEffective = !parallelizationEnabled ? 1 : session.maxConcurrencyOverride ?? planBaseline;
68790
68812
  let description;
@@ -68813,8 +68835,8 @@ var init_concurrency = __esm(() => {
68813
68835
  init_state();
68814
68836
  PRESETS = {
68815
68837
  min: 1,
68816
- medium: 3,
68817
- max: 8
68838
+ medium: 8,
68839
+ max: 16
68818
68840
  };
68819
68841
  });
68820
68842
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-swarm",
3
- "version": "7.73.3",
3
+ "version": "7.74.0",
4
4
  "description": "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",