Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Fix inactive workspace scan loading copy#2577

Merged
brennanb2025 merged 3 commits into
mainfrom
brennankbenson/review-inactive-workspaces
May 22, 2026
Merged

Fix inactive workspace scan loading copy#2577
brennanb2025 merged 3 commits into
mainfrom
brennankbenson/review-inactive-workspaces

Conversation

@brennanb2025
Copy link
Copy Markdown
Contributor

@brennanb2025 brennanb2025 commented May 22, 2026

Summary

  • Replace the rotating inactive-workspace scan loading messages with one static, honest status.
  • Remove the timer-driven loading-step state so the dialog no longer cycles through fake phase copy like "Protecting active work."
  • Inline the single loading message in the JSX; there is no remaining loading-status constant or step list.
  • Add an Orca Styleguide rule that UI copy must not overclaim unsupported actions, decisions, observations, or outcomes.

Design

A design doc was created and reviewed during the Brennan pipeline, then removed from the final PR at reviewer request so this PR contains only the product code and Styleguide rule changes.

Design-review outcome: auto-design-review-fix completed two rounds. Phase 0.5 found no P0/P1 direction issues. The review corrected the wording so it preserves execution order: main scans worktrees/git state first, then renderer-side tab, terminal, live-agent, and remote availability signals are combined before suggestions render. No unresolved actionable design findings remain.

Implementation

Implemented in src/renderer/src/components/workspace-cleanup/WorkspaceCleanupDialog.tsx and documented in docs/STYLEGUIDE.md.

Changes:

  • Replaced SCAN_LOADING_STEPS with one inline static loading message.
  • Removed loadingStepIndex, the setInterval effect, and the derived loadingStep value.
  • Preserved the existing loading banner layout, spinner, tokens, and typography.
  • Used the reviewed copy:
    • Checking workspace safety
    • Scanning worktrees and git state, then combining open tab, terminal, live agent, and remote availability signals before suggesting deletions.
  • Added a Styleguide rule: never imply the app has taken an action, made a decision, or observed a fact unless real state or result data supports it.

Implementation deviations from the reviewed design: none.

Completeness Verification

Read-only completeness verification confirmed:

  • Static title/detail are implemented and rendered in the initial loading banner.
  • Existing banner layout/spinner styling is preserved.
  • Initial-only behavior remains controlled by loading && !scan.
  • No progress contract was added to WorkspaceCleanupScanResult.
  • No remaining SCAN_LOADING_STEPS, loadingStepIndex, Protecting active work, or interval timer remains in the implementation.

Code Review

Two independent review-code subagents reviewed the current branch diff in parallel.

Round 1 result:

  • Reviewer 1: no actionable findings.
  • Reviewer 2: no actionable findings.

Residual non-blocking gap noted by reviewers: no dedicated automated renderer/component test asserts that the loading banner remains static. This is accepted for this copy/state-only change because Brennan validation exercised the actual UI and the timer code was removed.

Brennan Test Changes

brennan-test-changes verdict: land.

Evidence:

  • Launched Electron from this exact worktree and verified identity:
    • branch: brennankbenson/review-inactive-workspaces
    • root: /Users/thebr/orca/workspaces/orca/review-inactive-workspaces
  • Used demo-project for product validation.
  • Opened Resource Manager and clicked Review inactive workspaces.
  • Observed the initial loading banner with the new static title/detail.
  • The real scan completed before the previous 2.6s rotation interval, so validation also held the dialog in loading state and sampled at 3s and 6s.
  • At both samples, the new copy stayed present and old strings Protecting active work, Finding inactive workspaces, and Checking git safety were absent.
  • Repeated the stability check in an isolated Electron profile with only demo-project registered.
  • Renderer console had 0 errors. One isolated-profile React Grab outdated warning was unrelated.
  • Main logs showed no cleanup-specific failures.
  • Playwright sessions, Electron processes, screenshots, and temporary isolated profile were cleaned up.

Checks

Passed:

  • pnpm exec oxlint src/renderer/src/components/workspace-cleanup/WorkspaceCleanupDialog.tsx
  • pnpm exec oxfmt --check src/renderer/src/components/workspace-cleanup/WorkspaceCleanupDialog.tsx
  • pnpm run typecheck:web
  • pnpm run typecheck
  • pnpm run lint
  • git diff --check
  • pnpm vitest run --config config/vitest.config.ts src/renderer/src/store/slices/workspace-cleanup.test.ts src/shared/workspace-cleanup.test.ts src/main/ipc/workspace-cleanup.test.ts (3 files, 30 tests)

SSH, Cross-Platform, and Risk

This change is renderer copy/state only. It does not change SSH providers, IPC contracts, git provider behavior, deletion behavior, path handling, or keyboard shortcuts.

Accepted residual risk: multi-interval UI stability was verified with a controlled loading-state hold because the real scan completed too quickly to naturally remain visible past the old rotation interval.

@brennanb2025 brennanb2025 merged commit 12720cb into main May 22, 2026
1 check passed
@brennanb2025 brennanb2025 deleted the brennankbenson/review-inactive-workspaces branch May 22, 2026 02:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant