Publish wiki from 5089df0
Source of truth is wiki/ in the code repo. Do not edit here - browser
edits are overwritten on the next publish.
Publish wiki from 39465a6
Source of truth is wiki/ in the code repo. Do not edit here - browser
edits are overwritten on the next publish.
Publish wiki from 6c023d4
Source of truth is wiki/ in the code repo. Do not edit here - browser
edits are overwritten on the next publish.
Publish wiki from 05246db
Source of truth is wiki/ in the code repo. Do not edit here - browser
edits are overwritten on the next publish.
Rewrite service pages: fix 30 stale log paths, throttle restarts, add real health checks
Three defects across the six service pages (EN + ZH x macOS/Windows/Linux).
Stale log paths. v0.2.3 changed the active log to a dated filename, so 30
references across 10 pages pointed at a file nothing writes to any more -
every documented tail and grep silently matched nothing. The two
Logging-Troubleshooting pages carried 11 each.
Crash loops at boot. startRelay exits 1 when upstream preflight fails, and
at boot the network is frequently not up yet, so every platform restarted
it immediately and forever. macOS had KeepAlive: true with no throttle,
Linux Restart=always with RestartSec=5, Windows RestartCount 999. All
three now throttle, and macOS/Linux use SuccessfulExit: false /
Restart=on-failure so a clean `copilot-relay stop` is not fought by the
supervisor.
Verification proved nothing. Every page verified with curl /healthz, which
is a static handler. /v1/models is no better - it maps config and never
contacts upstream. A relay whose Copilot token expired an hour ago passes
both. Pages now document three layers and state what each does and does
not prove; only POST /v1/messages exercises token refresh and a real
Copilot call. Verified against a live relay: 200, reply 'ok', usage
in=13 out=5.
Windows page additionally corrects settings whose defaults are wrong for a
long-lived service, verified against Microsoft Learn:
- ExecutionTimeLimit defaults to PT72H and Task Scheduler *terminates* the
task at that point. A healthy relay dies after 3 days and it looks like
a normal completion. Fingerprint is LastTaskResult 267014.
PowerShell's [TimeSpan]::Zero does not reliably serialize to PT0S, so
the page now includes a post-registration check and an XML fallback
rather than asserting it works.
- StopIfGoingOnBatteries and DisallowStartIfOnBatteries both default true,
so both switches are required on a laptop.
- -DisallowStartIfOnBatteries is not a cmdlet parameter; the old page
passed it.
- RestartCount applies only on failure, so exit 0 is never undone by it.
- Execute node.exe directly: npm's Windows shims put a shell between Task
Scheduler and the relay, and process-tree termination is unreliable once
that shell exits.
Refs D0n9X1n/copilot-relay#29
Split wiki by platform and language
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>