mixdog 0.9.5 → 0.9.7

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/README.md CHANGED
@@ -32,14 +32,14 @@ repo-focused tools for reading, editing, testing, and reviewing code.
32
32
  ## Install
33
33
 
34
34
  ```bash
35
- npm install
35
+ npm install -g mixdog
36
+ mixdog --help
36
37
  ```
37
38
 
38
- To install the `mixdog` command globally from this checkout:
39
+ For local development from this checkout:
39
40
 
40
41
  ```bash
41
- npm install -g .
42
- mixdog --help
42
+ npm install
43
43
  ```
44
44
 
45
45
  ## Run
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mixdog",
3
- "version": "0.9.5",
3
+ "version": "0.9.7",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Standalone mixdog coding-agent CLI/TUI workspace.",
@@ -1060,7 +1060,7 @@ export async function sendViaWebSocket({
1060
1060
  });
1061
1061
  const chainFallback = mode !== 'delta'
1062
1062
  && deltaReason
1063
- && !['no_anchor', 'full_forced'].includes(deltaReason);
1063
+ && !['no_anchor', 'full_forced', 'full_default'].includes(deltaReason);
1064
1064
  if (chainFallback || (mode === 'delta' && deltaReason)) {
1065
1065
  appendAgentTrace({
1066
1066
  sessionId: poolKey,
package/src/tui/App.jsx CHANGED
@@ -2390,6 +2390,11 @@ export function App({ store, initialStatusLine = '', forceOnboarding = false })
2390
2390
  const showWelcomeBanner = (state.items.length === 0 && !hasFloatingPanel) || projectSelectionActive || onboardingActive;
2391
2391
  const WELCOME_ROWS = showWelcomeBanner ? 11 : 0;
2392
2392
  const liveSpinner = state.spinner?.active ? state.spinner : (state.commandStatus?.active ? state.commandStatus : null);
2393
+ // Command-status spinner (auto-clear/compact/etc.) is NOT part of the
2394
+ // spinner → TurnDone handoff: it typically starts while the transcript tail
2395
+ // is already a done row (idle session), so the done-at-tail suppression
2396
+ // below must never hide it — that read as a frozen UI during auto-clear.
2397
+ const liveSpinnerIsCommand = !state.spinner?.active && !!state.commandStatus?.active;
2393
2398
  const latestToast = state.toasts?.length ? state.toasts[state.toasts.length - 1] : null;
2394
2399
  const toastHint = latestToast ? latestToast.text : '';
2395
2400
  const progressHint = state.progressHint || null;
@@ -19966,6 +19966,7 @@ function App({ store, initialStatusLine = "", forceOnboarding = false }) {
19966
19966
  const showWelcomeBanner = state.items.length === 0 && !hasFloatingPanel || projectSelectionActive || onboardingActive;
19967
19967
  const WELCOME_ROWS = showWelcomeBanner ? 11 : 0;
19968
19968
  const liveSpinner = state.spinner?.active ? state.spinner : state.commandStatus?.active ? state.commandStatus : null;
19969
+ const liveSpinnerIsCommand = !state.spinner?.active && !!state.commandStatus?.active;
19969
19970
  const latestToast = state.toasts?.length ? state.toasts[state.toasts.length - 1] : null;
19970
19971
  const toastHint = latestToast ? latestToast.text : "";
19971
19972
  const progressHint = state.progressHint || null;