# OpenCode Desktop workshop examples

These two standalone files are a reference implementation for a new beginner OpenCode Desktop book. Double-click either HTML file to run it from `file://`; it needs no server, library, font, upload, or network connection.

The workshop rows are synthetic: Document clinic (2030-10-03, 14:00, Room B, 12/13), AI review hour (2030-10-04, 11:15, Online, 10/6), and Prompt lab (2030-10-05, 09:30, Room A, 8/8). After **Use sample** and **Analyze**, the report output is **3 sessions, capacity 30, registered 27, available 4, overbooked 1**. The board also shows raw free seats (3) and per-session clamped availability (4).

The CSV example requires the exact header `title,date,time,place,capacity,registered`, six nonempty unquoted fields per row, ISO dates, 24-hour times, and nonnegative safe-integer counts. Invalid input replaces (and clears) any prior report. Buttons perform local deterministic work only—there is no captured Desktop UI and no model-run claim.

Run the narrow verifier from this directory:

```text
node verify.mjs
```

If the managed Chromium test binary is absent but Microsoft Edge is already
installed, set `PLAYWRIGHT_CHANNEL=msedge` for this command. It starts a separate
headless test profile, does not attach to an existing browser or OpenCode, and
does not take screenshots.

Useful selectors: board `#search`, `#filters`, `#reset`, `#session-rows`, `#empty-state`; report `#csv-input`, `#sample`, `#analyze`, `#error`, and `#report-sessions`, `#report-capacity`, `#report-registered`, `#report-available`, `#report-overbooked`.
