此页按相邻 Git tag 区间自动生成。每个版本区块对应一次 `previousTag..tag` 提交采集结果。
版本筛选
可直接选择某个 Tag,仅查看该版本区块。
当前显示 31/31 个版本区块
仓库键
desktop
来源仓库
repos/hagicode-desktop
生成时间
版本区块数
31
v0.1.34
前置 Tag: V0.0.1-dev.3
Tag 时间
提交数
9
Publish (#39)
提交: 1f48407
Co-authored-by: Hagicode <noreply@hagicode.com>
refactor(package-source): remove GitHub release as package source option
提交: eb02a5f
Remove github-release package source type and migrate existing configs to http-index:
Changes:
- delete GitHubReleaseSource implementation and related contracts
- delete GitHubConfigForm and SourceConfigForm UI components
- add migration logic in PackageSourceConfigManager for github-release → http-index
- update PackageSourceSelector to only show local-folder and http-index options
- remove github-specific state from packageSourceSlice and thunks
- add ensureSupportedSourceType guard in version-manager with migration message
- remove fetch-github IPC handler and preload bridge
- add package-source-removal.test.ts for main process migration tests
- add packageSourceRemoval.render.test.ts for renderer cleanup tests
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(distribution): improve hybrid download coordination and caching
提交: a7a9646
Enhance sharing acceleration infrastructure with better download coordination:
Changes:
- improve HybridDownloadCoordinator with enhanced error handling and retry logic
- add cache retention pruning for non-latest artifacts
- improve distribution policy evaluation for cache decisions
- update torrent engine adapter for better connection management
- add comprehensive tests for hybrid download scenarios
- extend sharing acceleration store with new progress tracking types
- update sharing acceleration render tests for new progress states
Co-Authored-By: Hagicode <noreply@hagicode.com>
i18n: update translations for sharing acceleration and source removal
提交: 9da4dc1
Update translation files for sharing acceleration feature and remove github source copy:
Changes:
- remove github-release related translations from components.json (en-US, zh-CN)
- add sharing acceleration settings translations to pages.json
- update onboarding translations for sharing acceleration step
- add log directory quick access translations
Co-Authored-By: Hagicode <noreply@hagicode.com>
docs(sharing-acceleration): add documentation and update type definitions
提交: 9b8e031
Add sharing acceleration documentation and update related types:
Changes:
- add docs/sharing-acceleration.md with feature explanation
- update sharing-acceleration types for improved download progress tracking
- update onboarding types for sharing acceleration step
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(shared): add official server HTTP index URL defaults and normalization
提交: 7078724
Extract the official server HTTP index URL into a shared module to avoid
hardcoded duplication across main and renderer surfaces.
Changes:
- add OFFICIAL_SERVER_HTTP_INDEX_URL constant with current production URL
- add normalizeOfficialServerHttpIndexUrl() to migrate legacy server URLs
- add LEGACY_OFFICIAL_SERVER_HTTP_INDEX_URLS for migration mapping
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(http-index): improve asset validation for hybrid download coordination
提交: 730aadb
Enhance HTTP index source validation to handle edge cases in hybrid
distribution metadata and ensure robust asset resolution.
Changes:
- reject versions with empty assets/files arrays as invalid
- add hasResolvableAssetTarget() guard requiring directUrl or path on assets
- add new test for official-style assets with relative path and no torrent metadata
- add new test for assets that cannot be resolved to a download target
- use platform-aware asset name helpers in existing tests
Co-Authored-By: Hagicode <noreply@hagicode.com>
refactor(official-index): migrate hardcoded URL to shared official server index constant
提交: 5ef348d
Replace all hardcoded 'https://index.hagicode.com/server/index.json' references
with the shared OFFICIAL_SERVER_HTTP_INDEX_URL from the shared module.
Changes:
- update PackageSourceConfigManager to use shared constant and normalization
- update PackageSourceSelector to use shared constant in placeholders and defaults
- update packageSourceSlice initial state to use shared constant
- add didNormalizeStoredSourceChange() private method for cleaner mutation detection
- add test for legacy official URL migration via normalizeOfficialServerHttpIndexUrl
- add renderer test verifying shared constant usage across main and renderer surfaces
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(version-management): track installing version ID for per-version progress display
提交: 96bda50
Add installingVersionId state to webServiceSlice so only the version card
currently being installed shows progress UI, preventing all version cards
from displaying progress when a single install is in flight.
Changes:
- add installingVersionId field and setInstallingVersionId action to webServiceSlice
- export selectInstallingVersionId selector for component use
- update VersionManagementPage to pass version.id to renderInstallTelemetry
- show progress/loading UI only for the matching version.id in version list
- dispatch setInstallingVersionId in installWebServicePackage thunk on start/success/error
- dispatch setInstallingVersionId in confirmInstallAndStop thunk on start/error
- add unit test for installingVersionId lifecycle in webServiceSlice
- add render test verifying per-version progress rendering logic
Co-Authored-By: Hagicode <noreply@hagicode.com>
V0.0.1-dev.3
前置 Tag: V0.0.1-dev.2
Tag 时间
提交数
5
ci(workflows): fix publish-dev version prefix format
提交: 9e1a9e2
Add 'v' prefix to release_version parameter to match version normalization.
Changes:
- add v prefix to release_version in publish-dev workflow
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(nukeBuild): add Azure storage configuration constants and public base URL
提交: 3573733
Add configuration constants for GitHub release repository and public CDN base URL.
Changes:
- add GitHubReleaseRepositoryName and DesktopPublicBaseUrl constants to BuildConfig
- add PublicBaseUrl property to AzureBlobPublishOptions
- add AzurePublicBaseUrl parameter to Build
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(nukeBuild): add version normalization and source archive filtering
提交: 5b2063f
Add utilities for normalizing version prefixes and filtering GitHub-generated source archives.
Changes:
- add NormalizePublishedVersionPrefix method to ensure v prefix
- add ResolvePublicBaseUrl utility method for public URL resolution
- add IsGitHubGeneratedSourceArchive for detecting GitHub source archives
- filter out GitHub-generated .zip and .tar.gz source archives from downloads and index
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(nukeBuild): update Azure adapters to use public base URL and filter source archives
提交: 7df67ba
Update Azure blob adapter and release orchestrator to use resolved public base URL.
Changes:
- update AzureBlobAdapter.BuildIndexResult to use ResolvePublicBaseUrl
- filter GitHub-generated source archives in BuildIndexResult
- update AzureReleasePublishOrchestrator to use ResolvePublicBaseUrl
Co-Authored-By: Hagicode <noreply@hagicode.com>
test(nukeBuild): update tests for version prefix and public base URL
提交: fb36103
Update test expectations to match new version normalization with v prefix and public CDN URL.
Changes:
- update AzureBlobAdapterTests to use v-prefixed versions
- update AzureBlobAdapterTests to use desktop.dl.hagicode.com public URL
- add test data for GitHub-generated source archives filtering
- update ArtifactHybridMetadataBuilderTests for v-prefixed versions and public URL
Co-Authored-By: Hagicode <noreply@hagicode.com>
Add core modules for managing portable toolchain paths, environment injection,
and launch plan resolution for desktop-owned Node.js and npm executables.
Changes:
- add portable-toolchain-paths.ts for resolving toolchain root and executables
- add portable-toolchain-env.ts for PATH injection and environment setup
- add toolchain-launch.ts for command detection and launch plan resolution
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(main): integrate portable toolchain paths into PathManager
提交: 8b7b21e
Add PathManager methods for accessing portable toolchain root, Node.js/npm
executable paths, and related bin directories. Re-export types and utilities
from portable-toolchain-paths module for external consumption.
Changes:
- add getPortableToolchainRoot for resolving toolchain root directory
- add getPortableNodeRoot, getPortableNodeExecutablePath
- add getPortableNpmExecutablePath, getPortableOpenspecExecutablePath
- add getPortableToolchainBinRoot, getPortableNodeBinRoot, getPortableNpmGlobalBinRoot
- add getExpectedPackagedPortableToolchainRoot and getDevelopmentPortableToolchainRoot
- re-export PortableToolchainPathOptions, PortableToolchainPaths types
- re-export buildPortableToolchainPaths, resolvePortableToolchainRoot utilities
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(main): integrate portable toolchain environment into WebServiceManager
提交: 738af80
Integrate portable toolchain environment injection and launch plan resolution
into web service startup flow. Prepend bundled toolchain paths to PATH and
resolve Node.js/npm commands to bundled executables when available.
Changes:
- inject portable toolchain environment before service startup
- resolve toolchain launch plan for node and npm commands
- use shell mode only for Windows command-wrapper executables (.cmd, .bat)
- add startup logging for toolchain root, injected paths, and fallback status
- detect and prefer bundled Node.js/npm executables in executeScript
Co-Authored-By: Hagicode <noreply@hagicode.com>
test(main): add portable toolchain tests
提交: 24775cf
Add comprehensive tests for portable toolchain path resolution, environment
injection, and launch plan functionality.
Changes:
- add path-manager-portable-toolchain.test.ts for path resolution tests
- add tests for injectPortableToolchainEnv with PATH prepending
- add tests for path deduplication and case-insensitive handling on Windows
- add tests for resolveToolchainLaunchPlan with bundled/system fallback
- add tests for shouldUseShellForCommand on Windows
Co-Authored-By: Hagicode <noreply@hagicode.com>
docs(packages): update default package source URL to new domain
提交: 05aa32f
Update the default HagiCode package source URL from the legacy server.dl
subdomain to the new index.hagicode.com domain for improved service
organization and consistency.
Changes:
- update docs/development.md with new URL
- update package-source-config-manager.ts default source
- update PackageSource.tsx placeholder URL
- update i18n locale files (en-US, zh-CN) placeholder
- update packageSourceSlice.ts initial state
Co-Authored-By: Hagicode <noreply@hagicode.com>
chore(main): add publish:local npm script alias
提交: 50e9d79
Add convenience script alias for local publishing workflow.
Changes:
- add publish:local script as alias for build:local:publish
Co-Authored-By: Hagicode <noreply@hagicode.com>
types(clipboard): add IPC channel definitions
提交: a1ea060
Define clipboard IPC channel names for read and write operations.
Co-Authored-By: Hagicode <noreply@hagicode.com>
Add clipboard context menu building and window wiring functionality for desktop windows and webview content. Register IPC handlers for clipboard read/write operations.
Changes:
- add clipboard-context-menu.ts for building edit context menus
- add clipboard-integration.ts for window wiring and IPC handlers
- add clipboard-integration.test.ts for integration tests
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(preload): add clipboard bridge for IPC communication
提交: 541146d
Create a bridge layer that routes clipboard operations through IPC channels, enabling secure clipboard access from the renderer process.
Changes:
- add clipboard-bridge.ts for creating clipboard bridge
- add clipboard-bridge.test.ts for bridge unit tests
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(renderer): add unified clipboard helper with fallback
提交: 50a2b14
Add a clipboard helper that prefers the browser clipboard API and falls back to the preload bridge for secure desktop clipboard access.
Changes:
- add clipboard.ts for unified writeTextToClipboard helper
- add clipboard.test.ts for clipboard helper tests
Co-Authored-By: Hagicode <noreply@hagicode.com>
refactor(main): extract menu template to support Edit menu
提交: 7b7404e
Refactor menu building logic into a dedicated template module and add standard Edit menu with undo, redo, cut, copy, paste, and select-all actions.
Changes:
- add menu-template.ts for declarative menu building
- refactor menu-manager.ts to use buildMenuTemplate
- add Edit menu before Hagicode Web menu
- add edit translation to i18n resources
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(main): wire clipboard integration to desktop windows
提交: 2dd2676
Register clipboard handlers and wire clipboard context menu to main window and child Hagicode windows.
Changes:
- register clipboard IPC handlers in app initialization
- wire clipboard context menu to main window webContents
- wire clipboard context menu to in-app Hagicode windows
- attach clipboard handler to child windows in windowHandlers
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(preload): expose clipboard bridge in electronAPI
提交: 2ca443b
Expose clipboard bridge functions in the preload electronAPI and add event listeners for webview navigation and devtools commands.
Changes:
- add clipboard readText and writeText to electronAPI
- add webview-navigate and webview-devtools event listeners
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(renderer): integrate clipboard helper in components
提交: 1919967
Replace direct navigator.clipboard calls with the unified clipboard helper for consistent behavior across desktop and browser contexts.
Changes:
- WebServiceStatusCard: use writeTextToClipboard for log copying
- ServiceLauncher: use writeTextToClipboard for log copying
- PromptGuidancePanel: use writeTextToClipboard for prompt copying
- WebView: use electronAPI.openExternal for browser links
- WebView: use CustomEvent.detail for navigation commands
Co-Authored-By: Hagicode <noreply@hagicode.com>
Add documentation for desktop clipboard integration including manual verification checklist and architectural details.
Changes:
- add clipboard integration section to development.md
- document Edit menu and context menu behavior
- add manual verification checklist for clipboard testing
Co-Authored-By: Hagicode <noreply@hagicode.com>
Add UI components and store integration for sharing acceleration feature:
Changes:
- add SharingAccelerationStep onboarding component for enabling P2P acceleration
- add SharingAccelerationSettings page component for configuring acceleration options
- update SystemManagementView with log directory quick access buttons
- update SettingsPage to include Sharing Acceleration settings panel
- update OnboardingWizard to include SharingAccelerationStep
- update WelcomeIntro with updated messaging
- update onboardingSlice and webServiceSlice for sharing acceleration state
- add listener middleware setup in store for web service status monitoring
- add sharingAcceleration.render.test.ts and portableVersionMode.render.test.ts
- add SystemManagementView.log-quick-access.test.ts for log quick access tests
- update App.tsx with sharing acceleration integration
Co-Authored-By: Hagicode <noreply@hagicode.com>
i18n: add sharing acceleration and log directory translations
提交: 590968e
Add i18n translations for sharing acceleration settings and log directory features:
Changes:
- add sharingAcceleration translations to en-US and zh-CN onboarding.json
- add sharingAcceleration translations to en-US and zh-CN pages.json (settings panel)
- add logDirectory translations to en-US and zh-CN common.json
- update common.json with log quick access button labels
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(nukeBuild): add Azure hybrid distribution and torrent sidecar generation
提交: dfb517a
Add build infrastructure for hybrid torrent/HTTP distribution on Azure Blob Storage:
Changes:
- add IArtifactHybridMetadataBuilder interface for hybrid metadata generation
- add ArtifactHybridMetadataBuilder for building hybrid distribution metadata
- add AzureReleasePublishOrchestrator for orchestrating hybrid release publishing
- add TorrentSidecarGenerator for creating BT torrent sidecar files with web seeds
- update AzureBlobAdapter with torrent sidecar and hybrid upload support
- add IAzureBlobAdapter interface definition
- update AzureStorageConfiguration with new storage settings
- update Build.AzureStorage.cs for hybrid distribution workflow
- add PublishedArtifactModels for release artifact data models
- add AzureBlobPathUtilities for blob path construction
- add nukeBuild.Tests project for Azure adapter tests
Co-Authored-By: Hagicode <noreply@hagicode.com>
chore(deps): update webtorrent and dependencies
提交: 5b167d7
Update npm dependencies to latest versions for hybrid download feature:
Changes:
- update webtorrent to ^2.8.5 for torrent engine support
- update various dependencies for latest compatibility
Co-Authored-By: Hagicode <noreply@hagicode.com>
test(main): add hybrid download and log directory tests
提交: 8e04f14
Add unit tests for sharing acceleration infrastructure:
Changes:
- add http-index-source-hybrid.test.ts for hybrid metadata parsing
- add hybrid-download-coordinator.test.ts for download coordinator
- add log-directory-service.test.ts for log directory service
- add version-manager-hybrid-install.test.ts for hybrid version install
- update main.ts for sharing acceleration initialization
- update package source index.ts for sharing acceleration type exports
- update github-release-source.ts and local-folder-source.ts for minor changes
Co-Authored-By: Hagicode <noreply@hagicode.com>
ci(workflows): add dev release workflow and azure version parameter
提交: d9e350b
Add publish-dev workflow for automated dev releases and extend sync-azure-storage with version prefix parameter:
Changes:
- add publish-dev.yml workflow for building and publishing dev artifacts
- add release_version input parameter to sync-azure-storage.yml
- add release_version workflow_dispatch input to sync-azure-storage
- pass RELEASE_VERSION to Azure build environment
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(nukeBuild): add configurable Azure version prefix
提交: 2625c32
Add ReleaseVersion parameter to support custom version prefix for Azure publishing:
Changes:
- add ReleaseVersion parameter to Build.cs
- use ReleaseVersion in Build.AzureStorage.cs for Azure version prefix
- default to versionTag when ReleaseVersion is not specified
- add logging for effective Azure publish version
Co-Authored-By: Hagicode <noreply@hagicode.com>
ci(workflows): fix publish-dev workflow checkout and repo context
提交: 55390a8
Fix missing checkout step and add repository context for release operations:
Changes:
- add Checkout code step before Compute dev release metadata
- add GH_REPO environment variable for gh CLI repository context
Co-Authored-By: Hagicode <noreply@hagicode.com>
v0.1.33
前置 Tag: v0.1.32
Tag 时间
提交数
4
chore(build): remove OpenSpec from dependency check and install scripts
提交: 0828ed5
Remove OpenSpec CLI dependency checks, version validation, and automatic installation
from all platform-specific build scripts (Linux, macOS, Windows).
Changes:
- remove OPENSPEC_MIN_VERSION and OPENSPEC_MAX_VERSION variables
- remove OpenSpec version checking and range validation logic
- remove OpenSpec automatic installation via npm
- update total dependency count from 5 to 4
- remove openspec entries from JSON output
Co-Authored-By: Hagicode <noreply@hagicode.com>
refactor(main): remove OpenSpec installation and verification from onboarding
提交: f1ba79b
Remove OpenSpec CLI installation, verification, and IPC handlers from the main process
onboarding workflow. This simplifies the onboarding flow by removing the OpenSpec
requirement.
Changes:
- remove OpenSpec dependency type from DependencyManager and VersionManager
- remove installOpenSpec and verifyOpenSpec methods from OnboardingManager
- remove onboarding:install-openspec and onboarding:verify-openspec IPC handlers
- remove OnboardingInstallOpenSpecResult type from preload layer
- update onboarding-manager tests for npm command instead of openspec
- remove semver-based OpenSpec version validation logic
- remove portable-specific OpenSpec error messages
Co-Authored-By: Hagicode <noreply@hagicode.com>
refactor(renderer): remove OpenSpec step from onboarding wizard
提交: 30243ff
Remove the OpenSpec installation step from the onboarding wizard UI, including the
OpenSpecInstallation component, Redux state management, and internationalization
strings. The onboarding flow now progresses directly from Welcome to Download.
Changes:
- remove OpenSpecInstallation component and related step from wizard
- remove OpenSpecInstallState, isOpenSpecConfirmed from OnboardingState
- remove installOpenSpec and verifyOpenSpec thunks
- remove onboardingOpenSpec.copy.test.ts file
- update OnboardingStep enum to use 3 steps instead of 4
- update onboardingSlice flow tests for new 3-step sequence
- remove openspec translation keys from en-US and zh-CN locales
- update WelcomeIntro to show 3 steps instead of 4
- trigger download immediately when leaving Welcome step
Co-Authored-By: Hagicode <noreply@hagicode.com>
chore(openspec): remove archived change proposals and cleanup
提交: afe8475
Remove all archived OpenSpec-related change proposals, design documents, and task files
from the openspec/changes/archive directory. This cleanup follows the removal of OpenSpec
as a dependency from the project.
Changes:
- remove openspec/.version file
- remove all archived change directories from 2025-02-07 through 2026-02-15
- remove OpenSpec-related proposal, design, spec, and task files
Co-Authored-By: Hagicode <noreply@hagicode.com>
v0.1.32
前置 Tag: v0.1.31
Tag 时间
提交数
7
feat(version): add portable version mode detection and management
提交: e6fb325
Add support for detecting and managing portable version runtime from bundled distribution. In portable mode, version management becomes read-only since updates are handled by the packaged distribution.
Changes:
- add DistributionMode type ('normal' | 'steam') and RuntimeSourceKind
- add ActiveRuntimeDescriptor interface for describing active runtime
- add initializeDistributionMode() to VersionManager for detecting portable runtime
- add getPortableRuntimeRoot() to PathManager for portable runtime paths
- add validatePortableRuntimePayload() for payload validation
- add DistributionModeError for read-only mode operations
- block install/uninstall/switch in portable mode with DistributionModeError
- add activeRuntime info to getDistributionModeState IPC response
- hide available versions list when in portable mode
- add portable version UI state in state-manager
Co-Authored-By: Hagicode <noreply@hagicode.com>
ci(build): add ZIP packaging for Linux and improve Windows ZIP payload handling
提交: acf7a2f
Add Linux ZIP output to electron-builder targets and fix GitHub Actions workflow to properly pass portable/signable file lists via environment variables instead of here-doc strings. Add smoke tests to verify ZIP publication steps.
Changes:
- add zip target to Linux build in electron-builder.yml
- pass WINDOWS_PORTABLE_FILES and WINDOWS_SIGNABLE_FILES via env block in build.yml
- add smoke tests for Linux targets (AppImage, deb, tar.gz, zip)
- add smoke tests for Windows ZIP workflow steps (staging, creation, upload)
Co-Authored-By: Hagicode <noreply@hagicode.com>
docs(build): update documentation for ZIP release artifacts and signing workflow
提交: 1068e5f
Update artifact signing documentation to reflect the new Windows ZIP payload staging workflow and add development documentation for release archive outputs across Linux and Windows platforms.
Changes:
- update artifact-signing.md with ZIP payload staging step before signing
- document that Windows ZIP is created from signed payload workspace
- add release archive outputs section to development.md
- document Linux ZIP addition and Windows ZIP payload lineage
Co-Authored-By: Hagicode <noreply@hagicode.com>
chore(git): clean up portable-version-runtime directory and add gitignore rules
提交: 3a68628
Remove old portable runtime files and add .gitignore rules to ignore build/portable-version-runtime while preserving the directory structure with a .gitkeep placeholder.
Changes:
- add gitignore rules for build/portable-version-runtime/*
- preserve build/portable-version-runtime/current/.gitkeep
- remove obsolete portable runtime files from current directory
Co-Authored-By: Hagicode <noreply@hagicode.com>
ci(build): refactor Windows ZIP packaging to use unpacked directory
提交: 29dbdb7
Switch from portable .exe file staging to win-unpacked directory assembly for Windows ZIP payload. Extract binaries from the unpacked app directory directly and include signable binaries (.exe, .dll, .appx, .msix, .msi) in the signing catalog.
Changes:
- replace portable .exe staging with win-unpacked directory discovery
- add unpacked_roots output for win-unpacked directories in artifacts step
- update ZIP payload step to copy contents from win-unpacked into payload dir
- add zip_payload_signable_files output tracking signable binaries
- simplify ZIP creation to single archive instead of per-portable zipping
- update smoke test to verify renamed workflow step
- update artifact-signing.md and development.md documentation
Co-Authored-By: Hagicode <noreply@hagicode.com>
ci(build): fix catalog entries relative paths and refactor feishu notification
提交: 9baf000
Fix catalog entry paths to be relative to package directory instead of absolute paths. Replace external haginotifier action with inline PowerShell for Feishu webhook notifications.
Changes:
- add pkgDir variable from catalog path parent directory
- resolve literal paths and convert to relative paths for catalog entries
- replace haginotifier action with inline PowerShell webhook invocation
- add empty webhook URL check before sending notification
- improve notification message formatting with proper structure
Co-Authored-By: Hagicode <noreply@hagicode.com>
ci(build): exclude DLL files from Windows signing scope
提交: dd4f124
Remove .dll extension from signable file lists in Windows ZIP payload signing steps to reduce signing overhead. Update terminology to accurately describe signed files as executables/packages rather than general binaries.
Changes:
- remove .dll from signable extensions filter in both required and optional signing jobs
- update summary text from "binaries" to "executables/packages" for clarity
- update artifact-signing.md to document that only exe/appx/msix/msi files are signed
Co-Authored-By: Hagicode <noreply@hagicode.com>
Add GitHub OAuth configuration support to the application config system with validation and persistence. Includes ConfigManager methods for getting, setting, and clearing GitHub OAuth credentials with proper normalization.
Changes:
- add GitHubOAuthConfig interface with clientId, clientSecret, lastUpdated
- add normalizeGitHubOAuthConfig and validateGitHubOAuthConfig utilities
- add ConfigManager methods: getGitHubOAuthConfig, setGitHubOAuthConfig, clearGitHubOAuthConfig
- add github-oauth-config.test.ts with comprehensive config persistence and validation tests
- add githubOAuthHandlers IPC module with get/set/clear handlers
- export GitHub OAuth handlers from IPC handlers index
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(web-service): integrate GitHub OAuth credentials into runtime environment
提交: d6f7a9d
Inject GitHub OAuth credentials into the embedded web service environment variables only when both client ID and secret are configured. Track applied credentials to detect when restart is required for changes to take effect.
Changes:
- add GitHub__ClientId and GitHub__ClientSecret to MANAGED_ENV_VAR_DEFINITIONS
- add buildManagedServiceEnv support for githubOAuth parameter with conditional injection
- add masking for GitHub ClientSecret in environment snapshot logs
- add tests for GitHub OAuth env injection and log masking
- add getGitHubOAuthRuntimeStatus to PCodeWebServiceManager for restart detection
- add GitHub OAuth signature tracking with SHA256 digest comparison
- add githubOAuthClientId and githubOAuthSecretDigest to RuntimeIdentity
- initialize registerGitHubOAuthHandlers and pass configManager to webServiceManager
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(preload): add GitHub OAuth IPC bridge to renderer
提交: 6d8a084
Expose GitHub OAuth configuration APIs through the preload layer to enable secure renderer-to-main communication for credential management.
Changes:
- add GitHubOAuthConfigPayload interface with config and status fields
- add GitHubOAuthMutationResult interface for operation responses
- add githubOAuth.get/set/clear methods to ElectronAPI interface
- implement githubOAuth IPC handlers in electronAPI object
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(renderer-store): add GitHub OAuth Redux state management
提交: 40ade04
Add comprehensive Redux state management for GitHub OAuth configuration with async thunks for IPC communication and selectors for UI binding.
Changes:
- add githubOAuthSlice with state for clientId, clientSecret, loading states, field errors
- add createAsyncThunk actions: fetchGitHubOAuthConfig, saveGitHubOAuthConfig, clearGitHubOAuthConfig
- add synchronous actions: setClientId, setClientSecret, resetGitHubOAuthForm, toggleSecretVisibility
- add selectors for all state properties including isDirty, isConfigured, requiresRestart
- add initializeGitHubOAuth thunk for app initialization
- add githubOAuthSlice.test.ts with reducer and selector tests
- register githubOAuthReducer in store and dispatch initializeGitHubOAuth on startup
Co-Authored-By: Hagicode <noreply@hagicode.com>
Implement the GitHub OAuth settings UI with form validation, secret visibility toggle, save/reset/clear actions, and runtime status awareness for web service restart requirements.
Changes:
- add GitHubOAuthSettings component with clientId and clientSecret input fields
- add form validation with field-level error messages
- add secret visibility toggle with show/hide button
- add save, reset, and clear actions with loading states and toast notifications
- add requiresRestart detection and display of restart warnings
- add lastUpdated timestamp display with locale-aware formatting
- add GitHub Integration tab to SettingsPage
- export GitHubOAuthSettings from settings index
- add GitHub OAuth types to global window interface in App.tsx
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(i18n): add bilingual strings for GitHub OAuth and navigation
提交: 8c93b6c
Add complete English and Chinese translations for GitHub OAuth settings UI and add cost calculator link to navigation.
Changes:
- add githubIntegration tab label to settings.tabs in both locales
- add githubOAuth section with title, description, field labels, actions, errors, messages, and notes
- add costCalculator label to navigation.common in both locales
- all strings support interpolation for dynamic values like lastUpdated timestamp
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(navigation): add cost calculator external link
提交: d082317
Add external navigation link to the AI Replacement Calculator (cost.hagicode.com) in the sidebar.
Changes:
- add Calculator icon import from lucide-react
- add cost-calculator navigation item to externalLinkItems array
Co-Authored-By: Hagicode <noreply@hagicode.com>
v0.1.30
前置 Tag: v0.1.29
Tag 时间
提交数
2
refactor(shell-env): improve shell profile loading order
提交: 6bbbed0
Enhance shell environment loading to properly handle login shell profile priority order. This ensures bash and zsh profiles are sourced in the correct sequence (.bash_profile -> .bash_login -> .profile for bash, .zprofile -> .zshrc for zsh) before exporting environment variables.
Changes:
- refactor resolveUnixEnvCommand to use proper shell flags for login/interactive shells
- add buildBashEnvExportCommand with correct profile priority order
- add buildZshEnvExportCommand with zprofile before zshrc
- export resolveUnixEnvCommand for testing
- update OnboardingManager to use static mergeRuntimeEnv method
- add tests for profile loading order and env merging
Co-Authored-By: Hagicode <noreply@hagicode.com>
Rename 'shell-rc' to 'shell-startup-files' in log messages for better accuracy, since the console environment loading now handles multiple profile files beyond just .rc files.
Co-Authored-By: Hagicode <noreply@hagicode.com>
v0.1.29
前置 Tag: v0.1.28
Tag 时间
提交数
5
feat(prompt-guidance): add prompt guidance service and UI components
提交: 7094e2c
Add PromptGuidanceService for resolving prompt files from multiple sources (smartConfig, diagnosis, versionDependencies). Include renderer components for displaying AI guidance in smart config and version management pages.
Co-Authored-By: Hagicode <noreply@hagicode.com>
refactor(diagnosis): simplify diagnosis handlers and UI components
提交: d1b9d6a
Simplify diagnosis IPC handlers and UI components by leveraging the new PromptGuidanceService. Remove redundant code paths and streamline prompt resolution logic.
Co-Authored-By: Hagicode <noreply@hagicode.com>
refactor(onboarding): remove AgentCliSelection step from onboarding flow
提交: 9002aa0
Simplify onboarding flow by removing the AgentCliSelection step. Users now proceed directly from Welcome to OpenSpecInstallation. Update related tests and type definitions.
Co-Authored-By: Hagicode <noreply@hagicode.com>
Update development documentation to describe the new prompt-guidance payload structure including promptContent, promptPath, promptSource, supportedTools, and suggestedWorkingDirectory fields.
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(prompt-guidance): add prompt guidance service and UI components
提交: 0872a9e
Add PromptGuidanceService for resolving prompt files from multiple sources (smartConfig, diagnosis, versionDependencies). Include renderer components for displaying AI guidance in smart config and version management pages. Update preload APIs to expose new prompt guidance functions.
Co-Authored-By: Hagicode <noreply@hagicode.com>
v0.1.28
前置 Tag: v0.1.27
Tag 时间
提交数
2
fix: stabilize onboarding openspec verification
提交: 258c0b2
此提交无额外详情。
fix(version-manager): use validated version status in install log
提交: 46720f9
Replace undefined variable 'status' with 'versionInfo.status' to log the actual validation status after installation. This prevents logging undefined values and provides accurate status information.
Co-Authored-By: Hagicode <noreply@hagicode.com>
v0.1.27
前置 Tag: v0.1.26
Tag 时间
提交数
6
docs(readme): restructure and simplify project documentation
提交: 2b4f259
Simplify README structure with new sections for product overview, core capabilities, and architecture. Streamline local development instructions and consolidate related documentation references.
Changes:
- reorganize README with product overview and core capabilities sections
- simplify local development instructions
- consolidate documentation references under related guides
- apply same structure to Chinese documentation
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(onboarding): add OpenSpec installation and verification core
提交: 7e4b5fd
Add OpenSpec 1.x installation and verification as a new onboarding step. The onboarding flow now requires OpenSpec to be installed and verified before proceeding to package download.
Changes:
- add OpenSpecInstallation step enum and OpenSpecInstallState type
- add installOpenSpec and verifyOpenSpec methods to OnboardingManager
- add IPC handlers for onboarding:install-openspec and onboarding:verify-openspec
- add shell environment loading and command execution utilities
- add version range validation for >1.0 and <2.0
- update preload types and electronAPI with installOpenSpec and verifyOpenSpec
Co-Authored-By: Hagicode <noreply@hagicode.com>
Add OpenSpecInstallation component for one-click install and verification of OpenSpec 1.x. The step automatically verifies existing installations on mount and provides guided installation with retry support.
Changes:
- add OpenSpecInstallation component with install and verify sections
- add automatic verification on step mount for existing installations
- add install/verify command display and version range information
- add success and failure states with retry capability
- integrate OpenSpecInstallation step into OnboardingWizard
- update WelcomeIntro step list to reflect five-step flow
- update total steps count from 4 to 5
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(onboarding): add OpenSpec state management and thunks
提交: 051851c
Add Redux slice actions and thunks for OpenSpec installation and verification. Update step navigation to require OpenSpec confirmation before proceeding to download.
Changes:
- add installOpenSpec and verifyOpenSpec thunks with error handling
- add openSpecInstall state slice with status tracking
- add setOpenSpecConfirmed and resetOpenSpecInstallState actions
- add selectOpenSpecInstall selector
- update goToNextStep to require isOpenSpecConfirmed
- update goToPreviousStep with explicit step transitions
- add installOpenSpec and verifyOpenSpec async reducers
Co-Authored-By: Hagicode <noreply@hagicode.com>
Add bilingual UI strings for OpenSpec installation step including status labels, success/failure messages, and version range documentation.
Changes:
- add openspec section with title, description, and installation guidance
- add status strings for idle, installing, checking, installed, and failed states
- add success and failure alert messages with version display
- add verification section with command display and version range
- add retry and manual fallback guidance for installation failures
- update welcome steps to reflect five-step onboarding flow
- update process title to indicate five-step setup
Co-Authored-By: Hagicode <noreply@hagicode.com>
test(onboarding): add OpenSpec flow and copy tests
提交: 05b4f49
Add flow tests for five-step onboarding with OpenSpec verification requirement. Add copy tests to verify bilingual OpenSpec documentation consistency.
Changes:
- update onboardingSlice.flow.test.ts for five-step sequence
- add test for OpenSpec verification requirement before download
- add test for preserving OpenSpec verification on back navigation
- add test for tracking install/verify success/failure/retry states
- add onboardingOpenSpec.copy.test.ts for i18n consistency
- add test for version range documentation in both locales
- add test for welcome overview alignment with five-step flow
- add test for retry and manual fallback guidance
Co-Authored-By: Hagicode <noreply@hagicode.com>
v0.1.26
前置 Tag: v0.1.25
Tag 时间
提交数
5
feat(version): add Desktop compatibility validation for packages
提交: 15c00ac
Add Desktop version compatibility checking to block packages that require a newer Desktop version. Packages can now declare a minimum Desktop version in their manifest, and Desktop will validate this before allowing activation or startup.
Changes:
- add desktop-compatibility.ts with evaluateDesktopCompatibility function
- add hagicode-url.ts with openHagicodeInAppWindow utility
- add desktopCompatibility field to Manifest schema
- add desktop-incompatible status for versions that fail compatibility check
- block version switch and service startup for incompatible packages
- update IPC handlers to return detailed error information
- add UI status indicators and blocking messages
- add i18n strings for Desktop incompatibility messages
Co-Authored-By: Hagicode <noreply@hagicode.com>
test(version): add Desktop compatibility and hagicode-url tests
提交: 059447c
Add unit tests for the new Desktop compatibility checking and Hagicode URL handling features.
Changes:
- add desktop-compatibility.test.ts with compatibility evaluation tests
- add hagicode-url.test.ts with URL building and window creation tests
- update web-service-manager-start test for desktop-incompatible validation
Co-Authored-By: Hagicode <noreply@hagicode.com>
ci(build): normalize release gating and add Azure sync eligibility
提交: eec373f
Improve build workflow release orchestration with normalized platform status and explicit sync eligibility.
Changes:
- add effective_windows_job and effective_windows_status outputs
- build-summary resolves Windows job result (release vs dev)
- add sync_eligible flag for downstream automation
- update build-summary to conditionally trigger Azure sync
- add publish workflow summary with platform details
- update sync-azure-storage.yml comment about workflow_call usage
Co-Authored-By: Hagicode <noreply@hagicode.com>
docs(release): update build and Azure sync documentation
提交: 7b61e19
Update documentation to reflect the new release orchestration flow and Azure Storage sync improvements.
Changes:
- update README with release workflow improvements
- update azure-storage-sync.md to describe workflow_call model
- document normalized release gating and sync eligibility behavior
Co-Authored-By: Hagicode <noreply@hagicode.com>
docs(readme): rename Chinese documentation file
提交: 691228e
Rename README.zh-CN.md to README_cn.md and update English README link.
Co-Authored-By: Hagicode <noreply@hagicode.com>
Add comprehensive startup failure handling for onboarding flow:
- Add onboarding-startup-recovery.ts with recovery logic for reinstalling and resetting
- Add StartupFailurePayload, OnboardingStartServiceResult, OnboardingRecoveryResult types
- Add startup failure dialog UI in ServiceLauncher with log viewing and copy
- Add Redux state management for startup failure and recovery
- Add IPC handlers for recovery operations
- Add i18n translations for failure dialog
- Add unit tests for recovery logic
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(agent-cli): enhance agent CLI manager with improved detection
提交: cf031a1
Improve agent CLI management with better detection and state handling:
- Add enhanced detection methods for agent CLI executables
- Add agent CLI type definitions and interfaces
- Add IPC handlers for agent CLI operations
- Update preload with new agent CLI channels
- Add unit and integration tests
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(region): enhance region detection with improved heuristics
提交: 13fcdb3
Improve region detection with better detection logic:
- Add enhanced region detection heuristics
- Add more robust fallback mechanisms
- Add unit tests for region detection
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(llm): enhance LLM installation manager with startup failure support
提交: a030b16
Improve LLM installation with better startup handling:
- Add startup failure detection and reporting
- Add improved installation progress tracking
- Update IPC handlers with startup failure payload
- Add unit tests for LLM installation
Co-Authored-By: Hagicode <noreply@hagicode.com>
chore(main): integrate onboarding recovery and update app initialization
提交: aa2dcca
Update main process with onboarding recovery integration:
- Integrate onboarding startup failure recovery handlers
- Update app initialization with new onboarding logic
- Update renderer app with new onboarding state
- Add doc-links for new features
Co-Authored-By: Hagicode <noreply@hagicode.com>
docs: update README with new features and tech stack
提交: 896e33f
Update project documentation:
- Add information about new onboarding recovery feature
- Update tech stack with React 19
- Add Chinese translation updates
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(ci): migrate to Azure Artifact Signing for Windows releases
提交: 0df5aa5
Migrate Windows artifact signing from custom Node.js script to Azure Artifact Signing:
- Update build workflow to use azure/artifact-signing-action@v1
- Remove legacy sign-artifact.js script
- Update verify-signature.js with --catalog argument support
- Add docs/artifact-signing.md with configuration guide
- Update README.md with artifact signing reference
Co-Authored-By: Hagicode <noreply@hagicode.com>
fix(ci): use secrets for Azure Artifact Signing configuration
提交: 51f1038
Fix Azure Artifact Signing workflow to use GitHub secrets instead of variables:
- Move validation step earlier in workflow for faster failure detection
- Change AZURE_CODESIGN_ENDPOINT, AZURE_CODESIGN_ACCOUNT_NAME, and
AZURE_CODESIGN_CERTIFICATE_PROFILE_NAME from vars to secrets
- Update documentation to reflect secret configuration requirements
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat: Implement dedicated Windows release build workflow
提交: 87e580d
Separates Windows release builds (triggered by tags) into a new job, ensuring all release artifacts are signed using Azure Artifact Signing.
Introduces granular artifact collection and categorization (NSIS, portable, AppX) for precise handling during signing and upload. The `production` environment is now attached specifically to these tag-triggered Windows release builds.
Updates `electron-builder` commands to disable automatic publishing, centralizing artifact upload control within the CI workflow. Also improves build summary and notifications to reflect the status of the new release job.
feat: Configure AppX publisher for signing, hide scrollbars
提交: 98128f9
Adds dynamic configuration of the AppX package publisher to the build workflow.
Ensures the `electron-builder.yml` publisher matches the Azure signing certificate subject, preventing common AppX signing failures.
Introduces the `AZURE_CODESIGN_APPX_PUBLISHER` secret and updates documentation with setup and troubleshooting guidance.
Replaces custom thin scrollbar styling with a hidden scrollbar for dependency lists, improving UI cleanliness.
feat(web-service): remove standalone port monitoring phase from startup flow
提交: fa0f819
Simplify the web service startup process by removing the standalone port monitoring phase before spawning the service. The startup flow now proceeds directly from Spawning to WaitingListening to HealthCheck phases.
This change removes the CheckingPort startup phase and the fixed-port startup policy that performed a pre-check on port availability. Port conflict detection is now handled during the actual service spawn attempt through the runtime process lifecycle.
Changes:
- Remove CheckingPort startup phase from StartupPhase enum
- Remove standalone port availability check before service spawn
- Remove evaluateFixedPortStartup function and web-service-startup-policy.ts file
- Update onboarding manager comments to reflect new behavior
- Keep renderer startup phase definitions aligned with the shortened flow
Co-Authored-By: Hagicode <noreply@hagicode.com>
test(web-service): update tests for simplified startup flow
提交: 2755e4e
Update web-service startup tests to match the simplified flow without the standalone port monitoring phase.
Changes:
- Remove test for evaluateFixedPortStartup (function deleted)
- Add test to verify no standalone CheckingPort phase exists in startup flow
- Add test to verify renderer startup phase definitions are aligned
- Add test to verify startup failure diagnostics work with configured port context
- Tests verify waitForPortListening and waitForHealthCheck are still called
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(ui): move ThemeProvider to root level and improve Sonner theming
提交: f2e049b
Move ThemeProvider from App.tsx to main.tsx to ensure consistent theme access across the entire application, including the Toaster component. This change improves the component hierarchy and resolves potential theme context access issues.
Changes:
- Move ThemeProvider wrapper from App.tsx to main.tsx
- Update Sonner component to use useTheme hook for dynamic theming
- Replace hardcoded dark theme with resolved theme from context
- Add CSS variable styling to Sonner for consistent design system integration
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(navigation): add Discord community link to sidebar
提交: 732c4f0
Add Discord community link to the external navigation items in the sidebar, allowing users to join the official HagiCode Discord server for community discussions and support.
Changes:
- Add Discord community navigation item with MessageSquare icon
- Add Discord URL (https://discord.gg/qY662sJK)
- Add English translations for Discord link and description
- Add Chinese translations for Discord link and description
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(web-service): launch services with bundled dotnet runtime
提交: a4c3520
Run the managed Hagicode Server payload through the bundled dotnet host and validate runtime compatibility before startup. Installed versions now surface payload or runtime validation failures instead of assuming every package is startable.
Changes:
- add embedded runtime validation helpers for framework-dependent service payloads
- resolve packaged and development bundled dotnet roots from the path manager
- launch the managed service DLL directly with DOTNET_ROOT isolation and compatibility checks
- persist payload-invalid and runtime-incompatible version status in main and renderer state
- cover the new runtime resolution and startup path with unit tests
Co-Authored-By: Hagicode <noreply@hagicode.com>
build(runtime): stage embedded dotnet payload for packaging
提交: 634404f
Prepare Desktop builds with a staged bundled dotnet runtime so packaged apps always ship the managed host outside app.asar. The build workflow now validates the staged payload before packaging and provides a Windows helper for local development.
Changes:
- add prepare-embedded-runtime and dev:embedded-runtime helper scripts
- require runtime staging and runtime-aware smoke tests in packaging commands
- ship build/embedded-runtime/current/dotnet through electron-builder extraResources
- ignore staged runtime output in Git and refresh package-lock metadata
Co-Authored-By: Hagicode <noreply@hagicode.com>
Document how Desktop stages the bundled dotnet runtime for local development and packaging. The guide now explains the expected staged layout, local override behavior, and the main troubleshooting steps for runtime validation failures.
Changes:
- describe the staged embedded runtime directory structure
- add prepare and development helper commands for local workflows
- document packaged runtime resolution behavior and troubleshooting steps
Co-Authored-By: Hagicode <noreply@hagicode.com>
Add scripts to download, extract, and stage pinned dotnet runtime for
local development and packaging. Includes platform detection and optional
staging for unsupported platforms.
Changes:
- implement prepare-embedded-runtime.js for runtime download and extraction
- add prepare-runtime-if-supported.js for platform-aware optional staging
- update dev-with-embedded-runtime.js to use runtime config module
Co-Authored-By: Hagicode <noreply@hagicode.com>
Add validation helpers for framework-dependent service payloads and embedded
dotnet runtime layout. Validates runtime compatibility with service
requirements and checks pinned runtime metadata.
Changes:
- add validateFrameworkDependentPayload for payload file validation
- add validateEmbeddedRuntimeLayout for runtime structure checks
- add validatePinnedEmbeddedRuntime for metadata validation
- add evaluateRuntimeCompatibility for runtime version matching
- add version comparison and normalization utilities
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(web-service): launch services with bundled dotnet runtime
提交: be74b58
Run the managed Hagicode Server payload through the bundled dotnet host
and validate runtime compatibility before startup. Installed versions now surface
payload or runtime validation failures instead of assuming every package is startable.
Changes:
- add resolveManagedLaunchContext to resolve launch arguments
- launch managed DLL with DOTNET_ROOT isolation and compatibility checks
- add path-manager helpers for packaged and development runtime resolution
- persist payload-invalid and runtime-incompatible status
Co-Authored-By: Hagicode <noreply@hagicode.com>
Add unit tests for embedded runtime validation, payload validation, and
managed service startup. Tests verify runtime layout, metadata validation,
version compatibility, and service DLL launch context.
Changes:
- add embedded-runtime.test.ts with validation helpers coverage
- update web-service-manager-start.test.ts for managed launch path
Co-Authored-By: Hagicode <noreply@hagicode.com>
build(runtime): add embedded runtime preparation to build pipeline
提交: 7170c8e
Update build scripts and workflows to prepare embedded runtime before packaging.
Adds npm scripts for runtime staging and CI cache integration for faster builds.
Changes:
- add prepare:runtime and dev:embedded-runtime npm scripts
- add prepare:runtime:optional for platform-aware staging
- update build.yml to cache runtime downloads by manifest hash
- add package:smoke-test for validating packaged runtime
Co-Authored-By: Hagicode <noreply@hagicode.com>
Document how Desktop stages the bundled dotnet runtime for local development
and packaging. The guide now explains the expected staged layout, local override
behavior, and the main troubleshooting steps for runtime validation failures.
Changes:
- describe the staged embedded runtime directory structure
- add prepare and development helper commands for local workflows
- document packaged runtime resolution behavior and troubleshooting steps
Co-Authored-By: Hagicode <noreply@hagicode.com>
test(runtime): add embedded runtime validation to smoke tests
提交: f795ef7
Update smoke test suite to validate staged and packaged runtime payloads.
Tests verify runtime layout, pinned metadata, and Microsoft source host validation.
Changes:
- add staged runtime payload validation
- add packaged runtime payload validation
- validate pinned runtime metadata matches manifest
- add --require-runtime flag for mandatory runtime checks
Co-Authored-By: Hagicode <noreply@hagicode.com>
build(runtime): add macOS platform build support
提交: dd31e66
Add macOS x64 and arm64 build commands to package.json and update
runtime manifest with macOS runtime metadata. Include osx-x64 and
osx-arm64 targets for cross-platform packaging support.
Changes:
- add build:mac:x64 and build:mac:arm64 npm scripts with platform isolation
- add package:smoke-test:mac:x64 and package:smoke-test:mac:arm64 scripts
- add osx-x64 and osx-arm64 runtime targets to pinned runtime manifest
- update prepare-runtime-if-supported to include macOS platforms
Co-Authored-By: Hagicode <noreply@hagicode.com>
chore(runtime): add executable permission validation to runtime scripts
提交: 128fb31
Add executable permission checks for non-Windows platforms and metadata
validation after runtime staging. This ensures macOS and Linux bundled
runtimes have proper execute permissions before packaging.
Changes:
- add requiresExecutableDotnetHost flag for non-Windows platforms
- add isExecutable helper function for permission checking
- add ensureBundledDotnetHost to fix executable permissions on staging
- add validateWrittenRuntimeMetadata to verify persisted metadata
- update smoke-test with macOS packaged runtime candidates resolution
- add executable permission validation to runtime payload checks
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(runtime): add validateBundledRuntimeForPlatform for macOS support
提交: 5d65434
Add unified validation function for bundled runtime checking and macOS
dependency management with desktop-specific actions for reinstall and update.
Changes:
- add detectPinnedRuntimePlatform and getEmbeddedDotnetExecutableName helpers
- add validateBundledRuntimeForPlatform with failure codes and remediation
- add BundledRuntimeValidationResult interface with remediation actions
- add checkBundledDotnetDependency in dependency-manager for macOS
- update web-service-manager to use validateBundledRuntimeForPlatform
- add resolutionSource, sourcePath, and primaryAction to dependency results
- add isExecutable helper for file permission checking in embedded-runtime.ts
Co-Authored-By: Hagicode <noreply@hagicode.com>
Add unit tests for macOS bundled runtime validation, permission checking,
and metadata mismatch detection. Verify desktop update and reinstall flows.
Changes:
- add createBundledRuntimeFixture helper for macOS runtime fixtures
- add validateBundledRuntimeForPlatform import coverage check
- test macOS bundled runtime satisfies Desktop runtime contract
- test macOS runtime metadata mismatch triggers desktop update
- test macOS dotnet host permission regressions trigger reinstall
- update web-service-manager-start test for new validation messages
- add embedded-runtime-packaging.test.ts as new test file
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(ui): add macOS bundled runtime status to dependency cards
提交: 073da74
Display bundled runtime status and source path for macOS dependencies.
Add reinstall-desktop and update-desktop actions with proper localization.
Changes:
- add bundled status label for bundled-desktop resolution source
- add source path display with code formatting
- add getPrimaryActionLabel for desktop-specific actions
- add resolutionSource, sourcePath, and primaryAction to types
- add bundled, reinstallDesktop, updateDesktop to English and Chinese locales
- add source label to dependency details
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(web-service): add listen host configuration with network presets
提交: dead758
Add configurable listening address support for embedded web service with
preset options (localhost, 127.0.0.1, 0.0.0.0, custom IPv4) and access
URL derivation.
Changes:
- add web-service-network.ts with host validation and normalization utilities
- add host field to ProcessInfo, WebServiceState, and RuntimeIdentity
- add normalizeStateFile to normalize persisted host configuration
- add setHost action and updateWebServiceConfig thunk
- add listen address editor with presets in WebServiceStatusCard
- add WebServiceConfigUpdateResponse with error codes
- update IPC handlers to return host and validate listen config
- update preload types for host support
- add web-service-network and renderer-listen-host tests
- add i18n strings for listen address presets and validation
Co-Authored-By: Hagicode <noreply@hagicode.com>
refactor(onboarding): remove LLM installation step and simplify flow
提交: 90213a6
Remove AI-powered LLM installation step from onboarding to streamline
the first-time setup experience. Users now proceed directly from download
to service launch.
Changes:
- remove LlmInstallation step and related dialogs
- remove PreconditionError component
- remove InstallationConfirmationDialog and InstallationHelpDialog
- remove OnboardingStep.LlmInstallation enum value
- update OnboardingWizard to skip LLM installation
- update AgentCliSelection to use onSkipSelection callback
- remove nextStep and previousStep actions
- update selectCanGoNext selector without claudeConfig dependency
- update i18n files to remove LLM installation strings
- add onboardingSlice flow test for updated workflow
- update InstallWizard hint text for Agent CLI configuration
Co-Authored-By: Hagicode <noreply@hagicode.com>
docs(development): update development guide with latest content
提交: 489bce4
Update development documentation with comprehensive sections for
embedded runtime staging, prompt resource resolution, and troubleshooting
guides for runtime validation failures.
Changes:
- add Embedded Runtime Staging section with manifest format
- document staged runtime layout and preparation commands
- add development debugging with staged runtime helper
- add verification commands and CI runtime preparation details
- add operational diagnostics for common runtime issues
- document Prompt Resource Resolution with structured error fields
- reorganize table of contents for better navigation
Co-Authored-By: Hagicode <noreply@hagicode.com>
test(web-service): update web service env test
提交: 9d3a5a2
Update web service environment test to align with current
implementation and configuration handling.
Changes:
- update test assertions for host configuration
- normalize configuration handling in test cases
Co-Authored-By: Hagicode <noreply@hagicode.com>
refactor(installation): update installation wizard and claude config comments
提交: a5e6c4a
Update installation wizard hint text and claude config slice comments
to reflect the removal of LLM installation step from onboarding.
Changes:
- update InstallationWizard hint to reference Settings instead of onboarding
- update claudeConfigSlice comments to reflect current deprecation status
Co-Authored-By: Hagicode <noreply@hagicode.com>
v0.1.24
前置 Tag: v0.1.23
Tag 时间
提交数
5
feat(web-service): add startup failure payload and fixed-port policy
提交: 0318b89
Add startup failure data structure and fixed port startup policy for better web service failure handling.
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(web-service): integrate startup failure handling in IPC layer
提交: 59eb52d
Add startup failure payload to web service start response and update IPC handlers to capture and report startup failures.
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(web-service): add startup failure state management
提交: f6b1fc2
Add startup failure payload state and dialog state to web service slice with actions for showing/hiding failure dialogs.
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(web-service): add startup failure dialog UI
提交: d969b30
Add startup failure dialog component to WebServiceStatusCard with log viewing and copy functionality, plus i18n translations.
Co-Authored-By: Hagicode <noreply@hagicode.com>
feat(web-service): add startup log capture and failure handling
提交: 018e0b9
Add startup log buffer, capture mechanism, and buildStartupFailureInfo for better web service startup failure diagnosis and fixed-port startup policy.
Co-Authored-By: Hagicode <noreply@hagicode.com>
v0.1.23
前置 Tag: v0.1.22
Tag 时间
提交数
4
feat(runtime): improve recovery and unify AI CLI flows
提交: 531fb30
- Remove legacy license management from main process, preload, store, and renderer views.
- Add Agent CLI settings with Codex support and sync selected executor to web-service env.
- Introduce prompt resource resolution, structured launch diagnostics, and runtime recovery/state persistence for web service startup.
Co-Authored-By: Hagicode <noreply@hagicode.com>
docs(development): document runtime recovery and prompt lookup
提交: 77eb9a2
- Add web service runtime recovery state model and validation flow details.
- Document smart-config/diagnosis prompt resource resolution order and diagnostics fields.
Co-Authored-By: Hagicode <noreply@hagicode.com>
fix(web-service): align health probing and env port binding
提交: c3c5854
此提交无额外详情。
fix data dir
提交: c6624f7
此提交无额外详情。
v0.1.22
前置 Tag: v0.1.21
Tag 时间
提交数
1
fix window path issue
提交: 5fe8231
此提交无额外详情。
v0.1.21
前置 Tag: v0.1.20
Tag 时间
提交数
9
refactor(ipc): modularize IPC handlers into separate modules (#26)
提交: c96a9c7
Refactor monolithic IPC handler code into separate, focused modules for
better maintainability and code organization.
- Create dedicated handler modules for window, server, webService,
version, dependency, packageSource, license, onboarding, dataDirectory,
region, LLM, RSS, debug, and view operations
- Add shared types for handler responses and error handling
- Centralize handler exports in handlers/index.ts
- Update preload API to support new handler structure
- Integrate new handler system in main.ts
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added data directory management settings with path validation and disk
usage metrics
* Integrated directory picker for easy path selection
* Ability to restore default data directory configuration
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Co-authored-by: Hagicode <noreply@hagicode.com>
Remove dependency warning notification that was sent to renderer.
This simplifies the version switch flow as the warning is no
longer used in the UI.
Co-Authored-By: Hagicode <noreply@hagicode.com>
chore: add project index configuration file
提交: 7904c06
Add hagindex.yml for project structure documentation and code navigation.
Co-Authored-By: Hagicode <noreply@hagicode.com>
chore: update project index configuration
提交: 7e450f0
Update hagindex.yml with improved project structure documentation:
- Update project description with tech stack details (React 19, Redux, Tailwind CSS 4)
- Add new manager entries (WebServiceManager, VersionManager, etc.)
- Add new ViewModel entries for Redux state slices
- Enhance existing entry point descriptions with Chinese translations
- Add Vite and shadcn/ui config file references
- Update indexedAt timestamp
Co-Authored-By: Hagicode <noreply@hagicode.com>
v0.1.20
前置 Tag: v0.1.13
Tag 时间
提交数
2
feat(agent-cli): add Agent CLI selection feature replacing Claude config (#24)
提交: 3a741b5
Add new Agent CLI selection system that simplifies from the previous
Claude configuration approach. Users can now select their preferred AI
programming CLI (Claude Code, with support for future CLIs) with
automatic detection.
Features:
- AgentCliManager for CLI selection and detection
- IPC handlers for agent-cli operations
- Redux slice for Agent CLI state management
- Onboarding step for Agent CLI selection with skip option
- Centralized documentation links configuration
- PreconditionError component for onboarding error handling
Co-authored-by: newbe36524 <newbe36524@hotmail.com>
Co-authored-by: Hagicode <noreply@hagicode.com>
Remove platform-specific terminal handling and use unified approach with
Claude CLI's built-in terminal management.
Co-authored-by: newbe36524 <newbe36524@hotmail.com>
Co-authored-by: Hagicode <noreply@hagicode.com>
v0.1.13
前置 Tag: v0.1.12
Tag 时间
提交数
2
Chore: Removes OpenSpec documentation
提交: 3be8e0f
Removes the OpenSpec design guidelines and project documentation files.
These files are no longer needed in the repository.
new installation feature (#23)
提交: b4959b9
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added Claude Code configuration and setup in the desktop application
with support for multiple API providers (Anthropic, Zhipu, Aliyun,
MiniMax)
* Introduced interactive installation wizard for guided Claude
configuration with region selection
* Added preset management system for provider configurations with local
caching
* **Improvements**
* Redesigned onboarding workflow with dedicated Claude configuration
step
* Enhanced Windows script execution for better stability
* Improved platform detection for ARM64 architecture support
* Added configuration backup and restoration capabilities
* **Documentation**
* Added comprehensive agent and development documentation
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Hagicode <noreply@hagicode.com>
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added multi-channel release support (stable, beta, dev) for managing
different release versions.
* Desktop app now supports channel switching and display of channel
information.
* Index metadata now includes channel metadata with version organization
by channel.
* **Documentation**
* Added channel testing guide and channel support documentation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
channel support (#21)
提交: 06034e7
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Release Notes
* **New Features**
* Added channel mapping support to organize versions by release channels
(stable, beta, etc.)
* Implemented smart upload optimization that skips unchanged files using
hash comparison
* Added reporting of skipped files during Azure upload operations
* Enabled custom channel mapping configuration via JSON parameter
* **Documentation**
* Added comprehensive proposal and implementation plan documentation for
channel support in index generation
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
v0.1.11-beta.1
前置 Tag: v0.1.10
Tag 时间
提交数
1
fix install issue in version manager (#19)
提交: 70091e2
此提交无额外详情。
v0.1.10
前置 Tag: v0.1.9
Tag 时间
提交数
1
fix double check issue
提交: af29e29
此提交无额外详情。
v0.1.9
前置 Tag: v0.1.8
Tag 时间
提交数
1
fix check issue in windows (#18)
提交: 12609be
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Release Notes
* **New Features**
* Added code signing for Windows artifacts using Azure integration with
automatic verification and failure notifications
* Implemented single-instance lock to prevent multiple app instances
from running simultaneously
* Suppressed console windows on Windows during background script
execution for a cleaner user experience
* **Bug Fixes**
* Fixed Windows dependency check script to auto-exit after completion
* Improved process timeout handling with enhanced logging and
termination logic
* Enhanced cross-platform consistency for process management and error
handling
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
v0.1.8
前置 Tag: v0.1.7
Tag 时间
提交数
1
fix dependency installation issue (#17)
提交: abd3948
此提交无额外详情。
v0.1.7
前置 Tag: v0.1.6
Tag 时间
提交数
1
onboarding issue fix (#16)
提交: 6c20af7
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added Settings page with onboarding reset and debug mode options.
* Added installation progress dialog with real-time command output
logging.
* **Improvements**
* Enhanced dependency management UI with better version mismatch
handling and upgrade options.
* Simplified web service startup using standardized scripts across all
platforms.
* Implemented region-aware package installation for optimized mirror
selection.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
v0.1.6
前置 Tag: v0.1.5
Tag 时间
提交数
3
better onboarding dependency install (#13)
提交: 2959794
此提交无额外详情。
fix build (#14)
提交: 496ed2e
此提交无额外详情。
rss feed support (#15)
提交: a9f0652
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added official blog RSS feed integration displaying the latest blog
posts within the app
* Automatic feed refresh every 24 hours with manual refresh capability
* Offline caching for continuous access to blog posts
* Multi-language support for the blog feed interface (English and
Chinese)
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
v0.1.5
前置 Tag: v0.1.4
Tag 时间
提交数
1
onboarding support (#12)
提交: 6028f3c
此提交无额外详情。
v0.1.4
前置 Tag: v0.1.3
Tag 时间
提交数
1
Feat: Adds loading state to install button (#11)
提交: d74e04d
Improves user experience by providing visual feedback when installing
web service packages.
This change introduces a loading state to the install button, preventing
multiple clicks and informing the user of the installation progress. It
uses Redux for state management and Sonner Toast for success/error
notifications, maintaining consistency with other UI elements.
Includes UI updates, state management changes, and saga modifications to
handle the install process.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Release Notes
* **New Features**
* Installation process now displays real-time progress with visual
loading indicators showing download, extraction, and verification
stages.
* Installation result notifications confirm successful completion or
alert on failures.
* Confirmation dialog appears when installation requires stopping the
running web service.
* **Chores**
* Added support for Debian (.deb) and tar.gz Linux distribution
packaging formats.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
v0.1.3
前置 Tag: v0.1.2
Tag 时间
提交数
1
fix production loading issue (#10)
提交: 4968677
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Bug Fixes**
* Resolved white screen issue affecting application startup in
production environments.
* Fixed resource loading to work correctly with packaged application
bundles.
* **Chores**
* Updated build configuration to ensure all application resources are
properly included in packaged builds.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
v0.1.2
前置 Tag: v0.1.1
Tag 时间
提交数
3
publish to azure storage (#6)
提交: 2a37a10
此提交无额外详情。
sync-azure if release success (#7)
提交: 4bd9228
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Chores**
* Added automatic release synchronization to cloud storage when version
tags are published.
* Refactored CI workflows to use a reusable, modular sync component for
improved maintainability.
* Decoupled cloud storage operations into an independent workflow and
added validation to ensure required secrets are present.
* Support retained for manual dispatch with explicit release selection
and clear messaging when falling back to the latest release.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
feat: compress index.json output for reduced file size (#9)
提交: c4b3f10
## 概述
- 在 `sync-azure-storage.yml` 工作流中添加 JSON 压缩
- 使用 `jq -c` 参数生成紧凑格式的 `index.json`
## 变更内容
- 修改 jq 输出参数,添加 `-c` 选项
- 添加 JSON 有效性验证步骤
## 预期收益
- 减少 index.json 文件体积 20-40%
- 提升客户端加载性能
## 验证
- [x] 本地测试 jq -c 输出正确
- [x] JSON 格式验证通过
🤖 Generated with [Claude Code](https://claude.com/claude-code)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Release Notes
* **New Features**
* Added HTTP index-based package source support for discovering and
downloading packages from custom servers.
* Introduced global license management with configuration persistence
and sync status tracking.
* Enabled multi-source package management, supporting local folders,
GitHub Releases, and HTTP index sources.
* **Improvements**
* Removed animated view transitions for instantaneous page switching.
* Enhanced data integrity with JSON validation in configuration
workflows.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
v0.1.1
前置 Tag: v0.1.0
Tag 时间
提交数
1
Fixes electron app packaging and startup issues (#5)
提交: b0bd9af
Addresses issues that prevented the packaged Electron application from
starting correctly.
- Prevents the DevTools from opening automatically in production builds,
enhancing the user experience.
- Corrects the loading path for the renderer process, ensuring the
application interface loads properly from the asar archive.
- Maximizes the application window on startup and allows to open
hagicode url in app.