follow-ups: restart/up clear flap mark, [flapping] badge, PTY_ROOT length backstop (#57)
Three low-priority follow-ups to #56 and #55.
1. `pty restart` and `pty up` clear the fast-fail bookkeeping.
Manual restart is an operator "please try again" signal — dropping
`strategy.status`, `strategy.consecutive-fast-fails`,
`strategy.last-respawn-at`, and `strategy.command-hash` gives the
restart a clean slate, so the next `pty gc` tick isn't a no-op
against a stale flag. Auto-reset on command-hash divergence already
handled the toml-edit case; this handles operator-intervenes-
without-edit. Applies to both `cmdRestart` and `cmdUp`'s
"already running, tag-sync" branch.
2. `pty list` renders `[flapping]` in place of `[permanent]` when a
session carries `strategy.status=flapping`. Red instead of yellow —
the operator's expectation has changed, so the badge reflects it.
3. Startup-time PTY_ROOT length backstop. When the resolved root's
byte length + a default `/<8-char-id>.sock` suffix (14 bytes)
would exceed sockaddr_un's 104-byte kernel limit, `pty` errors
before any subcommand runs. Error names the root and points the
finger at the root, not the session name — the previous spawn-time
error read as if the name were the problem. Backstop respects
`--root <shorter>` overrides.
7 new tests in tests/gc-flap-clear-badge-root-len.test.ts cover:
restart clears bookkeeping, list shows [flapping] and hides
[permanent] when both would apply, list still shows [permanent]
otherwise, backstop errors on `pty list` with too-deep root,
backstop fires before subcommand parsing, root at usable threshold
succeeds, `--root <shorter>` overrides a too-long env.
Full suite: 1231 passed, 21 skipped, 0 failed.