빠른 win-x64 테스트 빌드용 PowerShell 스크립트 추가
인스톨러와 dist 패키징을 거치지 않고 AxCopilot.csproj만 Release + win-x64로 빌드해 src\AxCopilot\bin\Release\net8.0-windows10.0.17763.0\win-x64 출력물을 빠르게 갱신할 수 있도록 build-quick.ps1를 추가했습니다. 스크립트는 기본적으로 --no-restore 경로를 사용하고, 필요할 때만 -Restore를 수행하며, 잠금 대응용 -StopRunningApp과 정리용 -Clean 옵션을 함께 제공합니다. 검증: powershell -ExecutionPolicy Bypass -File .\build-quick.ps1 실행 성공, dotnet build src/AxCopilot/AxCopilot.csproj -c Release -r win-x64 경고 0 / 오류 0
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
# AX Commander
|
||||
|
||||
- 업데이트: 2026-04-15 20:06 (KST)
|
||||
- 빠른 로컬 테스트용 Windows 빌드 스크립트 [build-quick.ps1](/E:/AX%20Copilot%20-%20Codex/build-quick.ps1)를 추가했습니다. 인스톨러/`dist` 패키징 없이 `src/AxCopilot/AxCopilot.csproj`만 `dotnet build -c Release -r win-x64`로 빌드합니다.
|
||||
- 기본 출력 경로는 `src\AxCopilot\bin\Release\net8.0-windows10.0.17763.0\win-x64`이며, 기본 실행은 `--no-restore` 경로를 우선 사용해 반복 테스트 속도를 줄였습니다. 첫 실행이나 패키지 변경 시에는 `-Restore`, 실행 중 잠금이 있으면 `-StopRunningApp` 옵션을 사용할 수 있습니다.
|
||||
|
||||
- 업데이트: 2026-04-15 19:59 (KST)
|
||||
- AX Agent 스트리밍 중 탭 전환, 새 대화, 경과 시간이 멈춘 것처럼 보이던 회귀를 수정했습니다. `src/AxCopilot/Services/ChatSessionStateService.cs`는 탭별 마지막 대화 ID와 활성 탭이 실제로 바뀐 경우에만 설정 저장을 수행합니다.
|
||||
- 원인은 스트리밍 UI가 현재 대화를 다시 그릴 때마다 같은 세션 상태를 반복 저장하고, 그 저장이 `SettingsChanged`를 다시 발생시켜 `UpdateTabUI -> SwitchToTabConversation -> SaveLastConversations` 루프를 만들던 흐름이었습니다.
|
||||
|
||||
99
build-quick.ps1
Normal file
99
build-quick.ps1
Normal file
@@ -0,0 +1,99 @@
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[switch]$Restore,
|
||||
[switch]$Clean,
|
||||
[switch]$StopRunningApp
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
$root = Split-Path -Parent $MyInvocation.MyCommand.Path
|
||||
$project = Join-Path $root "src\AxCopilot\AxCopilot.csproj"
|
||||
$assetsFile = Join-Path $root "src\AxCopilot\obj\project.assets.json"
|
||||
$configuration = "Release"
|
||||
$runtime = "win-x64"
|
||||
$targetFramework = "net8.0-windows10.0.17763.0"
|
||||
$output = Join-Path $root "src\AxCopilot\bin\$configuration\$targetFramework\$runtime"
|
||||
|
||||
function Invoke-Dotnet {
|
||||
param(
|
||||
[Parameter(Mandatory = $true)]
|
||||
[string[]]$Arguments
|
||||
)
|
||||
|
||||
Write-Host ("dotnet " + ($Arguments -join " ")) -ForegroundColor DarkGray
|
||||
& dotnet @Arguments
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
throw "dotnet command failed with exit code $LASTEXITCODE."
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "========================================" -ForegroundColor Cyan
|
||||
Write-Host " AX Copilot - Quick Build (Windows)" -ForegroundColor Cyan
|
||||
Write-Host "========================================" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
|
||||
if (-not (Test-Path $project)) {
|
||||
throw "Project file not found: $project"
|
||||
}
|
||||
|
||||
if ($StopRunningApp) {
|
||||
$running = Get-Process -Name "AxCopilot" -ErrorAction SilentlyContinue
|
||||
if ($running) {
|
||||
Write-Host "[0/3] Stopping running AxCopilot.exe..." -ForegroundColor Yellow
|
||||
$running | Stop-Process -Force
|
||||
}
|
||||
}
|
||||
|
||||
if ($Clean) {
|
||||
Write-Host "[1/3] Cleaning previous quick-build output..." -ForegroundColor Yellow
|
||||
Invoke-Dotnet -Arguments @(
|
||||
"clean", $project,
|
||||
"-c", $configuration,
|
||||
"-r", $runtime,
|
||||
"--nologo",
|
||||
"-v", "minimal"
|
||||
)
|
||||
}
|
||||
|
||||
$shouldRestore = $Restore -or -not (Test-Path $assetsFile)
|
||||
if ($shouldRestore) {
|
||||
Write-Host "[2/3] Restoring NuGet packages..." -ForegroundColor Yellow
|
||||
Invoke-Dotnet -Arguments @(
|
||||
"restore", $project,
|
||||
"-r", $runtime,
|
||||
"--nologo",
|
||||
"-v", "minimal"
|
||||
)
|
||||
}
|
||||
|
||||
Write-Host "[3/3] Building AxCopilot only (no installer, no publish)..." -ForegroundColor Yellow
|
||||
$buildArgs = @(
|
||||
"build", $project,
|
||||
"-c", $configuration,
|
||||
"-r", $runtime,
|
||||
"--nologo",
|
||||
"-v", "minimal",
|
||||
"-m",
|
||||
"-p:RunAnalyzersDuringBuild=false"
|
||||
)
|
||||
|
||||
if (-not $shouldRestore) {
|
||||
$buildArgs += "--no-restore"
|
||||
}
|
||||
|
||||
Invoke-Dotnet -Arguments $buildArgs
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "========================================" -ForegroundColor Green
|
||||
Write-Host " Quick Build Complete" -ForegroundColor Green
|
||||
Write-Host "========================================" -ForegroundColor Green
|
||||
Write-Host ""
|
||||
Write-Host ("Output: " + $output) -ForegroundColor Green
|
||||
Write-Host "Skipped: installer, dist packaging, obfuscation, publish bundle" -ForegroundColor Green
|
||||
Write-Host ""
|
||||
Write-Host "Examples:" -ForegroundColor Cyan
|
||||
Write-Host " .\build-quick.ps1"
|
||||
Write-Host " .\build-quick.ps1 -StopRunningApp"
|
||||
Write-Host " .\build-quick.ps1 -Restore -Clean"
|
||||
@@ -1529,3 +1529,7 @@ UI ?遺우쁽????域뱀뮆???귐뗫솯?醫딆춦 ???袁る퓮 ?臾믩씜 ??疫
|
||||
- `src/AxCopilot.Tests/Services/ChatSessionStateServiceTests.cs`에 `Save_DoesNotPersistOrRaiseEvents_WhenSessionStateIsUnchanged`, `Save_PersistsAndRaisesEvents_WhenSessionStateChanges`를 추가해 반복 저장 루프 회귀를 고정했습니다.
|
||||
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_streaming_tab_loop_fix\\ -p:IntermediateOutputPath=obj\\verify_streaming_tab_loop_fix\\` 경고 0 / 오류 0
|
||||
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "ChatSessionStateServiceTests|ChatStreamingUiPolicyTests|AxAgentExecutionEngineTests" -p:OutputPath=bin\\verify_streaming_tab_loop_fix_tests\\ -p:IntermediateOutputPath=obj\\verify_streaming_tab_loop_fix_tests\\` 통과 51
|
||||
업데이트: 2026-04-15 20:06 (KST)
|
||||
- 빠른 로컬 테스트 전용 Windows 스크립트 `build-quick.ps1`를 루트에 추가했습니다. 목적은 인스톨러 빌드와 `dist` 패키징을 건너뛰고 `src/AxCopilot/AxCopilot.csproj`만 직접 `Release + win-x64`로 빌드해 `src\\AxCopilot\\bin\\Release\\net8.0-windows10.0.17763.0\\win-x64` 출력물을 빠르게 갱신하는 것입니다.
|
||||
- 스크립트는 기본적으로 `dotnet build --no-restore` 경로를 사용하고, `obj\\project.assets.json`이 없거나 사용자가 `-Restore`를 준 경우에만 restore를 수행합니다. 잠금 문제를 줄이기 위해 `-StopRunningApp`, 출력물 정리를 원할 때 `-Clean` 옵션도 함께 지원합니다.
|
||||
- 검증: `powershell -ExecutionPolicy Bypass -File .\\build-quick.ps1` 실행으로 빠른 빌드 스크립트가 정상 완료되고 출력 경로가 갱신되는 것을 확인했습니다.
|
||||
|
||||
Reference in New Issue
Block a user