Skip to content

fix dependency installation issue#17

Merged
newbe36524 merged 1 commit intomainfrom
fix
Feb 13, 2026
Merged

fix dependency installation issue#17
newbe36524 merged 1 commit intomainfrom
fix

Conversation

@newbe36524
Copy link
Contributor

@newbe36524 newbe36524 commented Feb 13, 2026

Summary by CodeRabbit

  • New Features

    • Real-time script output logging during dependency checks and installations.
    • Enhanced dependency status visualization with installation hints and detailed error information.
  • UI/UX Improvements

    • Simplified dependency installation workflow by removing redundant dialogs.
    • Streamlined onboarding experience with integrated inline dependency management.
    • Clearer dependency status indicators (checking, installed, version mismatch states).

@coderabbitai
Copy link

coderabbitai bot commented Feb 13, 2026

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

The changes introduce a manifest-driven, script-based dependency and service management system (format v0.1.0-beta.4), replacing inline commands with entryPoint-defined scripts (check, install, start). Results are standardized via ResultSessionFile and parsed from result.json. Redundant UI dialogs are removed, Redux state simplified, and service startup refactored to extract URL/port from script outputs.

Changes

Cohort / File(s) Summary
Design & Specification Documentation
openspec/changes/archive/2026-02-13-manifest-dependency-format-adaptation/*, openspec/changes/archive/2026-02-13-onboarding-dependency-check-results-display/*, openspec/changes/archive/2026-02-13-redundant-dependency-dialog-removal/*
Comprehensive design docs, proposals, specifications, and task checklists for manifest format v0.1.0-beta.4 adaptation, onboarding dependency display, and redundant dialog removal. Outlines architecture, migration plan, and cross-platform script handling.
Manifest Reader & Type Definitions
src/main/manifest-reader.ts, src/types/onboarding.ts
Introduces new interfaces (EntryPoint, ResultSessionFile, ParsedResult, InstallResult, StartResult); updates Manifest with entryPoint field; removes region/platform/install command parsing logic; adds parseEntryPoint and resolveScriptPath utilities. Extends DependencyItem with 'checking' status and installHint; adds ScriptOutput interface for real-time logs.
Dependency Manager Refactor
src/main/dependency-manager.ts
Implements entryPoint-based script execution (executeEntryPointScript) replacing inline commands; adds result.json parsing (readResultFile, normalizeResultFile, parseResultSession); refactors checkFromManifest and checkSingleDependency to use manifest entryPoint scripts; updates installSingleDependency to return InstallResult with parsed results and installHint on failure; adds working directory management.
Main Process Integration
src/main/main.ts, src/main/onboarding-manager.ts
Wires entryPoint support into web service startup and dependency installation flows; adds manifest reading and entryPoint parsing before dependency checks; introduces new IPC route dependency:get-list for quick dependency list fetching; orchestrates working directory setup and entryPoint propagation across dependency checks/installations and service startup.
Web Service Manager & Tray
src/main/web-service-manager.ts, src/main/tray.ts
Converts start() and restart() to return Promise with result.json parsing and URL/port extraction; adds EntryPoint support via setEntryPoint; implements executeStartScript with result file handling and timeouts. Tray simplifies startup flow to IPC-only delegation.
Version Manager
src/main/version-manager.ts
Adds getDependencyListFromManifest(versionId) for quick manifest-based dependency retrieval; enhances checkDependencies to set working directory and manifest on DependencyManager; introduces mapDependencyType helper for type translation.
Preload API
src/preload/index.ts
Exposes getDependencyList(versionId) IPC method and onScriptOutput(callback) listener for real-time script output propagation during dependency operations.
Removed Dialog Components
src/renderer/components/DependencyInstallConfirmDialog.tsx, src/renderer/components/DependencyInstallProgressDialog.tsx, src/renderer/components/DependencyInstallWarningBanner.tsx
Deletes three redundant dialog components and their Redux integration; consolidates dependency installation into onboarding flow and inline UI.
Dependency Management UI Refactor
src/renderer/components/DependencyManagementCardUnified.tsx, src/renderer/components/VersionManagementPage.tsx
Simplifies installation state from granular tracking to single isInstalling boolean; replaces installSingleDependency with installFromManifest for bulk operations; removes per-dependency install buttons in favor of "install all missing" action; adds dependency refresh after installation completion.
Onboarding UI Updates
src/renderer/components/onboarding/OnboardingWizard.tsx, src/renderer/components/onboarding/steps/DependencyInstaller.tsx, src/renderer/components/onboarding/steps/ScriptOutputConsole.tsx
Adjusts OnboardingWizard layout for improved scrolling; enhances DependencyInstaller with real-time script output listening, dependency checking state display, and one-click install flow. Introduces new ScriptOutputConsole component for displaying timestamped script logs with colored text.
Redux State Simplification
src/renderer/store/slices/dependencySlice.ts, src/renderer/store/slices/onboardingSlice.ts, src/renderer/store/thunks/dependencyThunks.ts
Removes installConfirm and installCommandProgress states from dependencySlice; eliminates related actions (showInstallConfirm, hideInstallConfirm, etc.) and selectors. Adds scriptOutputLogs state to onboardingSlice with addScriptOutput/clearScriptOutput actions. Refactors installFromManifest thunk to accept parameter object and removes prior confirm UI flow; simplifies installSingleDependency to direct IPC call without progress dialogs.
Internationalization
src/renderer/i18n/locales/en-US/*, src/renderer/i18n/locales/zh-CN/*
Removes depInstallConfirm and depInstallWarningBanner keys from components.json; adds installButton key to onboarding.json; adds versionManagement progress/install UI keys (progressBar, progressText, installButton, installing, collapseDependencies, reinstallPackage) to pages.json. Updates zh-CN counterparts identically.
App Entry Point
src/renderer/App.tsx
Removes DependencyInstallConfirmDialog component import and usage, simplifying global dialog orchestration.

Sequence Diagram(s)

sequenceDiagram
    actor User
    participant Renderer as Renderer Process
    participant Main as Main Process
    participant DM as Dependency Manager
    participant Script as Entry Point Script
    participant FS as File System

    User->>Renderer: Trigger Dependency Check
    Renderer->>Main: IPC: Check Dependencies
    Main->>DM: checkFromManifest(deps, entryPoint)
    DM->>Script: Execute entryPoint.check
    Script->>FS: Write result.json
    Script-->>DM: Script completes
    DM->>FS: Read result.json
    FS-->>DM: ResultSessionFile
    DM->>DM: Parse Results
    DM-->>Main: DependencyCheckResult[]
    Main-->>Renderer: IPC: Update UI with statuses
    Renderer->>User: Display dependency status
Loading
sequenceDiagram
    actor User
    participant Renderer as Renderer Process
    participant Main as Main Process
    participant DM as Dependency Manager
    participant Script as Entry Point Script
    participant FS as File System

    User->>Renderer: Install Missing Dependencies
    Renderer->>Main: IPC: installFromManifest(versionId)
    Main->>DM: setWorkingDirectory(path)
    Main->>DM: installSingleDependency(dep, entryPoint)
    DM->>Script: Execute entryPoint.install
    Script->>FS: Write install-result.json
    Script-->>DM: Script completes
    DM->>FS: Read install-result.json
    FS-->>DM: ResultSessionFile
    DM->>DM: Parse Results<br/>(success, version, installHint)
    DM-->>Main: InstallResult
    Main-->>Renderer: IPC: Installation complete
    Renderer->>User: Show success/failure + installHint
Loading
sequenceDiagram
    actor User
    participant Renderer as Renderer Process
    participant Main as Main Process
    participant WSM as Web Service Manager
    participant Script as Entry Point Script
    participant FS as File System
    participant Service as Web Service

    User->>Renderer: Start Service
    Renderer->>Main: IPC: Start Service
    Main->>WSM: setEntryPoint(entryPoint)
    Main->>WSM: start()
    WSM->>Script: Execute entryPoint.start
    Script->>Service: Launch service
    Script->>FS: Write result.json<br/>(url, port, etc.)
    Script-->>WSM: Script completes
    WSM->>FS: Read result.json
    FS-->>WSM: ResultSessionFile
    WSM->>WSM: Parse URL/port
    WSM-->>Main: StartResult<br/>(success, url, port)
    Main-->>Renderer: IPC: Service started
    Renderer->>User: Display URL and ready status
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

Possibly related PRs

  • onboarding support #12: Both PRs modify onboarding flow and main/onboarding-manager.ts, wiring dependency checks/installs and web-service startup with manifest entryPoint scripts and result.json handling patterns.
  • mvp version #3: Both PRs evolve the same core modules (dependency-manager.ts, manifest-reader.ts, web-service-manager.ts) from basic command execution to manifest-driven entryPoint/result.json workflow architecture.

Poem

🐰 A rabbit's tail of scripts and scripts,
EntryPoints where the journey flips,
From commands crude to results so neat,
Result.json makes the manifest complete!
Dialogs gone, the UI's light,
Dependencies checked—everything's right!

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix

Comment @coderabbitai help to get the list of available commands and usage tips.

@newbe36524 newbe36524 merged commit abd3948 into main Feb 13, 2026
3 of 4 checks passed
@newbe36524 newbe36524 deleted the fix branch February 13, 2026 12:16
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