@dotdrelle/wiki-manager 0.15.41 → 0.15.42

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/src/shell/tui.tsx CHANGED
@@ -381,7 +381,11 @@ function App(props: {
381
381
  input={state.input()}
382
382
  busy={state.busy()}
383
383
  chatMode={state.chatMode()}
384
- chatFocused={!state.activeEditor()}
384
+ // The composer must lose focus for EVERY modal, not just the file
385
+ // editor. While the setup wizard was open the input stayed focused
386
+ // underneath it, so answering a wizard question also typed into the
387
+ // chat box at the bottom of the window.
388
+ chatFocused={!state.activeEditor() && screen() === 'main'}
385
389
  setInput={state.setInput}
386
390
  submit={submit}
387
391
  conversationRows={conversationRows()}
@@ -433,17 +437,33 @@ function App(props: {
433
437
  onSave={state.saveEditor}
434
438
  onCancel={state.closeEditor}
435
439
  />
440
+ {/*
441
+ Opaque backdrop, same treatment WizardApp gives the standalone
442
+ wizard. Without it the dialog floated over a live two-pane layout:
443
+ the panes showed through around its border and the whole thing read
444
+ as one garbled screen rather than as a modal.
445
+ */}
436
446
  {screen() === 'setup' ? (
437
- <SetupWizard
438
- mode="setup"
439
- session={state.session}
447
+ <box
448
+ position="absolute"
449
+ left={0}
450
+ top={0}
440
451
  width={dimensions().width}
441
452
  height={dimensions().height}
442
- initialRoute="workspace-name"
443
- closeOnDone
444
- onComplete={closeSetup}
445
- onClose={closeSetup}
446
- />
453
+ zIndex={39}
454
+ backgroundColor="#0B0D12"
455
+ >
456
+ <SetupWizard
457
+ mode="setup"
458
+ session={state.session}
459
+ width={dimensions().width}
460
+ height={dimensions().height}
461
+ initialRoute="workspace-name"
462
+ closeOnDone
463
+ onComplete={closeSetup}
464
+ onClose={closeSetup}
465
+ />
466
+ </box>
447
467
  ) : null}
448
468
  </box>
449
469
  }
package/wiki-workspace CHANGED
@@ -70,13 +70,19 @@ parse_global_options() {
70
70
  export REQUESTS_CA_BUNDLE="$CACERT_PATH"
71
71
  export CURL_CA_BUNDLE="$CACERT_PATH"
72
72
  fi
73
- set -- "${parsed[@]}"
73
+ # `${arr[@]}` on an EMPTY array is an unbound-variable error under `set -u`
74
+ # in bash <= 4.3 — which includes the /bin/bash 3.2 macOS still ships. Every
75
+ # optional array in this script therefore goes through the `${arr[@]+…}`
76
+ # guard (see compose_env_args, override_args, only_services…); these two were
77
+ # missed, so any invocation without a global option died on this line before
78
+ # reaching its subcommand.
79
+ set -- ${parsed[@]+"${parsed[@]}"}
74
80
  PARSED_ARGS=("$@")
75
81
  }
76
82
 
77
83
  PARSED_ARGS=()
78
84
  parse_global_options "$@"
79
- set -- "${PARSED_ARGS[@]}"
85
+ set -- ${PARSED_ARGS[@]+"${PARSED_ARGS[@]}"}
80
86
 
81
87
  usage() {
82
88
  cat <<'EOF'
@@ -338,7 +344,7 @@ agents_compose() {
338
344
  logs)
339
345
  local log_args=()
340
346
  read_lines_into_array log_args logs_args "$@"
341
- _agents_dc logs "${log_args[@]}"
347
+ _agents_dc logs ${log_args[@]+"${log_args[@]}"}
342
348
  ;;
343
349
  pull)
344
350
  [[ $# -eq 0 ]] || die "agents pull does not take arguments"
@@ -1452,7 +1458,7 @@ main() {
1452
1458
  logs)
1453
1459
  local log_args=()
1454
1460
  read_lines_into_array log_args logs_args "$@"
1455
- compose_for_workspace "$workspace" logs "${log_args[@]}" serve mcp-http production-mcp
1461
+ compose_for_workspace "$workspace" logs ${log_args[@]+"${log_args[@]}"} serve mcp-http production-mcp
1456
1462
  ;;
1457
1463
  serve)
1458
1464
  local open_browser=0