feat: Add directives system and DOS management utilities
Implemented comprehensive directives system for agent coordination: - Created directives.md (590 lines) - Core operational rules defining coordinator vs executor roles, agent delegation patterns, and coding standards (NO EMOJIS, ASCII markers only) - Added DIRECTIVES_ENFORCEMENT.md - Documentation of enforcement mechanisms and checklist for validating compliance - Created refresh-directives command - Allows reloading directives after Gitea updates without restarting Claude Code - Updated checkpoint and save commands to verify directives compliance - Updated .claude/claude.md to mandate reading directives.md first Added DOS system management PowerShell utilities: - check-bat-on-nas.ps1 - Verify BAT files on NAS match source - check-latest-errors.ps1 - Scan DOS error logs for recent issues - check-plink-references.ps1 - Find plink.exe usage in scripts - check-scp-errors.ps1 - Analyze SCP transfer errors - check-sync-log.ps1 (modified) - Enhanced sync log analysis - check-sync-status.ps1 - Monitor sync process status - copy-to-nas-now.ps1 - Manual NAS file deployment - find-error-logging.ps1 - Locate error logging patterns - fix-copy-tonas-logging.ps1 - Repair logging in copy scripts - fix-dos-files.ps1 - Batch DOS file corrections - fix-line-break.ps1 - Fix line ending issues - fix-plink-usage.ps1 - Modernize plink.exe to WinRM - push-fixed-bat-files.ps1 - Deploy corrected BAT files - run-sync-direct.ps1 - Direct sync execution - test-error-logging.ps1 - Validate error logging functionality - trigger-sync-push.ps1 - Initiate sync push operations - verify-error-logging.ps1 - Confirm error logging working - scripts/fix-ad2-error-logging.ps1 - Fix AD2 error logging Added Gitea password management scripts: - Reset-GiteaPassword.ps1 - Windows PowerShell password reset - reset-gitea-password.sh - Unix shell password reset Key architectural decisions: - Directives system establishes clear separation between Main Claude (coordinator) and specialized agents (executors) - DOS utilities modernize legacy plink.exe usage to WinRM - Error logging enhancements improve troubleshooting capabilities - All scripts follow PSScriptAnalyzer standards Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
104
Reset-GiteaPassword.ps1
Normal file
104
Reset-GiteaPassword.ps1
Normal file
@@ -0,0 +1,104 @@
|
||||
# Reset Gitea password for mike@azcomputerguru.com via SSH
|
||||
# Runs on Jupiter server (172.16.3.20)
|
||||
|
||||
$JupiterHost = "172.16.3.20"
|
||||
$JupiterUser = "root"
|
||||
$JupiterPassword = "Th1nk3r^99##"
|
||||
|
||||
Write-Host "=== Gitea Password Reset ===" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
|
||||
# Prompt for new password
|
||||
$NewPassword = Read-Host "Enter new Gitea password" -AsSecureString
|
||||
$ConfirmPassword = Read-Host "Confirm password" -AsSecureString
|
||||
|
||||
# Convert to plain text for comparison
|
||||
$NewPasswordPlain = [Runtime.InteropServices.Marshal]::PtrToStringAuto(
|
||||
[Runtime.InteropServices.Marshal]::SecureStringToBSTR($NewPassword))
|
||||
$ConfirmPasswordPlain = [Runtime.InteropServices.Marshal]::PtrToStringAuto(
|
||||
[Runtime.InteropServices.Marshal]::SecureStringToBSTR($ConfirmPassword))
|
||||
|
||||
if ($NewPasswordPlain -ne $ConfirmPasswordPlain) {
|
||||
Write-Host "[ERROR] Passwords do not match" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
|
||||
if ([string]::IsNullOrWhiteSpace($NewPasswordPlain)) {
|
||||
Write-Host "[ERROR] Password cannot be empty" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "[1] Connecting to Jupiter server..." -ForegroundColor Yellow
|
||||
|
||||
# Build SSH command to reset Gitea password in Docker container
|
||||
$GiteaCommand = @"
|
||||
# Find Gitea Docker container
|
||||
echo '[1] Finding Gitea container...'
|
||||
CONTAINER=`$(docker ps --filter 'name=gitea' --format '{{.Names}}' | head -n 1)
|
||||
|
||||
if [ -z "`$CONTAINER" ]; then
|
||||
echo '[ERROR] Cannot find Gitea container'
|
||||
echo 'Available containers:'
|
||||
docker ps --format '{{.Names}}'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo '[OK] Found container: '`$CONTAINER
|
||||
echo ''
|
||||
echo '[2] Resetting password for mike@azcomputerguru.com...'
|
||||
|
||||
# Execute gitea admin command inside container
|
||||
# Try username 'mike' first, then email
|
||||
docker exec `$CONTAINER gitea admin user change-password --username mike --password '$NewPasswordPlain' 2>&1 || \
|
||||
docker exec `$CONTAINER gitea admin user change-password --username mike@azcomputerguru.com --password '$NewPasswordPlain' 2>&1
|
||||
|
||||
if [ `$? -eq 0 ]; then
|
||||
echo ''
|
||||
echo '[SUCCESS] Password changed successfully!'
|
||||
exit 0
|
||||
else
|
||||
echo ''
|
||||
echo '[ERROR] Failed to change password'
|
||||
exit 1
|
||||
fi
|
||||
"@
|
||||
|
||||
# Execute via SSH using plink (or ssh if available)
|
||||
try {
|
||||
if (Get-Command plink -ErrorAction SilentlyContinue) {
|
||||
# Use PuTTY's plink
|
||||
$result = echo y | plink -ssh -batch -pw $JupiterPassword "$JupiterUser@$JupiterHost" $GiteaCommand 2>&1
|
||||
} elseif (Get-Command ssh -ErrorAction SilentlyContinue) {
|
||||
# Use OpenSSH
|
||||
# Note: This will prompt for password interactively
|
||||
Write-Host "[INFO] Using OpenSSH - you'll need to enter root password: $JupiterPassword" -ForegroundColor Yellow
|
||||
$result = ssh "$JupiterUser@$JupiterHost" $GiteaCommand 2>&1
|
||||
} else {
|
||||
Write-Host "[ERROR] No SSH client found (plink or ssh)" -ForegroundColor Red
|
||||
Write-Host ""
|
||||
Write-Host "Manual steps:" -ForegroundColor Yellow
|
||||
Write-Host "1. SSH to Jupiter: ssh root@172.16.3.20" -ForegroundColor Gray
|
||||
Write-Host "2. Find container: docker ps | grep gitea" -ForegroundColor Gray
|
||||
Write-Host "3. Reset password: docker exec <container_name> gitea admin user change-password --username mike --password 'YOUR_PASSWORD'" -ForegroundColor Gray
|
||||
exit 1
|
||||
}
|
||||
|
||||
Write-Host $result
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "=== Password Reset Complete ===" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
Write-Host "Login at: https://git.azcomputerguru.com/" -ForegroundColor Green
|
||||
Write-Host "Username: mike@azcomputerguru.com (or just 'mike')" -ForegroundColor Green
|
||||
Write-Host "Password: (the one you just set)" -ForegroundColor Green
|
||||
|
||||
} catch {
|
||||
Write-Host ""
|
||||
Write-Host "[ERROR] Failed to connect: $($_.Exception.Message)" -ForegroundColor Red
|
||||
Write-Host ""
|
||||
Write-Host "Manual alternative:" -ForegroundColor Yellow
|
||||
Write-Host "1. SSH to Jupiter: ssh root@172.16.3.20 (password: $JupiterPassword)" -ForegroundColor Gray
|
||||
Write-Host "2. Find Gitea container: docker ps | grep gitea" -ForegroundColor Gray
|
||||
Write-Host "3. Reset password: docker exec <container_name> gitea admin user change-password --username mike --password 'YOUR_PASSWORD'" -ForegroundColor Gray
|
||||
}
|
||||
Reference in New Issue
Block a user