okstra 0.32.0 → 0.32.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "okstra",
3
- "version": "0.32.0",
3
+ "version": "0.32.1",
4
4
  "description": "Multi-agent cross-verification orchestrator runtime + Claude Code skills.",
5
5
  "license": "MIT",
6
6
  "author": "devonshin",
@@ -1,5 +1,5 @@
1
1
  {
2
- "package": "0.32.0",
3
- "builtAt": "2026-05-19T14:10:06.568Z",
2
+ "package": "0.32.1",
3
+ "builtAt": "2026-05-19T14:15:13.766Z",
4
4
  "repoRoot": "/home/runner/work/okstra/okstra"
5
5
  }
@@ -1314,11 +1314,15 @@ STEPS: list[Step] = [
1314
1314
  and s.use_defaults is None),
1315
1315
  build=_build_defaults_or_custom, submit=_submit_defaults_or_custom,
1316
1316
  owns=("use_defaults",)),
1317
- # Customize branch workers override only when the profile actually
1318
- # has analyser-candidate workers (required ∪ optional, minus report-writer).
1317
+ # Worker roster is ALWAYS prompted (independent of the defaults /
1318
+ # customize branch) when the profile has analyser-candidate workers
1319
+ # (required ∪ optional, minus report-writer). Users repeatedly hit
1320
+ # the failure mode where the lead silently picked "Use defaults"
1321
+ # and the worker prompt never appeared — defaults should govern
1322
+ # model choice, not worker selection. `implementation` task-type is
1323
+ # still skipped because it runs lead + executor only.
1319
1324
  Step(S_WORKERS_OVERRIDE,
1320
- applies=lambda s: (s.use_defaults is False
1321
- and s.task_type != "implementation"
1325
+ applies=lambda s: (s.task_type != "implementation"
1322
1326
  and any(
1323
1327
  w != "report-writer"
1324
1328
  for w in (s.profile_workers
@@ -1451,10 +1455,17 @@ def _identity_ready(s: WizardState) -> bool:
1451
1455
  def _ready_for_confirm(s: WizardState) -> bool:
1452
1456
  if s.use_defaults is None:
1453
1457
  return False
1458
+ # Worker roster is required regardless of the defaults / customize
1459
+ # branch. Skipping this check let the lead drop into confirm with no
1460
+ # worker prompt ever shown — the very failure mode this gate exists
1461
+ # to prevent.
1462
+ workers_step = STEP_BY_ID[S_WORKERS_OVERRIDE]
1463
+ if workers_step.applies(s):
1464
+ return False
1454
1465
  if s.use_defaults:
1455
1466
  return True
1456
1467
  # customize: every customize-branch step must be answered or not-applicable.
1457
- custom_ids = [S_WORKERS_OVERRIDE, S_LEAD_MODEL, S_EXECUTOR_MODEL,
1468
+ custom_ids = [S_LEAD_MODEL, S_EXECUTOR_MODEL,
1458
1469
  S_CLAUDE_MODEL, S_CODEX_MODEL, S_GEMINI_MODEL,
1459
1470
  S_REPORT_WRITER_MODEL, S_DIRECTIVE, S_RELATED_TASKS,
1460
1471
  S_CLARIFICATION, S_PR_TEMPLATE, S_PR_TEMPLATE_SCOPE]