# Libby handoff — enable Foster→Michel multi-user return routing

## Purpose
Apply Michel's tested callback-routing update so completed verifications return through Foster to the original Foster user/chat instead of Jeff's private Michel DM.

## What Libby must do
On the Michel Windows server, open **PowerShell as Administrator** and run exactly:

```powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\MCSJAgent\foster-ask-michel\install-windows-callback-route.ps1
```

No passwords, API keys, or public-key material should be typed or shared.

## Expected behavior
The script will:

1. Install the locally tested, final-response-only signed callback adapter.
2. Change the `ask-michel` route from Jeff's Telegram DM to a fixed loopback callback.
3. Stage a separate callback HMAC secret through the existing protected SFTP home.
4. Permit only the required SSH reverse-listen port while retaining the existing webhook forward restriction.
5. Validate `sshd_config`, restart SSH and Michel's Hermes gateway, and test webhook health.
6. Roll back the adapter, route, and SSH configuration automatically if validation fails.

## Expected success proof
After the command completes, this file must exist:

```text
C:\MCSJAgent\proof\foster-callback-windows-install.json
```

Its `Status` field must be `SUCCESS`. The expected verified fields are:

```json
{
  "Status": "SUCCESS",
  "AdapterCompiled": true,
  "RouteDelivery": "http_callback",
  "CallbackUrl": "http://127.0.0.1:18645/webhooks/michel-result",
  "CallbackSecretStaged": true,
  "Sshd": "Running",
  "Port22": true,
  "WebhookHealth": "ok"
}
```

## What to send Jeff/Michel afterward
Send only one of these:

- `LIBBY_WINDOWS_CALLBACK_STATUS=SUCCESS`
- The complete PowerShell error text if it fails

Do not send the contents of any secret file or `webhook_subscriptions.json`.

## Current validation state
Before elevation, Michel verified:

- PowerShell installer parse errors: 0
- Staged Python adapter compiles
- Callback integration test passes
- Preview callbacks: 0
- Final callbacks: 1
- HMAC verification: passes
- Origin/chat/thread preservation: passes
- Non-loopback callback targets: rejected
- Automatic Foster session-origin capture test: passes

## Remaining work after success
Michel will verify the Windows proof, finish the Sal Phase 3 Linux package, install the reverse callback tunnel and Foster result webhook, and run an end-to-end test from an originating Foster user route.
