Update the Copilot Session Tracker server binaries on an existing Azure App Service deployment. Use after updating the plugin to deploy new server code.
Deploys updated server binaries to an existing Azure App Service. This is a quick update operation, not a full provisioning flow. If you need to change infrastructure settings, use the deploy skill instead.
Before starting, verify:
az account show --query "name" -o tsv
binaries/ relative to this skill's directory (${CLAUDE_PLUGIN_ROOT}/skills/update-server/binaries/). If it doesn't exist, the plugin package may be incomplete.Ask the user for:
copilot-trackerIf the user has a config file at ~/.copilot/copilot-tracker-config.json, suggest reading the serverUrl from it to derive the app name. For example:
$config = Get-Content "$env:USERPROFILE\.copilot\copilot-tracker-config.json" | ConvertFrom-Json
# The serverUrl typically looks like https://<app-name>.azurewebsites.net
# Extract the app name from it
az webapp show --name $appName --resource-group $rgName --query "state" -o tsv
If the App Service doesn't exist, tell the user to run the deploy skill first for initial setup. Do not proceed.
# Create zip from the binaries directory
$skillDir = "${CLAUDE_PLUGIN_ROOT}/skills/update-server"
$zipPath = Join-Path $env:TEMP "copilot-tracker-update.zip"
Compress-Archive -Path "$skillDir/binaries/*" -DestinationPath $zipPath -Force
# Deploy to App Service
az webapp deploy --resource-group $rgName --name $appName --src-path $zipPath --type zip --clean true
The --clean true flag ensures old files are removed before deploying new ones. This is important so stale assemblies don't linger.
# Wait for the app to restart
Start-Sleep -Seconds 15
# Check health endpoint
$appUrl = (az webapp show --name $appName --resource-group $rgName --query "defaultHostName" -o tsv)
try {
$health = Invoke-RestMethod -Uri "https://$appUrl/api/health" -TimeoutSec 30
# Report success with health check details
} catch {
# The app may still be starting up after deployment
# Suggest waiting 30-60 seconds and retrying manually
}
Report to the user:
https://<app-name>.azurewebsites.net)Invoke-RestMethod -Uri "https://<app-url>/api/health"binaries/ relative to this skill.deploy skill.deploy skill.