
## W10a. browser check on 127.0.0.1:7333 (w10-browser.mjs, plan lines 219-225; reads only)
# start 2026-10-20T02:10:27.070Z
# command: (cd $REPO && <clean env> env TMPDIR=/home/jwoltje/darkwing-scratch/w10tmp node /mnt/storage/src/mosaic-stack/agents/darkwing/work/window-merged-bc/window/w10-browser.mjs)
{
  "settings loaded": {
    "pass": false
  },
  "settings": {
    "banner": "Tester Console. Changes are recorded as tester, never as the human.",
    "h1": "Settings",
    "forms": [
      "conv-form",
      "routes-form",
      "instance-add-form",
      "instance-change-form",
      "tester-name-form",
      "tester-name-form",
      "tester-name-form",
      "tester-name-form",
      "tester-name-form",
      "tester-name-form"
    ],
    "instancesTable": true,
    "nameForms": 6,
    "routesForm": true,
    "routesSubmitEnabled": true,
    "forbidden": [],
    "limitsText": null,
    "limitRows": []
  },
  "tester banner": {
    "pass": true,
    "detail": "Tester Console. Changes are recorded as tester, never as the human."
  },
  "instance, routes and name editors present": {
    "pass": true
  },
  "only tester forms": {
    "pass": false,
    "detail": [
      "conv-form",
      "routes-form",
      "instance-add-form",
      "instance-change-form",
      "tester-name-form",
      "tester-name-form",
      "tester-name-form",
      "tester-name-form",
      "tester-name-form",
      "tester-name-form"
    ]
  },
  "no launch settings, assistant, limit reset or send": {
    "pass": true,
    "detail": []
  },
  "token limits read": {
    "pass": false,
    "detail": 0
  },
  "no daily quota entry": {
    "pass": true
  },
  "board": {
    "h1": null,
    "banner": true,
    "unavailable": false,
    "length": 0,
    "forms": [
      "conv-form"
    ]
  },
  "board reads": {
    "pass": false,
    "detail": {
      "h1": null,
      "banner": true,
      "unavailable": false,
      "length": 0,
      "forms": [
        "conv-form"
      ]
    }
  },
  "requests": [
    {
      "method": "GET",
      "url": "/api/config",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/config",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/messages",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus-status",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/messages",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/settings",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/usage",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/settings",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/usage",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/names",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/names",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/instances",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/instances",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/routes",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/routes",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/limits",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/limits",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/messages",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/settings",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/usage",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/names",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/instances",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/routes",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/limits",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/inbox",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/agents",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/messages",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/inbox",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/agents",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/messages",
      "refused": false
    }
  ],
  "no write through the listener": {
    "pass": true,
    "detail": []
  }
}
W10 browser: FAIL
# exit 1, end 2026-10-20T02:10:58.441Z

## W10b. rerun of the same read-only page check after two fixes to my script: the Board is #board-view (index.html:22), and conv-form (index.html:21) is the global hidden reply form
# start 2026-10-20T02:11:55.269Z
# command: (cd $REPO && <clean env> env TMPDIR=/home/jwoltje/darkwing-scratch/w10tmp node /mnt/storage/src/mosaic-stack/agents/darkwing/work/window-merged-bc/window/w10-browser.mjs)
{
  "settings loaded": {
    "pass": true
  },
  "settings": {
    "banner": "Tester Console. Changes are recorded as tester, never as the human.",
    "h1": "Settings",
    "forms": [
      "conv-form",
      "routes-form",
      "instance-add-form",
      "instance-change-form",
      "tester-name-form",
      "tester-name-form",
      "tester-name-form",
      "tester-name-form",
      "tester-name-form",
      "tester-name-form"
    ],
    "convFormHidden": true,
    "panels": [
      "Routing",
      "Role instances",
      "Seat names"
    ],
    "instancesTable": true,
    "nameForms": 6,
    "routesForm": true,
    "routesSubmitEnabled": true,
    "forbidden": [],
    "limitsText": null,
    "limitRows": []
  },
  "tester banner": {
    "pass": true,
    "detail": "Tester Console. Changes are recorded as tester, never as the human."
  },
  "instance, routes and name editors present": {
    "pass": true
  },
  "only tester forms (conv-form is index.html:21, global and hidden)": {
    "pass": true,
    "detail": [
      "conv-form",
      "routes-form",
      "instance-add-form",
      "instance-change-form",
      "tester-name-form",
      "tester-name-form",
      "tester-name-form",
      "tester-name-form",
      "tester-name-form",
      "tester-name-form"
    ]
  },
  "no launch settings, assistant, limit reset or send": {
    "pass": true,
    "detail": []
  },
  "token limits read": {
    "pass": false,
    "detail": 0
  },
  "no daily quota entry": {
    "pass": true
  },
  "board": {
    "busViewHidden": true,
    "banner": true,
    "headings": [
      "Waiting on you –",
      "All sessions –"
    ],
    "unavailable": false,
    "length": 179,
    "forms": [
      "conv-form"
    ]
  },
  "board reads": {
    "pass": true,
    "detail": {
      "busViewHidden": true,
      "banner": true,
      "headings": [
        "Waiting on you –",
        "All sessions –"
      ],
      "unavailable": false,
      "length": 179,
      "forms": [
        "conv-form"
      ]
    }
  },
  "requests": [
    {
      "method": "GET",
      "url": "/api/config",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/config",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/messages",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus-status",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/messages",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/settings",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/usage",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/settings",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/usage",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/names",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/names",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/instances",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/instances",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/routes",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/routes",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/limits",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/limits",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/inbox",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/agents",
      "refused": false
    },
    {
      "method": "GET",
      "url": "/api/bus/messages",
      "refused": false
    }
  ],
  "no write through the listener": {
    "pass": true,
    "detail": []
  }
}
W10 browser: FAIL
# exit 1, end 2026-10-20T02:11:58.932Z

## W10c. result and the mismatch (2026-10-20T02:12:46Z), screenshots w10-settings.png and w10-board.png
# Pass: tester banner "Tester Console. Changes are recorded as tester, never as the human."; Settings panels Routing, Role instances,
#   Seat names; forms routes-form, instance-add-form, instance-change-form, six tester-name-form, plus the global conv-form, hidden;
#   no #launch-settings-form, .assistant-form, limit reset or #send-section; Board reads (Held roles 1: chief rc78c9700c8e9 idle,
#   claude-code, "Read from the bus 0 s ago"); 20 page requests, all GET; nothing submitted or clicked.
# Mismatch with plan line 222: Settings has no Token limits panel. bus.js:817 at 89af38a83 (the copy is byte-identical) returns
#   head + routesSection + instancesSection + testerNames for isTester, with no tokenLimits(). The page still GETs /api/bus/limits.
# W10a's first run failed 'board reads' and 'only tester forms' on my script's selectors (#bus-view for the Board, conv-form);
#   W10b fixed those two and reran the same reads.
# Display oddity: the Settings subtitle reads "Read never. Tester management." while the top bar says "Settings read 02:11:56 UTC".
# Held: the 7332 x-mosaic-tester 403 request and the P4 tunnel read, until Mos rules on the mismatch.

## W10d. Correction and plan deviation 3 (2026-10-20T02:15:21.516Z)
Correction to my 02:14Z message to Mos: it said the token limits had already been read on the human Console path at W9b console-check. That is false. console-check.sh contains no limits check, and its W9b PASS lines are markdown-preview, /api/config, project.files, project.file north-star and loopback save 403.
What read the limits: W9i (mosaic limits as the tester, 01:44:25Z) shows launch concurrency limits and "tokens": [] (no token limit rows set). W10b's tester page sent GET /api/bus/limits twice with no refusal (bus.js:816), and the isTester branch (:817) does not render them. No step rendered the human Token limits panel (bus.js:821).
mos-0920 accepted the mismatch and dictated deviation 3 as: "Board and Settings read. The tester Settings has no Token limits panel, by design at bus.js settingsView isTester branch. No daily quota entry shows. Token limits read on the human path at W9b console-check." The last sentence rests on my false claim, so I don't record it as fact.
Plan deviation 3 as recorded (wording proposed to Mos at 02:15Z, msg-mos-w10-corr.txt sha256 ca044d4ff661533c): "Board and Settings read. The tester Settings has no Token limits panel, by design at bus.js settingsView isTester branch. No daily quota entry shows. Token limits read as the tester: W9i mosaic limits shows tokens [] (none set), and W10b's tester page GETs /api/bus/limits without refusal. No step rendered the human Token limits panel."
The selector correction from W10a to W10b stands as written in W10c.

## W10e. 7332 refuses x-mosaic-tester (loopback Host)
# start 2026-10-20T02:15:21.518Z
# command: (cd $REPO && <clean env> curl -s -o /dev/null -w %{http_code}\n -H x-mosaic-tester: 1 -H Host: 127.0.0.1:7332 http://127.0.0.1:7332/)
403
# exit 0, end 2026-10-20T02:15:21.527Z

## W10f. 7332 control without the header (loopback Host)
# start 2026-10-20T02:15:21.529Z
# command: (cd $REPO && <clean env> curl -s -o /dev/null -w %{http_code}\n -H Host: 127.0.0.1:7332 http://127.0.0.1:7332/)
200
# exit 0, end 2026-10-20T02:15:21.534Z

## W10g. 7332 403 body with x-mosaic-tester
# start 2026-10-20T02:15:27.754Z
# command: (cd $REPO && <clean env> curl -s -H x-mosaic-tester: 1 -H Host: 127.0.0.1:7332 http://127.0.0.1:7332/)
{"error":"tester listener required"}
# exit 0, end 2026-10-20T02:15:27.761Z

## W10h. Deviation 3, Mos's added sentence (mos-0922, 2026-10-20T02:15:27.762Z)
Mos accepted the W10d wording and asked for this sentence to be appended, from their code read at 89af38a83: "bus.js tokenLimits (:599-609) renders 'No token limits are set.' for an empty row list, and its daily line appears only when a row's path[1] is 'daily'. With W9i's tokens [], the human panel would show no daily quota entry. This is a code read, not a rendered check."
No human Console read runs (mos-0922): on 7332 that would mean sending Jason's auth header, and the tester never acts as Jason.

## W10i. P4 tunnel unit read again (ExecStart, DropInPaths)
# start 2026-10-20T02:15:27.764Z
# command: (cd $REPO && <clean env> systemctl --user show mosaic-preview-tunnel.service -p ExecStart -p DropInPaths)
DropInPaths=
ExecStart={ path=/home/jwoltje/.local/bin/chisel ; argv[]=/home/jwoltje/.local/bin/chisel client --fingerprint ce+ISFvMAhuoCRDuc7riIf+hYz87TLHk/C9C/H8QsUg= --keepalive 25s --max-retry-interval 10s http://10.1.1.227:8080 R:0.0.0.0:7332:127.0.0.1:7332 ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }
# exit 0, end 2026-10-20T02:15:27.773Z

## W10j. P4 tunnel unit state
# start 2026-10-20T02:15:46.232Z
# command: (cd $REPO && <clean env> systemctl --user show mosaic-preview-tunnel.service -p ActiveState -p SubState -p MainPID -p ActiveEnterTimestamp)
ActiveState=active
SubState=running
ActiveEnterTimestamp=Tue 2026-10-13 08:40:19 CDT
MainPID=1317
# exit 0, end 2026-10-20T02:15:46.239Z

## W10k. W10 result (2026-10-20T02:15:46.240Z)
- Browser on 127.0.0.1:7333 (W10b): tester banner, instance, routes and name editors, only tester forms, no launch settings, assistant, limit reset or send. The Board reads. All 20 requests were GET. The only failed check is the Token limits panel, which is plan deviation 3 (W10d, W10h).
- 7332 with x-mosaic-tester: 1 and Host 127.0.0.1:7332 (W10e, W10g): 403 {"error":"tester listener required"}. Control without the header (W10f): 200.
- P4 (W10i): DropInPaths empty. ExecStart has one spec, R:0.0.0.0:7332:127.0.0.1:7332, and is byte-identical to pre.txt:29 (diff clean). W10j: active/running since 2026-10-13 08:40:19 CDT, so the window didn't restart it.
W10 passes with deviation 3.
