From d63af5dfd0cb5449928e97811bb1cdd98d8ad595 Mon Sep 17 00:00:00 2001 From: P S Kesavan Date: Sun, 6 Sep 2026 08:37:52 +0530 Subject: [PATCH 1/2] Light panel: illumination mode is the root of the control MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The panel had LED and laser as two independent rows. They are not two settings that happen to be adjacent — they are the two ways this instrument illuminates a sample, and the workflow alternates between them: the LED to find embryos, the laser to calibrate and acquire. So mode is the first question the panel asks, and each mode's own controls are disclosed beneath it. THE CONFIG WAS AN ECHO Mode cannot be derived from a value that is not read, and the laser config was not read. `readAll` polled beam and led from hardware; config was whatever the select's own `onchange` had last written. The entire laser branch rested on a request that returned 200 — the assumption #106 is made of. `DiSPIMLightSource.read()` has had the answer all along and no route exposed it; `GET /api/laser/configs` now returns `current` alongside the preset list. The string "unknown", which `read()` yields when the group cannot be queried, stays an em dash rather than becoming a preset name. BOTH OPEN IS A STATE, NOT AN IMPOSSIBILITY LED and Laser are two independent Micro-Manager config groups (`devices/optical.py`), so their exclusivity is a policy this panel asserts, not an interlock the hardware enforces. Both paths are wanted separately — `spim_head_focus` opens the LED on the SPIM camera by design — and #106 IS the overlap: `calibrateSelected` never closed the LED, so every vision frame was brightfield with a 50 ms laser gate on top and the detector hunted nuclei in a DIC-like image. So `mode()` returns `both`, and the panel states it. Collapsing the pair into an either/or would have made its own founding bug unrepresentable. Entering LED or Off mode gates the lines to ALL OFF, which is the documented brightfield-safe state (spec §2.7); entering laser mode only closes the LED. Routing a wavelength stays an explicit act, because it is an emission decision. BeamEnabled is left alone throughout — setting it No here would recreate the state #106 is about, that nothing sets back. Engaged and disclosed are different things and look different: filled when the device says a source is open, underlined when a branch is merely on screen so it can be configured on a dark rig. FOUND IN THE BROWSER, NOT IN A TEST Two things the DOM showed that the assertions had not: - armed beam, nothing routed reads as mode `off`, so the laser branch is closed — and `idleBeamNote` was inside it, invisible in the one state it describes. It is at the panel root now, with a test that says so. This is the resting state of the rig. - the mode word ("LED + laser") had nowhere to go in a 246 px panel and was clipped. Dropped: the buttons are the readout, and the two states a word would have added each have their own line already. RIG CHECK `getCurrentConfig` on the Laser group is one more property read per 10 s poll, and this scope already logs "Property read slow: 2.4s". Watch the device-layer log; the poll is easy to slow down if it bites. Verified in the browser across seven states (unknown, LED, off, armed and unrouted, routed with the beam off, laser emitting, both open) and by intercepting the writes each mode button issues. Co-Authored-By: Claude Opus 5 --- .claude/skills/gently-debugging/SKILL.md | 99 ++ .../page-2026-08-24T08-24-47-321Z.yml | 55 ++ .../page-2026-08-24T08-31-44-879Z.yml | 119 +++ .../page-2026-08-24T08-32-07-503Z.yml | 119 +++ .../page-2026-08-24T08-32-11-616Z.yml | 119 +++ .../page-2026-08-24T08-33-25-524Z.yml | 120 +++ .../page-2026-08-24T08-33-58-858Z.yml | 120 +++ .../page-2026-08-24T08-36-44-464Z.yml | 120 +++ .../page-2026-08-24T08-36-51-811Z.yml | 120 +++ .../page-2026-08-24T08-37-08-463Z.yml | 120 +++ .../page-2026-08-24T08-41-51-199Z.yml | 120 +++ .../page-2026-08-24T08-46-46-567Z.yml | 110 +++ .../page-2026-08-24T08-47-05-512Z.yml | 110 +++ .../page-2026-08-24T08-47-45-928Z.yml | 110 +++ .../page-2026-08-24T08-47-54-164Z.yml | 109 +++ .../page-2026-08-24T08-47-58-329Z.yml | 109 +++ .../page-2026-08-24T08-50-43-910Z.yml | 110 +++ .../page-2026-08-24T08-51-03-058Z.yml | 110 +++ .../page-2026-08-24T08-51-29-939Z.yml | 110 +++ .../page-2026-08-24T08-53-11-045Z.yml | 116 +++ .../page-2026-08-24T08-53-23-261Z.yml | 116 +++ .../page-2026-08-24T08-53-50-240Z.yml | 116 +++ .../page-2026-08-24T08-53-59-416Z.yml | 143 +++ .../page-2026-08-24T08-56-06-509Z.yml | 116 +++ .../page-2026-08-24T08-57-00-966Z.yml | 116 +++ .../page-2026-08-24T09-10-52-208Z.yml | 5 + .../page-2026-08-24T09-11-11-655Z.yml | 91 ++ .../page-2026-08-24T09-11-29-129Z.yml | 129 +++ .../page-2026-08-24T09-11-47-690Z.yml | 129 +++ .../page-2026-08-24T09-12-18-965Z.yml | 129 +++ .../page-2026-08-24T09-13-14-498Z.yml | 129 +++ .../page-2026-08-24T09-13-22-246Z.yml | 129 +++ .../page-2026-08-24T09-14-10-171Z.yml | 129 +++ .../page-2026-08-24T09-14-17-967Z.yml | 129 +++ .../page-2026-08-24T09-14-42-801Z.yml | 145 +++ .../page-2026-08-24T10-01-18-843Z.yml | 129 +++ .../page-2026-08-24T10-01-33-052Z.yml | 129 +++ .../page-2026-08-24T10-02-10-971Z.yml | 133 +++ .../page-2026-08-24T10-02-27-469Z.yml | 133 +++ .../page-2026-08-24T10-23-49-298Z.yml | 15 + .../page-2026-08-24T10-24-09-942Z.yml | 101 ++ .../page-2026-08-24T10-25-20-312Z.yml | 66 ++ .../page-2026-08-24T10-28-46-304Z.yml | 90 ++ .../page-2026-08-24T10-47-51-863Z.yml | 135 +++ .../page-2026-08-24T10-47-53-531Z.yml | 95 ++ .../page-2026-08-24T10-48-32-457Z.yml | 135 +++ .../page-2026-08-24T10-48-36-247Z.yml | 101 ++ .../page-2026-08-24T10-49-06-442Z.yml | 135 +++ .../page-2026-08-24T10-50-18-696Z.yml | 135 +++ .../page-2026-08-24T11-06-20-407Z.yml | 15 + .../page-2026-08-24T11-06-28-827Z.yml | 107 +++ .../page-2026-08-24T11-08-03-712Z.yml | 30 + .../page-2026-08-24T11-09-01-644Z.yml | 136 +++ .../page-2026-08-24T11-15-14-413Z.yml | 101 ++ .../page-2026-08-24T11-15-33-212Z.yml | 182 ++++ .../page-2026-08-24T11-16-41-053Z.yml | 182 ++++ .../page-2026-08-24T11-27-27-635Z.yml | 190 ++++ .../page-2026-08-24T11-28-39-557Z.yml | 185 ++++ .../page-2026-08-24T11-31-58-359Z.yml | 187 ++++ .../page-2026-08-24T11-33-19-293Z.yml | 187 ++++ .../page-2026-08-24T12-08-23-205Z.yml | 187 ++++ .../page-2026-08-24T14-37-52-312Z.yml | 15 + .../page-2026-08-24T14-39-38-192Z.yml | 15 + .../page-2026-08-24T14-39-58-197Z.yml | 187 ++++ .../page-2026-08-24T16-46-40-043Z.yml | 187 ++++ .../page-2026-08-24T16-48-25-411Z.yml | 187 ++++ .../page-2026-08-24T16-52-59-488Z.yml | 187 ++++ .../page-2026-08-24T17-03-37-273Z.yml | 227 +++++ .../page-2026-08-24T17-04-27-719Z.yml | 235 +++++ .../page-2026-08-24T17-05-05-574Z.yml | 237 +++++ .../page-2026-08-24T17-09-01-122Z.yml | 156 +++ .../page-2026-08-24T17-15-39-371Z.yml | 239 +++++ .../page-2026-08-24T17-17-18-368Z.yml | 239 +++++ .../page-2026-08-24T17-18-26-267Z.yml | 239 +++++ .../page-2026-08-24T17-19-08-761Z.yml | 239 +++++ .../page-2026-08-24T17-22-01-622Z.yml | 239 +++++ .../page-2026-08-24T17-23-42-629Z.yml | 239 +++++ .../page-2026-08-24T17-25-28-775Z.yml | 239 +++++ .../page-2026-08-24T17-32-40-158Z.yml | 15 + .../page-2026-08-24T17-32-55-500Z.yml | 197 ++++ .../page-2026-08-24T17-32-59-398Z.yml | 197 ++++ .../page-2026-08-24T17-37-29-859Z.yml | 237 +++++ .../page-2026-08-24T17-38-36-679Z.yml | 237 +++++ .../page-2026-08-24T17-39-57-517Z.yml | 15 + .../page-2026-08-24T17-40-08-329Z.yml | 141 +++ .../page-2026-08-24T17-43-40-883Z.yml | 213 +++++ .../page-2026-08-24T17-45-43-734Z.yml | 213 +++++ .../page-2026-08-24T17-47-52-724Z.yml | 213 +++++ .../page-2026-08-24T17-48-41-014Z.yml | 213 +++++ .../page-2026-08-24T17-52-28-877Z.yml | 255 +++++ .../page-2026-08-24T17-53-08-343Z.yml | 94 ++ .../page-2026-08-25T04-24-23-601Z.yml | 255 +++++ .../page-2026-08-25T04-25-30-112Z.yml | 255 +++++ .../page-2026-08-25T04-28-26-847Z.yml | 94 ++ .../page-2026-08-25T04-31-18-916Z.yml | 255 +++++ .../page-2026-08-25T04-32-46-743Z.yml | 237 +++++ .../page-2026-08-25T04-46-45-503Z.yml | 342 +++++++ .../page-2026-08-27T02-47-38-186Z.yml | 19 + .../page-2026-08-27T02-50-48-468Z.yml | 219 +++++ .../page-2026-08-27T02-51-02-914Z.yml | 306 ++++++ .../page-2026-08-27T03-02-49-100Z.yml | 15 + .../page-2026-08-27T03-02-58-399Z.yml | 74 ++ canvas-surface-fit.png | Bin 0 -> 104128 bytes .../mockups/direction-a-instrument-dark.html | 701 ++++++++++++++ .../direction-b-optical-blueprint.html | 520 ++++++++++ .../mockups/direction-c-living-specimen.html | 896 ++++++++++++++++++ .../mockups/direction-calm-instrument.html | 134 +++ gently/hardware/dispim/device_layer.py | 14 +- gently/ui/web/static/css/operate.css | 42 + gently/ui/web/static/js/panels/light.js | 173 +++- screenshots/atrium-alarm-dimmed.png | Bin 0 -> 137946 bytes screenshots/atrium-current.png | Bin 0 -> 232515 bytes screenshots/atrium-live.png | Bin 0 -> 145762 bytes screenshots/audit-01-welcome.png | Bin 0 -> 854635 bytes screenshots/audit-02-plan-start.png | Bin 0 -> 809739 bytes screenshots/audit-03-plan-thinking.png | Bin 0 -> 939282 bytes screenshots/audit-04-step2.png | Bin 0 -> 926838 bytes screenshots/audit-05-continue.png | Bin 0 -> 232799 bytes screenshots/canvas-current.png | Bin 0 -> 73374 bytes screenshots/canvas-surface-fit.png | Bin 0 -> 100889 bytes screenshots/dir-a.png | Bin 0 -> 747546 bytes screenshots/dir-b.png | Bin 0 -> 474777 bytes screenshots/dir-c.png | Bin 0 -> 1109852 bytes screenshots/dir-calm.png | Bin 0 -> 152843 bytes screenshots/eln-experiment-detail-native.png | Bin 0 -> 356326 bytes screenshots/eln-experiment-detail.png | Bin 0 -> 353959 bytes screenshots/eln-ground-truth-authoring.png | Bin 0 -> 111288 bytes screenshots/eln-ground-truth-save-failed.png | Bin 0 -> 70013 bytes screenshots/eln-live-8088.png | Bin 0 -> 356746 bytes screenshots/eln-seed-programs-plans.png | Bin 0 -> 400158 bytes screenshots/eln-vitals-hf-push.png | Bin 0 -> 196319 bytes screenshots/launcher-mockup-barebasic.png | Bin 0 -> 288434 bytes screenshots/launcher-mockup-dark.png | Bin 0 -> 364944 bytes screenshots/launcher-mockup.png | Bin 0 -> 943268 bytes screenshots/notebook-ask-box.png | Bin 0 -> 404832 bytes screenshots/notebook-live-edge.png | Bin 0 -> 263086 bytes screenshots/notebook-tab-01.png | Bin 0 -> 207251 bytes screenshots/notebook-tab-02.png | Bin 0 -> 259076 bytes screenshots/occupancy3d-uxv2.png | Bin 0 -> 225095 bytes screenshots/p0-thinking-live.png | Bin 0 -> 1034074 bytes screenshots/plan-done-weird.png | Bin 0 -> 1015277 bytes screenshots/plan-item-run.png | Bin 0 -> 514746 bytes screenshots/plan-panel-redesign.png | Bin 0 -> 832253 bytes screenshots/plan-ready-export.png | Bin 0 -> 827099 bytes screenshots/plan-ready-state.png | Bin 0 -> 826558 bytes screenshots/pr78-tauri-linux-full.png | Bin 0 -> 423360 bytes screenshots/pr78-tauri-linux-window.png | Bin 0 -> 121901 bytes screenshots/uxv2-landing-live.png | Bin 0 -> 846969 bytes screenshots/uxv2-plan-live.png | Bin 0 -> 800915 bytes tests/js/light-panel.test.mjs | 32 + tests/test_light_panel_disclosure.py | 73 ++ uv.lock | 1 - 152 files changed, 17377 insertions(+), 23 deletions(-) create mode 100644 .claude/skills/gently-debugging/SKILL.md create mode 100644 .playwright-mcp/page-2026-08-24T08-24-47-321Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-31-44-879Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-32-07-503Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-32-11-616Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-33-25-524Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-33-58-858Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-36-44-464Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-36-51-811Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-37-08-463Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-41-51-199Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-46-46-567Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-47-05-512Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-47-45-928Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-47-54-164Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-47-58-329Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-50-43-910Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-51-03-058Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-51-29-939Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-53-11-045Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-53-23-261Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-53-50-240Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-53-59-416Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-56-06-509Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T08-57-00-966Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T09-10-52-208Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T09-11-11-655Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T09-11-29-129Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T09-11-47-690Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T09-12-18-965Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T09-13-14-498Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T09-13-22-246Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T09-14-10-171Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T09-14-17-967Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T09-14-42-801Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T10-01-18-843Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T10-01-33-052Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T10-02-10-971Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T10-02-27-469Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T10-23-49-298Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T10-24-09-942Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T10-25-20-312Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T10-28-46-304Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T10-47-51-863Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T10-47-53-531Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T10-48-32-457Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T10-48-36-247Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T10-49-06-442Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T10-50-18-696Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T11-06-20-407Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T11-06-28-827Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T11-08-03-712Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T11-09-01-644Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T11-15-14-413Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T11-15-33-212Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T11-16-41-053Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T11-27-27-635Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T11-28-39-557Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T11-31-58-359Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T11-33-19-293Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T12-08-23-205Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T14-37-52-312Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T14-39-38-192Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T14-39-58-197Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T16-46-40-043Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T16-48-25-411Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T16-52-59-488Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-03-37-273Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-04-27-719Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-05-05-574Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-09-01-122Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-15-39-371Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-17-18-368Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-18-26-267Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-19-08-761Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-22-01-622Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-23-42-629Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-25-28-775Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-32-40-158Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-32-55-500Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-32-59-398Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-37-29-859Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-38-36-679Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-39-57-517Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-40-08-329Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-43-40-883Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-45-43-734Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-47-52-724Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-48-41-014Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-52-28-877Z.yml create mode 100644 .playwright-mcp/page-2026-08-24T17-53-08-343Z.yml create mode 100644 .playwright-mcp/page-2026-08-25T04-24-23-601Z.yml create mode 100644 .playwright-mcp/page-2026-08-25T04-25-30-112Z.yml create mode 100644 .playwright-mcp/page-2026-08-25T04-28-26-847Z.yml create mode 100644 .playwright-mcp/page-2026-08-25T04-31-18-916Z.yml create mode 100644 .playwright-mcp/page-2026-08-25T04-32-46-743Z.yml create mode 100644 .playwright-mcp/page-2026-08-25T04-46-45-503Z.yml create mode 100644 .playwright-mcp/page-2026-08-27T02-47-38-186Z.yml create mode 100644 .playwright-mcp/page-2026-08-27T02-50-48-468Z.yml create mode 100644 .playwright-mcp/page-2026-08-27T02-51-02-914Z.yml create mode 100644 .playwright-mcp/page-2026-08-27T03-02-49-100Z.yml create mode 100644 .playwright-mcp/page-2026-08-27T03-02-58-399Z.yml create mode 100644 canvas-surface-fit.png create mode 100644 docs/superpowers/mockups/direction-a-instrument-dark.html create mode 100644 docs/superpowers/mockups/direction-b-optical-blueprint.html create mode 100644 docs/superpowers/mockups/direction-c-living-specimen.html create mode 100644 docs/superpowers/mockups/direction-calm-instrument.html create mode 100644 screenshots/atrium-alarm-dimmed.png create mode 100644 screenshots/atrium-current.png create mode 100644 screenshots/atrium-live.png create mode 100644 screenshots/audit-01-welcome.png create mode 100644 screenshots/audit-02-plan-start.png create mode 100644 screenshots/audit-03-plan-thinking.png create mode 100644 screenshots/audit-04-step2.png create mode 100644 screenshots/audit-05-continue.png create mode 100644 screenshots/canvas-current.png create mode 100644 screenshots/canvas-surface-fit.png create mode 100644 screenshots/dir-a.png create mode 100644 screenshots/dir-b.png create mode 100644 screenshots/dir-c.png create mode 100644 screenshots/dir-calm.png create mode 100644 screenshots/eln-experiment-detail-native.png create mode 100644 screenshots/eln-experiment-detail.png create mode 100644 screenshots/eln-ground-truth-authoring.png create mode 100644 screenshots/eln-ground-truth-save-failed.png create mode 100644 screenshots/eln-live-8088.png create mode 100644 screenshots/eln-seed-programs-plans.png create mode 100644 screenshots/eln-vitals-hf-push.png create mode 100644 screenshots/launcher-mockup-barebasic.png create mode 100644 screenshots/launcher-mockup-dark.png create mode 100644 screenshots/launcher-mockup.png create mode 100644 screenshots/notebook-ask-box.png create mode 100644 screenshots/notebook-live-edge.png create mode 100644 screenshots/notebook-tab-01.png create mode 100644 screenshots/notebook-tab-02.png create mode 100644 screenshots/occupancy3d-uxv2.png create mode 100644 screenshots/p0-thinking-live.png create mode 100644 screenshots/plan-done-weird.png create mode 100644 screenshots/plan-item-run.png create mode 100644 screenshots/plan-panel-redesign.png create mode 100644 screenshots/plan-ready-export.png create mode 100644 screenshots/plan-ready-state.png create mode 100644 screenshots/pr78-tauri-linux-full.png create mode 100644 screenshots/pr78-tauri-linux-window.png create mode 100644 screenshots/uxv2-landing-live.png create mode 100644 screenshots/uxv2-plan-live.png diff --git a/.claude/skills/gently-debugging/SKILL.md b/.claude/skills/gently-debugging/SKILL.md new file mode 100644 index 00000000..d23e56c5 --- /dev/null +++ b/.claude/skills/gently-debugging/SKILL.md @@ -0,0 +1,99 @@ +--- +name: gently-debugging +description: Use when debugging a Gently session, inspecting stored data, or tailing logs — the full D:/Gently3 file-store directory layout, log locations/tail commands, and the map of debugging data sources (traces, predictions, memory, session/timelapse state). +--- + +# Gently — debugging & data-source reference + +The Gently3 store is file-based under `D:\Gently3\` (env: `GENTLY_STORAGE_PATH`). No SQLite — everything is human-browsable files. See the resident `CLAUDE.md` for the store classes and architecture summary; this skill holds the full layout and debugging map. + +## Directory layout + +``` +D:/Gently3/ + gently.yaml # root manifest + sessions/ + _index.yaml # session_id -> folder_name mapping + {YYYYMMDD}_{HHMM}_{slug}_{id8}/ + session.yaml # metadata, config, organism + session.lock # PID + hostname (while active) + intent.yaml # planned vs actual + timelapse.yaml # checkpointed timelapse state + timeline.jsonl # session events + interaction_log.jsonl # agent conversation records + conversation.json # Claude API messages (resumption) + summary.yaml # auto-generated stats + perception_runs.yaml # run metadata + snapshots/{source}_{stem}.tif + embryos/{embryo_id}/ + embryo.yaml # position, calibration, uid + predictions.jsonl # per-timepoint summary + ground_truth.yaml # human annotations + timelapse.mp4 + volumes/t{NNNN}.tif + volumes/t{NNNN}.meta.yaml # shape, dtype, acquired_at, metadata + projections/t{NNNN}.jpg + traces/t{NNNN}.json # complete perception record + agent/ + state.yaml # key-value agent state + campaigns/{id}_{slug}/ + campaign.yaml + plan/current.yaml + plan/history/{YYYYMMDD_HHMM}.yaml + templates/{name}.yaml + projects/{id}_{slug}.yaml + session_intents/{session_id}.yaml + planned_sessions/{id}.yaml + learnings/{id}_{slug}.yaml + observations/{id}_{slug}.yaml + active/expectations.yaml + active/watchpoints.yaml + active/questions.yaml + embryo_understanding/{uid}.yaml + ml/pipelines/{id}.yaml + ml/runs/{id}.yaml + ml/assessments/{id}.yaml + logs/ + gently_{YYYYMMDD_HHMMSS}.log + device_layer_{YYYYMMDD_HHMMSS}.log + config/ + hardware.yaml + mesh/... + incoming/{uuid}.tif # transient device staging +``` + +### Legacy stores (D:\Gently2\ — read-only reference) +The old SQLite-based stores are preserved but no longer written to: +- `gently.db` (GentlyStore) — replaced by FileStore +- `context/agent_mind.db` (ContextStore) — replaced by FileContextStore +- `D:\gently\dataset.db` — legacy benchmarking DB + +## Logging + +Both the agent and device layer write logs to `D:\Gently3\logs\`: + +- **Agent**: `gently_YYYYMMDD_HHMMSS.log` — INFO+ to file, console level configurable via `-v` flag +- **Device layer**: `device_layer_YYYYMMDD_HHMMSS.log` — INFO level + +To check logs during a session: +```bash +# Latest agent log +tail -f D:/Gently3/logs/$(ls -t D:/Gently3/logs/gently_*.log | head -1) + +# Latest device layer log +tail -f D:/Gently3/logs/$(ls -t D:/Gently3/logs/device_layer_*.log | head -1) + +# Filter for errors +grep -E "ERROR|Traceback" D:/Gently3/logs/gently_*.log +``` + +## Debugging Data Sources + +- **Agent logs**: `D:\Gently3\logs\gently_*.log` +- **Device layer logs**: `D:\Gently3\logs\device_layer_*.log` +- **Perception traces**: `D:\Gently3\sessions\{session}\embryos\{embryo}\traces\` — per-timepoint JSON +- **Predictions**: `D:\Gently3\sessions\{session}\embryos\{embryo}\predictions.jsonl` +- **Volume staging**: `D:\Gently3\incoming\` +- **Agent memory**: `D:\Gently3\agent\` — campaigns, learnings, observations (all YAML) +- **Session state**: `D:\Gently3\sessions\{session}\session.yaml` +- **Timelapse state**: `D:\Gently3\sessions\{session}\timelapse.yaml` diff --git a/.playwright-mcp/page-2026-08-24T08-24-47-321Z.yml b/.playwright-mcp/page-2026-08-24T08-24-47-321Z.yml new file mode 100644 index 00000000..abb8bba2 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-24-47-321Z.yml @@ -0,0 +1,55 @@ +- generic [active] [ref=e1]: + - generic [ref=e2]: + - generic: + - generic [ref=e3]: BOTTOM CAMERA + - generic [ref=e9]: + - generic [ref=e10]: EMBRYOS · 4 + - generic [ref=e13]: + - generic [ref=e14]: + - generic [ref=e15] [cursor=pointer]: e01 1420, 880 + - generic [ref=e16] [cursor=pointer]: e02 1610, 905 + - generic [ref=e17] [cursor=pointer]: e03 1755, 1120 + - generic [ref=e18] [cursor=pointer]: e04 2010, 860 + - generic [ref=e19]: + - button "remap region" [ref=e20] [cursor=pointer] + - generic [ref=e21]: µm + - generic [ref=e22]: + - generic [ref=e23]: SPIM HEAD + - generic [ref=e26]: + - generic [ref=e27]: + - generic [ref=e28]: laser + - slider [ref=e29]: "35" + - generic [ref=e30]: 35% + - generic [ref=e31]: + - generic [ref=e32]: exposure + - slider [ref=e33]: "40" + - generic [ref=e34]: 40ms + - generic [ref=e35]: + - generic [ref=e36]: step + - slider [ref=e37]: "50" + - generic [ref=e38]: 50µm + - generic [ref=e39]: + - button "go to e02" [ref=e40] [cursor=pointer] + - button "HALT" [ref=e41] [cursor=pointer] + - generic [ref=e42]: + - generic [ref=e43]: STAGE + - generic [ref=e46]: + - generic [ref=e47]: + - generic [ref=e48]: x + - generic [ref=e49]: 1610.4 µm + - generic [ref=e50]: + - generic [ref=e51]: "y" + - generic [ref=e52]: 905.2 µm + - generic [ref=e53]: + - generic [ref=e54]: z + - generic [ref=e55]: "-12.8 µm" + - generic [ref=e56]: + - button "snap" [ref=e57] [cursor=pointer] + - button "live" [ref=e58] [cursor=pointer] + - generic [ref=e59]: drag empty space to pan · wheel to zoom · f fit · 1 100% + - generic [ref=e60]: + - button "+ calibration" [ref=e61] [cursor=pointer] + - button "+ agent" [ref=e62] [cursor=pointer] + - button "+ acquisition" [ref=e63] [cursor=pointer] + - button "fit" [ref=e64] [cursor=pointer] + - generic [ref=e65]: 132% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-31-44-879Z.yml b/.playwright-mcp/page-2026-08-24T08-31-44-879Z.yml new file mode 100644 index 00000000..08e31640 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-31-44-879Z.yml @@ -0,0 +1,119 @@ +- generic [active] [ref=f1e1]: + - generic [ref=f1e2]: + - generic: + - generic [ref=f1e3]: + - generic [ref=f1e4]: + - generic [ref=f1e5]: EMBRYOS · 4 + - generic [ref=f1e6]: live + - generic [ref=f1e7]: + - generic [ref=f1e8]: + - generic [ref=f1e9] [cursor=pointer]: e01 1420, 880 + - generic [ref=f1e10] [cursor=pointer]: e02 1610, 905 + - generic [ref=f1e11] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f1e12] [cursor=pointer]: e04 2010, 860 + - generic [ref=f1e13]: + - button "remap region" [ref=f1e14] [cursor=pointer] + - generic [ref=f1e15]: µm + - generic [ref=f1e16]: + - generic [ref=f1e17]: + - generic [ref=f1e18]: BOTTOM CAMERA + - generic [ref=f1e19]: live + - generic [ref=f1e23]: + - button "−" [ref=f1e24] [cursor=pointer] + - generic [ref=f1e25]: 1.0× + - button "+" [ref=f1e26] [cursor=pointer] + - generic [ref=f1e27]: + - generic [ref=f1e28]: + - generic [ref=f1e29]: SPIM HEAD + - generic [ref=f1e30]: ready + - generic [ref=f1e31]: + - generic [ref=f1e32]: + - generic [ref=f1e33]: laser + - slider [ref=f1e34]: "35" + - generic [ref=f1e35]: 35% + - generic [ref=f1e36]: + - generic [ref=f1e37]: exposure + - slider [ref=f1e38]: "40" + - generic [ref=f1e39]: 40ms + - generic [ref=f1e40]: + - generic [ref=f1e41]: step + - slider [ref=f1e42]: "50" + - generic [ref=f1e43]: 50µm + - generic [ref=f1e44]: + - button "go to e02" [ref=f1e45] [cursor=pointer] + - button "HALT" [ref=f1e46] [cursor=pointer] + - generic [ref=f1e47]: + - generic [ref=f1e48]: + - generic [ref=f1e49]: STAGE + - generic [ref=f1e50]: live + - generic [ref=f1e51]: + - generic [ref=f1e52]: + - generic [ref=f1e53]: x + - generic [ref=f1e54]: 1610.4 µm + - generic [ref=f1e55]: + - generic [ref=f1e56]: "y" + - generic [ref=f1e57]: 905.2 µm + - generic [ref=f1e58]: + - generic [ref=f1e59]: z + - generic [ref=f1e60]: "-12.8 µm" + - generic [ref=f1e61]: + - generic [ref=f1e62]: + - generic [ref=f1e63]: CALIBRATION · two-point + - generic [ref=f1e64]: stale + - generic [ref=f1e65]: + - generic [ref=f1e66]: + - generic [ref=f1e67]: source + - generic [ref=f1e68]: laser 488 + - generic [ref=f1e69]: + - generic [ref=f1e70]: point 1 + - generic [ref=f1e71]: captured + - generic [ref=f1e72]: + - generic [ref=f1e73]: point 2 + - generic [ref=f1e74]: — + - generic [ref=f1e75]: + - button "capture point 2" [ref=f1e76] [cursor=pointer] + - button "solve transform" [ref=f1e77] [cursor=pointer] + - generic [ref=f1e78]: + - generic [ref=f1e79]: + - generic [ref=f1e80]: ACQUISITION + - generic [ref=f1e81]: ready + - generic [ref=f1e82]: + - generic [ref=f1e83]: + - generic [ref=f1e84]: interval + - slider [ref=f1e85]: "100" + - generic [ref=f1e86]: 120s + - generic [ref=f1e87]: + - generic [ref=f1e88]: timepoints + - slider [ref=f1e89]: "60" + - generic [ref=f1e90]: "60" + - button "start" [ref=f1e92] [cursor=pointer] + - generic [ref=f1e93]: + - generic [ref=f1e94]: + - generic [ref=f1e95]: CURATOR + - generic [ref=f1e96]: live + - generic [ref=f1e97]: + - generic [ref=f1e98]: + - generic [ref=f1e99]: tracking + - generic [ref=f1e100]: e02 · bottom cam · stage + - generic [ref=f1e101]: + - generic [ref=f1e102]: stale + - generic [ref=f1e103]: calibration transform + - generic [ref=f1e104]: Calibration never completed. Acquisition would put e02 off-centre. + - generic [ref=f1e105]: + - button "show me" [ref=f1e106] [cursor=pointer] + - button "dismiss" [ref=f1e107] [cursor=pointer] + - generic [ref=f1e108]: "rule 5: keys 0–5 do this without me" + - generic [ref=f1e109]: + - generic [ref=f1e110]: + - generic [ref=f1e111]: EVENTS + - generic [ref=f1e112]: ready + - generic [ref=f1e113]: no events this session + - generic [ref=f1e115]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f1e116]: + - button "0 bench" [ref=f1e117] [cursor=pointer] + - button "1 detect" [ref=f1e118] [cursor=pointer] + - button "2 position" [ref=f1e119] [cursor=pointer] + - button "3 calibrate" [ref=f1e120] [cursor=pointer] + - button "4 acquire" [ref=f1e121] [cursor=pointer] + - button "5 curator" [ref=f1e122] [cursor=pointer] + - generic [ref=f1e123]: 182% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-32-07-503Z.yml b/.playwright-mcp/page-2026-08-24T08-32-07-503Z.yml new file mode 100644 index 00000000..cb232d01 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-32-07-503Z.yml @@ -0,0 +1,119 @@ +- generic [ref=f1e1]: + - generic [ref=f1e2]: + - generic: + - generic [ref=f1e3]: + - generic [ref=f1e4]: + - generic [ref=f1e5]: EMBRYOS · 4 + - generic [ref=f1e6]: live + - generic [ref=f1e7]: + - generic [ref=f1e8]: + - generic [ref=f1e9] [cursor=pointer]: e01 1420, 880 + - generic [ref=f1e10] [cursor=pointer]: e02 1610, 905 + - generic [ref=f1e11] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f1e12] [cursor=pointer]: e04 2010, 860 + - generic [ref=f1e13]: + - button "remap region" [ref=f1e14] [cursor=pointer] + - generic [ref=f1e15]: µm + - generic [ref=f1e16]: + - generic [ref=f1e17]: + - generic [ref=f1e18]: BOTTOM CAMERA + - generic [ref=f1e19]: live + - generic [ref=f1e23]: + - button "−" [ref=f1e24] [cursor=pointer] + - generic [ref=f1e25]: 1.0× + - button "+" [ref=f1e26] [cursor=pointer] + - generic [ref=f1e27]: + - generic [ref=f1e28]: + - generic [ref=f1e29]: SPIM HEAD + - generic [ref=f1e30]: ready + - generic [ref=f1e31]: + - generic [ref=f1e32]: + - generic [ref=f1e33]: laser + - slider [ref=f1e34]: "35" + - generic [ref=f1e35]: 35% + - generic [ref=f1e36]: + - generic [ref=f1e37]: exposure + - slider [ref=f1e38]: "40" + - generic [ref=f1e39]: 40ms + - generic [ref=f1e40]: + - generic [ref=f1e41]: step + - slider [ref=f1e42]: "50" + - generic [ref=f1e43]: 50µm + - generic [ref=f1e44]: + - button "go to e02" [ref=f1e45] [cursor=pointer] + - button "HALT" [ref=f1e46] [cursor=pointer] + - generic [ref=f1e47]: + - generic [ref=f1e48]: + - generic [ref=f1e49]: STAGE + - generic [ref=f1e50]: live + - generic [ref=f1e51]: + - generic [ref=f1e52]: + - generic [ref=f1e53]: x + - generic [ref=f1e54]: 1610.4 µm + - generic [ref=f1e55]: + - generic [ref=f1e56]: "y" + - generic [ref=f1e57]: 905.2 µm + - generic [ref=f1e58]: + - generic [ref=f1e59]: z + - generic [ref=f1e60]: "-12.8 µm" + - generic [ref=f1e61]: + - generic [ref=f1e62]: + - generic [ref=f1e63]: CALIBRATION · two-point + - generic [ref=f1e64]: stale + - generic [ref=f1e65]: + - generic [ref=f1e66]: + - generic [ref=f1e67]: source + - generic [ref=f1e68]: laser 488 + - generic [ref=f1e69]: + - generic [ref=f1e70]: point 1 + - generic [ref=f1e71]: captured + - generic [ref=f1e72]: + - generic [ref=f1e73]: point 2 + - generic [ref=f1e74]: — + - generic [ref=f1e75]: + - button "capture point 2" [ref=f1e76] [cursor=pointer] + - button "solve transform" [ref=f1e77] [cursor=pointer] + - generic [ref=f1e78]: + - generic [ref=f1e79]: + - generic [ref=f1e80]: ACQUISITION + - generic [ref=f1e81]: ready + - generic [ref=f1e82]: + - generic [ref=f1e83]: + - generic [ref=f1e84]: interval + - slider [ref=f1e85]: "100" + - generic [ref=f1e86]: 120s + - generic [ref=f1e87]: + - generic [ref=f1e88]: timepoints + - slider [ref=f1e89]: "60" + - generic [ref=f1e90]: "60" + - button "start" [ref=f1e92] [cursor=pointer] + - generic [ref=f1e93]: + - generic [ref=f1e94]: + - generic [ref=f1e95]: CURATOR + - generic [ref=f1e96]: live + - generic [ref=f1e97]: + - generic [ref=f1e98]: + - generic [ref=f1e99]: tracking + - generic [ref=f1e100]: e02 · bottom cam · stage + - generic [ref=f1e101]: + - generic [ref=f1e102]: stale + - generic [ref=f1e103]: calibration transform + - generic [ref=f1e104]: Calibration never completed. Acquisition would put e02 off-centre. + - generic [ref=f1e105]: + - button "show me" [active] [ref=f1e106] [cursor=pointer] + - button "dismiss" [ref=f1e107] [cursor=pointer] + - generic [ref=f1e108]: "rule 5: keys 0–5 do this without me" + - generic [ref=f1e109]: + - generic [ref=f1e110]: + - generic [ref=f1e111]: EVENTS + - generic [ref=f1e112]: ready + - generic [ref=f1e113]: no events this session + - generic [ref=f1e115]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f1e116]: + - button "0 bench" [ref=f1e117] [cursor=pointer] + - button "1 detect" [ref=f1e118] [cursor=pointer] + - button "2 position" [ref=f1e119] [cursor=pointer] + - button "3 calibrate" [ref=f1e120] [cursor=pointer] + - button "4 acquire" [ref=f1e121] [cursor=pointer] + - button "5 curator" [ref=f1e122] [cursor=pointer] + - generic [ref=f1e123]: 76% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-32-11-616Z.yml b/.playwright-mcp/page-2026-08-24T08-32-11-616Z.yml new file mode 100644 index 00000000..9c904b8f --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-32-11-616Z.yml @@ -0,0 +1,119 @@ +- generic [ref=f1e1]: + - generic [ref=f1e2]: + - generic: + - generic [ref=f1e3]: + - generic [ref=f1e4]: + - generic [ref=f1e5]: EMBRYOS · 4 + - generic [ref=f1e6]: live + - generic [ref=f1e7]: + - generic [ref=f1e8]: + - generic [ref=f1e9] [cursor=pointer]: e01 1420, 880 + - generic [ref=f1e10] [cursor=pointer]: e02 1610, 905 + - generic [ref=f1e11] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f1e12] [cursor=pointer]: e04 2010, 860 + - generic [ref=f1e13]: + - button "remap region" [ref=f1e14] [cursor=pointer] + - generic [ref=f1e15]: µm + - generic [ref=f1e16]: + - generic [ref=f1e17]: + - generic [ref=f1e18]: BOTTOM CAMERA + - generic [ref=f1e19]: live + - generic [ref=f1e23]: + - button "−" [ref=f1e24] [cursor=pointer] + - generic [ref=f1e25]: 1.0× + - button "+" [ref=f1e26] [cursor=pointer] + - generic [ref=f1e27]: + - generic [ref=f1e28]: + - generic [ref=f1e29]: SPIM HEAD + - generic [ref=f1e30]: ready + - generic [ref=f1e31]: + - generic [ref=f1e32]: + - generic [ref=f1e33]: laser + - slider [ref=f1e34]: "35" + - generic [ref=f1e35]: 35% + - generic [ref=f1e36]: + - generic [ref=f1e37]: exposure + - slider [ref=f1e38]: "40" + - generic [ref=f1e39]: 40ms + - generic [ref=f1e40]: + - generic [ref=f1e41]: step + - slider [ref=f1e42]: "50" + - generic [ref=f1e43]: 50µm + - generic [ref=f1e44]: + - button "go to e02" [ref=f1e45] [cursor=pointer] + - button "HALT" [ref=f1e46] [cursor=pointer] + - generic [ref=f1e47]: + - generic [ref=f1e48]: + - generic [ref=f1e49]: STAGE + - generic [ref=f1e50]: live + - generic [ref=f1e51]: + - generic [ref=f1e52]: + - generic [ref=f1e53]: x + - generic [ref=f1e54]: 1610.4 µm + - generic [ref=f1e55]: + - generic [ref=f1e56]: "y" + - generic [ref=f1e57]: 905.2 µm + - generic [ref=f1e58]: + - generic [ref=f1e59]: z + - generic [ref=f1e60]: "-12.8 µm" + - generic [ref=f1e61]: + - generic [ref=f1e62]: + - generic [ref=f1e63]: CALIBRATION · two-point + - generic [ref=f1e64]: stale + - generic [ref=f1e65]: + - generic [ref=f1e66]: + - generic [ref=f1e67]: source + - generic [ref=f1e68]: laser 488 + - generic [ref=f1e69]: + - generic [ref=f1e70]: point 1 + - generic [ref=f1e71]: captured + - generic [ref=f1e72]: + - generic [ref=f1e73]: point 2 + - generic [ref=f1e74]: — + - generic [ref=f1e75]: + - button "capture point 2" [ref=f1e76] [cursor=pointer] + - button "solve transform" [ref=f1e77] [cursor=pointer] + - generic [ref=f1e78]: + - generic [ref=f1e79]: + - generic [ref=f1e80]: ACQUISITION + - generic [ref=f1e81]: ready + - generic [ref=f1e82]: + - generic [ref=f1e83]: + - generic [ref=f1e84]: interval + - slider [ref=f1e85]: "100" + - generic [ref=f1e86]: 120s + - generic [ref=f1e87]: + - generic [ref=f1e88]: timepoints + - slider [ref=f1e89]: "60" + - generic [ref=f1e90]: "60" + - button "start" [ref=f1e92] [cursor=pointer] + - generic [ref=f1e93]: + - generic [ref=f1e94]: + - generic [ref=f1e95]: CURATOR + - generic [ref=f1e96]: live + - generic [ref=f1e97]: + - generic [ref=f1e98]: + - generic [ref=f1e99]: tracking + - generic [ref=f1e100]: e02 · bottom cam · stage + - generic [ref=f1e101]: + - generic [ref=f1e102]: stale + - generic [ref=f1e103]: calibration transform + - generic [ref=f1e104]: Calibration never completed. Acquisition would put e02 off-centre. + - generic [ref=f1e105]: + - button "show me" [active] [ref=f1e106] [cursor=pointer] + - button "dismiss" [ref=f1e107] [cursor=pointer] + - generic [ref=f1e108]: "rule 5: keys 0–5 do this without me" + - generic [ref=f1e109]: + - generic [ref=f1e110]: + - generic [ref=f1e111]: EVENTS + - generic [ref=f1e112]: ready + - generic [ref=f1e113]: no events this session + - generic [ref=f1e115]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f1e116]: + - button "0 bench" [ref=f1e117] [cursor=pointer] + - button "1 detect" [ref=f1e118] [cursor=pointer] + - button "2 position" [ref=f1e119] [cursor=pointer] + - button "3 calibrate" [ref=f1e120] [cursor=pointer] + - button "4 acquire" [ref=f1e121] [cursor=pointer] + - button "5 curator" [ref=f1e122] [cursor=pointer] + - generic [ref=f1e123]: 224% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-33-25-524Z.yml b/.playwright-mcp/page-2026-08-24T08-33-25-524Z.yml new file mode 100644 index 00000000..3b8d479a --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-33-25-524Z.yml @@ -0,0 +1,120 @@ +- generic [active] [ref=f2e1]: + - generic [ref=f2e2]: + - generic: + - generic [ref=f2e3]: + - generic [ref=f2e4]: + - generic [ref=f2e5]: EMBRYOS · 4 + - generic [ref=f2e6]: live + - generic [ref=f2e7]: + - generic [ref=f2e8]: + - generic [ref=f2e9] [cursor=pointer]: e01 1420, 880 + - generic [ref=f2e10] [cursor=pointer]: e02 1610, 905 + - generic [ref=f2e11] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f2e12] [cursor=pointer]: e04 2010, 860 + - generic [ref=f2e13]: + - button "remap region" [ref=f2e14] [cursor=pointer] + - generic [ref=f2e15]: µm + - generic [ref=f2e16]: + - generic [ref=f2e17]: + - generic [ref=f2e18]: BOTTOM CAMERA + - generic [ref=f2e19]: live + - generic [ref=f2e23]: + - button "−" [ref=f2e24] [cursor=pointer] + - generic [ref=f2e25]: 1.0× + - button "+" [ref=f2e26] [cursor=pointer] + - generic [ref=f2e27]: + - generic [ref=f2e28]: + - generic [ref=f2e29]: SPIM HEAD + - generic [ref=f2e30]: ready + - generic [ref=f2e31]: + - generic [ref=f2e32]: + - generic [ref=f2e33]: laser + - slider [ref=f2e34]: "35" + - generic [ref=f2e35]: 35% + - generic [ref=f2e36]: + - generic [ref=f2e37]: exposure + - slider [ref=f2e38]: "40" + - generic [ref=f2e39]: 40ms + - generic [ref=f2e40]: + - generic [ref=f2e41]: step + - slider [ref=f2e42]: "50" + - generic [ref=f2e43]: 50µm + - generic [ref=f2e44]: + - button "go to e02" [ref=f2e45] [cursor=pointer] + - button "HALT" [ref=f2e46] [cursor=pointer] + - generic [ref=f2e47]: + - generic [ref=f2e48]: + - generic [ref=f2e49]: STAGE + - generic [ref=f2e50]: live + - generic [ref=f2e51]: + - generic [ref=f2e52]: + - generic [ref=f2e53]: x + - generic [ref=f2e54]: 1610.4 µm + - generic [ref=f2e55]: + - generic [ref=f2e56]: "y" + - generic [ref=f2e57]: 905.2 µm + - generic [ref=f2e58]: + - generic [ref=f2e59]: z + - generic [ref=f2e60]: "-12.8 µm" + - generic [ref=f2e61]: + - generic [ref=f2e62]: + - generic [ref=f2e63]: CALIBRATION · two-point + - generic [ref=f2e64]: stale + - generic [ref=f2e65]: + - generic [ref=f2e66]: + - generic [ref=f2e67]: source + - generic [ref=f2e68]: laser 488 + - generic [ref=f2e69]: + - generic [ref=f2e70]: point 1 + - generic [ref=f2e71]: captured + - generic [ref=f2e72]: + - generic [ref=f2e73]: point 2 + - generic [ref=f2e74]: — + - generic [ref=f2e75]: + - button "capture point 2" [ref=f2e76] [cursor=pointer] + - button "solve transform" [ref=f2e77] [cursor=pointer] + - generic [ref=f2e78]: + - generic [ref=f2e79]: + - generic [ref=f2e80]: ACQUISITION + - generic [ref=f2e81]: ready + - generic [ref=f2e82]: + - generic [ref=f2e83]: + - generic [ref=f2e84]: interval + - slider [ref=f2e85]: "100" + - generic [ref=f2e86]: 120s + - generic [ref=f2e87]: + - generic [ref=f2e88]: timepoints + - slider [ref=f2e89]: "60" + - generic [ref=f2e90]: "60" + - button "start" [ref=f2e92] [cursor=pointer] + - generic [ref=f2e93]: + - generic [ref=f2e94]: + - generic [ref=f2e95]: CURATOR + - generic [ref=f2e96]: live + - generic [ref=f2e97]: + - generic [ref=f2e98]: + - generic [ref=f2e99]: tracking + - generic [ref=f2e100]: e02 · bottom cam · stage + - generic [ref=f2e101]: + - generic [ref=f2e102]: stale + - generic [ref=f2e103]: calibration transform + - generic [ref=f2e104]: Calibration never completed. Acquisition would put e02 off-centre. + - generic [ref=f2e105]: + - button "show me" [ref=f2e106] [cursor=pointer] + - button "dismiss" [ref=f2e107] [cursor=pointer] + - generic [ref=f2e108]: "rule 5: keys 0–5 do this without me" + - generic [ref=f2e109]: + - generic [ref=f2e110]: + - generic [ref=f2e111]: EVENTS + - generic [ref=f2e112]: ready + - generic [ref=f2e113]: no events this session + - generic [ref=f2e115]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f2e116]: + - button "0 home" [ref=f2e117] [cursor=pointer] + - button "1 detect" [ref=f2e118] [cursor=pointer] + - button "2 position" [ref=f2e119] [cursor=pointer] + - button "3 calibrate" [ref=f2e120] [cursor=pointer] + - button "4 acquire" [ref=f2e121] [cursor=pointer] + - button "5 curator" [ref=f2e122] [cursor=pointer] + - button "bench" [ref=f2e123] [cursor=pointer] + - generic [ref=f2e124]: 114% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-33-58-858Z.yml b/.playwright-mcp/page-2026-08-24T08-33-58-858Z.yml new file mode 100644 index 00000000..f1b67e04 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-33-58-858Z.yml @@ -0,0 +1,120 @@ +- generic [active] [ref=f3e1]: + - generic [ref=f3e2]: + - generic: + - generic [ref=f3e3]: + - generic [ref=f3e4]: + - generic [ref=f3e5]: EMBRYOS · 4 + - generic [ref=f3e6]: live + - generic [ref=f3e7]: + - generic [ref=f3e8]: + - generic [ref=f3e9] [cursor=pointer]: e01 1420, 880 + - generic [ref=f3e10] [cursor=pointer]: e02 1610, 905 + - generic [ref=f3e11] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f3e12] [cursor=pointer]: e04 2010, 860 + - generic [ref=f3e13]: + - button "remap region" [ref=f3e14] [cursor=pointer] + - generic [ref=f3e15]: µm + - generic [ref=f3e16]: + - generic [ref=f3e17]: + - generic [ref=f3e18]: BOTTOM CAMERA + - generic [ref=f3e19]: live + - generic [ref=f3e23]: + - button "−" [ref=f3e24] [cursor=pointer] + - generic [ref=f3e25]: 1.0× + - button "+" [ref=f3e26] [cursor=pointer] + - generic [ref=f3e27]: + - generic [ref=f3e28]: + - generic [ref=f3e29]: SPIM HEAD + - generic [ref=f3e30]: ready + - generic [ref=f3e31]: + - generic [ref=f3e32]: + - generic [ref=f3e33]: laser + - slider [ref=f3e34]: "35" + - generic [ref=f3e35]: 35% + - generic [ref=f3e36]: + - generic [ref=f3e37]: exposure + - slider [ref=f3e38]: "40" + - generic [ref=f3e39]: 40ms + - generic [ref=f3e40]: + - generic [ref=f3e41]: step + - slider [ref=f3e42]: "50" + - generic [ref=f3e43]: 50µm + - generic [ref=f3e44]: + - button "go to e02" [ref=f3e45] [cursor=pointer] + - button "HALT" [ref=f3e46] [cursor=pointer] + - generic [ref=f3e47]: + - generic [ref=f3e48]: + - generic [ref=f3e49]: STAGE + - generic [ref=f3e50]: live + - generic [ref=f3e51]: + - generic [ref=f3e52]: + - generic [ref=f3e53]: x + - generic [ref=f3e54]: 1610.4 µm + - generic [ref=f3e55]: + - generic [ref=f3e56]: "y" + - generic [ref=f3e57]: 905.2 µm + - generic [ref=f3e58]: + - generic [ref=f3e59]: z + - generic [ref=f3e60]: "-12.8 µm" + - generic [ref=f3e61]: + - generic [ref=f3e62]: + - generic [ref=f3e63]: CALIBRATION · two-point + - generic [ref=f3e64]: stale + - generic [ref=f3e65]: + - generic [ref=f3e66]: + - generic [ref=f3e67]: source + - generic [ref=f3e68]: laser 488 + - generic [ref=f3e69]: + - generic [ref=f3e70]: point 1 + - generic [ref=f3e71]: captured + - generic [ref=f3e72]: + - generic [ref=f3e73]: point 2 + - generic [ref=f3e74]: — + - generic [ref=f3e75]: + - button "capture point 2" [ref=f3e76] [cursor=pointer] + - button "solve transform" [ref=f3e77] [cursor=pointer] + - generic [ref=f3e78]: + - generic [ref=f3e79]: + - generic [ref=f3e80]: ACQUISITION + - generic [ref=f3e81]: ready + - generic [ref=f3e82]: + - generic [ref=f3e83]: + - generic [ref=f3e84]: interval + - slider [ref=f3e85]: "100" + - generic [ref=f3e86]: 120s + - generic [ref=f3e87]: + - generic [ref=f3e88]: timepoints + - slider [ref=f3e89]: "60" + - generic [ref=f3e90]: "60" + - button "start" [ref=f3e92] [cursor=pointer] + - generic [ref=f3e93]: + - generic [ref=f3e94]: + - generic [ref=f3e95]: CURATOR + - generic [ref=f3e96]: live + - generic [ref=f3e97]: + - generic [ref=f3e98]: + - generic [ref=f3e99]: tracking + - generic [ref=f3e100]: e02 · bottom cam · stage + - generic [ref=f3e101]: + - generic [ref=f3e102]: stale + - generic [ref=f3e103]: calibration transform + - generic [ref=f3e104]: Calibration never completed. Acquisition would put e02 off-centre. + - generic [ref=f3e105]: + - button "show me" [ref=f3e106] [cursor=pointer] + - button "dismiss" [ref=f3e107] [cursor=pointer] + - generic [ref=f3e108]: "rule 5: keys 0–5 do this without me" + - generic [ref=f3e109]: + - generic [ref=f3e110]: + - generic [ref=f3e111]: EVENTS + - generic [ref=f3e112]: ready + - generic [ref=f3e113]: no events this session + - generic [ref=f3e115]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f3e116]: + - button "0 home" [ref=f3e117] [cursor=pointer] + - button "1 detect" [ref=f3e118] [cursor=pointer] + - button "2 position" [ref=f3e119] [cursor=pointer] + - button "3 calibrate" [ref=f3e120] [cursor=pointer] + - button "4 acquire" [ref=f3e121] [cursor=pointer] + - button "5 curator" [ref=f3e122] [cursor=pointer] + - button "bench" [ref=f3e123] [cursor=pointer] + - generic [ref=f3e124]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-36-44-464Z.yml b/.playwright-mcp/page-2026-08-24T08-36-44-464Z.yml new file mode 100644 index 00000000..1e47ab2c --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-36-44-464Z.yml @@ -0,0 +1,120 @@ +- generic [active] [ref=f4e1]: + - generic [ref=f4e2]: + - generic: + - generic [ref=f4e4]: + - button "▼" [ref=f4e5] [cursor=pointer] + - generic [ref=f4e6]: EMBRYOS · 4 + - generic [ref=f4e7]: 4 · e02 sel + - generic [ref=f4e8]: "0.462" + - generic [ref=f4e9]: live + - generic [ref=f4e10]: + - generic [ref=f4e11]: + - button "▼" [ref=f4e12] [cursor=pointer] + - generic [ref=f4e13]: BOTTOM CAMERA + - generic [ref=f4e14]: "0.935" + - generic [ref=f4e15]: live + - generic [ref=f4e19]: + - button "−" [ref=f4e20] [cursor=pointer] + - generic [ref=f4e21]: 1.0× + - button "+" [ref=f4e22] [cursor=pointer] + - generic [ref=f4e23]: + - generic [ref=f4e24]: + - button "▼" [ref=f4e25] [cursor=pointer] + - generic [ref=f4e26]: SPIM HEAD + - generic [ref=f4e27]: "0.52" + - generic [ref=f4e28]: ready + - generic [ref=f4e29]: + - generic [ref=f4e30]: + - generic [ref=f4e31]: laser + - slider [ref=f4e32]: "35" + - generic [ref=f4e33]: 35% + - generic [ref=f4e34]: + - generic [ref=f4e35]: exposure + - slider [ref=f4e36]: "40" + - generic [ref=f4e37]: 40ms + - generic [ref=f4e38]: + - generic [ref=f4e39]: step + - slider [ref=f4e40]: "50" + - generic [ref=f4e41]: 50µm + - generic [ref=f4e42]: + - button "go to e02" [ref=f4e43] [cursor=pointer] + - button "HALT" [ref=f4e44] [cursor=pointer] + - generic [ref=f4e45]: + - generic [ref=f4e46]: + - button "▼" [ref=f4e47] [cursor=pointer] + - generic [ref=f4e48]: STAGE + - generic [ref=f4e49]: "0.565" + - generic [ref=f4e50]: live + - generic [ref=f4e51]: + - generic [ref=f4e52]: + - generic [ref=f4e53]: x + - generic [ref=f4e54]: 1610.4 µm + - generic [ref=f4e55]: + - generic [ref=f4e56]: "y" + - generic [ref=f4e57]: 905.2 µm + - generic [ref=f4e58]: + - generic [ref=f4e59]: z + - generic [ref=f4e60]: "-12.8 µm" + - generic [ref=f4e61]: + - generic [ref=f4e62]: + - button "▼" [ref=f4e63] [cursor=pointer] + - generic [ref=f4e64]: CALIBRATION · two-point + - generic [ref=f4e65]: "0.617" + - generic [ref=f4e66]: stale + - generic [ref=f4e67]: + - generic [ref=f4e68]: + - generic [ref=f4e69]: source + - generic [ref=f4e70]: laser 488 + - generic [ref=f4e71]: + - generic [ref=f4e72]: point 1 + - generic [ref=f4e73]: captured + - generic [ref=f4e74]: + - generic [ref=f4e75]: point 2 + - generic [ref=f4e76]: — + - generic [ref=f4e77]: + - button "capture point 2" [ref=f4e78] [cursor=pointer] + - button "solve transform" [ref=f4e79] [cursor=pointer] + - generic [ref=f4e81]: + - button "▼" [ref=f4e82] [cursor=pointer] + - generic [ref=f4e83]: ACQUISITION + - generic [ref=f4e84]: idle · 120s × 60 + - generic [ref=f4e85]: "0.325" + - generic [ref=f4e86]: ready + - generic [ref=f4e87]: + - generic [ref=f4e88]: + - button "▼" [ref=f4e89] [cursor=pointer] + - generic [ref=f4e90]: CURATOR + - generic [ref=f4e91]: "0.588" + - generic [ref=f4e92]: live + - generic [ref=f4e93]: + - generic [ref=f4e94]: + - generic [ref=f4e95]: tracking + - generic [ref=f4e96]: e02 · bottom cam · stage + - generic [ref=f4e97]: + - generic [ref=f4e98]: stale + - generic [ref=f4e99]: calibration transform + - generic [ref=f4e100]: Calibration never completed. Acquisition would put e02 off-centre. + - generic [ref=f4e101]: + - button "show me" [ref=f4e102] [cursor=pointer] + - button "dismiss" [ref=f4e103] [cursor=pointer] + - generic [ref=f4e104]: "rule 5: keys 0–5 do this without me" + - generic [ref=f4e106]: + - button "▼" [ref=f4e107] [cursor=pointer] + - generic [ref=f4e108]: EVENTS + - generic [ref=f4e109]: none + - generic [ref=f4e110]: "0.134" + - generic [ref=f4e111]: ready + - generic [ref=f4e112]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f4e113]: + - button "0 home" [ref=f4e114] [cursor=pointer] + - button "1 detect" [ref=f4e115] [cursor=pointer] + - button "2 position" [ref=f4e116] [cursor=pointer] + - button "3 calibrate" [ref=f4e117] [cursor=pointer] + - button "4 acquire" [ref=f4e118] [cursor=pointer] + - button "5 curator" [ref=f4e119] [cursor=pointer] + - button "bench" [ref=f4e120] [cursor=pointer] + - generic [ref=f4e121]: + - text: density + - slider [ref=f4e122]: "5" + - generic [ref=f4e123]: "5" + - generic [ref=f4e124]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-36-51-811Z.yml b/.playwright-mcp/page-2026-08-24T08-36-51-811Z.yml new file mode 100644 index 00000000..2f261938 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-36-51-811Z.yml @@ -0,0 +1,120 @@ +- generic [ref=f4e1]: + - generic [ref=f4e2]: + - generic: + - generic [ref=f4e4]: + - button "▼" [ref=f4e5] [cursor=pointer] + - generic [ref=f4e6]: EMBRYOS · 4 + - generic [ref=f4e7]: 4 · e02 sel + - generic [ref=f4e8]: "0.462" + - generic [ref=f4e9]: live + - generic [ref=f4e10]: + - generic [ref=f4e11]: + - button "▼" [ref=f4e12] [cursor=pointer] + - generic [ref=f4e13]: BOTTOM CAMERA + - generic [ref=f4e14]: "0.935" + - generic [ref=f4e15]: live + - generic [ref=f4e19]: + - button "−" [ref=f4e20] [cursor=pointer] + - generic [ref=f4e21]: 1.0× + - button "+" [ref=f4e22] [cursor=pointer] + - generic [ref=f4e23]: + - generic [ref=f4e24]: + - button "▼" [ref=f4e25] [cursor=pointer] + - generic [ref=f4e26]: SPIM HEAD + - generic [ref=f4e27]: "0.52" + - generic [ref=f4e28]: ready + - generic [ref=f4e29]: + - generic [ref=f4e30]: + - generic [ref=f4e31]: laser + - slider [ref=f4e32]: "35" + - generic [ref=f4e33]: 35% + - generic [ref=f4e34]: + - generic [ref=f4e35]: exposure + - slider [ref=f4e36]: "40" + - generic [ref=f4e37]: 40ms + - generic [ref=f4e38]: + - generic [ref=f4e39]: step + - slider [ref=f4e40]: "50" + - generic [ref=f4e41]: 50µm + - generic [ref=f4e42]: + - button "go to e02" [ref=f4e43] [cursor=pointer] + - button "HALT" [ref=f4e44] [cursor=pointer] + - generic [ref=f4e45]: + - generic [ref=f4e46]: + - button "▼" [ref=f4e47] [cursor=pointer] + - generic [ref=f4e48]: STAGE + - generic [ref=f4e49]: "0.565" + - generic [ref=f4e50]: live + - generic [ref=f4e51]: + - generic [ref=f4e52]: + - generic [ref=f4e53]: x + - generic [ref=f4e54]: 1610.4 µm + - generic [ref=f4e55]: + - generic [ref=f4e56]: "y" + - generic [ref=f4e57]: 905.2 µm + - generic [ref=f4e58]: + - generic [ref=f4e59]: z + - generic [ref=f4e60]: "-12.8 µm" + - generic [ref=f4e61]: + - generic [ref=f4e62]: + - button "▼" [ref=f4e63] [cursor=pointer] + - generic [ref=f4e64]: CALIBRATION · two-point + - generic [ref=f4e65]: "0.617" + - generic [ref=f4e66]: stale + - generic [ref=f4e67]: + - generic [ref=f4e68]: + - generic [ref=f4e69]: source + - generic [ref=f4e70]: laser 488 + - generic [ref=f4e71]: + - generic [ref=f4e72]: point 1 + - generic [ref=f4e73]: captured + - generic [ref=f4e74]: + - generic [ref=f4e75]: point 2 + - generic [ref=f4e76]: — + - generic [ref=f4e77]: + - button "capture point 2" [ref=f4e78] [cursor=pointer] + - button "solve transform" [ref=f4e79] [cursor=pointer] + - generic [ref=f4e81]: + - button "▼" [ref=f4e82] [cursor=pointer] + - generic [ref=f4e83]: ACQUISITION + - generic [ref=f4e84]: idle · 120s × 60 + - generic [ref=f4e85]: "0.325" + - generic [ref=f4e86]: ready + - generic [ref=f4e87]: + - generic [ref=f4e88]: + - button "▼" [ref=f4e89] [cursor=pointer] + - generic [ref=f4e90]: CURATOR + - generic [ref=f4e91]: "0.588" + - generic [ref=f4e92]: live + - generic [ref=f4e93]: + - generic [ref=f4e94]: + - generic [ref=f4e95]: tracking + - generic [ref=f4e96]: e02 · bottom cam · stage + - generic [ref=f4e97]: + - generic [ref=f4e98]: stale + - generic [ref=f4e99]: calibration transform + - generic [ref=f4e100]: Calibration never completed. Acquisition would put e02 off-centre. + - generic [ref=f4e101]: + - button "show me" [ref=f4e102] [cursor=pointer] + - button "dismiss" [ref=f4e103] [cursor=pointer] + - generic [ref=f4e104]: "rule 5: keys 0–5 do this without me" + - generic [ref=f4e106]: + - button "▼" [ref=f4e107] [cursor=pointer] + - generic [ref=f4e108]: EVENTS + - generic [ref=f4e109]: none + - generic [ref=f4e110]: "0.134" + - generic [ref=f4e111]: ready + - generic [ref=f4e112]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f4e113]: + - button "0 home" [ref=f4e114] [cursor=pointer] + - button "1 detect" [ref=f4e115] [cursor=pointer] + - button "2 position" [ref=f4e116] [cursor=pointer] + - button "3 calibrate" [ref=f4e117] [cursor=pointer] + - button "4 acquire" [ref=f4e118] [cursor=pointer] + - button "5 curator" [ref=f4e119] [cursor=pointer] + - button "bench" [active] [ref=f4e120] [cursor=pointer] + - generic [ref=f4e121]: + - text: density + - slider [ref=f4e122]: "5" + - generic [ref=f4e123]: "5" + - generic [ref=f4e124]: 76% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-37-08-463Z.yml b/.playwright-mcp/page-2026-08-24T08-37-08-463Z.yml new file mode 100644 index 00000000..2f261938 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-37-08-463Z.yml @@ -0,0 +1,120 @@ +- generic [ref=f4e1]: + - generic [ref=f4e2]: + - generic: + - generic [ref=f4e4]: + - button "▼" [ref=f4e5] [cursor=pointer] + - generic [ref=f4e6]: EMBRYOS · 4 + - generic [ref=f4e7]: 4 · e02 sel + - generic [ref=f4e8]: "0.462" + - generic [ref=f4e9]: live + - generic [ref=f4e10]: + - generic [ref=f4e11]: + - button "▼" [ref=f4e12] [cursor=pointer] + - generic [ref=f4e13]: BOTTOM CAMERA + - generic [ref=f4e14]: "0.935" + - generic [ref=f4e15]: live + - generic [ref=f4e19]: + - button "−" [ref=f4e20] [cursor=pointer] + - generic [ref=f4e21]: 1.0× + - button "+" [ref=f4e22] [cursor=pointer] + - generic [ref=f4e23]: + - generic [ref=f4e24]: + - button "▼" [ref=f4e25] [cursor=pointer] + - generic [ref=f4e26]: SPIM HEAD + - generic [ref=f4e27]: "0.52" + - generic [ref=f4e28]: ready + - generic [ref=f4e29]: + - generic [ref=f4e30]: + - generic [ref=f4e31]: laser + - slider [ref=f4e32]: "35" + - generic [ref=f4e33]: 35% + - generic [ref=f4e34]: + - generic [ref=f4e35]: exposure + - slider [ref=f4e36]: "40" + - generic [ref=f4e37]: 40ms + - generic [ref=f4e38]: + - generic [ref=f4e39]: step + - slider [ref=f4e40]: "50" + - generic [ref=f4e41]: 50µm + - generic [ref=f4e42]: + - button "go to e02" [ref=f4e43] [cursor=pointer] + - button "HALT" [ref=f4e44] [cursor=pointer] + - generic [ref=f4e45]: + - generic [ref=f4e46]: + - button "▼" [ref=f4e47] [cursor=pointer] + - generic [ref=f4e48]: STAGE + - generic [ref=f4e49]: "0.565" + - generic [ref=f4e50]: live + - generic [ref=f4e51]: + - generic [ref=f4e52]: + - generic [ref=f4e53]: x + - generic [ref=f4e54]: 1610.4 µm + - generic [ref=f4e55]: + - generic [ref=f4e56]: "y" + - generic [ref=f4e57]: 905.2 µm + - generic [ref=f4e58]: + - generic [ref=f4e59]: z + - generic [ref=f4e60]: "-12.8 µm" + - generic [ref=f4e61]: + - generic [ref=f4e62]: + - button "▼" [ref=f4e63] [cursor=pointer] + - generic [ref=f4e64]: CALIBRATION · two-point + - generic [ref=f4e65]: "0.617" + - generic [ref=f4e66]: stale + - generic [ref=f4e67]: + - generic [ref=f4e68]: + - generic [ref=f4e69]: source + - generic [ref=f4e70]: laser 488 + - generic [ref=f4e71]: + - generic [ref=f4e72]: point 1 + - generic [ref=f4e73]: captured + - generic [ref=f4e74]: + - generic [ref=f4e75]: point 2 + - generic [ref=f4e76]: — + - generic [ref=f4e77]: + - button "capture point 2" [ref=f4e78] [cursor=pointer] + - button "solve transform" [ref=f4e79] [cursor=pointer] + - generic [ref=f4e81]: + - button "▼" [ref=f4e82] [cursor=pointer] + - generic [ref=f4e83]: ACQUISITION + - generic [ref=f4e84]: idle · 120s × 60 + - generic [ref=f4e85]: "0.325" + - generic [ref=f4e86]: ready + - generic [ref=f4e87]: + - generic [ref=f4e88]: + - button "▼" [ref=f4e89] [cursor=pointer] + - generic [ref=f4e90]: CURATOR + - generic [ref=f4e91]: "0.588" + - generic [ref=f4e92]: live + - generic [ref=f4e93]: + - generic [ref=f4e94]: + - generic [ref=f4e95]: tracking + - generic [ref=f4e96]: e02 · bottom cam · stage + - generic [ref=f4e97]: + - generic [ref=f4e98]: stale + - generic [ref=f4e99]: calibration transform + - generic [ref=f4e100]: Calibration never completed. Acquisition would put e02 off-centre. + - generic [ref=f4e101]: + - button "show me" [ref=f4e102] [cursor=pointer] + - button "dismiss" [ref=f4e103] [cursor=pointer] + - generic [ref=f4e104]: "rule 5: keys 0–5 do this without me" + - generic [ref=f4e106]: + - button "▼" [ref=f4e107] [cursor=pointer] + - generic [ref=f4e108]: EVENTS + - generic [ref=f4e109]: none + - generic [ref=f4e110]: "0.134" + - generic [ref=f4e111]: ready + - generic [ref=f4e112]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f4e113]: + - button "0 home" [ref=f4e114] [cursor=pointer] + - button "1 detect" [ref=f4e115] [cursor=pointer] + - button "2 position" [ref=f4e116] [cursor=pointer] + - button "3 calibrate" [ref=f4e117] [cursor=pointer] + - button "4 acquire" [ref=f4e118] [cursor=pointer] + - button "5 curator" [ref=f4e119] [cursor=pointer] + - button "bench" [active] [ref=f4e120] [cursor=pointer] + - generic [ref=f4e121]: + - text: density + - slider [ref=f4e122]: "5" + - generic [ref=f4e123]: "5" + - generic [ref=f4e124]: 76% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-41-51-199Z.yml b/.playwright-mcp/page-2026-08-24T08-41-51-199Z.yml new file mode 100644 index 00000000..7078a01d --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-41-51-199Z.yml @@ -0,0 +1,120 @@ +- generic [active] [ref=f5e1]: + - generic [ref=f5e2]: + - generic: + - generic [ref=f5e4]: + - button "▼" [ref=f5e5] [cursor=pointer] + - generic [ref=f5e6]: EMBRYOS · 4 + - generic [ref=f5e7]: 4 · e02 sel + - generic [ref=f5e8]: "0.462" + - generic [ref=f5e9]: live + - generic [ref=f5e10]: + - generic [ref=f5e11]: + - button "▼" [ref=f5e12] [cursor=pointer] + - generic [ref=f5e13]: BOTTOM CAMERA + - generic [ref=f5e14]: "0.935" + - generic [ref=f5e15]: live + - generic [ref=f5e19]: + - button "−" [ref=f5e20] [cursor=pointer] + - generic [ref=f5e21]: 1.0× + - button "+" [ref=f5e22] [cursor=pointer] + - generic [ref=f5e23]: + - generic [ref=f5e24]: + - button "▼" [ref=f5e25] [cursor=pointer] + - generic [ref=f5e26]: SPIM HEAD + - generic [ref=f5e27]: "0.52" + - generic [ref=f5e28]: ready + - generic [ref=f5e29]: + - generic [ref=f5e30]: + - generic [ref=f5e31]: laser + - slider [ref=f5e32]: "35" + - generic [ref=f5e33]: 35% + - generic [ref=f5e34]: + - generic [ref=f5e35]: exposure + - slider [ref=f5e36]: "40" + - generic [ref=f5e37]: 40ms + - generic [ref=f5e38]: + - generic [ref=f5e39]: step + - slider [ref=f5e40]: "50" + - generic [ref=f5e41]: 50µm + - generic [ref=f5e42]: + - button "go to e02" [ref=f5e43] [cursor=pointer] + - button "HALT" [ref=f5e44] [cursor=pointer] + - generic [ref=f5e45]: + - generic [ref=f5e46]: + - button "▼" [ref=f5e47] [cursor=pointer] + - generic [ref=f5e48]: STAGE + - generic [ref=f5e49]: "0.565" + - generic [ref=f5e50]: live + - generic [ref=f5e51]: + - generic [ref=f5e52]: + - generic [ref=f5e53]: x + - generic [ref=f5e54]: 1610.4 µm + - generic [ref=f5e55]: + - generic [ref=f5e56]: "y" + - generic [ref=f5e57]: 905.2 µm + - generic [ref=f5e58]: + - generic [ref=f5e59]: z + - generic [ref=f5e60]: "-12.8 µm" + - generic [ref=f5e61]: + - generic [ref=f5e62]: + - button "▼" [ref=f5e63] [cursor=pointer] + - generic [ref=f5e64]: CALIBRATION · two-point + - generic [ref=f5e65]: "0.617" + - generic [ref=f5e66]: stale + - generic [ref=f5e67]: + - generic [ref=f5e68]: + - generic [ref=f5e69]: source + - generic [ref=f5e70]: laser 488 + - generic [ref=f5e71]: + - generic [ref=f5e72]: point 1 + - generic [ref=f5e73]: captured + - generic [ref=f5e74]: + - generic [ref=f5e75]: point 2 + - generic [ref=f5e76]: — + - generic [ref=f5e77]: + - button "capture point 2" [ref=f5e78] [cursor=pointer] + - button "solve transform" [ref=f5e79] [cursor=pointer] + - generic [ref=f5e81]: + - button "▼" [ref=f5e82] [cursor=pointer] + - generic [ref=f5e83]: ACQUISITION + - generic [ref=f5e84]: idle · 120s × 60 + - generic [ref=f5e85]: "0.325" + - generic [ref=f5e86]: ready + - generic [ref=f5e87]: + - generic [ref=f5e88]: + - button "▼" [ref=f5e89] [cursor=pointer] + - generic [ref=f5e90]: CURATOR + - generic [ref=f5e91]: "0.588" + - generic [ref=f5e92]: live + - generic [ref=f5e93]: + - generic [ref=f5e94]: + - generic [ref=f5e95]: tracking + - generic [ref=f5e96]: e02 · bottom cam · stage + - generic [ref=f5e97]: + - generic [ref=f5e98]: stale + - generic [ref=f5e99]: calibration transform + - generic [ref=f5e100]: Calibration never completed. Acquisition would put e02 off-centre. + - generic [ref=f5e101]: + - button "show me" [ref=f5e102] [cursor=pointer] + - button "dismiss" [ref=f5e103] [cursor=pointer] + - generic [ref=f5e104]: "rule 5: keys 0–5 do this without me" + - generic [ref=f5e106]: + - button "▼" [ref=f5e107] [cursor=pointer] + - generic [ref=f5e108]: EVENTS + - generic [ref=f5e109]: none + - generic [ref=f5e110]: "0.134" + - generic [ref=f5e111]: ready + - generic [ref=f5e112]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f5e113]: + - button "0 home" [ref=f5e114] [cursor=pointer] + - button "1 detect" [ref=f5e115] [cursor=pointer] + - button "2 position" [ref=f5e116] [cursor=pointer] + - button "3 calibrate" [ref=f5e117] [cursor=pointer] + - button "4 acquire" [ref=f5e118] [cursor=pointer] + - button "5 curator" [ref=f5e119] [cursor=pointer] + - button "bench" [ref=f5e120] [cursor=pointer] + - generic [ref=f5e121]: + - text: density + - slider [ref=f5e122]: "5" + - generic [ref=f5e123]: "5" + - generic [ref=f5e124]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-46-46-567Z.yml b/.playwright-mcp/page-2026-08-24T08-46-46-567Z.yml new file mode 100644 index 00000000..34fcde3d --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-46-46-567Z.yml @@ -0,0 +1,110 @@ +- generic [active] [ref=f6e1]: + - generic [ref=f6e2]: + - generic: + - generic [ref=f6e3]: + - generic [ref=f6e4]: + - button "▼" [ref=f6e5] [cursor=pointer] + - generic [ref=f6e6]: EMBRYOS · 4 + - generic [ref=f6e7]: "0.462" + - generic [ref=f6e8]: live + - generic [ref=f6e9]: + - generic [ref=f6e10]: + - generic [ref=f6e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=f6e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=f6e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f6e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=f6e15]: + - button "remap region" [ref=f6e16] [cursor=pointer] + - generic [ref=f6e17]: µm + - generic [ref=f6e18]: + - generic [ref=f6e19]: + - button "▼" [ref=f6e20] [cursor=pointer] + - generic [ref=f6e21]: BOTTOM CAMERA + - generic [ref=f6e22]: "0.935" + - generic [ref=f6e23]: live + - generic [ref=f6e27]: + - button "−" [ref=f6e28] [cursor=pointer] + - generic [ref=f6e29]: 1.0× + - button "+" [ref=f6e30] [cursor=pointer] + - generic [ref=f6e31]: + - generic [ref=f6e32]: + - button "▼" [ref=f6e33] [cursor=pointer] + - generic [ref=f6e34]: CALIBRATION · two-point + - generic [ref=f6e35]: "0.617" + - generic [ref=f6e36]: stale + - generic [ref=f6e37]: + - generic [ref=f6e38]: + - generic [ref=f6e39]: source + - generic [ref=f6e40]: laser 488 + - generic [ref=f6e41]: + - generic [ref=f6e42]: point 1 + - generic [ref=f6e43]: captured + - generic [ref=f6e44]: + - generic [ref=f6e45]: point 2 + - generic [ref=f6e46]: — + - generic [ref=f6e47]: + - button "capture point 2" [ref=f6e48] [cursor=pointer] + - button "solve transform" [ref=f6e49] [cursor=pointer] + - generic [ref=f6e50]: + - generic [ref=f6e51]: + - button "▼" [ref=f6e52] [cursor=pointer] + - generic [ref=f6e53]: ACQUISITION + - generic [ref=f6e54]: "0.325" + - generic [ref=f6e55]: ready + - generic [ref=f6e56]: + - generic [ref=f6e57]: + - generic [ref=f6e58]: interval + - slider [ref=f6e59]: "100" + - generic [ref=f6e60]: 120s + - generic [ref=f6e61]: + - generic [ref=f6e62]: timepoints + - slider [ref=f6e63]: "60" + - generic [ref=f6e64]: "60" + - button "start" [ref=f6e66] [cursor=pointer] + - generic [ref=f6e68]: + - button "▼" [ref=f6e69] [cursor=pointer] + - generic [ref=f6e70]: EVENTS + - generic [ref=f6e71]: none + - generic [ref=f6e72]: "0.134" + - generic [ref=f6e73]: ready + - generic: + - generic: + - generic [ref=f6e75]: + - button "▼" [ref=f6e76] [cursor=pointer] + - generic [ref=f6e77]: SPIM HEAD + - generic [ref=f6e78]: 35% · 40ms + - generic [ref=f6e79]: "0.52" + - generic [ref=f6e80]: PIN + - generic [ref=f6e81]: ready + - generic [ref=f6e83]: + - button "▼" [ref=f6e84] [cursor=pointer] + - generic [ref=f6e85]: STAGE + - generic [ref=f6e86]: 1610.4, 905.2, -12.8 + - generic [ref=f6e87]: "0.565" + - generic [ref=f6e88]: PIN + - generic [ref=f6e89]: live + - generic [ref=f6e91]: + - button "▼" [ref=f6e92] [cursor=pointer] + - generic [ref=f6e93]: CURATOR + - generic [ref=f6e94]: 1 needs you + - generic [ref=f6e95]: "0.588" + - generic [ref=f6e96]: PIN + - generic [ref=f6e97]: live + - generic [ref=f6e98]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f6e99]: + - button "survey" [ref=f6e100] [cursor=pointer] + - button "operate" [ref=f6e101] [cursor=pointer] + - button "acquire" [ref=f6e102] [cursor=pointer] + - generic [ref=f6e103]: + - button "0 home" [ref=f6e104] [cursor=pointer] + - button "1 detect" [ref=f6e105] [cursor=pointer] + - button "2 position" [ref=f6e106] [cursor=pointer] + - button "3 calibrate" [ref=f6e107] [cursor=pointer] + - button "4 acquire" [ref=f6e108] [cursor=pointer] + - button "5 curator" [ref=f6e109] [cursor=pointer] + - button "bench" [ref=f6e110] [cursor=pointer] + - generic [ref=f6e111]: + - text: density + - slider [ref=f6e112]: "4" + - generic [ref=f6e113]: "4" + - generic [ref=f6e114]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-47-05-512Z.yml b/.playwright-mcp/page-2026-08-24T08-47-05-512Z.yml new file mode 100644 index 00000000..05b5485a --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-47-05-512Z.yml @@ -0,0 +1,110 @@ +- generic [active] [ref=f7e1]: + - generic [ref=f7e2]: + - generic: + - generic [ref=f7e3]: + - generic [ref=f7e4]: + - button "▼" [ref=f7e5] [cursor=pointer] + - generic [ref=f7e6]: EMBRYOS · 4 + - generic [ref=f7e7]: "0.462" + - generic [ref=f7e8]: live + - generic [ref=f7e9]: + - generic [ref=f7e10]: + - generic [ref=f7e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=f7e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=f7e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f7e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=f7e15]: + - button "remap region" [ref=f7e16] [cursor=pointer] + - generic [ref=f7e17]: µm + - generic [ref=f7e18]: + - generic [ref=f7e19]: + - button "▼" [ref=f7e20] [cursor=pointer] + - generic [ref=f7e21]: BOTTOM CAMERA + - generic [ref=f7e22]: "0.935" + - generic [ref=f7e23]: live + - generic [ref=f7e27]: + - button "−" [ref=f7e28] [cursor=pointer] + - generic [ref=f7e29]: 1.0× + - button "+" [ref=f7e30] [cursor=pointer] + - generic [ref=f7e31]: + - generic [ref=f7e32]: + - button "▼" [ref=f7e33] [cursor=pointer] + - generic [ref=f7e34]: CALIBRATION · two-point + - generic [ref=f7e35]: "0.617" + - generic [ref=f7e36]: stale + - generic [ref=f7e37]: + - generic [ref=f7e38]: + - generic [ref=f7e39]: source + - generic [ref=f7e40]: laser 488 + - generic [ref=f7e41]: + - generic [ref=f7e42]: point 1 + - generic [ref=f7e43]: captured + - generic [ref=f7e44]: + - generic [ref=f7e45]: point 2 + - generic [ref=f7e46]: — + - generic [ref=f7e47]: + - button "capture point 2" [ref=f7e48] [cursor=pointer] + - button "solve transform" [ref=f7e49] [cursor=pointer] + - generic [ref=f7e50]: + - generic [ref=f7e51]: + - button "▼" [ref=f7e52] [cursor=pointer] + - generic [ref=f7e53]: ACQUISITION + - generic [ref=f7e54]: "0.325" + - generic [ref=f7e55]: ready + - generic [ref=f7e56]: + - generic [ref=f7e57]: + - generic [ref=f7e58]: interval + - slider [ref=f7e59]: "100" + - generic [ref=f7e60]: 120s + - generic [ref=f7e61]: + - generic [ref=f7e62]: timepoints + - slider [ref=f7e63]: "60" + - generic [ref=f7e64]: "60" + - button "start" [ref=f7e66] [cursor=pointer] + - generic [ref=f7e68]: + - button "▼" [ref=f7e69] [cursor=pointer] + - generic [ref=f7e70]: EVENTS + - generic [ref=f7e71]: none + - generic [ref=f7e72]: "0.134" + - generic [ref=f7e73]: ready + - generic: + - generic: + - generic [ref=f7e75]: + - button "▼" [ref=f7e76] [cursor=pointer] + - generic [ref=f7e77]: SPIM HEAD + - generic [ref=f7e78]: 35% · 40ms + - generic [ref=f7e79]: "0.52" + - generic [ref=f7e80]: PIN + - generic [ref=f7e81]: ready + - generic [ref=f7e83]: + - button "▼" [ref=f7e84] [cursor=pointer] + - generic [ref=f7e85]: STAGE + - generic [ref=f7e86]: 1610.4, 905.2, -12.8 + - generic [ref=f7e87]: "0.565" + - generic [ref=f7e88]: PIN + - generic [ref=f7e89]: live + - generic [ref=f7e91]: + - button "▼" [ref=f7e92] [cursor=pointer] + - generic [ref=f7e93]: CURATOR + - generic [ref=f7e94]: 1 needs you + - generic [ref=f7e95]: "0.588" + - generic [ref=f7e96]: PIN + - generic [ref=f7e97]: live + - generic [ref=f7e98]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f7e99]: + - button "survey" [ref=f7e100] [cursor=pointer] + - button "operate" [ref=f7e101] [cursor=pointer] + - button "acquire" [ref=f7e102] [cursor=pointer] + - generic [ref=f7e103]: + - button "0 home" [ref=f7e104] [cursor=pointer] + - button "1 detect" [ref=f7e105] [cursor=pointer] + - button "2 position" [ref=f7e106] [cursor=pointer] + - button "3 calibrate" [ref=f7e107] [cursor=pointer] + - button "4 acquire" [ref=f7e108] [cursor=pointer] + - button "5 curator" [ref=f7e109] [cursor=pointer] + - button "bench" [ref=f7e110] [cursor=pointer] + - generic [ref=f7e111]: + - text: density + - slider [ref=f7e112]: "4" + - generic [ref=f7e113]: "4" + - generic [ref=f7e114]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-47-45-928Z.yml b/.playwright-mcp/page-2026-08-24T08-47-45-928Z.yml new file mode 100644 index 00000000..e33f40aa --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-47-45-928Z.yml @@ -0,0 +1,110 @@ +- generic [active] [ref=f8e1]: + - generic [ref=f8e2]: + - generic: + - generic [ref=f8e3]: + - generic [ref=f8e4]: + - button "▼" [ref=f8e5] [cursor=pointer] + - generic [ref=f8e6]: EMBRYOS · 4 + - generic [ref=f8e7]: "0.462" + - generic [ref=f8e8]: live + - generic [ref=f8e9]: + - generic [ref=f8e10]: + - generic [ref=f8e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=f8e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=f8e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f8e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=f8e15]: + - button "remap region" [ref=f8e16] [cursor=pointer] + - generic [ref=f8e17]: µm + - generic [ref=f8e18]: + - generic [ref=f8e19]: + - button "▼" [ref=f8e20] [cursor=pointer] + - generic [ref=f8e21]: BOTTOM CAMERA + - generic [ref=f8e22]: "0.935" + - generic [ref=f8e23]: live + - generic [ref=f8e27]: + - button "−" [ref=f8e28] [cursor=pointer] + - generic [ref=f8e29]: 1.0× + - button "+" [ref=f8e30] [cursor=pointer] + - generic [ref=f8e31]: + - generic [ref=f8e32]: + - button "▼" [ref=f8e33] [cursor=pointer] + - generic [ref=f8e34]: CALIBRATION · two-point + - generic [ref=f8e35]: "0.617" + - generic [ref=f8e36]: stale + - generic [ref=f8e37]: + - generic [ref=f8e38]: + - generic [ref=f8e39]: source + - generic [ref=f8e40]: laser 488 + - generic [ref=f8e41]: + - generic [ref=f8e42]: point 1 + - generic [ref=f8e43]: captured + - generic [ref=f8e44]: + - generic [ref=f8e45]: point 2 + - generic [ref=f8e46]: — + - generic [ref=f8e47]: + - button "capture point 2" [ref=f8e48] [cursor=pointer] + - button "solve transform" [ref=f8e49] [cursor=pointer] + - generic [ref=f8e50]: + - generic [ref=f8e51]: + - button "▼" [ref=f8e52] [cursor=pointer] + - generic [ref=f8e53]: ACQUISITION + - generic [ref=f8e54]: "0.325" + - generic [ref=f8e55]: ready + - generic [ref=f8e56]: + - generic [ref=f8e57]: + - generic [ref=f8e58]: interval + - slider [ref=f8e59]: "100" + - generic [ref=f8e60]: 120s + - generic [ref=f8e61]: + - generic [ref=f8e62]: timepoints + - slider [ref=f8e63]: "60" + - generic [ref=f8e64]: "60" + - button "start" [ref=f8e66] [cursor=pointer] + - generic [ref=f8e68]: + - button "▼" [ref=f8e69] [cursor=pointer] + - generic [ref=f8e70]: EVENTS + - generic [ref=f8e71]: none + - generic [ref=f8e72]: "0.134" + - generic [ref=f8e73]: ready + - generic: + - generic: + - generic [ref=f8e75]: + - button "▼" [ref=f8e76] [cursor=pointer] + - generic [ref=f8e77]: SPIM HEAD + - generic [ref=f8e78]: 35% · 40ms + - generic [ref=f8e79]: "0.52" + - generic [ref=f8e80]: PIN + - generic [ref=f8e81]: ready + - generic [ref=f8e83]: + - button "▼" [ref=f8e84] [cursor=pointer] + - generic [ref=f8e85]: STAGE + - generic [ref=f8e86]: 1610.4, 905.2, -12.8 + - generic [ref=f8e87]: "0.565" + - generic [ref=f8e88]: PIN + - generic [ref=f8e89]: live + - generic [ref=f8e91]: + - button "▼" [ref=f8e92] [cursor=pointer] + - generic [ref=f8e93]: CURATOR + - generic [ref=f8e94]: 1 needs you + - generic [ref=f8e95]: "0.588" + - generic [ref=f8e96]: PIN + - generic [ref=f8e97]: live + - generic [ref=f8e98]: + - button "0 home" [ref=f8e99] [cursor=pointer] + - button "1 detect" [ref=f8e100] [cursor=pointer] + - button "2 position" [ref=f8e101] [cursor=pointer] + - button "3 calibrate" [ref=f8e102] [cursor=pointer] + - button "4 acquire" [ref=f8e103] [cursor=pointer] + - button "5 curator" [ref=f8e104] [cursor=pointer] + - button "bench" [ref=f8e105] [cursor=pointer] + - generic [ref=f8e106]: + - text: density + - slider [ref=f8e107]: "4" + - generic [ref=f8e108]: "4" + - generic [ref=f8e109]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f8e110]: + - button "survey" [ref=f8e111] [cursor=pointer] + - button "operate" [ref=f8e112] [cursor=pointer] + - button "acquire" [ref=f8e113] [cursor=pointer] + - generic [ref=f8e114]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-47-54-164Z.yml b/.playwright-mcp/page-2026-08-24T08-47-54-164Z.yml new file mode 100644 index 00000000..42d37817 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-47-54-164Z.yml @@ -0,0 +1,109 @@ +- generic [ref=f8e1]: + - generic [ref=f8e2]: + - generic: + - generic [ref=f8e4]: + - button "▼" [ref=f8e5] [cursor=pointer] + - generic [ref=f8e6]: EMBRYOS · 4 + - generic [ref=f8e115]: 4 · e02 sel + - generic [ref=f8e7]: "0.462" + - generic [ref=f8e8]: live + - generic [ref=f8e18]: + - generic [ref=f8e19]: + - button "▼" [ref=f8e20] [cursor=pointer] + - generic [ref=f8e21]: BOTTOM CAMERA + - generic [ref=f8e22]: "0.935" + - generic [ref=f8e23]: live + - generic [ref=f8e27]: + - button "−" [ref=f8e28] [cursor=pointer] + - generic [ref=f8e29]: 1.0× + - button "+" [ref=f8e30] [cursor=pointer] + - generic [ref=f8e31]: + - generic [ref=f8e32]: + - button "▼" [ref=f8e33] [cursor=pointer] + - generic [ref=f8e34]: CALIBRATION · two-point + - generic [ref=f8e35]: "0.617" + - generic [ref=f8e36]: stale + - generic [ref=f8e37]: + - generic [ref=f8e38]: + - generic [ref=f8e39]: source + - generic [ref=f8e40]: laser 488 + - generic [ref=f8e41]: + - generic [ref=f8e42]: point 1 + - generic [ref=f8e43]: captured + - generic [ref=f8e44]: + - generic [ref=f8e45]: point 2 + - generic [ref=f8e46]: — + - generic [ref=f8e47]: + - button "capture point 2" [ref=f8e48] [cursor=pointer] + - button "solve transform" [ref=f8e49] [cursor=pointer] + - generic [ref=f8e74]: + - generic [ref=f8e75]: + - button "▼" [ref=f8e76] [cursor=pointer] + - generic [ref=f8e77]: SPIM HEAD + - generic [ref=f8e79]: "0.52" + - generic [ref=f8e81]: ready + - generic [ref=f8e116]: + - generic [ref=f8e117]: + - generic [ref=f8e118]: laser + - slider [ref=f8e119]: "35" + - generic [ref=f8e120]: 35% + - generic [ref=f8e121]: + - generic [ref=f8e122]: exposure + - slider [ref=f8e123]: "40" + - generic [ref=f8e124]: 40ms + - generic [ref=f8e125]: + - generic [ref=f8e126]: step + - slider [ref=f8e127]: "50" + - generic [ref=f8e128]: 50µm + - generic [ref=f8e129]: + - button "go to e02" [ref=f8e130] [cursor=pointer] + - button "HALT" [ref=f8e131] [cursor=pointer] + - generic: + - generic: + - generic [ref=f8e83]: + - button "▼" [ref=f8e84] [cursor=pointer] + - generic [ref=f8e85]: STAGE + - generic [ref=f8e86]: 1611.4, 903.0, -12.5 + - generic [ref=f8e87]: "0.565" + - generic [ref=f8e88]: PIN + - generic [ref=f8e89]: live + - generic [ref=f8e91]: + - button "▼" [ref=f8e92] [cursor=pointer] + - generic [ref=f8e93]: CURATOR + - generic [ref=f8e94]: 1 needs you + - generic [ref=f8e95]: "0.588" + - generic [ref=f8e96]: PIN + - generic [ref=f8e97]: live + - generic: + - generic [ref=f8e98]: + - button "0 home" [ref=f8e99] [cursor=pointer] + - button "1 detect" [ref=f8e100] [cursor=pointer] + - button "2 position" [ref=f8e101] [cursor=pointer] + - button "3 calibrate" [ref=f8e102] [cursor=pointer] + - button "4 acquire" [ref=f8e103] [cursor=pointer] + - button "5 curator" [ref=f8e104] [cursor=pointer] + - button "bench" [ref=f8e105] [cursor=pointer] + - generic [ref=f8e106]: + - text: density + - slider [ref=f8e107]: "3" + - generic [ref=f8e108]: "3" + - generic [ref=f8e51]: + - button "▼" [ref=f8e52] [cursor=pointer] + - generic [ref=f8e53]: ACQUISITION + - generic [ref=f8e132]: idle · 120s × 60 + - generic [ref=f8e54]: "0.325" + - generic [ref=f8e133]: PIN + - generic [ref=f8e55]: ready + - generic [ref=f8e68]: + - button "▼" [ref=f8e69] [cursor=pointer] + - generic [ref=f8e70]: EVENTS + - generic [ref=f8e71]: 2 · 1s ago + - generic [ref=f8e72]: "0.134" + - generic [ref=f8e134]: PIN + - generic [ref=f8e73]: ready + - generic [ref=f8e109]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f8e110]: + - button "survey" [ref=f8e111] [cursor=pointer] + - button "operate" [ref=f8e112] [cursor=pointer] + - button "acquire" [active] [ref=f8e113] [cursor=pointer] + - generic [ref=f8e114]: 158% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-47-58-329Z.yml b/.playwright-mcp/page-2026-08-24T08-47-58-329Z.yml new file mode 100644 index 00000000..8bc8d164 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-47-58-329Z.yml @@ -0,0 +1,109 @@ +- generic [ref=f8e1]: + - generic [ref=f8e2]: + - generic: + - generic [ref=f8e4]: + - button "▼" [ref=f8e5] [cursor=pointer] + - generic [ref=f8e6]: EMBRYOS · 4 + - generic [ref=f8e115]: 4 · e02 sel + - generic [ref=f8e7]: "0.462" + - generic [ref=f8e8]: live + - generic [ref=f8e18]: + - generic [ref=f8e19]: + - button "▼" [ref=f8e20] [cursor=pointer] + - generic [ref=f8e21]: BOTTOM CAMERA + - generic [ref=f8e22]: "0.935" + - generic [ref=f8e23]: live + - generic [ref=f8e27]: + - button "−" [ref=f8e28] [cursor=pointer] + - generic [ref=f8e29]: 1.0× + - button "+" [ref=f8e30] [cursor=pointer] + - generic [ref=f8e31]: + - generic [ref=f8e32]: + - button "▼" [ref=f8e33] [cursor=pointer] + - generic [ref=f8e34]: CALIBRATION · two-point + - generic [ref=f8e35]: "0.617" + - generic [ref=f8e36]: stale + - generic [ref=f8e37]: + - generic [ref=f8e38]: + - generic [ref=f8e39]: source + - generic [ref=f8e40]: laser 488 + - generic [ref=f8e41]: + - generic [ref=f8e42]: point 1 + - generic [ref=f8e43]: captured + - generic [ref=f8e44]: + - generic [ref=f8e45]: point 2 + - generic [ref=f8e46]: — + - generic [ref=f8e47]: + - button "capture point 2" [ref=f8e48] [cursor=pointer] + - button "solve transform" [ref=f8e49] [cursor=pointer] + - generic [ref=f8e74]: + - generic [ref=f8e75]: + - button "▼" [ref=f8e76] [cursor=pointer] + - generic [ref=f8e77]: SPIM HEAD + - generic [ref=f8e79]: "0.52" + - generic [ref=f8e81]: ready + - generic [ref=f8e116]: + - generic [ref=f8e117]: + - generic [ref=f8e118]: laser + - slider [ref=f8e119]: "35" + - generic [ref=f8e120]: 35% + - generic [ref=f8e121]: + - generic [ref=f8e122]: exposure + - slider [ref=f8e123]: "40" + - generic [ref=f8e124]: 40ms + - generic [ref=f8e125]: + - generic [ref=f8e126]: step + - slider [ref=f8e127]: "50" + - generic [ref=f8e128]: 50µm + - generic [ref=f8e129]: + - button "go to e02" [ref=f8e130] [cursor=pointer] + - button "HALT" [ref=f8e131] [cursor=pointer] + - generic: + - generic: + - generic [ref=f8e83]: + - button "▼" [ref=f8e84] [cursor=pointer] + - generic [ref=f8e85]: STAGE + - generic [ref=f8e86]: 1607.3, 901.1, -12.3 + - generic [ref=f8e87]: "0.565" + - generic [ref=f8e88]: PIN + - generic [ref=f8e89]: live + - generic [ref=f8e91]: + - button "▼" [ref=f8e92] [cursor=pointer] + - generic [ref=f8e93]: CURATOR + - generic [ref=f8e94]: 1 needs you + - generic [ref=f8e95]: "0.588" + - generic [ref=f8e96]: PIN + - generic [ref=f8e97]: live + - generic: + - generic [ref=f8e98]: + - button "0 home" [ref=f8e99] [cursor=pointer] + - button "1 detect" [ref=f8e100] [cursor=pointer] + - button "2 position" [ref=f8e101] [cursor=pointer] + - button "3 calibrate" [ref=f8e102] [cursor=pointer] + - button "4 acquire" [ref=f8e103] [cursor=pointer] + - button "5 curator" [ref=f8e104] [cursor=pointer] + - button "bench" [ref=f8e105] [cursor=pointer] + - generic [ref=f8e106]: + - text: density + - slider [ref=f8e107]: "3" + - generic [ref=f8e108]: "3" + - generic [ref=f8e51]: + - button "▼" [ref=f8e52] [cursor=pointer] + - generic [ref=f8e53]: ACQUISITION + - generic [ref=f8e132]: idle · 120s × 60 + - generic [ref=f8e54]: "0.325" + - generic [ref=f8e133]: PIN + - generic [ref=f8e55]: ready + - generic [ref=f8e68]: + - button "▼" [ref=f8e69] [cursor=pointer] + - generic [ref=f8e70]: EVENTS + - generic [ref=f8e71]: 3 · 2s ago + - generic [ref=f8e72]: "0.134" + - generic [ref=f8e134]: PIN + - generic [ref=f8e73]: ready + - generic [ref=f8e109]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f8e110]: + - button "survey" [ref=f8e111] [cursor=pointer] + - button "operate" [ref=f8e112] [cursor=pointer] + - button "acquire" [active] [ref=f8e113] [cursor=pointer] + - generic [ref=f8e114]: 158% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-50-43-910Z.yml b/.playwright-mcp/page-2026-08-24T08-50-43-910Z.yml new file mode 100644 index 00000000..a64dd5c3 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-50-43-910Z.yml @@ -0,0 +1,110 @@ +- generic [active] [ref=f9e1]: + - generic [ref=f9e2]: + - generic: + - generic [ref=f9e3]: + - generic [ref=f9e4]: + - button "▼" [ref=f9e5] [cursor=pointer] + - generic [ref=f9e6]: EMBRYOS · 4 + - generic [ref=f9e7]: "0.462" + - generic [ref=f9e8]: live + - generic [ref=f9e9]: + - generic [ref=f9e10]: + - generic [ref=f9e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=f9e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=f9e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f9e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=f9e15]: + - button "remap region" [ref=f9e16] [cursor=pointer] + - generic [ref=f9e17]: µm + - generic [ref=f9e18]: + - generic [ref=f9e19]: + - button "▼" [ref=f9e20] [cursor=pointer] + - generic [ref=f9e21]: BOTTOM CAMERA + - generic [ref=f9e22]: "0.935" + - generic [ref=f9e23]: live + - generic [ref=f9e27]: + - button "−" [ref=f9e28] [cursor=pointer] + - generic [ref=f9e29]: 1.0× + - button "+" [ref=f9e30] [cursor=pointer] + - generic [ref=f9e31]: + - generic [ref=f9e32]: + - button "▼" [ref=f9e33] [cursor=pointer] + - generic [ref=f9e34]: CALIBRATION · two-point + - generic [ref=f9e35]: "0.617" + - generic [ref=f9e36]: stale + - generic [ref=f9e37]: + - generic [ref=f9e38]: + - generic [ref=f9e39]: source + - generic [ref=f9e40]: laser 488 + - generic [ref=f9e41]: + - generic [ref=f9e42]: point 1 + - generic [ref=f9e43]: captured + - generic [ref=f9e44]: + - generic [ref=f9e45]: point 2 + - generic [ref=f9e46]: — + - generic [ref=f9e47]: + - button "capture point 2" [ref=f9e48] [cursor=pointer] + - button "solve transform" [ref=f9e49] [cursor=pointer] + - generic [ref=f9e50]: + - generic [ref=f9e51]: + - button "▼" [ref=f9e52] [cursor=pointer] + - generic [ref=f9e53]: ACQUISITION + - generic [ref=f9e54]: "0.325" + - generic [ref=f9e55]: ready + - generic [ref=f9e56]: + - generic [ref=f9e57]: + - generic [ref=f9e58]: interval + - slider [ref=f9e59]: "100" + - generic [ref=f9e60]: 120s + - generic [ref=f9e61]: + - generic [ref=f9e62]: timepoints + - slider [ref=f9e63]: "60" + - generic [ref=f9e64]: "60" + - button "start" [ref=f9e66] [cursor=pointer] + - generic [ref=f9e68]: + - button "▼" [ref=f9e69] [cursor=pointer] + - generic [ref=f9e70]: EVENTS + - generic [ref=f9e71]: none + - generic [ref=f9e72]: "0.134" + - generic [ref=f9e73]: ready + - generic: + - generic: + - generic [ref=f9e75]: + - button "▼" [ref=f9e76] [cursor=pointer] + - generic [ref=f9e77]: SPIM HEAD + - generic [ref=f9e78]: 35% · 40ms + - generic [ref=f9e79]: "0.52" + - generic [ref=f9e80]: PIN + - generic [ref=f9e81]: ready + - generic [ref=f9e83]: + - button "▼" [ref=f9e84] [cursor=pointer] + - generic [ref=f9e85]: STAGE + - generic [ref=f9e86]: 1610.4, 905.2, -12.8 + - generic [ref=f9e87]: "0.565" + - generic [ref=f9e88]: PIN + - generic [ref=f9e89]: live + - generic [ref=f9e91]: + - button "▼" [ref=f9e92] [cursor=pointer] + - generic [ref=f9e93]: CURATOR + - generic [ref=f9e94]: 1 needs you + - generic [ref=f9e95]: "0.588" + - generic [ref=f9e96]: PIN + - generic [ref=f9e97]: live + - generic [ref=f9e98]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f9e99]: + - button "survey" [ref=f9e100] [cursor=pointer] + - button "operate" [ref=f9e101] [cursor=pointer] + - button "acquire" [ref=f9e102] [cursor=pointer] + - generic [ref=f9e103]: + - button "0 home" [ref=f9e104] [cursor=pointer] + - button "1 detect" [ref=f9e105] [cursor=pointer] + - button "2 position" [ref=f9e106] [cursor=pointer] + - button "3 calibrate" [ref=f9e107] [cursor=pointer] + - button "4 acquire" [ref=f9e108] [cursor=pointer] + - button "5 curator" [ref=f9e109] [cursor=pointer] + - button "bench" [ref=f9e110] [cursor=pointer] + - generic [ref=f9e111]: + - text: density + - slider [ref=f9e112]: "4" + - generic [ref=f9e113]: "4" + - generic [ref=f9e114]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-51-03-058Z.yml b/.playwright-mcp/page-2026-08-24T08-51-03-058Z.yml new file mode 100644 index 00000000..cfc2f118 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-51-03-058Z.yml @@ -0,0 +1,110 @@ +- generic [active] [ref=f10e1]: + - generic [ref=f10e2]: + - generic: + - generic [ref=f10e3]: + - generic [ref=f10e4]: + - button "▼" [ref=f10e5] [cursor=pointer] + - generic [ref=f10e6]: EMBRYOS · 4 + - generic [ref=f10e7]: "0.462" + - generic [ref=f10e8]: live + - generic [ref=f10e9]: + - generic [ref=f10e10]: + - generic [ref=f10e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=f10e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=f10e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f10e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=f10e15]: + - button "remap region" [ref=f10e16] [cursor=pointer] + - generic [ref=f10e17]: µm + - generic [ref=f10e18]: + - generic [ref=f10e19]: + - button "▼" [ref=f10e20] [cursor=pointer] + - generic [ref=f10e21]: BOTTOM CAMERA + - generic [ref=f10e22]: "0.935" + - generic [ref=f10e23]: live + - generic [ref=f10e27]: + - button "−" [ref=f10e28] [cursor=pointer] + - generic [ref=f10e29]: 1.0× + - button "+" [ref=f10e30] [cursor=pointer] + - generic [ref=f10e31]: + - generic [ref=f10e32]: + - button "▼" [ref=f10e33] [cursor=pointer] + - generic [ref=f10e34]: CALIBRATION · two-point + - generic [ref=f10e35]: "0.617" + - generic [ref=f10e36]: stale + - generic [ref=f10e37]: + - generic [ref=f10e38]: + - generic [ref=f10e39]: source + - generic [ref=f10e40]: laser 488 + - generic [ref=f10e41]: + - generic [ref=f10e42]: point 1 + - generic [ref=f10e43]: captured + - generic [ref=f10e44]: + - generic [ref=f10e45]: point 2 + - generic [ref=f10e46]: — + - generic [ref=f10e47]: + - button "capture point 2" [ref=f10e48] [cursor=pointer] + - button "solve transform" [ref=f10e49] [cursor=pointer] + - generic [ref=f10e50]: + - generic [ref=f10e51]: + - button "▼" [ref=f10e52] [cursor=pointer] + - generic [ref=f10e53]: ACQUISITION + - generic [ref=f10e54]: "0.325" + - generic [ref=f10e55]: ready + - generic [ref=f10e56]: + - generic [ref=f10e57]: + - generic [ref=f10e58]: interval + - slider [ref=f10e59]: "100" + - generic [ref=f10e60]: 120s + - generic [ref=f10e61]: + - generic [ref=f10e62]: timepoints + - slider [ref=f10e63]: "60" + - generic [ref=f10e64]: "60" + - button "start" [ref=f10e66] [cursor=pointer] + - generic [ref=f10e68]: + - button "▼" [ref=f10e69] [cursor=pointer] + - generic [ref=f10e70]: EVENTS + - generic [ref=f10e71]: none + - generic [ref=f10e72]: "0.134" + - generic [ref=f10e73]: ready + - generic: + - generic: + - generic [ref=f10e75]: + - button "▼" [ref=f10e76] [cursor=pointer] + - generic [ref=f10e77]: SPIM HEAD + - generic [ref=f10e78]: 35% · 40ms + - generic [ref=f10e79]: "0.52" + - generic [ref=f10e80]: PIN + - generic [ref=f10e81]: ready + - generic [ref=f10e83]: + - button "▼" [ref=f10e84] [cursor=pointer] + - generic [ref=f10e85]: STAGE + - generic [ref=f10e86]: 1610.4, 905.2, -12.8 + - generic [ref=f10e87]: "0.565" + - generic [ref=f10e88]: PIN + - generic [ref=f10e89]: live + - generic [ref=f10e91]: + - button "▼" [ref=f10e92] [cursor=pointer] + - generic [ref=f10e93]: CURATOR + - generic [ref=f10e94]: 1 needs you + - generic [ref=f10e95]: "0.588" + - generic [ref=f10e96]: PIN + - generic [ref=f10e97]: live + - generic [ref=f10e98]: + - button "0 home" [ref=f10e99] [cursor=pointer] + - button "1 detect" [ref=f10e100] [cursor=pointer] + - button "2 position" [ref=f10e101] [cursor=pointer] + - button "3 calibrate" [ref=f10e102] [cursor=pointer] + - button "4 acquire" [ref=f10e103] [cursor=pointer] + - button "5 curator" [ref=f10e104] [cursor=pointer] + - button "bench" [ref=f10e105] [cursor=pointer] + - generic [ref=f10e106]: + - text: density + - slider [ref=f10e107]: "4" + - generic [ref=f10e108]: "4" + - generic [ref=f10e109]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f10e110]: + - button "survey" [ref=f10e111] [cursor=pointer] + - button "operate" [ref=f10e112] [cursor=pointer] + - button "acquire" [ref=f10e113] [cursor=pointer] + - generic [ref=f10e114]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-51-29-939Z.yml b/.playwright-mcp/page-2026-08-24T08-51-29-939Z.yml new file mode 100644 index 00000000..4f409d6f --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-51-29-939Z.yml @@ -0,0 +1,110 @@ +- generic [active] [ref=f11e1]: + - generic [ref=f11e2]: + - generic: + - generic [ref=f11e3]: + - generic [ref=f11e4]: + - button "▼" [ref=f11e5] [cursor=pointer] + - generic [ref=f11e6]: EMBRYOS · 4 + - generic [ref=f11e7]: "0.462" + - generic [ref=f11e8]: live + - generic [ref=f11e9]: + - generic [ref=f11e10]: + - generic [ref=f11e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=f11e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=f11e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f11e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=f11e15]: + - button "remap region" [ref=f11e16] [cursor=pointer] + - generic [ref=f11e17]: µm + - generic [ref=f11e18]: + - generic [ref=f11e19]: + - button "▼" [ref=f11e20] [cursor=pointer] + - generic [ref=f11e21]: BOTTOM CAMERA + - generic [ref=f11e22]: "0.935" + - generic [ref=f11e23]: live + - generic [ref=f11e27]: + - button "−" [ref=f11e28] [cursor=pointer] + - generic [ref=f11e29]: 1.0× + - button "+" [ref=f11e30] [cursor=pointer] + - generic [ref=f11e31]: + - generic [ref=f11e32]: + - button "▼" [ref=f11e33] [cursor=pointer] + - generic [ref=f11e34]: CALIBRATION · two-point + - generic [ref=f11e35]: "0.617" + - generic [ref=f11e36]: stale + - generic [ref=f11e37]: + - generic [ref=f11e38]: + - generic [ref=f11e39]: source + - generic [ref=f11e40]: laser 488 + - generic [ref=f11e41]: + - generic [ref=f11e42]: point 1 + - generic [ref=f11e43]: captured + - generic [ref=f11e44]: + - generic [ref=f11e45]: point 2 + - generic [ref=f11e46]: — + - generic [ref=f11e47]: + - button "capture point 2" [ref=f11e48] [cursor=pointer] + - button "solve transform" [ref=f11e49] [cursor=pointer] + - generic [ref=f11e50]: + - generic [ref=f11e51]: + - button "▼" [ref=f11e52] [cursor=pointer] + - generic [ref=f11e53]: ACQUISITION + - generic [ref=f11e54]: "0.325" + - generic [ref=f11e55]: ready + - generic [ref=f11e56]: + - generic [ref=f11e57]: + - generic [ref=f11e58]: interval + - slider [ref=f11e59]: "100" + - generic [ref=f11e60]: 120s + - generic [ref=f11e61]: + - generic [ref=f11e62]: timepoints + - slider [ref=f11e63]: "60" + - generic [ref=f11e64]: "60" + - button "start" [ref=f11e66] [cursor=pointer] + - generic [ref=f11e68]: + - button "▼" [ref=f11e69] [cursor=pointer] + - generic [ref=f11e70]: EVENTS + - generic [ref=f11e71]: none + - generic [ref=f11e72]: "0.134" + - generic [ref=f11e73]: ready + - generic: + - generic: + - generic [ref=f11e75]: + - button "▼" [ref=f11e76] [cursor=pointer] + - generic [ref=f11e77]: SPIM HEAD + - generic [ref=f11e78]: 35% · 40ms + - generic [ref=f11e79]: "0.52" + - generic [ref=f11e80]: PIN + - generic [ref=f11e81]: ready + - generic [ref=f11e83]: + - button "▼" [ref=f11e84] [cursor=pointer] + - generic [ref=f11e85]: STAGE + - generic [ref=f11e86]: 1610.4, 905.2, -12.8 + - generic [ref=f11e87]: "0.565" + - generic [ref=f11e88]: PIN + - generic [ref=f11e89]: live + - generic [ref=f11e91]: + - button "▼" [ref=f11e92] [cursor=pointer] + - generic [ref=f11e93]: CURATOR + - generic [ref=f11e94]: 1 needs you + - generic [ref=f11e95]: "0.588" + - generic [ref=f11e96]: PIN + - generic [ref=f11e97]: live + - generic [ref=f11e98]: + - button "0 home" [ref=f11e99] [cursor=pointer] + - button "1 detect" [ref=f11e100] [cursor=pointer] + - button "2 position" [ref=f11e101] [cursor=pointer] + - button "3 calibrate" [ref=f11e102] [cursor=pointer] + - button "4 acquire" [ref=f11e103] [cursor=pointer] + - button "5 curator" [ref=f11e104] [cursor=pointer] + - button "bench" [ref=f11e105] [cursor=pointer] + - generic [ref=f11e106]: + - text: density + - slider [ref=f11e107]: "4" + - generic [ref=f11e108]: "4" + - generic [ref=f11e109]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f11e110]: + - button "survey" [ref=f11e111] [cursor=pointer] + - button "operate" [ref=f11e112] [cursor=pointer] + - button "acquire" [ref=f11e113] [cursor=pointer] + - generic [ref=f11e114]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-53-11-045Z.yml b/.playwright-mcp/page-2026-08-24T08-53-11-045Z.yml new file mode 100644 index 00000000..858629fa --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-53-11-045Z.yml @@ -0,0 +1,116 @@ +- generic [active] [ref=f12e1]: + - generic [ref=f12e2]: + - generic: + - generic [ref=f12e3]: + - generic [ref=f12e4]: + - button "▼" [ref=f12e5] [cursor=pointer] + - generic [ref=f12e6]: EMBRYOS · 4 + - generic [ref=f12e7]: "0.462" + - generic [ref=f12e8]: live + - generic [ref=f12e9]: + - generic [ref=f12e10]: + - generic [ref=f12e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=f12e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=f12e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f12e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=f12e15]: + - button "remap region" [ref=f12e16] [cursor=pointer] + - generic [ref=f12e17]: µm + - generic [ref=f12e18]: + - generic [ref=f12e19]: + - button "▼" [ref=f12e20] [cursor=pointer] + - generic [ref=f12e21]: BOTTOM CAMERA + - generic [ref=f12e22]: "0.935" + - generic [ref=f12e23]: live + - generic [ref=f12e27]: + - button "−" [ref=f12e28] [cursor=pointer] + - generic [ref=f12e29]: 1.0× + - button "+" [ref=f12e30] [cursor=pointer] + - generic [ref=f12e31]: + - generic [ref=f12e32]: + - button "▼" [ref=f12e33] [cursor=pointer] + - generic [ref=f12e34]: CALIBRATION · two-point + - generic [ref=f12e35]: "0.617" + - generic [ref=f12e36]: stale + - generic [ref=f12e37]: + - generic [ref=f12e38]: + - generic [ref=f12e39]: source + - generic [ref=f12e40]: laser 488 + - generic [ref=f12e41]: + - generic [ref=f12e42]: point 1 + - generic [ref=f12e43]: captured + - generic [ref=f12e44]: + - generic [ref=f12e45]: point 2 + - generic [ref=f12e46]: — + - generic [ref=f12e47]: + - button "capture point 2" [ref=f12e48] [cursor=pointer] + - button "solve transform" [ref=f12e49] [cursor=pointer] + - generic [ref=f12e50]: + - generic [ref=f12e51]: + - button "▼" [ref=f12e52] [cursor=pointer] + - generic [ref=f12e53]: ACQUISITION + - generic [ref=f12e54]: "0.325" + - generic [ref=f12e55]: ready + - generic [ref=f12e56]: + - generic [ref=f12e57]: + - generic [ref=f12e58]: interval + - slider [ref=f12e59]: "100" + - generic [ref=f12e60]: 120s + - generic [ref=f12e61]: + - generic [ref=f12e62]: timepoints + - slider [ref=f12e63]: "60" + - generic [ref=f12e64]: "60" + - button "start" [ref=f12e66] [cursor=pointer] + - generic [ref=f12e68]: + - button "▼" [ref=f12e69] [cursor=pointer] + - generic [ref=f12e70]: COURTYARD + - generic [ref=f12e71]: rail · deck + - generic [ref=f12e72]: "0.195" + - generic [ref=f12e73]: ready + - generic [ref=f12e75]: + - button "▼" [ref=f12e76] [cursor=pointer] + - generic [ref=f12e77]: EVENTS + - generic [ref=f12e78]: none + - generic [ref=f12e79]: "0.134" + - generic [ref=f12e80]: ready + - generic: + - generic: + - generic [ref=f12e82]: + - button "▼" [ref=f12e83] [cursor=pointer] + - generic [ref=f12e84]: SPIM HEAD + - generic [ref=f12e85]: 35% · 40ms + - generic [ref=f12e86]: "0.52" + - generic [ref=f12e87]: PIN + - generic [ref=f12e88]: ready + - generic [ref=f12e90]: + - button "▼" [ref=f12e91] [cursor=pointer] + - generic [ref=f12e92]: STAGE + - generic [ref=f12e93]: 1610.4, 905.2, -12.8 + - generic [ref=f12e94]: "0.565" + - generic [ref=f12e95]: PIN + - generic [ref=f12e96]: live + - generic [ref=f12e98]: + - button "▼" [ref=f12e99] [cursor=pointer] + - generic [ref=f12e100]: CURATOR + - generic [ref=f12e101]: 1 needs you + - generic [ref=f12e102]: "0.588" + - generic [ref=f12e103]: PIN + - generic [ref=f12e104]: live + - generic [ref=f12e105]: + - button "0 home" [ref=f12e106] [cursor=pointer] + - button "1 detect" [ref=f12e107] [cursor=pointer] + - button "2 position" [ref=f12e108] [cursor=pointer] + - button "3 calibrate" [ref=f12e109] [cursor=pointer] + - button "4 acquire" [ref=f12e110] [cursor=pointer] + - button "5 curator" [ref=f12e111] [cursor=pointer] + - button "bench" [ref=f12e112] [cursor=pointer] + - generic [ref=f12e113]: + - text: density + - slider [ref=f12e114]: "4" + - generic [ref=f12e115]: "4" + - generic [ref=f12e116]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f12e117]: + - button "survey" [ref=f12e118] [cursor=pointer] + - button "operate" [ref=f12e119] [cursor=pointer] + - button "acquire" [ref=f12e120] [cursor=pointer] + - generic [ref=f12e121]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-53-23-261Z.yml b/.playwright-mcp/page-2026-08-24T08-53-23-261Z.yml new file mode 100644 index 00000000..2bb1f27f --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-53-23-261Z.yml @@ -0,0 +1,116 @@ +- generic [active] [ref=f12e1]: + - generic [ref=f12e2]: + - generic: + - generic [ref=f12e3]: + - generic [ref=f12e4]: + - button "▼" [ref=f12e5] [cursor=pointer] + - generic [ref=f12e6]: EMBRYOS · 3 + - generic [ref=f12e7]: "0.462" + - generic [ref=f12e8]: live + - generic [ref=f12e9]: + - generic [ref=f12e10]: + - generic [ref=f12e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=f12e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=f12e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f12e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=f12e15]: + - button "remap region" [ref=f12e16] [cursor=pointer] + - generic [ref=f12e17]: µm + - generic [ref=f12e18]: + - generic [ref=f12e19]: + - button "▼" [ref=f12e20] [cursor=pointer] + - generic [ref=f12e21]: BOTTOM CAMERA + - generic [ref=f12e22]: "0.935" + - generic [ref=f12e23]: live + - generic [ref=f12e27]: + - button "−" [ref=f12e28] [cursor=pointer] + - generic [ref=f12e29]: 1.0× + - button "+" [ref=f12e30] [cursor=pointer] + - generic [ref=f12e31]: + - generic [ref=f12e32]: + - button "▼" [ref=f12e33] [cursor=pointer] + - generic [ref=f12e34]: CALIBRATION · two-point + - generic [ref=f12e35]: "0.617" + - generic [ref=f12e36]: stale + - generic [ref=f12e37]: + - generic [ref=f12e38]: + - generic [ref=f12e39]: source + - generic [ref=f12e40]: laser 488 + - generic [ref=f12e41]: + - generic [ref=f12e42]: point 1 + - generic [ref=f12e43]: captured + - generic [ref=f12e44]: + - generic [ref=f12e45]: point 2 + - generic [ref=f12e46]: — + - generic [ref=f12e47]: + - button "capture point 2" [ref=f12e48] [cursor=pointer] + - button "solve transform" [ref=f12e49] [cursor=pointer] + - generic [ref=f12e50]: + - generic [ref=f12e51]: + - button "▼" [ref=f12e52] [cursor=pointer] + - generic [ref=f12e53]: ACQUISITION + - generic [ref=f12e54]: "0.325" + - generic [ref=f12e55]: ready + - generic [ref=f12e56]: + - generic [ref=f12e57]: + - generic [ref=f12e58]: interval + - slider [ref=f12e59]: "100" + - generic [ref=f12e60]: 120s + - generic [ref=f12e61]: + - generic [ref=f12e62]: timepoints + - slider [ref=f12e63]: "60" + - generic [ref=f12e64]: "60" + - button "start" [ref=f12e66] [cursor=pointer] + - generic [ref=f12e68]: + - button "▼" [ref=f12e69] [cursor=pointer] + - generic [ref=f12e70]: COURTYARD + - generic [ref=f12e71]: rail · deck + - generic [ref=f12e72]: "0.195" + - generic [ref=f12e73]: ready + - generic [ref=f12e75]: + - button "▼" [ref=f12e76] [cursor=pointer] + - generic [ref=f12e77]: EVENTS + - generic [ref=f12e78]: 2 · 0s ago + - generic [ref=f12e79]: "0.134" + - generic [ref=f12e80]: ready + - generic: + - generic: + - generic [ref=f12e82]: + - button "▼" [ref=f12e83] [cursor=pointer] + - generic [ref=f12e84]: SPIM HEAD + - generic [ref=f12e85]: 35% · 40ms + - generic [ref=f12e86]: "0.52" + - generic [ref=f12e87]: PIN + - generic [ref=f12e88]: ready + - generic [ref=f12e90]: + - button "▼" [ref=f12e91] [cursor=pointer] + - generic [ref=f12e92]: STAGE + - generic [ref=f12e93]: 1607.2, 910.3, -13.3 + - generic [ref=f12e94]: "0.565" + - generic [ref=f12e95]: PIN + - generic [ref=f12e96]: live + - generic [ref=f12e98]: + - button "▼" [ref=f12e99] [cursor=pointer] + - generic [ref=f12e100]: CURATOR + - generic [ref=f12e101]: 1 needs you + - generic [ref=f12e102]: "0.588" + - generic [ref=f12e103]: PIN + - generic [ref=f12e104]: live + - generic [ref=f12e105]: + - button "0 home" [ref=f12e106] [cursor=pointer] + - button "1 detect" [ref=f12e107] [cursor=pointer] + - button "2 position" [ref=f12e108] [cursor=pointer] + - button "3 calibrate" [ref=f12e109] [cursor=pointer] + - button "4 acquire" [ref=f12e110] [cursor=pointer] + - button "5 curator" [ref=f12e111] [cursor=pointer] + - button "bench" [ref=f12e112] [cursor=pointer] + - generic [ref=f12e113]: + - text: density + - slider [ref=f12e114]: "4" + - generic [ref=f12e115]: "4" + - generic [ref=f12e116]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f12e117]: + - button "survey" [ref=f12e118] [cursor=pointer] + - button "operate" [ref=f12e119] [cursor=pointer] + - button "acquire" [ref=f12e120] [cursor=pointer] + - generic [ref=f12e121]: 250% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-53-50-240Z.yml b/.playwright-mcp/page-2026-08-24T08-53-50-240Z.yml new file mode 100644 index 00000000..ca18a507 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-53-50-240Z.yml @@ -0,0 +1,116 @@ +- generic [active] [ref=f13e1]: + - generic [ref=f13e2]: + - generic: + - generic [ref=f13e3]: + - generic [ref=f13e4]: + - button "▼" [ref=f13e5] [cursor=pointer] + - generic [ref=f13e6]: EMBRYOS · 4 + - generic [ref=f13e7]: "0.462" + - generic [ref=f13e8]: live + - generic [ref=f13e9]: + - generic [ref=f13e10]: + - generic [ref=f13e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=f13e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=f13e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f13e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=f13e15]: + - button "remap region" [ref=f13e16] [cursor=pointer] + - generic [ref=f13e17]: µm + - generic [ref=f13e18]: + - generic [ref=f13e19]: + - button "▼" [ref=f13e20] [cursor=pointer] + - generic [ref=f13e21]: BOTTOM CAMERA + - generic [ref=f13e22]: "0.935" + - generic [ref=f13e23]: live + - generic [ref=f13e27]: + - button "−" [ref=f13e28] [cursor=pointer] + - generic [ref=f13e29]: 1.0× + - button "+" [ref=f13e30] [cursor=pointer] + - generic [ref=f13e31]: + - generic [ref=f13e32]: + - button "▼" [ref=f13e33] [cursor=pointer] + - generic [ref=f13e34]: CALIBRATION · two-point + - generic [ref=f13e35]: "0.617" + - generic [ref=f13e36]: stale + - generic [ref=f13e37]: + - generic [ref=f13e38]: + - generic [ref=f13e39]: source + - generic [ref=f13e40]: laser 488 + - generic [ref=f13e41]: + - generic [ref=f13e42]: point 1 + - generic [ref=f13e43]: captured + - generic [ref=f13e44]: + - generic [ref=f13e45]: point 2 + - generic [ref=f13e46]: — + - generic [ref=f13e47]: + - button "capture point 2" [ref=f13e48] [cursor=pointer] + - button "solve transform" [ref=f13e49] [cursor=pointer] + - generic [ref=f13e50]: + - generic [ref=f13e51]: + - button "▼" [ref=f13e52] [cursor=pointer] + - generic [ref=f13e53]: ACQUISITION + - generic [ref=f13e54]: "0.325" + - generic [ref=f13e55]: ready + - generic [ref=f13e56]: + - generic [ref=f13e57]: + - generic [ref=f13e58]: interval + - slider [ref=f13e59]: "100" + - generic [ref=f13e60]: 120s + - generic [ref=f13e61]: + - generic [ref=f13e62]: timepoints + - slider [ref=f13e63]: "60" + - generic [ref=f13e64]: "60" + - button "start" [ref=f13e66] [cursor=pointer] + - generic [ref=f13e68]: + - button "▼" [ref=f13e69] [cursor=pointer] + - generic [ref=f13e70]: COURTYARD + - generic [ref=f13e71]: rail · deck + - generic [ref=f13e72]: "0.195" + - generic [ref=f13e73]: ready + - generic [ref=f13e75]: + - button "▼" [ref=f13e76] [cursor=pointer] + - generic [ref=f13e77]: EVENTS + - generic [ref=f13e78]: none + - generic [ref=f13e79]: "0.134" + - generic [ref=f13e80]: ready + - generic: + - generic: + - generic [ref=f13e82]: + - button "▼" [ref=f13e83] [cursor=pointer] + - generic [ref=f13e84]: SPIM HEAD + - generic [ref=f13e85]: 35% · 40ms + - generic [ref=f13e86]: "0.52" + - generic [ref=f13e87]: PIN + - generic [ref=f13e88]: ready + - generic [ref=f13e90]: + - button "▼" [ref=f13e91] [cursor=pointer] + - generic [ref=f13e92]: STAGE + - generic [ref=f13e93]: 1610.4, 905.2, -12.8 + - generic [ref=f13e94]: "0.565" + - generic [ref=f13e95]: PIN + - generic [ref=f13e96]: live + - generic [ref=f13e98]: + - button "▼" [ref=f13e99] [cursor=pointer] + - generic [ref=f13e100]: CURATOR + - generic [ref=f13e101]: 1 needs you + - generic [ref=f13e102]: "0.588" + - generic [ref=f13e103]: PIN + - generic [ref=f13e104]: live + - generic [ref=f13e105]: + - button "0 home" [ref=f13e106] [cursor=pointer] + - button "1 detect" [ref=f13e107] [cursor=pointer] + - button "2 position" [ref=f13e108] [cursor=pointer] + - button "3 calibrate" [ref=f13e109] [cursor=pointer] + - button "4 acquire" [ref=f13e110] [cursor=pointer] + - button "5 curator" [ref=f13e111] [cursor=pointer] + - button "bench" [ref=f13e112] [cursor=pointer] + - generic [ref=f13e113]: + - text: density + - slider [ref=f13e114]: "4" + - generic [ref=f13e115]: "4" + - generic [ref=f13e116]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f13e117]: + - button "survey" [ref=f13e118] [cursor=pointer] + - button "operate" [ref=f13e119] [cursor=pointer] + - button "acquire" [ref=f13e120] [cursor=pointer] + - generic [ref=f13e121]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-53-59-416Z.yml b/.playwright-mcp/page-2026-08-24T08-53-59-416Z.yml new file mode 100644 index 00000000..81692773 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-53-59-416Z.yml @@ -0,0 +1,143 @@ +- generic [active] [ref=f13e1]: + - generic [ref=f13e2]: + - generic: + - generic [ref=f13e3]: + - generic [ref=f13e4]: + - button "▼" [ref=f13e5] [cursor=pointer] + - generic [ref=f13e6]: EMBRYOS · 3 + - generic [ref=f13e7]: "0.462" + - generic [ref=f13e8]: live + - generic [ref=f13e9]: + - generic [ref=f13e10]: + - generic [ref=f13e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=f13e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=f13e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f13e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=f13e15]: + - button "remap region" [ref=f13e16] [cursor=pointer] + - generic [ref=f13e17]: µm + - generic [ref=f13e18]: + - generic [ref=f13e19]: + - button "▼" [ref=f13e20] [cursor=pointer] + - generic [ref=f13e21]: BOTTOM CAMERA + - generic [ref=f13e22]: "0.935" + - generic [ref=f13e23]: live + - generic [ref=f13e27]: + - button "−" [ref=f13e28] [cursor=pointer] + - generic [ref=f13e29]: 1.0× + - button "+" [ref=f13e30] [cursor=pointer] + - generic [ref=f13e31]: + - generic [ref=f13e32]: + - button "▼" [ref=f13e33] [cursor=pointer] + - generic [ref=f13e34]: CALIBRATION · two-point + - generic [ref=f13e35]: "0.617" + - generic [ref=f13e36]: stale + - generic [ref=f13e37]: + - generic [ref=f13e38]: + - generic [ref=f13e39]: source + - generic [ref=f13e40]: laser 488 + - generic [ref=f13e41]: + - generic [ref=f13e42]: point 1 + - generic [ref=f13e43]: captured + - generic [ref=f13e44]: + - generic [ref=f13e45]: point 2 + - generic [ref=f13e46]: — + - generic [ref=f13e47]: + - button "capture point 2" [ref=f13e48] [cursor=pointer] + - button "solve transform" [ref=f13e49] [cursor=pointer] + - generic [ref=f13e50]: + - generic [ref=f13e51]: + - button "▼" [ref=f13e52] [cursor=pointer] + - generic [ref=f13e53]: ACQUISITION + - generic [ref=f13e54]: "0.325" + - generic [ref=f13e55]: ready + - generic [ref=f13e56]: + - generic [ref=f13e57]: + - generic [ref=f13e58]: interval + - slider [ref=f13e59]: "100" + - generic [ref=f13e60]: 120s + - generic [ref=f13e61]: + - generic [ref=f13e62]: timepoints + - slider [ref=f13e63]: "60" + - generic [ref=f13e64]: "60" + - button "start" [ref=f13e66] [cursor=pointer] + - generic [ref=f13e67]: + - generic [ref=f13e68]: + - button "▼" [ref=f13e69] [cursor=pointer] + - generic [ref=f13e70]: COURTYARD + - generic [ref=f13e72]: "0.195" + - generic [ref=f13e73]: ready + - generic [ref=f13e123]: + - generic [ref=f13e124]: + - generic [ref=f13e125] [cursor=pointer]: cockpit + - generic [ref=f13e137] [cursor=pointer]: cloister + - generic [ref=f13e149] [cursor=pointer]: sidebar + - generic [ref=f13e161] [cursor=pointer]: bands + - generic [ref=f13e173] [cursor=pointer]: open + - generic [ref=f13e196]: + - generic [ref=f13e197]: + - checkbox [ref=f13e198] + - generic [ref=f13e199]: top + - textbox "auto" [disabled] [ref=f13e200] + - generic [ref=f13e201]: + - checkbox [checked] [ref=f13e202] + - generic [ref=f13e203]: right + - textbox "auto" [ref=f13e204]: 300px + - generic [ref=f13e205]: + - checkbox [checked] [ref=f13e206] + - generic [ref=f13e207]: bottom + - textbox "auto" [ref=f13e208] + - generic [ref=f13e209]: + - checkbox [ref=f13e210] + - generic [ref=f13e211]: left + - textbox "auto" [disabled] [ref=f13e212] + - generic [ref=f13e213]: + - generic [ref=f13e214]: corners + - button "sides" [ref=f13e215] [cursor=pointer] + - generic [ref=f13e75]: + - button "▼" [ref=f13e76] [cursor=pointer] + - generic [ref=f13e77]: EVENTS + - generic [ref=f13e78]: 3 · 1s ago + - generic [ref=f13e79]: "0.134" + - generic [ref=f13e80]: ready + - generic: + - generic: + - generic [ref=f13e82]: + - button "▼" [ref=f13e83] [cursor=pointer] + - generic [ref=f13e84]: SPIM HEAD + - generic [ref=f13e85]: 35% · 40ms + - generic [ref=f13e86]: "0.52" + - generic [ref=f13e87]: PIN + - generic [ref=f13e88]: ready + - generic [ref=f13e90]: + - button "▼" [ref=f13e91] [cursor=pointer] + - generic [ref=f13e92]: STAGE + - generic [ref=f13e93]: 1609.8, 905.3, -13.0 + - generic [ref=f13e94]: "0.565" + - generic [ref=f13e95]: PIN + - generic [ref=f13e96]: live + - generic [ref=f13e98]: + - button "▼" [ref=f13e99] [cursor=pointer] + - generic [ref=f13e100]: CURATOR + - generic [ref=f13e101]: 1 needs you + - generic [ref=f13e102]: "0.588" + - generic [ref=f13e103]: PIN + - generic [ref=f13e104]: live + - generic [ref=f13e105]: + - button "0 home" [ref=f13e106] [cursor=pointer] + - button "1 detect" [ref=f13e107] [cursor=pointer] + - button "2 position" [ref=f13e108] [cursor=pointer] + - button "3 calibrate" [ref=f13e109] [cursor=pointer] + - button "4 acquire" [ref=f13e110] [cursor=pointer] + - button "5 curator" [ref=f13e111] [cursor=pointer] + - button "bench" [ref=f13e112] [cursor=pointer] + - generic [ref=f13e113]: + - text: density + - slider [ref=f13e114]: "4" + - generic [ref=f13e115]: "4" + - generic [ref=f13e116]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f13e117]: + - button "survey" [ref=f13e118] [cursor=pointer] + - button "operate" [ref=f13e119] [cursor=pointer] + - button "acquire" [ref=f13e120] [cursor=pointer] + - generic [ref=f13e121]: 91% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-56-06-509Z.yml b/.playwright-mcp/page-2026-08-24T08-56-06-509Z.yml new file mode 100644 index 00000000..cedc032a --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-56-06-509Z.yml @@ -0,0 +1,116 @@ +- generic [active] [ref=f14e1]: + - generic [ref=f14e2]: + - generic: + - generic [ref=f14e3]: + - generic [ref=f14e4]: + - button "▼" [ref=f14e5] [cursor=pointer] + - generic [ref=f14e6]: EMBRYOS · 4 + - generic [ref=f14e7]: "0.462" + - generic [ref=f14e8]: live + - generic [ref=f14e9]: + - generic [ref=f14e10]: + - generic [ref=f14e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=f14e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=f14e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f14e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=f14e15]: + - button "remap region" [ref=f14e16] [cursor=pointer] + - generic [ref=f14e17]: µm + - generic [ref=f14e18]: + - generic [ref=f14e19]: + - button "▼" [ref=f14e20] [cursor=pointer] + - generic [ref=f14e21]: BOTTOM CAMERA + - generic [ref=f14e22]: "0.935" + - generic [ref=f14e23]: live + - generic [ref=f14e27]: + - button "−" [ref=f14e28] [cursor=pointer] + - generic [ref=f14e29]: 1.0× + - button "+" [ref=f14e30] [cursor=pointer] + - generic [ref=f14e31]: + - generic [ref=f14e32]: + - button "▼" [ref=f14e33] [cursor=pointer] + - generic [ref=f14e34]: CALIBRATION · two-point + - generic [ref=f14e35]: "0.617" + - generic [ref=f14e36]: stale + - generic [ref=f14e37]: + - generic [ref=f14e38]: + - generic [ref=f14e39]: source + - generic [ref=f14e40]: laser 488 + - generic [ref=f14e41]: + - generic [ref=f14e42]: point 1 + - generic [ref=f14e43]: captured + - generic [ref=f14e44]: + - generic [ref=f14e45]: point 2 + - generic [ref=f14e46]: — + - generic [ref=f14e47]: + - button "capture point 2" [ref=f14e48] [cursor=pointer] + - button "solve transform" [ref=f14e49] [cursor=pointer] + - generic [ref=f14e50]: + - generic [ref=f14e51]: + - button "▼" [ref=f14e52] [cursor=pointer] + - generic [ref=f14e53]: ACQUISITION + - generic [ref=f14e54]: "0.325" + - generic [ref=f14e55]: ready + - generic [ref=f14e56]: + - generic [ref=f14e57]: + - generic [ref=f14e58]: interval + - slider [ref=f14e59]: "100" + - generic [ref=f14e60]: 120s + - generic [ref=f14e61]: + - generic [ref=f14e62]: timepoints + - slider [ref=f14e63]: "60" + - generic [ref=f14e64]: "60" + - button "start" [ref=f14e66] [cursor=pointer] + - generic [ref=f14e68]: + - button "▼" [ref=f14e69] [cursor=pointer] + - generic [ref=f14e70]: COURTYARD + - generic [ref=f14e71]: rail · deck + - generic [ref=f14e72]: "0.195" + - generic [ref=f14e73]: ready + - generic [ref=f14e75]: + - button "▼" [ref=f14e76] [cursor=pointer] + - generic [ref=f14e77]: EVENTS + - generic [ref=f14e78]: none + - generic [ref=f14e79]: "0.134" + - generic [ref=f14e80]: ready + - generic: + - generic: + - generic [ref=f14e82]: + - button "▼" [ref=f14e83] [cursor=pointer] + - generic [ref=f14e84]: SPIM HEAD + - generic [ref=f14e85]: 35% · 40ms + - generic [ref=f14e86]: "0.52" + - generic [ref=f14e87]: PIN + - generic [ref=f14e88]: ready + - generic [ref=f14e90]: + - button "▼" [ref=f14e91] [cursor=pointer] + - generic [ref=f14e92]: STAGE + - generic [ref=f14e93]: 1610.4, 905.2, -12.8 + - generic [ref=f14e94]: "0.565" + - generic [ref=f14e95]: PIN + - generic [ref=f14e96]: live + - generic [ref=f14e98]: + - button "▼" [ref=f14e99] [cursor=pointer] + - generic [ref=f14e100]: CURATOR + - generic [ref=f14e101]: 1 needs you + - generic [ref=f14e102]: "0.588" + - generic [ref=f14e103]: PIN + - generic [ref=f14e104]: live + - generic [ref=f14e105]: + - button "0 home" [ref=f14e106] [cursor=pointer] + - button "1 detect" [ref=f14e107] [cursor=pointer] + - button "2 position" [ref=f14e108] [cursor=pointer] + - button "3 calibrate" [ref=f14e109] [cursor=pointer] + - button "4 acquire" [ref=f14e110] [cursor=pointer] + - button "5 curator" [ref=f14e111] [cursor=pointer] + - button "bench" [ref=f14e112] [cursor=pointer] + - generic [ref=f14e113]: + - text: density + - slider [ref=f14e114]: "4" + - generic [ref=f14e115]: "4" + - generic [ref=f14e116]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f14e117]: + - button "survey" [ref=f14e118] [cursor=pointer] + - button "operate" [ref=f14e119] [cursor=pointer] + - button "acquire" [ref=f14e120] [cursor=pointer] + - generic [ref=f14e121]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T08-57-00-966Z.yml b/.playwright-mcp/page-2026-08-24T08-57-00-966Z.yml new file mode 100644 index 00000000..7dcd7d79 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T08-57-00-966Z.yml @@ -0,0 +1,116 @@ +- generic [active] [ref=f15e1]: + - generic [ref=f15e2]: + - generic: + - generic [ref=f15e3]: + - generic [ref=f15e4]: + - button "▼" [ref=f15e5] [cursor=pointer] + - generic [ref=f15e6]: EMBRYOS · 4 + - generic [ref=f15e7]: "0.462" + - generic [ref=f15e8]: live + - generic [ref=f15e9]: + - generic [ref=f15e10]: + - generic [ref=f15e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=f15e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=f15e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f15e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=f15e15]: + - button "remap region" [ref=f15e16] [cursor=pointer] + - generic [ref=f15e17]: µm + - generic [ref=f15e18]: + - generic [ref=f15e19]: + - button "▼" [ref=f15e20] [cursor=pointer] + - generic [ref=f15e21]: BOTTOM CAMERA + - generic [ref=f15e22]: "0.935" + - generic [ref=f15e23]: live + - generic [ref=f15e27]: + - button "−" [ref=f15e28] [cursor=pointer] + - generic [ref=f15e29]: 1.0× + - button "+" [ref=f15e30] [cursor=pointer] + - generic [ref=f15e31]: + - generic [ref=f15e32]: + - button "▼" [ref=f15e33] [cursor=pointer] + - generic [ref=f15e34]: CALIBRATION · two-point + - generic [ref=f15e35]: "0.617" + - generic [ref=f15e36]: stale + - generic [ref=f15e37]: + - generic [ref=f15e38]: + - generic [ref=f15e39]: source + - generic [ref=f15e40]: laser 488 + - generic [ref=f15e41]: + - generic [ref=f15e42]: point 1 + - generic [ref=f15e43]: captured + - generic [ref=f15e44]: + - generic [ref=f15e45]: point 2 + - generic [ref=f15e46]: — + - generic [ref=f15e47]: + - button "capture point 2" [ref=f15e48] [cursor=pointer] + - button "solve transform" [ref=f15e49] [cursor=pointer] + - generic [ref=f15e50]: + - generic [ref=f15e51]: + - button "▼" [ref=f15e52] [cursor=pointer] + - generic [ref=f15e53]: ACQUISITION + - generic [ref=f15e54]: "0.325" + - generic [ref=f15e55]: ready + - generic [ref=f15e56]: + - generic [ref=f15e57]: + - generic [ref=f15e58]: interval + - slider [ref=f15e59]: "100" + - generic [ref=f15e60]: 120s + - generic [ref=f15e61]: + - generic [ref=f15e62]: timepoints + - slider [ref=f15e63]: "60" + - generic [ref=f15e64]: "60" + - button "start" [ref=f15e66] [cursor=pointer] + - generic [ref=f15e68]: + - button "▼" [ref=f15e69] [cursor=pointer] + - generic [ref=f15e70]: COURTYARD + - generic [ref=f15e71]: rail · deck + - generic [ref=f15e72]: "0.195" + - generic [ref=f15e73]: ready + - generic [ref=f15e75]: + - button "▼" [ref=f15e76] [cursor=pointer] + - generic [ref=f15e77]: EVENTS + - generic [ref=f15e78]: none + - generic [ref=f15e79]: "0.134" + - generic [ref=f15e80]: ready + - generic: + - generic: + - generic [ref=f15e82]: + - button "▼" [ref=f15e83] [cursor=pointer] + - generic [ref=f15e84]: SPIM HEAD + - generic [ref=f15e85]: 35% · 40ms + - generic [ref=f15e86]: "0.52" + - generic [ref=f15e87]: PIN + - generic [ref=f15e88]: ready + - generic [ref=f15e90]: + - button "▼" [ref=f15e91] [cursor=pointer] + - generic [ref=f15e92]: STAGE + - generic [ref=f15e93]: 1610.4, 905.2, -12.8 + - generic [ref=f15e94]: "0.565" + - generic [ref=f15e95]: PIN + - generic [ref=f15e96]: live + - generic [ref=f15e98]: + - button "▼" [ref=f15e99] [cursor=pointer] + - generic [ref=f15e100]: CURATOR + - generic [ref=f15e101]: 1 needs you + - generic [ref=f15e102]: "0.588" + - generic [ref=f15e103]: PIN + - generic [ref=f15e104]: live + - generic [ref=f15e105]: + - button "0 home" [ref=f15e106] [cursor=pointer] + - button "1 detect" [ref=f15e107] [cursor=pointer] + - button "2 position" [ref=f15e108] [cursor=pointer] + - button "3 calibrate" [ref=f15e109] [cursor=pointer] + - button "4 acquire" [ref=f15e110] [cursor=pointer] + - button "5 curator" [ref=f15e111] [cursor=pointer] + - button "bench" [ref=f15e112] [cursor=pointer] + - generic [ref=f15e113]: + - text: density + - slider [ref=f15e114]: "4" + - generic [ref=f15e115]: "4" + - generic [ref=f15e116]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f15e117]: + - button "survey" [ref=f15e118] [cursor=pointer] + - button "operate" [ref=f15e119] [cursor=pointer] + - button "acquire" [ref=f15e120] [cursor=pointer] + - generic [ref=f15e121]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T09-10-52-208Z.yml b/.playwright-mcp/page-2026-08-24T09-10-52-208Z.yml new file mode 100644 index 00000000..6235a27b --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T09-10-52-208Z.yml @@ -0,0 +1,5 @@ +- generic [active] [ref=e1]: + - heading "Error response" [level=1] [ref=e2] + - paragraph [ref=e3]: "Error code: 404" + - paragraph [ref=e4]: "Message: File not found." + - paragraph [ref=e5]: "Error code explanation: 404 - Nothing matches the given URI." \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T09-11-11-655Z.yml b/.playwright-mcp/page-2026-08-24T09-11-11-655Z.yml new file mode 100644 index 00000000..7fe51f8c --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T09-11-11-655Z.yml @@ -0,0 +1,91 @@ +- generic [active] [ref=f1e1]: + - generic [ref=f1e2]: + - generic: + - generic [ref=f1e3]: + - generic [ref=f1e4]: + - button "▼" [ref=f1e5] [cursor=pointer] + - generic [ref=f1e6]: EMBRYOS · 4 + - generic [ref=f1e7]: "0.70" + - generic [ref=f1e8]: live + - generic [ref=f1e9]: + - generic [ref=f1e10]: + - generic [ref=f1e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=f1e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=f1e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f1e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=f1e15]: + - button "remap region" [ref=f1e16] [cursor=pointer] + - generic [ref=f1e17]: µm + - generic [ref=f1e18]: + - generic [ref=f1e19]: + - button "▼" [ref=f1e20] [cursor=pointer] + - generic [ref=f1e21]: BOTTOM CAMERA + - generic [ref=f1e22]: "0.90" + - generic [ref=f1e23]: live + - generic [ref=f1e27]: + - button "−" [ref=f1e28] [cursor=pointer] + - generic [ref=f1e29]: 1.0× + - button "+" [ref=f1e30] [cursor=pointer] + - generic [ref=f1e31]: + - generic [ref=f1e32]: + - button "▼" [ref=f1e33] [cursor=pointer] + - generic [ref=f1e34]: SPIM HEAD + - generic [ref=f1e35]: "0.80" + - generic [ref=f1e36]: ready + - generic [ref=f1e37]: + - generic [ref=f1e38]: + - generic [ref=f1e39]: laser + - slider [ref=f1e40]: "35" + - generic [ref=f1e41]: 35% + - generic [ref=f1e42]: + - generic [ref=f1e43]: exposure + - slider [ref=f1e44]: "40" + - generic [ref=f1e45]: 40ms + - generic [ref=f1e46]: + - generic [ref=f1e47]: step + - slider [ref=f1e48]: "50" + - generic [ref=f1e49]: 50µm + - generic [ref=f1e50]: + - button "go to e02" [ref=f1e51] [cursor=pointer] + - button "HALT" [ref=f1e52] [cursor=pointer] + - generic [ref=f1e53]: + - generic [ref=f1e54]: + - button "▼" [ref=f1e55] [cursor=pointer] + - generic [ref=f1e56]: STAGE + - generic [ref=f1e57]: "0.60" + - generic [ref=f1e58]: live + - generic [ref=f1e59]: + - generic [ref=f1e60]: + - generic [ref=f1e61]: x + - generic [ref=f1e62]: 1610.4 µm + - generic [ref=f1e63]: + - generic [ref=f1e64]: "y" + - generic [ref=f1e65]: 905.2 µm + - generic [ref=f1e66]: + - generic [ref=f1e67]: z + - generic [ref=f1e68]: "-12.8 µm" + - generic [ref=f1e69]: + - button "0 home" [ref=f1e70] [cursor=pointer] + - button "1 detect" [ref=f1e71] [cursor=pointer] + - button "2 position" [ref=f1e72] [cursor=pointer] + - button "3 calibrate" [ref=f1e73] [cursor=pointer] + - button "4 acquire" [ref=f1e74] [cursor=pointer] + - button "5 curator" [ref=f1e75] [cursor=pointer] + - button "bench" [ref=f1e76] [cursor=pointer] + - generic [ref=f1e77]: + - text: density + - slider [ref=f1e78]: "5" + - generic [ref=f1e79]: "5" + - generic [ref=f1e80]: + - generic [ref=f1e81]: t+0s + - text: × + - combobox [ref=f1e82]: + - option "1" + - option "10" [selected] + - option "60" + - generic [ref=f1e83]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f1e84]: + - button "survey" [ref=f1e85] [cursor=pointer] + - button "operate" [ref=f1e86] [cursor=pointer] + - button "acquire" [ref=f1e87] [cursor=pointer] + - generic [ref=f1e88]: 100% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T09-11-29-129Z.yml b/.playwright-mcp/page-2026-08-24T09-11-29-129Z.yml new file mode 100644 index 00000000..df26ced1 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T09-11-29-129Z.yml @@ -0,0 +1,129 @@ +- generic [active] [ref=f2e1]: + - generic [ref=f2e2]: + - generic: + - generic [ref=f2e3]: + - generic [ref=f2e4]: + - button "▼" [ref=f2e5] [cursor=pointer] + - generic [ref=f2e6]: EMBRYOS · 4 + - generic [ref=f2e7]: "0.70" + - generic [ref=f2e8]: live + - generic [ref=f2e9]: + - generic [ref=f2e10]: + - generic [ref=f2e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=f2e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=f2e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f2e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=f2e15]: + - button "remap region" [ref=f2e16] [cursor=pointer] + - generic [ref=f2e17]: µm + - generic [ref=f2e18]: + - generic [ref=f2e19]: + - button "▼" [ref=f2e20] [cursor=pointer] + - generic [ref=f2e21]: BOTTOM CAMERA + - generic [ref=f2e22]: "0.90" + - generic [ref=f2e23]: live + - generic [ref=f2e27]: + - button "−" [ref=f2e28] [cursor=pointer] + - generic [ref=f2e29]: 1.0× + - button "+" [ref=f2e30] [cursor=pointer] + - generic [ref=f2e31]: + - generic [ref=f2e32]: + - button "▼" [ref=f2e33] [cursor=pointer] + - generic [ref=f2e34]: CALIBRATION · two-point + - generic [ref=f2e35]: "0.95" + - generic [ref=f2e36]: stale + - generic [ref=f2e37]: + - generic [ref=f2e38]: + - generic [ref=f2e39]: source + - generic [ref=f2e40]: laser 488 + - generic [ref=f2e41]: + - generic [ref=f2e42]: point 1 + - generic [ref=f2e43]: captured + - generic [ref=f2e44]: + - generic [ref=f2e45]: point 2 + - generic [ref=f2e46]: — + - generic [ref=f2e47]: + - button "capture point 2" [ref=f2e48] [cursor=pointer] + - button "solve transform" [ref=f2e49] [cursor=pointer] + - generic [ref=f2e50]: + - generic [ref=f2e51]: + - button "▼" [ref=f2e52] [cursor=pointer] + - generic [ref=f2e53]: ACQUISITION + - generic [ref=f2e54]: "0.50" + - generic [ref=f2e55]: ready + - generic [ref=f2e56]: + - generic [ref=f2e57]: + - generic [ref=f2e58]: interval + - slider [ref=f2e59]: "100" + - generic [ref=f2e60]: 120s + - generic [ref=f2e61]: + - generic [ref=f2e62]: timepoints + - slider [ref=f2e63]: "60" + - generic [ref=f2e64]: "60" + - button "start" [ref=f2e66] [cursor=pointer] + - generic [ref=f2e68]: + - button "▼" [ref=f2e69] [cursor=pointer] + - generic [ref=f2e70]: RELEASES + - generic [ref=f2e71]: none + - generic [ref=f2e72]: "0.40" + - generic [ref=f2e73]: live + - generic [ref=f2e75]: + - button "▼" [ref=f2e76] [cursor=pointer] + - generic [ref=f2e77]: COURTYARD + - generic [ref=f2e78]: rail · deck + - generic [ref=f2e79]: "0.30" + - generic [ref=f2e80]: ready + - generic [ref=f2e82]: + - button "▼" [ref=f2e83] [cursor=pointer] + - generic [ref=f2e84]: EVENTS + - generic [ref=f2e85]: none + - generic [ref=f2e86]: "0.20" + - generic [ref=f2e87]: ready + - generic: + - generic: + - generic [ref=f2e89]: + - button "▼" [ref=f2e90] [cursor=pointer] + - generic [ref=f2e91]: SPIM HEAD + - generic [ref=f2e92]: 35% · 40ms + - generic [ref=f2e93]: "0.80" + - generic [ref=f2e94]: PIN + - generic [ref=f2e95]: ready + - generic [ref=f2e97]: + - button "▼" [ref=f2e98] [cursor=pointer] + - generic [ref=f2e99]: STAGE + - generic [ref=f2e100]: 1610.4, 905.2, -12.8 + - generic [ref=f2e101]: "0.60" + - generic [ref=f2e102]: PIN + - generic [ref=f2e103]: live + - generic [ref=f2e105]: + - button "▼" [ref=f2e106] [cursor=pointer] + - generic [ref=f2e107]: CURATOR + - generic [ref=f2e108]: 1 needs you + - generic [ref=f2e109]: "0.85" + - generic [ref=f2e110]: PIN + - generic [ref=f2e111]: live + - generic [ref=f2e112]: + - button "0 home" [ref=f2e113] [cursor=pointer] + - button "1 detect" [ref=f2e114] [cursor=pointer] + - button "2 position" [ref=f2e115] [cursor=pointer] + - button "3 calibrate" [ref=f2e116] [cursor=pointer] + - button "4 acquire" [ref=f2e117] [cursor=pointer] + - button "5 curator" [ref=f2e118] [cursor=pointer] + - button "bench" [ref=f2e119] [cursor=pointer] + - generic [ref=f2e120]: + - text: density + - slider [ref=f2e121]: "4" + - generic [ref=f2e122]: "4" + - generic [ref=f2e123]: + - generic [ref=f2e124]: t+0s + - text: × + - combobox [ref=f2e125]: + - option "1" + - option "10" [selected] + - option "60" + - generic [ref=f2e126]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f2e127]: + - button "survey" [ref=f2e128] [cursor=pointer] + - button "operate" [ref=f2e129] [cursor=pointer] + - button "acquire" [ref=f2e130] [cursor=pointer] + - generic [ref=f2e131]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T09-11-47-690Z.yml b/.playwright-mcp/page-2026-08-24T09-11-47-690Z.yml new file mode 100644 index 00000000..2373fd18 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T09-11-47-690Z.yml @@ -0,0 +1,129 @@ +- generic [active] [ref=f3e1]: + - generic [ref=f3e2]: + - generic: + - generic [ref=f3e3]: + - generic [ref=f3e4]: + - button "▼" [ref=f3e5] [cursor=pointer] + - generic [ref=f3e6]: EMBRYOS · 4 + - generic [ref=f3e7]: "0.70" + - generic [ref=f3e8]: live + - generic [ref=f3e9]: + - generic [ref=f3e10]: + - generic [ref=f3e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=f3e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=f3e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f3e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=f3e15]: + - button "remap region" [ref=f3e16] [cursor=pointer] + - generic [ref=f3e17]: µm + - generic [ref=f3e18]: + - generic [ref=f3e19]: + - button "▼" [ref=f3e20] [cursor=pointer] + - generic [ref=f3e21]: BOTTOM CAMERA + - generic [ref=f3e22]: "0.90" + - generic [ref=f3e23]: live + - generic [ref=f3e27]: + - button "−" [ref=f3e28] [cursor=pointer] + - generic [ref=f3e29]: 1.0× + - button "+" [ref=f3e30] [cursor=pointer] + - generic [ref=f3e31]: + - generic [ref=f3e32]: + - button "▼" [ref=f3e33] [cursor=pointer] + - generic [ref=f3e34]: CALIBRATION · two-point + - generic [ref=f3e35]: "0.95" + - generic [ref=f3e36]: stale + - generic [ref=f3e37]: + - generic [ref=f3e38]: + - generic [ref=f3e39]: source + - generic [ref=f3e40]: laser 488 + - generic [ref=f3e41]: + - generic [ref=f3e42]: point 1 + - generic [ref=f3e43]: captured + - generic [ref=f3e44]: + - generic [ref=f3e45]: point 2 + - generic [ref=f3e46]: — + - generic [ref=f3e47]: + - button "capture point 2" [ref=f3e48] [cursor=pointer] + - button "solve transform" [ref=f3e49] [cursor=pointer] + - generic [ref=f3e50]: + - generic [ref=f3e51]: + - button "▼" [ref=f3e52] [cursor=pointer] + - generic [ref=f3e53]: ACQUISITION + - generic [ref=f3e54]: "0.50" + - generic [ref=f3e55]: ready + - generic [ref=f3e56]: + - generic [ref=f3e57]: + - generic [ref=f3e58]: interval + - slider [ref=f3e59]: "100" + - generic [ref=f3e60]: 120s + - generic [ref=f3e61]: + - generic [ref=f3e62]: timepoints + - slider [ref=f3e63]: "60" + - generic [ref=f3e64]: "60" + - button "start" [ref=f3e66] [cursor=pointer] + - generic [ref=f3e68]: + - button "▼" [ref=f3e69] [cursor=pointer] + - generic [ref=f3e70]: RELEASES + - generic [ref=f3e71]: none + - generic [ref=f3e72]: "0.40" + - generic [ref=f3e73]: live + - generic [ref=f3e75]: + - button "▼" [ref=f3e76] [cursor=pointer] + - generic [ref=f3e77]: COURTYARD + - generic [ref=f3e78]: rail · deck + - generic [ref=f3e79]: "0.30" + - generic [ref=f3e80]: ready + - generic [ref=f3e82]: + - button "▼" [ref=f3e83] [cursor=pointer] + - generic [ref=f3e84]: EVENTS + - generic [ref=f3e85]: none + - generic [ref=f3e86]: "0.20" + - generic [ref=f3e87]: ready + - generic: + - generic: + - generic [ref=f3e89]: + - button "▼" [ref=f3e90] [cursor=pointer] + - generic [ref=f3e91]: SPIM HEAD + - generic [ref=f3e92]: 35% · 40ms + - generic [ref=f3e93]: "0.80" + - generic [ref=f3e94]: PIN + - generic [ref=f3e95]: ready + - generic [ref=f3e97]: + - button "▼" [ref=f3e98] [cursor=pointer] + - generic [ref=f3e99]: STAGE + - generic [ref=f3e100]: 1610.4, 905.2, -12.8 + - generic [ref=f3e101]: "0.60" + - generic [ref=f3e102]: PIN + - generic [ref=f3e103]: live + - generic [ref=f3e105]: + - button "▼" [ref=f3e106] [cursor=pointer] + - generic [ref=f3e107]: CURATOR + - generic [ref=f3e108]: 1 needs you + - generic [ref=f3e109]: "0.85" + - generic [ref=f3e110]: PIN + - generic [ref=f3e111]: live + - generic [ref=f3e112]: + - button "0 home" [ref=f3e113] [cursor=pointer] + - button "1 detect" [ref=f3e114] [cursor=pointer] + - button "2 position" [ref=f3e115] [cursor=pointer] + - button "3 calibrate" [ref=f3e116] [cursor=pointer] + - button "4 acquire" [ref=f3e117] [cursor=pointer] + - button "5 curator" [ref=f3e118] [cursor=pointer] + - button "bench" [ref=f3e119] [cursor=pointer] + - generic [ref=f3e120]: + - text: density + - slider [ref=f3e121]: "4" + - generic [ref=f3e122]: "4" + - generic [ref=f3e123]: + - generic [ref=f3e124]: t+0s + - text: × + - combobox [ref=f3e125]: + - option "1" + - option "10" [selected] + - option "60" + - generic [ref=f3e126]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f3e127]: + - button "survey" [ref=f3e128] [cursor=pointer] + - button "operate" [ref=f3e129] [cursor=pointer] + - button "acquire" [ref=f3e130] [cursor=pointer] + - generic [ref=f3e131]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T09-12-18-965Z.yml b/.playwright-mcp/page-2026-08-24T09-12-18-965Z.yml new file mode 100644 index 00000000..d6eda38e --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T09-12-18-965Z.yml @@ -0,0 +1,129 @@ +- generic [active] [ref=f3e1]: + - generic [ref=f3e2]: + - generic: + - generic [ref=f3e3]: + - generic [ref=f3e4]: + - button "▼" [ref=f3e5] [cursor=pointer] + - generic [ref=f3e6]: EMBRYOS · 5 + - generic [ref=f3e7]: "0.70" + - generic [ref=f3e8]: live + - generic [ref=f3e9]: + - generic [ref=f3e10]: + - generic [ref=f3e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=f3e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=f3e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f3e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=f3e15]: + - button "remap region" [ref=f3e16] [cursor=pointer] + - generic [ref=f3e17]: µm + - generic [ref=f3e18]: + - generic [ref=f3e19]: + - button "▼" [ref=f3e20] [cursor=pointer] + - generic [ref=f3e21]: BOTTOM CAMERA + - generic [ref=f3e22]: "0.90" + - generic [ref=f3e23]: live + - generic [ref=f3e27]: + - button "−" [ref=f3e28] [cursor=pointer] + - generic [ref=f3e29]: 1.0× + - button "+" [ref=f3e30] [cursor=pointer] + - generic [ref=f3e31]: + - generic [ref=f3e32]: + - button "▼" [ref=f3e33] [cursor=pointer] + - generic [ref=f3e34]: CALIBRATION · two-point + - generic [ref=f3e35]: "0.95" + - generic [ref=f3e36]: live + - generic [ref=f3e37]: + - generic [ref=f3e38]: + - generic [ref=f3e39]: source + - generic [ref=f3e40]: laser 488 + - generic [ref=f3e41]: + - generic [ref=f3e42]: point 1 + - generic [ref=f3e43]: captured + - generic [ref=f3e44]: + - generic [ref=f3e45]: point 2 + - generic [ref=f3e46]: — + - generic [ref=f3e47]: + - button "capture point 2" [ref=f3e48] [cursor=pointer] + - button "solve transform" [ref=f3e49] [cursor=pointer] + - generic [ref=f3e50]: + - generic [ref=f3e51]: + - button "▼" [ref=f3e52] [cursor=pointer] + - generic [ref=f3e53]: ACQUISITION + - generic [ref=f3e54]: "0.50" + - generic [ref=f3e55]: ready + - generic [ref=f3e56]: + - generic [ref=f3e57]: + - generic [ref=f3e58]: interval + - slider [ref=f3e59]: "100" + - generic [ref=f3e60]: 120s + - generic [ref=f3e61]: + - generic [ref=f3e62]: timepoints + - slider [ref=f3e63]: "60" + - generic [ref=f3e64]: "60" + - button "start" [ref=f3e66] [cursor=pointer] + - generic [ref=f3e68]: + - button "▼" [ref=f3e69] [cursor=pointer] + - generic [ref=f3e70]: RELEASES + - generic [ref=f3e71]: 10 · seize + - generic [ref=f3e72]: "0.40" + - generic [ref=f3e73]: live + - generic [ref=f3e75]: + - button "▼" [ref=f3e76] [cursor=pointer] + - generic [ref=f3e77]: COURTYARD + - generic [ref=f3e78]: rail · deck + - generic [ref=f3e79]: "0.30" + - generic [ref=f3e80]: ready + - generic [ref=f3e82]: + - button "▼" [ref=f3e83] [cursor=pointer] + - generic [ref=f3e84]: EVENTS + - generic [ref=f3e85]: 14 · 2s ago + - generic [ref=f3e86]: "0.20" + - generic [ref=f3e87]: ready + - generic: + - generic: + - generic [ref=f3e89]: + - button "▼" [ref=f3e90] [cursor=pointer] + - generic [ref=f3e91]: SPIM HEAD + - generic [ref=f3e92]: 35% · 40ms + - generic [ref=f3e93]: "0.80" + - generic [ref=f3e94]: PIN + - generic [ref=f3e95]: ready + - generic [ref=f3e97]: + - button "▼" [ref=f3e98] [cursor=pointer] + - generic [ref=f3e99]: STAGE + - generic [ref=f3e100]: 1601.4, 903.5, -12.6 + - generic [ref=f3e101]: "0.60" + - generic [ref=f3e102]: PIN + - generic [ref=f3e103]: live + - generic [ref=f3e105]: + - button "▼" [ref=f3e106] [cursor=pointer] + - generic [ref=f3e107]: CURATOR + - generic [ref=f3e108]: 1 needs you + - generic [ref=f3e109]: "0.85" + - generic [ref=f3e110]: PIN + - generic [ref=f3e111]: live + - generic [ref=f3e112]: + - button "0 home" [ref=f3e113] [cursor=pointer] + - button "1 detect" [ref=f3e114] [cursor=pointer] + - button "2 position" [ref=f3e115] [cursor=pointer] + - button "3 calibrate" [ref=f3e116] [cursor=pointer] + - button "4 acquire" [ref=f3e117] [cursor=pointer] + - button "5 curator" [ref=f3e118] [cursor=pointer] + - button "bench" [ref=f3e119] [cursor=pointer] + - generic [ref=f3e120]: + - text: density + - slider [ref=f3e121]: "4" + - generic [ref=f3e122]: "4" + - generic [ref=f3e123]: + - generic [ref=f3e124]: t+312s + - text: × + - combobox [ref=f3e125]: + - option "1" + - option "10" [selected] + - option "60" + - generic [ref=f3e126]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f3e127]: + - button "survey" [ref=f3e128] [cursor=pointer] + - button "operate" [ref=f3e129] [cursor=pointer] + - button "acquire" [ref=f3e130] [cursor=pointer] + - generic [ref=f3e131]: 225% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T09-13-14-498Z.yml b/.playwright-mcp/page-2026-08-24T09-13-14-498Z.yml new file mode 100644 index 00000000..fc79e339 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T09-13-14-498Z.yml @@ -0,0 +1,129 @@ +- generic [active] [ref=f4e1]: + - generic [ref=f4e2]: + - generic: + - generic [ref=f4e3]: + - generic [ref=f4e4]: + - button "▼" [ref=f4e5] [cursor=pointer] + - generic [ref=f4e6]: EMBRYOS · 4 + - generic [ref=f4e7]: "0.70" + - generic [ref=f4e8]: live + - generic [ref=f4e9]: + - generic [ref=f4e10]: + - generic [ref=f4e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=f4e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=f4e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f4e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=f4e15]: + - button "remap region" [ref=f4e16] [cursor=pointer] + - generic [ref=f4e17]: µm + - generic [ref=f4e18]: + - generic [ref=f4e19]: + - button "▼" [ref=f4e20] [cursor=pointer] + - generic [ref=f4e21]: BOTTOM CAMERA + - generic [ref=f4e22]: "0.90" + - generic [ref=f4e23]: live + - generic [ref=f4e27]: + - button "−" [ref=f4e28] [cursor=pointer] + - generic [ref=f4e29]: 1.0× + - button "+" [ref=f4e30] [cursor=pointer] + - generic [ref=f4e31]: + - generic [ref=f4e32]: + - button "▼" [ref=f4e33] [cursor=pointer] + - generic [ref=f4e34]: CALIBRATION · two-point + - generic [ref=f4e35]: "0.95" + - generic [ref=f4e36]: stale + - generic [ref=f4e37]: + - generic [ref=f4e38]: + - generic [ref=f4e39]: source + - generic [ref=f4e40]: laser 488 + - generic [ref=f4e41]: + - generic [ref=f4e42]: point 1 + - generic [ref=f4e43]: captured + - generic [ref=f4e44]: + - generic [ref=f4e45]: point 2 + - generic [ref=f4e46]: — + - generic [ref=f4e47]: + - button "capture point 2" [ref=f4e48] [cursor=pointer] + - button "solve transform" [ref=f4e49] [cursor=pointer] + - generic [ref=f4e50]: + - generic [ref=f4e51]: + - button "▼" [ref=f4e52] [cursor=pointer] + - generic [ref=f4e53]: ACQUISITION + - generic [ref=f4e54]: "0.50" + - generic [ref=f4e55]: ready + - generic [ref=f4e56]: + - generic [ref=f4e57]: + - generic [ref=f4e58]: interval + - slider [ref=f4e59]: "100" + - generic [ref=f4e60]: 120s + - generic [ref=f4e61]: + - generic [ref=f4e62]: timepoints + - slider [ref=f4e63]: "60" + - generic [ref=f4e64]: "60" + - button "start" [ref=f4e66] [cursor=pointer] + - generic [ref=f4e68]: + - button "▼" [ref=f4e69] [cursor=pointer] + - generic [ref=f4e70]: RELEASES + - generic [ref=f4e71]: none + - generic [ref=f4e72]: "0.40" + - generic [ref=f4e73]: live + - generic [ref=f4e75]: + - button "▼" [ref=f4e76] [cursor=pointer] + - generic [ref=f4e77]: COURTYARD + - generic [ref=f4e78]: rail · deck + - generic [ref=f4e79]: "0.30" + - generic [ref=f4e80]: ready + - generic [ref=f4e82]: + - button "▼" [ref=f4e83] [cursor=pointer] + - generic [ref=f4e84]: EVENTS + - generic [ref=f4e85]: none + - generic [ref=f4e86]: "0.20" + - generic [ref=f4e87]: ready + - generic: + - generic: + - generic [ref=f4e89]: + - button "▼" [ref=f4e90] [cursor=pointer] + - generic [ref=f4e91]: SPIM HEAD + - generic [ref=f4e92]: 35% · 40ms + - generic [ref=f4e93]: "0.80" + - generic [ref=f4e94]: PIN + - generic [ref=f4e95]: ready + - generic [ref=f4e97]: + - button "▼" [ref=f4e98] [cursor=pointer] + - generic [ref=f4e99]: STAGE + - generic [ref=f4e100]: 1610.4, 905.2, -12.8 + - generic [ref=f4e101]: "0.60" + - generic [ref=f4e102]: PIN + - generic [ref=f4e103]: live + - generic [ref=f4e105]: + - button "▼" [ref=f4e106] [cursor=pointer] + - generic [ref=f4e107]: CURATOR + - generic [ref=f4e108]: 1 needs you + - generic [ref=f4e109]: "0.85" + - generic [ref=f4e110]: PIN + - generic [ref=f4e111]: live + - generic [ref=f4e112]: + - button "0 home" [ref=f4e113] [cursor=pointer] + - button "1 detect" [ref=f4e114] [cursor=pointer] + - button "2 position" [ref=f4e115] [cursor=pointer] + - button "3 calibrate" [ref=f4e116] [cursor=pointer] + - button "4 acquire" [ref=f4e117] [cursor=pointer] + - button "5 curator" [ref=f4e118] [cursor=pointer] + - button "bench" [ref=f4e119] [cursor=pointer] + - generic [ref=f4e120]: + - text: density + - slider [ref=f4e121]: "4" + - generic [ref=f4e122]: "4" + - generic [ref=f4e123]: + - generic [ref=f4e124]: t+0s + - text: × + - combobox [ref=f4e125]: + - option "1" + - option "10" [selected] + - option "60" + - generic [ref=f4e126]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f4e127]: + - button "survey" [ref=f4e128] [cursor=pointer] + - button "operate" [ref=f4e129] [cursor=pointer] + - button "acquire" [ref=f4e130] [cursor=pointer] + - generic [ref=f4e131]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T09-13-22-246Z.yml b/.playwright-mcp/page-2026-08-24T09-13-22-246Z.yml new file mode 100644 index 00000000..6e9575a3 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T09-13-22-246Z.yml @@ -0,0 +1,129 @@ +- generic [active] [ref=f5e1]: + - generic [ref=f5e2]: + - generic: + - generic [ref=f5e3]: + - generic [ref=f5e4]: + - button "▼" [ref=f5e5] [cursor=pointer] + - generic [ref=f5e6]: EMBRYOS · 4 + - generic [ref=f5e7]: "0.70" + - generic [ref=f5e8]: live + - generic [ref=f5e9]: + - generic [ref=f5e10]: + - generic [ref=f5e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=f5e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=f5e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f5e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=f5e15]: + - button "remap region" [ref=f5e16] [cursor=pointer] + - generic [ref=f5e17]: µm + - generic [ref=f5e18]: + - generic [ref=f5e19]: + - button "▼" [ref=f5e20] [cursor=pointer] + - generic [ref=f5e21]: BOTTOM CAMERA + - generic [ref=f5e22]: "0.90" + - generic [ref=f5e23]: live + - generic [ref=f5e27]: + - button "−" [ref=f5e28] [cursor=pointer] + - generic [ref=f5e29]: 1.0× + - button "+" [ref=f5e30] [cursor=pointer] + - generic [ref=f5e31]: + - generic [ref=f5e32]: + - button "▼" [ref=f5e33] [cursor=pointer] + - generic [ref=f5e34]: CALIBRATION · two-point + - generic [ref=f5e35]: "0.95" + - generic [ref=f5e36]: stale + - generic [ref=f5e37]: + - generic [ref=f5e38]: + - generic [ref=f5e39]: source + - generic [ref=f5e40]: laser 488 + - generic [ref=f5e41]: + - generic [ref=f5e42]: point 1 + - generic [ref=f5e43]: captured + - generic [ref=f5e44]: + - generic [ref=f5e45]: point 2 + - generic [ref=f5e46]: — + - generic [ref=f5e47]: + - button "capture point 2" [ref=f5e48] [cursor=pointer] + - button "solve transform" [ref=f5e49] [cursor=pointer] + - generic [ref=f5e50]: + - generic [ref=f5e51]: + - button "▼" [ref=f5e52] [cursor=pointer] + - generic [ref=f5e53]: ACQUISITION + - generic [ref=f5e54]: "0.50" + - generic [ref=f5e55]: ready + - generic [ref=f5e56]: + - generic [ref=f5e57]: + - generic [ref=f5e58]: interval + - slider [ref=f5e59]: "100" + - generic [ref=f5e60]: 120s + - generic [ref=f5e61]: + - generic [ref=f5e62]: timepoints + - slider [ref=f5e63]: "60" + - generic [ref=f5e64]: "60" + - button "start" [ref=f5e66] [cursor=pointer] + - generic [ref=f5e68]: + - button "▼" [ref=f5e69] [cursor=pointer] + - generic [ref=f5e70]: RELEASES + - generic [ref=f5e71]: none + - generic [ref=f5e72]: "0.40" + - generic [ref=f5e73]: live + - generic [ref=f5e75]: + - button "▼" [ref=f5e76] [cursor=pointer] + - generic [ref=f5e77]: COURTYARD + - generic [ref=f5e78]: rail · deck + - generic [ref=f5e79]: "0.30" + - generic [ref=f5e80]: ready + - generic [ref=f5e82]: + - button "▼" [ref=f5e83] [cursor=pointer] + - generic [ref=f5e84]: EVENTS + - generic [ref=f5e85]: none + - generic [ref=f5e86]: "0.20" + - generic [ref=f5e87]: ready + - generic: + - generic: + - generic [ref=f5e89]: + - button "▼" [ref=f5e90] [cursor=pointer] + - generic [ref=f5e91]: SPIM HEAD + - generic [ref=f5e92]: 35% · 40ms + - generic [ref=f5e93]: "0.80" + - generic [ref=f5e94]: PIN + - generic [ref=f5e95]: ready + - generic [ref=f5e97]: + - button "▼" [ref=f5e98] [cursor=pointer] + - generic [ref=f5e99]: STAGE + - generic [ref=f5e100]: 1610.4, 905.2, -12.8 + - generic [ref=f5e101]: "0.60" + - generic [ref=f5e102]: PIN + - generic [ref=f5e103]: live + - generic [ref=f5e105]: + - button "▼" [ref=f5e106] [cursor=pointer] + - generic [ref=f5e107]: CURATOR + - generic [ref=f5e108]: 1 needs you + - generic [ref=f5e109]: "0.85" + - generic [ref=f5e110]: PIN + - generic [ref=f5e111]: live + - generic [ref=f5e112]: + - button "0 home" [ref=f5e113] [cursor=pointer] + - button "1 detect" [ref=f5e114] [cursor=pointer] + - button "2 position" [ref=f5e115] [cursor=pointer] + - button "3 calibrate" [ref=f5e116] [cursor=pointer] + - button "4 acquire" [ref=f5e117] [cursor=pointer] + - button "5 curator" [ref=f5e118] [cursor=pointer] + - button "bench" [ref=f5e119] [cursor=pointer] + - generic [ref=f5e120]: + - text: density + - slider [ref=f5e121]: "4" + - generic [ref=f5e122]: "4" + - generic [ref=f5e123]: + - generic [ref=f5e124]: t+0s + - text: × + - combobox [ref=f5e125]: + - option "1" + - option "10" [selected] + - option "60" + - generic [ref=f5e126]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f5e127]: + - button "survey" [ref=f5e128] [cursor=pointer] + - button "operate" [ref=f5e129] [cursor=pointer] + - button "acquire" [ref=f5e130] [cursor=pointer] + - generic [ref=f5e131]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T09-14-10-171Z.yml b/.playwright-mcp/page-2026-08-24T09-14-10-171Z.yml new file mode 100644 index 00000000..78a42ca1 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T09-14-10-171Z.yml @@ -0,0 +1,129 @@ +- generic [active] [ref=f6e1]: + - generic [ref=f6e2]: + - generic: + - generic [ref=f6e3]: + - generic [ref=f6e4]: + - button "▼" [ref=f6e5] [cursor=pointer] + - generic [ref=f6e6]: EMBRYOS · 4 + - generic [ref=f6e7]: "0.70" + - generic [ref=f6e8]: live + - generic [ref=f6e9]: + - generic [ref=f6e10]: + - generic [ref=f6e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=f6e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=f6e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f6e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=f6e15]: + - button "remap region" [ref=f6e16] [cursor=pointer] + - generic [ref=f6e17]: µm + - generic [ref=f6e18]: + - generic [ref=f6e19]: + - button "▼" [ref=f6e20] [cursor=pointer] + - generic [ref=f6e21]: BOTTOM CAMERA + - generic [ref=f6e22]: "0.90" + - generic [ref=f6e23]: live + - generic [ref=f6e27]: + - button "−" [ref=f6e28] [cursor=pointer] + - generic [ref=f6e29]: 1.0× + - button "+" [ref=f6e30] [cursor=pointer] + - generic [ref=f6e31]: + - generic [ref=f6e32]: + - button "▼" [ref=f6e33] [cursor=pointer] + - generic [ref=f6e34]: CALIBRATION · two-point + - generic [ref=f6e35]: "0.95" + - generic [ref=f6e36]: stale + - generic [ref=f6e37]: + - generic [ref=f6e38]: + - generic [ref=f6e39]: source + - generic [ref=f6e40]: laser 488 + - generic [ref=f6e41]: + - generic [ref=f6e42]: point 1 + - generic [ref=f6e43]: captured + - generic [ref=f6e44]: + - generic [ref=f6e45]: point 2 + - generic [ref=f6e46]: — + - generic [ref=f6e47]: + - button "capture point 2" [ref=f6e48] [cursor=pointer] + - button "solve transform" [ref=f6e49] [cursor=pointer] + - generic [ref=f6e50]: + - generic [ref=f6e51]: + - button "▼" [ref=f6e52] [cursor=pointer] + - generic [ref=f6e53]: ACQUISITION + - generic [ref=f6e54]: "0.50" + - generic [ref=f6e55]: ready + - generic [ref=f6e56]: + - generic [ref=f6e57]: + - generic [ref=f6e58]: interval + - slider [ref=f6e59]: "100" + - generic [ref=f6e60]: 120s + - generic [ref=f6e61]: + - generic [ref=f6e62]: timepoints + - slider [ref=f6e63]: "60" + - generic [ref=f6e64]: "60" + - button "start" [ref=f6e66] [cursor=pointer] + - generic [ref=f6e68]: + - button "▼" [ref=f6e69] [cursor=pointer] + - generic [ref=f6e70]: RELEASES + - generic [ref=f6e71]: none + - generic [ref=f6e72]: "0.40" + - generic [ref=f6e73]: live + - generic [ref=f6e75]: + - button "▼" [ref=f6e76] [cursor=pointer] + - generic [ref=f6e77]: COURTYARD + - generic [ref=f6e78]: rail · deck + - generic [ref=f6e79]: "0.30" + - generic [ref=f6e80]: ready + - generic [ref=f6e82]: + - button "▼" [ref=f6e83] [cursor=pointer] + - generic [ref=f6e84]: EVENTS + - generic [ref=f6e85]: none + - generic [ref=f6e86]: "0.20" + - generic [ref=f6e87]: ready + - generic: + - generic: + - generic [ref=f6e89]: + - button "▼" [ref=f6e90] [cursor=pointer] + - generic [ref=f6e91]: SPIM HEAD + - generic [ref=f6e92]: 35% · 40ms + - generic [ref=f6e93]: "0.80" + - generic [ref=f6e94]: PIN + - generic [ref=f6e95]: ready + - generic [ref=f6e97]: + - button "▼" [ref=f6e98] [cursor=pointer] + - generic [ref=f6e99]: STAGE + - generic [ref=f6e100]: 1610.4, 905.2, -12.8 + - generic [ref=f6e101]: "0.60" + - generic [ref=f6e102]: PIN + - generic [ref=f6e103]: live + - generic [ref=f6e105]: + - button "▼" [ref=f6e106] [cursor=pointer] + - generic [ref=f6e107]: CURATOR + - generic [ref=f6e108]: 1 needs you + - generic [ref=f6e109]: "0.85" + - generic [ref=f6e110]: PIN + - generic [ref=f6e111]: live + - generic [ref=f6e112]: + - button "0 home" [ref=f6e113] [cursor=pointer] + - button "1 detect" [ref=f6e114] [cursor=pointer] + - button "2 position" [ref=f6e115] [cursor=pointer] + - button "3 calibrate" [ref=f6e116] [cursor=pointer] + - button "4 acquire" [ref=f6e117] [cursor=pointer] + - button "5 curator" [ref=f6e118] [cursor=pointer] + - button "bench" [ref=f6e119] [cursor=pointer] + - generic [ref=f6e120]: + - text: density + - slider [ref=f6e121]: "4" + - generic [ref=f6e122]: "4" + - generic [ref=f6e123]: + - generic [ref=f6e124]: t+0s + - text: × + - combobox [ref=f6e125]: + - option "1" + - option "10" [selected] + - option "60" + - generic [ref=f6e126]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f6e127]: + - button "survey" [ref=f6e128] [cursor=pointer] + - button "operate" [ref=f6e129] [cursor=pointer] + - button "acquire" [ref=f6e130] [cursor=pointer] + - generic [ref=f6e131]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T09-14-17-967Z.yml b/.playwright-mcp/page-2026-08-24T09-14-17-967Z.yml new file mode 100644 index 00000000..445606cf --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T09-14-17-967Z.yml @@ -0,0 +1,129 @@ +- generic [active] [ref=f7e1]: + - generic [ref=f7e2]: + - generic: + - generic [ref=f7e3]: + - generic [ref=f7e4]: + - button "▼" [ref=f7e5] [cursor=pointer] + - generic [ref=f7e6]: EMBRYOS · 4 + - generic [ref=f7e7]: "0.70" + - generic [ref=f7e8]: live + - generic [ref=f7e9]: + - generic [ref=f7e10]: + - generic [ref=f7e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=f7e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=f7e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f7e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=f7e15]: + - button "remap region" [ref=f7e16] [cursor=pointer] + - generic [ref=f7e17]: µm + - generic [ref=f7e18]: + - generic [ref=f7e19]: + - button "▼" [ref=f7e20] [cursor=pointer] + - generic [ref=f7e21]: BOTTOM CAMERA + - generic [ref=f7e22]: "0.90" + - generic [ref=f7e23]: live + - generic [ref=f7e27]: + - button "−" [ref=f7e28] [cursor=pointer] + - generic [ref=f7e29]: 1.0× + - button "+" [ref=f7e30] [cursor=pointer] + - generic [ref=f7e31]: + - generic [ref=f7e32]: + - button "▼" [ref=f7e33] [cursor=pointer] + - generic [ref=f7e34]: CALIBRATION · two-point + - generic [ref=f7e35]: "0.95" + - generic [ref=f7e36]: stale + - generic [ref=f7e37]: + - generic [ref=f7e38]: + - generic [ref=f7e39]: source + - generic [ref=f7e40]: laser 488 + - generic [ref=f7e41]: + - generic [ref=f7e42]: point 1 + - generic [ref=f7e43]: captured + - generic [ref=f7e44]: + - generic [ref=f7e45]: point 2 + - generic [ref=f7e46]: — + - generic [ref=f7e47]: + - button "capture point 2" [ref=f7e48] [cursor=pointer] + - button "solve transform" [ref=f7e49] [cursor=pointer] + - generic [ref=f7e50]: + - generic [ref=f7e51]: + - button "▼" [ref=f7e52] [cursor=pointer] + - generic [ref=f7e53]: ACQUISITION + - generic [ref=f7e54]: "0.50" + - generic [ref=f7e55]: ready + - generic [ref=f7e56]: + - generic [ref=f7e57]: + - generic [ref=f7e58]: interval + - slider [ref=f7e59]: "100" + - generic [ref=f7e60]: 120s + - generic [ref=f7e61]: + - generic [ref=f7e62]: timepoints + - slider [ref=f7e63]: "60" + - generic [ref=f7e64]: "60" + - button "start" [ref=f7e66] [cursor=pointer] + - generic [ref=f7e68]: + - button "▼" [ref=f7e69] [cursor=pointer] + - generic [ref=f7e70]: RELEASES + - generic [ref=f7e71]: none + - generic [ref=f7e72]: "0.40" + - generic [ref=f7e73]: live + - generic [ref=f7e75]: + - button "▼" [ref=f7e76] [cursor=pointer] + - generic [ref=f7e77]: COURTYARD + - generic [ref=f7e78]: rail · deck + - generic [ref=f7e79]: "0.30" + - generic [ref=f7e80]: ready + - generic [ref=f7e82]: + - button "▼" [ref=f7e83] [cursor=pointer] + - generic [ref=f7e84]: EVENTS + - generic [ref=f7e85]: none + - generic [ref=f7e86]: "0.20" + - generic [ref=f7e87]: ready + - generic: + - generic: + - generic [ref=f7e89]: + - button "▼" [ref=f7e90] [cursor=pointer] + - generic [ref=f7e91]: SPIM HEAD + - generic [ref=f7e92]: 35% · 40ms + - generic [ref=f7e93]: "0.80" + - generic [ref=f7e94]: PIN + - generic [ref=f7e95]: ready + - generic [ref=f7e97]: + - button "▼" [ref=f7e98] [cursor=pointer] + - generic [ref=f7e99]: STAGE + - generic [ref=f7e100]: 1610.4, 905.2, -12.8 + - generic [ref=f7e101]: "0.60" + - generic [ref=f7e102]: PIN + - generic [ref=f7e103]: live + - generic [ref=f7e105]: + - button "▼" [ref=f7e106] [cursor=pointer] + - generic [ref=f7e107]: CURATOR + - generic [ref=f7e108]: 1 needs you + - generic [ref=f7e109]: "0.85" + - generic [ref=f7e110]: PIN + - generic [ref=f7e111]: live + - generic [ref=f7e112]: + - button "0 home" [ref=f7e113] [cursor=pointer] + - button "1 detect" [ref=f7e114] [cursor=pointer] + - button "2 position" [ref=f7e115] [cursor=pointer] + - button "3 calibrate" [ref=f7e116] [cursor=pointer] + - button "4 acquire" [ref=f7e117] [cursor=pointer] + - button "5 curator" [ref=f7e118] [cursor=pointer] + - button "bench" [ref=f7e119] [cursor=pointer] + - generic [ref=f7e120]: + - text: density + - slider [ref=f7e121]: "4" + - generic [ref=f7e122]: "4" + - generic [ref=f7e123]: + - generic [ref=f7e124]: t+0s + - text: × + - combobox [ref=f7e125]: + - option "1" + - option "10" [selected] + - option "60" + - generic [ref=f7e126]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f7e127]: + - button "survey" [ref=f7e128] [cursor=pointer] + - button "operate" [ref=f7e129] [cursor=pointer] + - button "acquire" [ref=f7e130] [cursor=pointer] + - generic [ref=f7e131]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T09-14-42-801Z.yml b/.playwright-mcp/page-2026-08-24T09-14-42-801Z.yml new file mode 100644 index 00000000..ca90df52 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T09-14-42-801Z.yml @@ -0,0 +1,145 @@ +- generic [active] [ref=f7e1]: + - generic [ref=f7e2]: + - generic: + - generic [ref=f7e3]: + - generic [ref=f7e4]: + - button "▼" [ref=f7e5] [cursor=pointer] + - generic [ref=f7e6]: EMBRYOS · 3 + - generic [ref=f7e7]: "0.70" + - generic [ref=f7e8]: live + - generic [ref=f7e9]: + - generic [ref=f7e10]: + - generic [ref=f7e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=f7e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=f7e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f7e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=f7e15]: + - button "remap region" [ref=f7e16] [cursor=pointer] + - generic [ref=f7e17]: µm + - generic [ref=f7e18]: + - generic [ref=f7e19]: + - button "▼" [ref=f7e20] [cursor=pointer] + - generic [ref=f7e21]: BOTTOM CAMERA + - generic [ref=f7e22]: "0.90" + - generic [ref=f7e23]: live + - generic [ref=f7e27]: + - button "−" [ref=f7e28] [cursor=pointer] + - generic [ref=f7e29]: 1.0× + - button "+" [ref=f7e30] [cursor=pointer] + - generic [ref=f7e31]: + - generic [ref=f7e32]: + - button "▼" [ref=f7e33] [cursor=pointer] + - generic [ref=f7e34]: CALIBRATION · two-point + - generic [ref=f7e35]: "0.95" + - generic [ref=f7e36]: live + - generic [ref=f7e37]: + - generic [ref=f7e38]: + - generic [ref=f7e39]: source + - generic [ref=f7e40]: laser 488 + - generic [ref=f7e41]: + - generic [ref=f7e42]: point 1 + - generic [ref=f7e43]: captured + - generic [ref=f7e44]: + - generic [ref=f7e45]: point 2 + - generic [ref=f7e46]: — + - generic [ref=f7e47]: + - button "capture point 2" [ref=f7e48] [cursor=pointer] + - button "solve transform" [ref=f7e49] [cursor=pointer] + - generic [ref=f7e50]: + - generic [ref=f7e51]: + - button "▼" [ref=f7e52] [cursor=pointer] + - generic [ref=f7e53]: ACQUISITION + - generic [ref=f7e54]: "0.50" + - generic [ref=f7e55]: ready + - generic [ref=f7e56]: + - generic [ref=f7e57]: + - generic [ref=f7e58]: interval + - slider [ref=f7e59]: "100" + - generic [ref=f7e60]: 120s + - generic [ref=f7e61]: + - generic [ref=f7e62]: timepoints + - slider [ref=f7e63]: "60" + - generic [ref=f7e64]: "60" + - button "start" [ref=f7e66] [cursor=pointer] + - generic [ref=f7e67]: + - generic [ref=f7e68]: + - button "▼" [ref=f7e69] [cursor=pointer] + - generic [ref=f7e70]: RELEASES + - generic [ref=f7e72]: "0.40" + - generic [ref=f7e73]: live + - generic [ref=f7e134]: + - generic "operator solved it" [ref=f7e135] [cursor=pointer]: + - text: t+160s relieved CALIBRATION + - generic [ref=f7e136]: "0.00" + - generic "the current task" [ref=f7e137] [cursor=pointer]: + - text: t+67s seize CALIBRATION · two-point + - generic [ref=f7e138]: "2.56" + - generic "a decision" [ref=f7e139] [cursor=pointer]: + - text: t+47s offer CALIBRATION · two-point + - generic [ref=f7e140]: "1.80" + - generic "a glance they will take" [ref=f7e141] [cursor=pointer]: + - text: t+35s open CALIBRATION · two-point + - generic [ref=f7e142]: "1.33" + - generic "a glance if they look" [ref=f7e143] [cursor=pointer]: + - text: t+22s chip CALIBRATION · two-point + - generic [ref=f7e144]: "0.85" + - generic [ref=f7e75]: + - button "▼" [ref=f7e76] [cursor=pointer] + - generic [ref=f7e77]: COURTYARD + - generic [ref=f7e78]: rail · deck + - generic [ref=f7e79]: "0.30" + - generic [ref=f7e80]: ready + - generic [ref=f7e82]: + - button "▼" [ref=f7e83] [cursor=pointer] + - generic [ref=f7e84]: EVENTS + - generic [ref=f7e85]: 13 · 1s ago + - generic [ref=f7e86]: "0.20" + - generic [ref=f7e87]: ready + - generic: + - generic: + - generic [ref=f7e89]: + - button "▼" [ref=f7e90] [cursor=pointer] + - generic [ref=f7e91]: SPIM HEAD + - generic [ref=f7e92]: 35% · 40ms + - generic [ref=f7e93]: "0.80" + - generic [ref=f7e94]: PIN + - generic [ref=f7e95]: ready + - generic [ref=f7e97]: + - button "▼" [ref=f7e98] [cursor=pointer] + - generic [ref=f7e99]: STAGE + - generic [ref=f7e100]: 1606.9, 904.1, -12.9 + - generic [ref=f7e101]: "0.60" + - generic [ref=f7e102]: PIN + - generic [ref=f7e103]: live + - generic [ref=f7e105]: + - button "▼" [ref=f7e106] [cursor=pointer] + - generic [ref=f7e107]: CURATOR + - generic [ref=f7e108]: 1 needs you + - generic [ref=f7e109]: "0.85" + - generic [ref=f7e110]: PIN + - generic [ref=f7e111]: live + - generic [ref=f7e112]: + - button "0 home" [ref=f7e113] [cursor=pointer] + - button "1 detect" [ref=f7e114] [cursor=pointer] + - button "2 position" [ref=f7e115] [cursor=pointer] + - button "3 calibrate" [ref=f7e116] [cursor=pointer] + - button "4 acquire" [ref=f7e117] [cursor=pointer] + - button "5 curator" [ref=f7e118] [cursor=pointer] + - button "bench" [ref=f7e119] [cursor=pointer] + - generic [ref=f7e120]: + - text: density + - slider [ref=f7e121]: "4" + - generic [ref=f7e122]: "4" + - generic [ref=f7e123]: + - generic [ref=f7e124]: t+247s + - text: × + - combobox [ref=f7e125]: + - option "1" + - option "10" [selected] + - option "60" + - generic [ref=f7e126]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f7e127]: + - button "survey" [ref=f7e128] [cursor=pointer] + - button "operate" [ref=f7e129] [cursor=pointer] + - button "acquire" [ref=f7e130] [cursor=pointer] + - generic [ref=f7e131]: 250% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T10-01-18-843Z.yml b/.playwright-mcp/page-2026-08-24T10-01-18-843Z.yml new file mode 100644 index 00000000..8efe2cde --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T10-01-18-843Z.yml @@ -0,0 +1,129 @@ +- generic [active] [ref=e1]: + - generic [ref=e2]: + - generic: + - generic [ref=e3]: + - generic [ref=e4]: + - button "▼" [ref=e5] [cursor=pointer] + - generic [ref=e6]: EMBRYOS · 4 + - generic [ref=e7]: "0.70" + - generic [ref=e8]: live + - generic [ref=e9]: + - generic [ref=e10]: + - generic [ref=e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=e15]: + - button "remap region" [ref=e16] [cursor=pointer] + - generic [ref=e17]: µm + - generic [ref=e18]: + - generic [ref=e19]: + - button "▼" [ref=e20] [cursor=pointer] + - generic [ref=e21]: BOTTOM CAMERA + - generic [ref=e22]: "0.90" + - generic [ref=e23]: live + - generic [ref=e27]: + - button "−" [ref=e28] [cursor=pointer] + - generic [ref=e29]: 1.0× + - button "+" [ref=e30] [cursor=pointer] + - generic [ref=e31]: + - generic [ref=e32]: + - button "▼" [ref=e33] [cursor=pointer] + - generic [ref=e34]: CALIBRATION · two-point + - generic [ref=e35]: "0.95" + - generic [ref=e36]: stale + - generic [ref=e37]: + - generic [ref=e38]: + - generic [ref=e39]: source + - generic [ref=e40]: laser 488 + - generic [ref=e41]: + - generic [ref=e42]: point 1 + - generic [ref=e43]: captured + - generic [ref=e44]: + - generic [ref=e45]: point 2 + - generic [ref=e46]: — + - generic [ref=e47]: + - button "capture point 2" [ref=e48] [cursor=pointer] + - button "solve transform" [ref=e49] [cursor=pointer] + - generic [ref=e50]: + - generic [ref=e51]: + - button "▼" [ref=e52] [cursor=pointer] + - generic [ref=e53]: ACQUISITION + - generic [ref=e54]: "0.50" + - generic [ref=e55]: ready + - generic [ref=e56]: + - generic [ref=e57]: + - generic [ref=e58]: interval + - slider [ref=e59]: "100" + - generic [ref=e60]: 120s + - generic [ref=e61]: + - generic [ref=e62]: timepoints + - slider [ref=e63]: "60" + - generic [ref=e64]: "60" + - button "start" [ref=e66] [cursor=pointer] + - generic [ref=e68]: + - button "▼" [ref=e69] [cursor=pointer] + - generic [ref=e70]: RELEASES + - generic [ref=e71]: none + - generic [ref=e72]: "0.40" + - generic [ref=e73]: live + - generic [ref=e75]: + - button "▼" [ref=e76] [cursor=pointer] + - generic [ref=e77]: COURTYARD + - generic [ref=e78]: rail · deck + - generic [ref=e79]: "0.30" + - generic [ref=e80]: ready + - generic [ref=e82]: + - button "▼" [ref=e83] [cursor=pointer] + - generic [ref=e84]: EVENTS + - generic [ref=e85]: none + - generic [ref=e86]: "0.20" + - generic [ref=e87]: ready + - generic: + - generic: + - generic [ref=e89]: + - button "▼" [ref=e90] [cursor=pointer] + - generic [ref=e91]: SPIM HEAD + - generic [ref=e92]: 35% · 40ms + - generic [ref=e93]: "0.80" + - generic [ref=e94]: PIN + - generic [ref=e95]: ready + - generic [ref=e97]: + - button "▼" [ref=e98] [cursor=pointer] + - generic [ref=e99]: STAGE + - generic [ref=e100]: 1610.4, 905.2, -12.8 + - generic [ref=e101]: "0.60" + - generic [ref=e102]: PIN + - generic [ref=e103]: live + - generic [ref=e105]: + - button "▼" [ref=e106] [cursor=pointer] + - generic [ref=e107]: CURATOR + - generic [ref=e108]: 1 needs you + - generic [ref=e109]: "0.85" + - generic [ref=e110]: PIN + - generic [ref=e111]: live + - generic [ref=e112]: + - button "0 home" [ref=e113] [cursor=pointer] + - button "1 detect" [ref=e114] [cursor=pointer] + - button "2 position" [ref=e115] [cursor=pointer] + - button "3 calibrate" [ref=e116] [cursor=pointer] + - button "4 acquire" [ref=e117] [cursor=pointer] + - button "5 curator" [ref=e118] [cursor=pointer] + - button "bench" [ref=e119] [cursor=pointer] + - generic [ref=e120]: + - text: density + - slider [ref=e121]: "4" + - generic [ref=e122]: "4" + - generic [ref=e123]: + - generic [ref=e124]: t+0s + - text: × + - combobox [ref=e125]: + - option "1" + - option "10" [selected] + - option "60" + - generic [ref=e126]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=e127]: + - button "survey" [ref=e128] [cursor=pointer] + - button "operate" [ref=e129] [cursor=pointer] + - button "acquire" [ref=e130] [cursor=pointer] + - generic [ref=e131]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T10-01-33-052Z.yml b/.playwright-mcp/page-2026-08-24T10-01-33-052Z.yml new file mode 100644 index 00000000..4ba779fd --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T10-01-33-052Z.yml @@ -0,0 +1,129 @@ +- generic [active] [ref=f1e1]: + - generic [ref=f1e2]: + - generic: + - generic [ref=f1e3]: + - generic [ref=f1e4]: + - button "▼" [ref=f1e5] [cursor=pointer] + - generic [ref=f1e6]: EMBRYOS · 4 + - generic [ref=f1e7]: "0.70" + - generic [ref=f1e8]: live + - generic [ref=f1e9]: + - generic [ref=f1e10]: + - generic [ref=f1e11] [cursor=pointer]: e01 1420, 880 + - generic [ref=f1e12] [cursor=pointer]: e02 1610, 905 + - generic [ref=f1e13] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f1e14] [cursor=pointer]: e04 2010, 860 + - generic [ref=f1e15]: + - button "remap region" [ref=f1e16] [cursor=pointer] + - generic [ref=f1e17]: µm + - generic [ref=f1e18]: + - generic [ref=f1e19]: + - button "▼" [ref=f1e20] [cursor=pointer] + - generic [ref=f1e21]: BOTTOM CAMERA + - generic [ref=f1e22]: "0.90" + - generic [ref=f1e23]: live + - generic [ref=f1e27]: + - button "−" [ref=f1e28] [cursor=pointer] + - generic [ref=f1e29]: 1.0× + - button "+" [ref=f1e30] [cursor=pointer] + - generic [ref=f1e31]: + - generic [ref=f1e32]: + - button "▼" [ref=f1e33] [cursor=pointer] + - generic [ref=f1e34]: CALIBRATION · two-point + - generic [ref=f1e35]: "0.95" + - generic [ref=f1e36]: stale + - generic [ref=f1e37]: + - generic [ref=f1e38]: + - generic [ref=f1e39]: source + - generic [ref=f1e40]: laser 488 + - generic [ref=f1e41]: + - generic [ref=f1e42]: point 1 + - generic [ref=f1e43]: captured + - generic [ref=f1e44]: + - generic [ref=f1e45]: point 2 + - generic [ref=f1e46]: — + - generic [ref=f1e47]: + - button "capture point 2" [ref=f1e48] [cursor=pointer] + - button "solve transform" [ref=f1e49] [cursor=pointer] + - generic [ref=f1e50]: + - generic [ref=f1e51]: + - button "▼" [ref=f1e52] [cursor=pointer] + - generic [ref=f1e53]: ACQUISITION + - generic [ref=f1e54]: "0.50" + - generic [ref=f1e55]: ready + - generic [ref=f1e56]: + - generic [ref=f1e57]: + - generic [ref=f1e58]: interval + - slider [ref=f1e59]: "100" + - generic [ref=f1e60]: 120s + - generic [ref=f1e61]: + - generic [ref=f1e62]: timepoints + - slider [ref=f1e63]: "60" + - generic [ref=f1e64]: "60" + - button "start" [ref=f1e66] [cursor=pointer] + - generic [ref=f1e68]: + - button "▼" [ref=f1e69] [cursor=pointer] + - generic [ref=f1e70]: RELEASES + - generic [ref=f1e71]: none + - generic [ref=f1e72]: "0.40" + - generic [ref=f1e73]: live + - generic [ref=f1e75]: + - button "▼" [ref=f1e76] [cursor=pointer] + - generic [ref=f1e77]: COURTYARD + - generic [ref=f1e78]: rail · deck + - generic [ref=f1e79]: "0.30" + - generic [ref=f1e80]: ready + - generic [ref=f1e82]: + - button "▼" [ref=f1e83] [cursor=pointer] + - generic [ref=f1e84]: EVENTS + - generic [ref=f1e85]: none + - generic [ref=f1e86]: "0.20" + - generic [ref=f1e87]: ready + - generic: + - generic: + - generic [ref=f1e89]: + - button "▼" [ref=f1e90] [cursor=pointer] + - generic [ref=f1e91]: SPIM HEAD + - generic [ref=f1e92]: 35% · 40ms + - generic [ref=f1e93]: "0.80" + - generic [ref=f1e94]: PIN + - generic [ref=f1e95]: ready + - generic [ref=f1e97]: + - button "▼" [ref=f1e98] [cursor=pointer] + - generic [ref=f1e99]: STAGE + - generic [ref=f1e100]: 1610.4, 905.2, -12.8 + - generic [ref=f1e101]: "0.60" + - generic [ref=f1e102]: PIN + - generic [ref=f1e103]: live + - generic [ref=f1e105]: + - button "▼" [ref=f1e106] [cursor=pointer] + - generic [ref=f1e107]: CURATOR + - generic [ref=f1e108]: 1 needs you + - generic [ref=f1e109]: "0.85" + - generic [ref=f1e110]: PIN + - generic [ref=f1e111]: live + - generic [ref=f1e112]: + - button "0 home" [ref=f1e113] [cursor=pointer] + - button "1 detect" [ref=f1e114] [cursor=pointer] + - button "2 position" [ref=f1e115] [cursor=pointer] + - button "3 calibrate" [ref=f1e116] [cursor=pointer] + - button "4 acquire" [ref=f1e117] [cursor=pointer] + - button "5 curator" [ref=f1e118] [cursor=pointer] + - button "bench" [ref=f1e119] [cursor=pointer] + - generic [ref=f1e120]: + - text: density + - slider [ref=f1e121]: "4" + - generic [ref=f1e122]: "4" + - generic [ref=f1e123]: + - generic [ref=f1e124]: t+0s + - text: × + - combobox [ref=f1e125]: + - option "1" + - option "10" [selected] + - option "60" + - generic [ref=f1e126]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f1e127]: + - button "survey" [ref=f1e128] [cursor=pointer] + - button "operate" [ref=f1e129] [cursor=pointer] + - button "acquire" [ref=f1e130] [cursor=pointer] + - generic [ref=f1e131]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T10-02-10-971Z.yml b/.playwright-mcp/page-2026-08-24T10-02-10-971Z.yml new file mode 100644 index 00000000..a965f150 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T10-02-10-971Z.yml @@ -0,0 +1,133 @@ +- generic [active] [ref=f2e1]: + - generic [ref=f2e2]: + - generic: + - generic [ref=f2e3]: + - generic [ref=f2e4]: + - button "▼" [ref=f2e5] [cursor=pointer] + - generic [ref=f2e6]: EMBRYOS · 4 + - generic [ref=f2e7]: "0.70" + - generic [ref=f2e8]: live + - generic [ref=f2e9]: + - generic [ref=f2e10] [cursor=pointer]: board ⇱ + - generic [ref=f2e11] [cursor=pointer]: filmstrip ⇱ + - generic [ref=f2e12] [cursor=pointer]: vitals ⇱ + - generic [ref=f2e13]: + - generic [ref=f2e14]: + - generic [ref=f2e15] [cursor=pointer]: e01 1420, 880 + - generic [ref=f2e16] [cursor=pointer]: e02 1610, 905 + - generic [ref=f2e17] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f2e18] [cursor=pointer]: e04 2010, 860 + - generic [ref=f2e19]: + - button "remap region" [ref=f2e20] [cursor=pointer] + - generic [ref=f2e21]: µm + - generic [ref=f2e22]: + - generic [ref=f2e23]: + - button "▼" [ref=f2e24] [cursor=pointer] + - generic [ref=f2e25]: BOTTOM CAMERA + - generic [ref=f2e26]: "0.90" + - generic [ref=f2e27]: live + - generic [ref=f2e31]: + - button "−" [ref=f2e32] [cursor=pointer] + - generic [ref=f2e33]: 1.0× + - button "+" [ref=f2e34] [cursor=pointer] + - generic [ref=f2e35]: + - generic [ref=f2e36]: + - button "▼" [ref=f2e37] [cursor=pointer] + - generic [ref=f2e38]: CALIBRATION · two-point + - generic [ref=f2e39]: "0.95" + - generic [ref=f2e40]: stale + - generic [ref=f2e41]: + - generic [ref=f2e42]: + - generic [ref=f2e43]: source + - generic [ref=f2e44]: laser 488 + - generic [ref=f2e45]: + - generic [ref=f2e46]: point 1 + - generic [ref=f2e47]: captured + - generic [ref=f2e48]: + - generic [ref=f2e49]: point 2 + - generic [ref=f2e50]: — + - generic [ref=f2e51]: + - button "capture point 2" [ref=f2e52] [cursor=pointer] + - button "solve transform" [ref=f2e53] [cursor=pointer] + - generic [ref=f2e54]: + - generic [ref=f2e55]: + - button "▼" [ref=f2e56] [cursor=pointer] + - generic [ref=f2e57]: ACQUISITION + - generic [ref=f2e58]: "0.50" + - generic [ref=f2e59]: ready + - generic [ref=f2e60]: + - generic [ref=f2e61]: + - generic [ref=f2e62]: interval + - slider [ref=f2e63]: "100" + - generic [ref=f2e64]: 120s + - generic [ref=f2e65]: + - generic [ref=f2e66]: timepoints + - slider [ref=f2e67]: "60" + - generic [ref=f2e68]: "60" + - button "start" [ref=f2e70] [cursor=pointer] + - generic [ref=f2e72]: + - button "▼" [ref=f2e73] [cursor=pointer] + - generic [ref=f2e74]: RELEASES + - generic [ref=f2e75]: none + - generic [ref=f2e76]: "0.40" + - generic [ref=f2e77]: live + - generic [ref=f2e79]: + - button "▼" [ref=f2e80] [cursor=pointer] + - generic [ref=f2e81]: COURTYARD + - generic [ref=f2e82]: rail · deck + - generic [ref=f2e83]: "0.30" + - generic [ref=f2e84]: ready + - generic [ref=f2e86]: + - button "▼" [ref=f2e87] [cursor=pointer] + - generic [ref=f2e88]: EVENTS + - generic [ref=f2e89]: none + - generic [ref=f2e90]: "0.20" + - generic [ref=f2e91]: ready + - generic: + - generic: + - generic [ref=f2e93]: + - button "▼" [ref=f2e94] [cursor=pointer] + - generic [ref=f2e95]: SPIM HEAD + - generic [ref=f2e96]: 35% · 40ms + - generic [ref=f2e97]: "0.80" + - generic [ref=f2e98]: PIN + - generic [ref=f2e99]: ready + - generic [ref=f2e101]: + - button "▼" [ref=f2e102] [cursor=pointer] + - generic [ref=f2e103]: STAGE + - generic [ref=f2e104]: 1610.4, 905.2, -12.8 + - generic [ref=f2e105]: "0.60" + - generic [ref=f2e106]: PIN + - generic [ref=f2e107]: live + - generic [ref=f2e109]: + - button "▼" [ref=f2e110] [cursor=pointer] + - generic [ref=f2e111]: CURATOR + - generic [ref=f2e112]: 1 needs you + - generic [ref=f2e113]: "0.85" + - generic [ref=f2e114]: PIN + - generic [ref=f2e115]: live + - generic [ref=f2e116]: + - button "0 home" [ref=f2e117] [cursor=pointer] + - button "1 detect" [ref=f2e118] [cursor=pointer] + - button "2 position" [ref=f2e119] [cursor=pointer] + - button "3 calibrate" [ref=f2e120] [cursor=pointer] + - button "4 acquire" [ref=f2e121] [cursor=pointer] + - button "5 curator" [ref=f2e122] [cursor=pointer] + - button "bench" [ref=f2e123] [cursor=pointer] + - generic [ref=f2e124]: + - text: density + - slider [ref=f2e125]: "4" + - generic [ref=f2e126]: "4" + - generic [ref=f2e127]: + - generic [ref=f2e128]: t+0s + - text: × + - combobox [ref=f2e129]: + - option "1" + - option "10" [selected] + - option "60" + - generic [ref=f2e130]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f2e131]: + - button "survey" [ref=f2e132] [cursor=pointer] + - button "operate" [ref=f2e133] [cursor=pointer] + - button "acquire" [ref=f2e134] [cursor=pointer] + - generic [ref=f2e135]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T10-02-27-469Z.yml b/.playwright-mcp/page-2026-08-24T10-02-27-469Z.yml new file mode 100644 index 00000000..036da358 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T10-02-27-469Z.yml @@ -0,0 +1,133 @@ +- generic [active] [ref=f3e1]: + - generic [ref=f3e2]: + - generic: + - generic [ref=f3e3]: + - generic [ref=f3e4]: + - button "▼" [ref=f3e5] [cursor=pointer] + - generic [ref=f3e6]: EMBRYOS · 4 + - generic [ref=f3e7]: "0.70" + - generic [ref=f3e8]: live + - generic [ref=f3e9]: + - generic [ref=f3e10] [cursor=pointer]: board ⇱ + - generic [ref=f3e11] [cursor=pointer]: filmstrip ⇱ + - generic [ref=f3e12] [cursor=pointer]: vitals ⇱ + - generic [ref=f3e13]: + - generic [ref=f3e14]: + - generic [ref=f3e15] [cursor=pointer]: e01 1420, 880 + - generic [ref=f3e16] [cursor=pointer]: e02 1610, 905 + - generic [ref=f3e17] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f3e18] [cursor=pointer]: e04 2010, 860 + - generic [ref=f3e19]: + - button "remap region" [ref=f3e20] [cursor=pointer] + - generic [ref=f3e21]: µm + - generic [ref=f3e22]: + - generic [ref=f3e23]: + - button "▼" [ref=f3e24] [cursor=pointer] + - generic [ref=f3e25]: BOTTOM CAMERA + - generic [ref=f3e26]: "0.90" + - generic [ref=f3e27]: live + - generic [ref=f3e31]: + - button "−" [ref=f3e32] [cursor=pointer] + - generic [ref=f3e33]: 1.0× + - button "+" [ref=f3e34] [cursor=pointer] + - generic [ref=f3e35]: + - generic [ref=f3e36]: + - button "▼" [ref=f3e37] [cursor=pointer] + - generic [ref=f3e38]: CALIBRATION · two-point + - generic [ref=f3e39]: "0.95" + - generic [ref=f3e40]: stale + - generic [ref=f3e41]: + - generic [ref=f3e42]: + - generic [ref=f3e43]: source + - generic [ref=f3e44]: laser 488 + - generic [ref=f3e45]: + - generic [ref=f3e46]: point 1 + - generic [ref=f3e47]: captured + - generic [ref=f3e48]: + - generic [ref=f3e49]: point 2 + - generic [ref=f3e50]: — + - generic [ref=f3e51]: + - button "capture point 2" [ref=f3e52] [cursor=pointer] + - button "solve transform" [ref=f3e53] [cursor=pointer] + - generic [ref=f3e54]: + - generic [ref=f3e55]: + - button "▼" [ref=f3e56] [cursor=pointer] + - generic [ref=f3e57]: ACQUISITION + - generic [ref=f3e58]: "0.50" + - generic [ref=f3e59]: ready + - generic [ref=f3e60]: + - generic [ref=f3e61]: + - generic [ref=f3e62]: interval + - slider [ref=f3e63]: "100" + - generic [ref=f3e64]: 120s + - generic [ref=f3e65]: + - generic [ref=f3e66]: timepoints + - slider [ref=f3e67]: "60" + - generic [ref=f3e68]: "60" + - button "start" [ref=f3e70] [cursor=pointer] + - generic [ref=f3e72]: + - button "▼" [ref=f3e73] [cursor=pointer] + - generic [ref=f3e74]: RELEASES + - generic [ref=f3e75]: none + - generic [ref=f3e76]: "0.40" + - generic [ref=f3e77]: live + - generic [ref=f3e79]: + - button "▼" [ref=f3e80] [cursor=pointer] + - generic [ref=f3e81]: COURTYARD + - generic [ref=f3e82]: rail · deck + - generic [ref=f3e83]: "0.30" + - generic [ref=f3e84]: ready + - generic [ref=f3e86]: + - button "▼" [ref=f3e87] [cursor=pointer] + - generic [ref=f3e88]: EVENTS + - generic [ref=f3e89]: none + - generic [ref=f3e90]: "0.20" + - generic [ref=f3e91]: ready + - generic: + - generic: + - generic [ref=f3e93]: + - button "▼" [ref=f3e94] [cursor=pointer] + - generic [ref=f3e95]: SPIM HEAD + - generic [ref=f3e96]: 35% · 40ms + - generic [ref=f3e97]: "0.80" + - generic [ref=f3e98]: PIN + - generic [ref=f3e99]: ready + - generic [ref=f3e101]: + - button "▼" [ref=f3e102] [cursor=pointer] + - generic [ref=f3e103]: STAGE + - generic [ref=f3e104]: 1610.4, 905.2, -12.8 + - generic [ref=f3e105]: "0.60" + - generic [ref=f3e106]: PIN + - generic [ref=f3e107]: live + - generic [ref=f3e109]: + - button "▼" [ref=f3e110] [cursor=pointer] + - generic [ref=f3e111]: CURATOR + - generic [ref=f3e112]: 1 needs you + - generic [ref=f3e113]: "0.85" + - generic [ref=f3e114]: PIN + - generic [ref=f3e115]: live + - generic [ref=f3e116]: + - button "0 home" [ref=f3e117] [cursor=pointer] + - button "1 detect" [ref=f3e118] [cursor=pointer] + - button "2 position" [ref=f3e119] [cursor=pointer] + - button "3 calibrate" [ref=f3e120] [cursor=pointer] + - button "4 acquire" [ref=f3e121] [cursor=pointer] + - button "5 curator" [ref=f3e122] [cursor=pointer] + - button "bench" [ref=f3e123] [cursor=pointer] + - generic [ref=f3e124]: + - text: density + - slider [ref=f3e125]: "4" + - generic [ref=f3e126]: "4" + - generic [ref=f3e127]: + - generic [ref=f3e128]: t+0s + - text: × + - combobox [ref=f3e129]: + - option "1" + - option "10" [selected] + - option "60" + - generic [ref=f3e130]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f3e131]: + - button "survey" [ref=f3e132] [cursor=pointer] + - button "operate" [ref=f3e133] [cursor=pointer] + - button "acquire" [ref=f3e134] [cursor=pointer] + - generic [ref=f3e135]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T10-23-49-298Z.yml b/.playwright-mcp/page-2026-08-24T10-23-49-298Z.yml new file mode 100644 index 00000000..ed8da2fe --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T10-23-49-298Z.yml @@ -0,0 +1,15 @@ +- generic [ref=e2]: + - generic [ref=e3]: Gently + - paragraph [ref=e6]: What are we doing today? + - switch "Microscope" [ref=e7] [cursor=pointer]: + - generic [ref=e12]: + - generic [ref=e13]: Microscope + - generic [ref=e14]: Not this session — saved data only. + - switch "Assistant" [checked] [ref=e16] [cursor=pointer]: + - generic [ref=e20]: + - generic [ref=e21]: Assistant + - generic [ref=e22]: Help find embryos and watch the timelapse. + - button "Open →" [ref=e24] [cursor=pointer]: + - text: Open + - generic [ref=e25]: → + - generic [ref=e27]: Remembers your last choice \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T10-24-09-942Z.yml b/.playwright-mcp/page-2026-08-24T10-24-09-942Z.yml new file mode 100644 index 00000000..2bc0e551 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T10-24-09-942Z.yml @@ -0,0 +1,101 @@ +- generic [ref=f3e1]: + - generic "Welcome to Gently" [ref=f3e2]: + - button "Toggle theme" [ref=f3e3] [cursor=pointer] + - generic [ref=f3e7]: + - generic [ref=f3e8]: Good afternoon.What are we doing today? + - generic [ref=f3e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f3e12] [cursor=pointer]: + - generic [ref=f3e13]: guided + - heading "Plan an experiment" [level=3] [ref=f3e17] + - paragraph [ref=f3e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f3e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f3e22] [cursor=pointer]: + - generic [ref=f3e23]: standalone + - heading "Take a quick look" [level=3] [ref=f3e28] + - paragraph [ref=f3e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f3e30]: Open the scope + - generic [ref=f3e33]: + - button "or just tell me what you need" [ref=f3e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f3e40] + - button "Send" [ref=f3e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f3e44] [cursor=pointer] + - generic [ref=f3e45]: + - generic [ref=f3e46]: + - link "Gently Microscopy" [ref=f3e47] [cursor=pointer]: + - /url: / + - generic [ref=f3e48]: + - link "215b41df" [ref=f3e49] [cursor=pointer]: + - /url: /review?session=215b41df + - button "Copy session ID" [ref=f3e50] [cursor=pointer] + - generic [ref=f3e54]: + - generic [ref=f3e55]: R + - button "Open process console" [ref=f3e57] + - link "Dashboard settings" [ref=f3e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f3e65] [cursor=pointer] + - button "Scope offline" [ref=f3e69] [cursor=pointer] + - generic [ref=f3e74]: + - complementary [ref=f3e75]: + - navigation [ref=f3e76]: + - generic [ref=f3e77]: + - generic [ref=f3e78]: Now + - button "Home" [ref=f3e79] [cursor=pointer] + - button "Operations" [ref=f3e80] [cursor=pointer] + - button "Embryos" [ref=f3e81] [cursor=pointer] + - generic [ref=f3e82]: + - generic [ref=f3e83]: Library + - button "Plans" [ref=f3e84] [cursor=pointer] + - button "Sessions" [ref=f3e85] [cursor=pointer] + - button "Notebook" [ref=f3e86] [cursor=pointer] + - button "Gallery" [ref=f3e87] [cursor=pointer] + - generic [ref=f3e88]: + - generic [ref=f3e89]: System + - button "Devices" [ref=f3e90] [cursor=pointer] + - button "Calibration" [ref=f3e91] [cursor=pointer] + - button "Logs" [ref=f3e92] [cursor=pointer] + - button "Talk to Gently" [ref=f3e93] [cursor=pointer] + - generic [ref=f3e95]: + - generic [ref=f3e96]: + - generic [ref=f3e97]: LIVE + - generic [ref=f3e99]: 0 embryos · Online + - generic [ref=f3e101]: + - complementary [ref=f3e102]: + - generic [ref=f3e103]: Agent’s view + - generic [ref=f3e104]: Nothing yet — the agent’s notes, expectations, and open questions appear here as it works. + - generic [ref=f3e105]: + - generic [ref=f3e106]: + - generic [ref=f3e107]: + - generic [ref=f3e108]: Recent sessions + - link "All" [ref=f3e109] [cursor=pointer]: + - /url: "#sessions" + - generic [ref=f3e112]: + - generic [ref=f3e113]: + - generic [ref=f3e114]: 215b41df + - generic [ref=f3e115]: live + - generic [ref=f3e116]: 2m ago · 0 embryos + - generic [ref=f3e117]: + - generic [ref=f3e118]: + - generic [ref=f3e119]: Recent plans + - link "All" [ref=f3e120] [cursor=pointer]: + - /url: "#plans" + - generic [ref=f3e121]: No plans yet. + - generic [ref=f3e123]: + - generic [ref=f3e124]: + - generic [ref=f3e125]: Recent images + - link "All" [ref=f3e126] [cursor=pointer]: + - /url: "#embryos" + - generic [ref=f3e127]: No images yet — they appear once a session has captured volumes. + - text: › + - contentinfo [ref=f3e129]: + - generic [ref=f3e130]: 0 embryos · 0 images · 12 events + - generic [ref=f3e131]: No active timelapse + - complementary "Agent chat" [ref=f3e132]: + - generic [ref=f3e134]: + - generic [ref=f3e135]: Agent + - generic [ref=f3e137]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f3e138] [cursor=pointer] + - generic [ref=f3e142]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f3e143]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f3e144] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T10-25-20-312Z.yml b/.playwright-mcp/page-2026-08-24T10-25-20-312Z.yml new file mode 100644 index 00000000..9c36b18a --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T10-25-20-312Z.yml @@ -0,0 +1,66 @@ +- generic [active] [ref=f3e1]: + - generic [ref=f3e45]: + - generic [ref=f3e46]: + - link "Gently Microscopy" [ref=f3e47] [cursor=pointer]: + - /url: / + - generic [ref=f3e48]: + - link "215b41df" [ref=f3e49] [cursor=pointer]: + - /url: /review?session=215b41df + - button "Copy session ID" [ref=f3e50] [cursor=pointer] + - generic [ref=f3e54]: + - generic [ref=f3e55]: R + - button "Open process console" [ref=f3e57] + - link "Dashboard settings" [ref=f3e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f3e65] [cursor=pointer] + - button "Scope offline" [ref=f3e69] [cursor=pointer] + - generic [ref=f3e74]: + - complementary [ref=f3e75]: + - navigation [ref=f3e76]: + - generic [ref=f3e77]: + - generic [ref=f3e78]: Now + - button "Home" [ref=f3e79] [cursor=pointer] + - button "Operations" [ref=f3e80] [cursor=pointer] + - button "Embryos" [ref=f3e81] [cursor=pointer] + - generic [ref=f3e82]: + - generic [ref=f3e83]: Library + - button "Plans" [ref=f3e84] [cursor=pointer] + - button "Sessions" [ref=f3e85] [cursor=pointer] + - button "Notebook" [ref=f3e86] [cursor=pointer] + - button "Gallery" [ref=f3e87] [cursor=pointer] + - generic [ref=f3e88]: + - generic [ref=f3e89]: System + - button "Devices" [ref=f3e90] [cursor=pointer] + - button "Calibration" [ref=f3e91] [cursor=pointer] + - button "Logs" [ref=f3e92] [cursor=pointer] + - button "Talk to Gently" [ref=f3e93] [cursor=pointer] + - generic [ref=f3e95]: + - generic [ref=f3e96]: + - generic [ref=f3e97]: LIVE + - generic [ref=f3e99]: 0 embryos · Online + - generic [ref=f3e147]: + - generic [ref=f3e148]: + - heading "Calibration" [level=2] [ref=f3e149] + - generic [ref=f3e150]: + - button "Profile" [ref=f3e151] [cursor=pointer] + - button "Gallery" [ref=f3e152] [cursor=pointer] + - generic [ref=f3e153]: + - generic [ref=f3e154]: + - generic [ref=f3e155]: Embryos + - generic [ref=f3e156]: No calibration images yet + - generic [ref=f3e159]: + - generic [ref=f3e160]: 📷 + - generic [ref=f3e161]: Select an embryo to view calibration images + - text: › + - contentinfo [ref=f3e129]: + - generic [ref=f3e130]: 0 embryos · 0 images · 12 events + - generic [ref=f3e131]: No active timelapse + - complementary "Agent chat" [ref=f3e132]: + - generic [ref=f3e134]: + - generic [ref=f3e135]: Agent + - generic [ref=f3e137]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f3e138] [cursor=pointer] + - generic [ref=f3e142]: + - textbox "Message Gently… ( / commands · @ tools )" [ref=f3e143]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f3e144] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T10-28-46-304Z.yml b/.playwright-mcp/page-2026-08-24T10-28-46-304Z.yml new file mode 100644 index 00000000..4051c0b1 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T10-28-46-304Z.yml @@ -0,0 +1,90 @@ +- generic [ref=f6e1]: + - generic "Welcome to Gently" [ref=f6e2]: + - button "Toggle theme" [ref=f6e3] [cursor=pointer] + - generic [ref=f6e7]: + - generic [ref=f6e8]: Good afternoon.What are we doing today? + - generic [ref=f6e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f6e12] [cursor=pointer]: + - generic [ref=f6e13]: guided + - heading "Plan an experiment" [level=3] [ref=f6e17] + - paragraph [ref=f6e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f6e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f6e22] [cursor=pointer]: + - generic [ref=f6e23]: standalone + - heading "Take a quick look" [level=3] [ref=f6e28] + - paragraph [ref=f6e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f6e30]: Open the scope + - generic [ref=f6e33]: + - button "or just tell me what you need" [ref=f6e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f6e40] + - button "Send" [ref=f6e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f6e44] [cursor=pointer] + - generic [ref=f6e45]: + - generic [ref=f6e46]: + - link "Gently Microscopy" [ref=f6e47] [cursor=pointer]: + - /url: / + - generic [ref=f6e48]: + - link "215b41df" [ref=f6e49] [cursor=pointer]: + - /url: /review?session=215b41df + - button "Copy session ID" [ref=f6e50] [cursor=pointer] + - generic [ref=f6e54]: + - generic [ref=f6e55]: R + - button "Open process console" [ref=f6e57] + - link "Dashboard settings" [ref=f6e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f6e65] [cursor=pointer] + - button "Scope offline" [ref=f6e69] [cursor=pointer] + - generic [ref=f6e74]: + - complementary [ref=f6e75]: + - navigation [ref=f6e76]: + - generic [ref=f6e77]: + - generic [ref=f6e78]: Now + - button "Home" [ref=f6e79] [cursor=pointer] + - button "Operations" [ref=f6e80] [cursor=pointer] + - button "Embryos" [ref=f6e81] [cursor=pointer] + - generic [ref=f6e82]: + - generic [ref=f6e83]: Library + - button "Plans" [ref=f6e84] [cursor=pointer] + - button "Sessions" [ref=f6e85] [cursor=pointer] + - button "Notebook" [ref=f6e86] [cursor=pointer] + - button "Gallery" [ref=f6e87] [cursor=pointer] + - generic [ref=f6e88]: + - generic [ref=f6e89]: System + - button "Devices" [ref=f6e90] [cursor=pointer] + - button "Calibration" [ref=f6e91] [cursor=pointer] + - button "Logs" [ref=f6e92] [cursor=pointer] + - button "Talk to Gently" [ref=f6e93] [cursor=pointer] + - generic [ref=f6e95]: + - generic [ref=f6e96]: + - generic [ref=f6e97]: LIVE + - generic [ref=f6e99]: 0 embryos · Online + - generic [ref=f6e102]: + - generic [ref=f6e103]: + - generic [ref=f6e104]: + - generic [ref=f6e105]: Recent sessions + - link "All" [ref=f6e106] [cursor=pointer]: + - /url: "#sessions" + - generic [ref=f6e107]: Loading… + - generic [ref=f6e109]: + - generic [ref=f6e110]: + - generic [ref=f6e111]: Recent plans + - link "All" [ref=f6e112] [cursor=pointer]: + - /url: "#plans" + - generic [ref=f6e113]: Loading… + - generic [ref=f6e115]: + - generic [ref=f6e116]: + - generic [ref=f6e117]: Recent images + - link "All" [ref=f6e118] [cursor=pointer]: + - /url: "#embryos" + - generic [ref=f6e119]: No images yet — they appear once a session is active. + - text: › + - contentinfo [ref=f6e121] + - complementary "Agent chat" [ref=f6e122]: + - generic [ref=f6e124]: + - generic [ref=f6e125]: Agent + - generic [ref=f6e127]: Connected + - button "Collapse agent panel" [ref=f6e128] [cursor=pointer] + - generic [ref=f6e132]: + - textbox "Message Gently…" [active] [ref=f6e133] + - button "Send message" [disabled] [ref=f6e134] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T10-47-51-863Z.yml b/.playwright-mcp/page-2026-08-24T10-47-51-863Z.yml new file mode 100644 index 00000000..1b00c0a9 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T10-47-51-863Z.yml @@ -0,0 +1,135 @@ +- generic [active] [ref=f9e1]: + - generic [ref=f9e2]: + - generic: + - generic [ref=f9e3]: + - generic [ref=f9e4]: + - button "▼" [ref=f9e5] [cursor=pointer] + - generic [ref=f9e6]: EMBRYOS · 4 + - generic [ref=f9e7]: "0.70" + - generic [ref=f9e8]: live + - generic [ref=f9e9]: + - generic [ref=f9e10] [cursor=pointer]: board ⇱ + - generic [ref=f9e11] [cursor=pointer]: filmstrip ⇱ + - generic [ref=f9e12] [cursor=pointer]: vitals ⇱ + - generic [ref=f9e13]: + - generic [ref=f9e14]: + - generic [ref=f9e15] [cursor=pointer]: e01 1420, 880 + - generic [ref=f9e16] [cursor=pointer]: e02 1610, 905 + - generic [ref=f9e17] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f9e18] [cursor=pointer]: e04 2010, 860 + - generic [ref=f9e19]: + - button "remap region" [ref=f9e20] [cursor=pointer] + - generic [ref=f9e21]: µm + - generic [ref=f9e22]: + - generic [ref=f9e23]: + - button "▼" [ref=f9e24] [cursor=pointer] + - generic [ref=f9e25]: BOTTOM CAMERA + - generic [ref=f9e26]: "0.90" + - generic [ref=f9e27]: live + - generic [ref=f9e31]: + - button "−" [ref=f9e32] [cursor=pointer] + - generic [ref=f9e33]: 1.0× + - button "+" [ref=f9e34] [cursor=pointer] + - generic [ref=f9e35]: + - generic [ref=f9e36]: + - button "▼" [ref=f9e37] [cursor=pointer] + - generic [ref=f9e38]: CALIBRATION · two-point + - generic [ref=f9e39]: "0.95" + - generic [ref=f9e40]: stale + - generic [ref=f9e41]: + - generic [ref=f9e42]: + - generic [ref=f9e43]: source + - generic [ref=f9e44]: laser 488 + - generic [ref=f9e45]: + - generic [ref=f9e46]: point 1 + - generic [ref=f9e47]: captured + - generic [ref=f9e48]: + - generic [ref=f9e49]: point 2 + - generic [ref=f9e50]: — + - generic [ref=f9e51]: + - button "capture point 2" [ref=f9e52] [cursor=pointer] + - button "solve transform" [ref=f9e53] [cursor=pointer] + - generic [ref=f9e54]: + - generic [ref=f9e55]: + - button "▼" [ref=f9e56] [cursor=pointer] + - generic [ref=f9e57]: ACQUISITION + - generic [ref=f9e58]: "0.50" + - generic [ref=f9e59]: ready + - generic [ref=f9e60]: + - generic [ref=f9e61]: + - generic [ref=f9e62]: interval + - slider [ref=f9e63]: "100" + - generic [ref=f9e64]: 120s + - generic [ref=f9e65]: + - generic [ref=f9e66]: timepoints + - slider [ref=f9e67]: "60" + - generic [ref=f9e68]: "60" + - button "start" [ref=f9e70] [cursor=pointer] + - generic [ref=f9e72]: + - button "▼" [ref=f9e73] [cursor=pointer] + - generic [ref=f9e74]: RELEASES + - generic [ref=f9e75]: none + - generic [ref=f9e76]: "0.40" + - generic [ref=f9e77]: live + - generic [ref=f9e79]: + - button "▼" [ref=f9e80] [cursor=pointer] + - generic [ref=f9e81]: COURTYARD + - generic [ref=f9e82]: rail · deck + - generic [ref=f9e83]: "0.30" + - generic [ref=f9e84]: ready + - generic [ref=f9e86]: + - button "▼" [ref=f9e87] [cursor=pointer] + - generic [ref=f9e88]: EVENTS + - generic [ref=f9e89]: none + - generic [ref=f9e90]: "0.20" + - generic [ref=f9e91]: ready + - generic: + - generic: + - generic [ref=f9e93]: + - button "▼" [ref=f9e94] [cursor=pointer] + - generic [ref=f9e95]: SPIM HEAD + - generic [ref=f9e96]: 35% · 40ms + - generic [ref=f9e97]: "0.80" + - generic [ref=f9e98]: PIN + - generic [ref=f9e99]: ready + - generic [ref=f9e101]: + - button "▼" [ref=f9e102] [cursor=pointer] + - generic [ref=f9e103]: STAGE + - generic [ref=f9e104]: 1610.4, 905.2, -12.8 + - generic [ref=f9e105]: "0.60" + - generic [ref=f9e106]: PIN + - generic [ref=f9e107]: live + - generic [ref=f9e109]: + - button "▼" [ref=f9e110] [cursor=pointer] + - generic [ref=f9e111]: CURATOR + - generic [ref=f9e112]: 1 needs you + - generic [ref=f9e113]: "0.85" + - generic [ref=f9e114]: PIN + - generic [ref=f9e115]: live + - generic [ref=f9e116]: + - button "0 home" [ref=f9e117] [cursor=pointer] + - button "1 detect" [ref=f9e118] [cursor=pointer] + - button "2 position" [ref=f9e119] [cursor=pointer] + - button "3 calibrate" [ref=f9e120] [cursor=pointer] + - button "4 acquire" [ref=f9e121] [cursor=pointer] + - button "5 curator" [ref=f9e122] [cursor=pointer] + - button "bench" [ref=f9e123] [cursor=pointer] + - generic [ref=f9e124]: + - text: density + - slider [ref=f9e125]: "4" + - generic [ref=f9e126]: "4" + - generic [ref=f9e127]: + - generic [ref=f9e128]: t+0s + - text: × + - combobox [ref=f9e129]: + - option "1" + - option "10" [selected] + - option "60" + - generic: + - generic [ref=f9e130]: + - generic [ref=f9e131]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f9e132]: + - button "survey" [ref=f9e133] [cursor=pointer] + - button "operate" [ref=f9e134] [cursor=pointer] + - button "acquire" [ref=f9e135] [cursor=pointer] + - generic [ref=f9e136]: 100% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T10-47-53-531Z.yml b/.playwright-mcp/page-2026-08-24T10-47-53-531Z.yml new file mode 100644 index 00000000..5af934ef --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T10-47-53-531Z.yml @@ -0,0 +1,95 @@ +- generic [ref=f10e1]: + - generic "Welcome to Gently" [ref=f10e2]: + - button "Toggle theme" [ref=f10e3] [cursor=pointer] + - generic [ref=f10e7]: + - generic [ref=f10e8]: Good afternoon.What are we doing today? + - generic [ref=f10e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f10e12] [cursor=pointer]: + - generic [ref=f10e13]: guided + - heading "Plan an experiment" [level=3] [ref=f10e17] + - paragraph [ref=f10e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f10e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f10e22] [cursor=pointer]: + - generic [ref=f10e23]: standalone + - heading "Take a quick look" [level=3] [ref=f10e28] + - paragraph [ref=f10e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f10e30]: Open the scope + - generic [ref=f10e33]: + - button "or just tell me what you need" [ref=f10e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f10e40] + - button "Send" [ref=f10e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f10e44] [cursor=pointer] + - generic [ref=f10e45]: + - generic [ref=f10e46]: + - link "Gently Microscopy" [ref=f10e47] [cursor=pointer]: + - /url: / + - generic [ref=f10e48]: + - link "215b41df" [ref=f10e49] [cursor=pointer]: + - /url: /review?session=215b41df + - button "Copy session ID" [ref=f10e50] [cursor=pointer] + - generic [ref=f10e54]: + - generic [ref=f10e55]: R + - button "Open process console" [ref=f10e57] + - link "Dashboard settings" [ref=f10e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f10e65] [cursor=pointer] + - button "Scope offline" [ref=f10e69] [cursor=pointer] + - generic [ref=f10e74]: + - complementary [ref=f10e75]: + - navigation [ref=f10e76]: + - generic [ref=f10e77]: + - generic [ref=f10e78]: Now + - button "Home" [ref=f10e79] [cursor=pointer] + - button "Operations" [ref=f10e80] [cursor=pointer] + - button "Embryos" [ref=f10e81] [cursor=pointer] + - generic [ref=f10e82]: + - generic [ref=f10e83]: Library + - button "Plans" [ref=f10e84] [cursor=pointer] + - button "Sessions" [ref=f10e85] [cursor=pointer] + - button "Notebook" [ref=f10e86] [cursor=pointer] + - button "Gallery" [ref=f10e87] [cursor=pointer] + - generic [ref=f10e88]: + - generic [ref=f10e89]: System + - button "Devices" [ref=f10e90] [cursor=pointer] + - button "Calibration" [ref=f10e91] [cursor=pointer] + - button "Logs" [ref=f10e92] [cursor=pointer] + - button "Talk to Gently" [ref=f10e93] [cursor=pointer] + - generic [ref=f10e95]: + - generic [ref=f10e96]: + - generic [ref=f10e97]: LIVE + - generic [ref=f10e99]: 0 embryos · Online + - generic [ref=f10e102]: + - generic [ref=f10e103]: + - generic [ref=f10e104]: + - generic [ref=f10e105]: Recent sessions + - link "All" [ref=f10e106] [cursor=pointer]: + - /url: "#sessions" + - generic [ref=f10e109]: + - generic [ref=f10e110]: + - generic [ref=f10e111]: 215b41df + - generic [ref=f10e112]: live + - generic [ref=f10e113]: 26m ago · 0 embryos + - generic [ref=f10e114]: + - generic [ref=f10e115]: + - generic [ref=f10e116]: Recent plans + - link "All" [ref=f10e117] [cursor=pointer]: + - /url: "#plans" + - generic [ref=f10e118]: No plans yet. + - generic [ref=f10e120]: + - generic [ref=f10e121]: + - generic [ref=f10e122]: Recent images + - link "All" [ref=f10e123] [cursor=pointer]: + - /url: "#embryos" + - generic [ref=f10e124]: No images yet — they appear once a session has captured volumes. + - text: › + - contentinfo [ref=f10e126] + - complementary "Agent chat" [ref=f10e127]: + - generic [ref=f10e129]: + - generic [ref=f10e130]: Agent + - generic [ref=f10e132]: Connected + - button "Collapse agent panel" [ref=f10e133] [cursor=pointer] + - generic [ref=f10e137]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f10e138]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f10e139] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T10-48-32-457Z.yml b/.playwright-mcp/page-2026-08-24T10-48-32-457Z.yml new file mode 100644 index 00000000..6d06eacc --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T10-48-32-457Z.yml @@ -0,0 +1,135 @@ +- generic [active] [ref=f13e1]: + - generic [ref=f13e2]: + - generic: + - generic [ref=f13e3]: + - generic [ref=f13e4]: + - button "▼" [ref=f13e5] [cursor=pointer] + - generic [ref=f13e6]: EMBRYOS · 4 + - generic [ref=f13e7]: "0.70" + - generic [ref=f13e8]: live + - generic [ref=f13e9]: + - generic [ref=f13e10] [cursor=pointer]: board ⇱ + - generic [ref=f13e11] [cursor=pointer]: filmstrip ⇱ + - generic [ref=f13e12] [cursor=pointer]: vitals ⇱ + - generic [ref=f13e13]: + - generic [ref=f13e14]: + - generic [ref=f13e15] [cursor=pointer]: e01 1420, 880 + - generic [ref=f13e16] [cursor=pointer]: e02 1610, 905 + - generic [ref=f13e17] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f13e18] [cursor=pointer]: e04 2010, 860 + - generic [ref=f13e19]: + - button "remap region" [ref=f13e20] [cursor=pointer] + - generic [ref=f13e21]: µm + - generic [ref=f13e22]: + - generic [ref=f13e23]: + - button "▼" [ref=f13e24] [cursor=pointer] + - generic [ref=f13e25]: BOTTOM CAMERA + - generic [ref=f13e26]: "0.90" + - generic [ref=f13e27]: live + - generic [ref=f13e31]: + - button "−" [ref=f13e32] [cursor=pointer] + - generic [ref=f13e33]: 1.0× + - button "+" [ref=f13e34] [cursor=pointer] + - generic [ref=f13e35]: + - generic [ref=f13e36]: + - button "▼" [ref=f13e37] [cursor=pointer] + - generic [ref=f13e38]: CALIBRATION · two-point + - generic [ref=f13e39]: "0.95" + - generic [ref=f13e40]: stale + - generic [ref=f13e41]: + - generic [ref=f13e42]: + - generic [ref=f13e43]: source + - generic [ref=f13e44]: laser 488 + - generic [ref=f13e45]: + - generic [ref=f13e46]: point 1 + - generic [ref=f13e47]: captured + - generic [ref=f13e48]: + - generic [ref=f13e49]: point 2 + - generic [ref=f13e50]: — + - generic [ref=f13e51]: + - button "capture point 2" [ref=f13e52] [cursor=pointer] + - button "solve transform" [ref=f13e53] [cursor=pointer] + - generic [ref=f13e54]: + - generic [ref=f13e55]: + - button "▼" [ref=f13e56] [cursor=pointer] + - generic [ref=f13e57]: ACQUISITION + - generic [ref=f13e58]: "0.50" + - generic [ref=f13e59]: ready + - generic [ref=f13e60]: + - generic [ref=f13e61]: + - generic [ref=f13e62]: interval + - slider [ref=f13e63]: "100" + - generic [ref=f13e64]: 120s + - generic [ref=f13e65]: + - generic [ref=f13e66]: timepoints + - slider [ref=f13e67]: "60" + - generic [ref=f13e68]: "60" + - button "start" [ref=f13e70] [cursor=pointer] + - generic [ref=f13e72]: + - button "▼" [ref=f13e73] [cursor=pointer] + - generic [ref=f13e74]: RELEASES + - generic [ref=f13e75]: none + - generic [ref=f13e76]: "0.40" + - generic [ref=f13e77]: live + - generic [ref=f13e79]: + - button "▼" [ref=f13e80] [cursor=pointer] + - generic [ref=f13e81]: COURTYARD + - generic [ref=f13e82]: rail · deck + - generic [ref=f13e83]: "0.30" + - generic [ref=f13e84]: ready + - generic [ref=f13e86]: + - button "▼" [ref=f13e87] [cursor=pointer] + - generic [ref=f13e88]: EVENTS + - generic [ref=f13e89]: none + - generic [ref=f13e90]: "0.20" + - generic [ref=f13e91]: ready + - generic: + - generic: + - generic [ref=f13e93]: + - button "▼" [ref=f13e94] [cursor=pointer] + - generic [ref=f13e95]: SPIM HEAD + - generic [ref=f13e96]: 35% · 40ms + - generic [ref=f13e97]: "0.80" + - generic [ref=f13e98]: PIN + - generic [ref=f13e99]: ready + - generic [ref=f13e101]: + - button "▼" [ref=f13e102] [cursor=pointer] + - generic [ref=f13e103]: STAGE + - generic [ref=f13e104]: 1610.4, 905.2, -12.8 + - generic [ref=f13e105]: "0.60" + - generic [ref=f13e106]: PIN + - generic [ref=f13e107]: live + - generic [ref=f13e109]: + - button "▼" [ref=f13e110] [cursor=pointer] + - generic [ref=f13e111]: CURATOR + - generic [ref=f13e112]: 1 needs you + - generic [ref=f13e113]: "0.85" + - generic [ref=f13e114]: PIN + - generic [ref=f13e115]: live + - generic [ref=f13e116]: + - button "0 home" [ref=f13e117] [cursor=pointer] + - button "1 detect" [ref=f13e118] [cursor=pointer] + - button "2 position" [ref=f13e119] [cursor=pointer] + - button "3 calibrate" [ref=f13e120] [cursor=pointer] + - button "4 acquire" [ref=f13e121] [cursor=pointer] + - button "5 curator" [ref=f13e122] [cursor=pointer] + - button "bench" [ref=f13e123] [cursor=pointer] + - generic [ref=f13e124]: + - text: density + - slider [ref=f13e125]: "4" + - generic [ref=f13e126]: "4" + - generic [ref=f13e127]: + - generic [ref=f13e128]: t+0s + - text: × + - combobox [ref=f13e129]: + - option "1" + - option "10" [selected] + - option "60" + - generic: + - generic [ref=f13e130]: + - generic [ref=f13e131]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f13e132]: + - button "survey" [ref=f13e133] [cursor=pointer] + - button "operate" [ref=f13e134] [cursor=pointer] + - button "acquire" [ref=f13e135] [cursor=pointer] + - generic [ref=f13e136]: 100% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T10-48-36-247Z.yml b/.playwright-mcp/page-2026-08-24T10-48-36-247Z.yml new file mode 100644 index 00000000..15dced7c --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T10-48-36-247Z.yml @@ -0,0 +1,101 @@ +- generic [active] [ref=f14e1]: + - generic "Welcome to Gently" [ref=f14e2]: + - button "Toggle theme" [ref=f14e3] [cursor=pointer] + - generic [ref=f14e7]: + - generic [ref=f14e8]: Good afternoon.What are we doing today? + - generic [ref=f14e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f14e12] [cursor=pointer]: + - generic [ref=f14e13]: guided + - heading "Plan an experiment" [level=3] [ref=f14e17] + - paragraph [ref=f14e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f14e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f14e22] [cursor=pointer]: + - generic [ref=f14e23]: standalone + - heading "Take a quick look" [level=3] [ref=f14e28] + - paragraph [ref=f14e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f14e30]: Open the scope + - generic [ref=f14e33]: + - button "or just tell me what you need" [ref=f14e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f14e40] + - button "Send" [ref=f14e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f14e44] [cursor=pointer] + - generic [ref=f14e45]: + - generic [ref=f14e46]: + - link "Gently Microscopy" [ref=f14e47] [cursor=pointer]: + - /url: / + - generic [ref=f14e48]: + - link "215b41df" [ref=f14e49] [cursor=pointer]: + - /url: /review?session=215b41df + - button "Copy session ID" [ref=f14e50] [cursor=pointer] + - generic [ref=f14e54]: + - generic [ref=f14e55]: R + - button "Open process console" [ref=f14e57] + - link "Dashboard settings" [ref=f14e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f14e65] [cursor=pointer] + - button "Scope offline" [ref=f14e69] [cursor=pointer] + - generic [ref=f14e74]: + - complementary [ref=f14e75]: + - navigation [ref=f14e76]: + - generic [ref=f14e77]: + - generic [ref=f14e78]: Now + - button "Home" [ref=f14e79] [cursor=pointer] + - button "Operations" [ref=f14e80] [cursor=pointer] + - button "Embryos" [ref=f14e81] [cursor=pointer] + - generic [ref=f14e82]: + - generic [ref=f14e83]: Library + - button "Plans" [ref=f14e84] [cursor=pointer] + - button "Sessions" [ref=f14e85] [cursor=pointer] + - button "Notebook" [ref=f14e86] [cursor=pointer] + - button "Gallery" [ref=f14e87] [cursor=pointer] + - generic [ref=f14e88]: + - generic [ref=f14e89]: System + - button "Devices" [ref=f14e90] [cursor=pointer] + - button "Calibration" [ref=f14e91] [cursor=pointer] + - button "Logs" [ref=f14e92] [cursor=pointer] + - button "Talk to Gently" [ref=f14e93] [cursor=pointer] + - generic [ref=f14e95]: + - generic [ref=f14e96]: + - generic [ref=f14e97]: LIVE + - generic [ref=f14e99]: 0 embryos · Online + - generic [ref=f14e101]: + - complementary [ref=f14e102]: + - generic [ref=f14e103]: Agent’s view + - generic [ref=f14e104]: Nothing yet — the agent’s notes, expectations, and open questions appear here as it works. + - generic [ref=f14e105]: + - generic [ref=f14e106]: + - generic [ref=f14e107]: + - generic [ref=f14e108]: Recent sessions + - link "All" [ref=f14e109] [cursor=pointer]: + - /url: "#sessions" + - generic [ref=f14e112]: + - generic [ref=f14e113]: + - generic [ref=f14e114]: 215b41df + - generic [ref=f14e115]: live + - generic [ref=f14e116]: 26m ago · 0 embryos + - generic [ref=f14e117]: + - generic [ref=f14e118]: + - generic [ref=f14e119]: Recent plans + - link "All" [ref=f14e120] [cursor=pointer]: + - /url: "#plans" + - generic [ref=f14e121]: No plans yet. + - generic [ref=f14e123]: + - generic [ref=f14e124]: + - generic [ref=f14e125]: Recent images + - link "All" [ref=f14e126] [cursor=pointer]: + - /url: "#embryos" + - generic [ref=f14e127]: No images yet — they appear once a session has captured volumes. + - text: › + - contentinfo [ref=f14e129]: + - generic [ref=f14e130]: 0 embryos · 0 images · 8 events + - generic [ref=f14e131]: No active timelapse + - complementary "Agent chat" [ref=f14e132]: + - generic [ref=f14e134]: + - generic [ref=f14e135]: Agent + - generic [ref=f14e137]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f14e138] [cursor=pointer] + - generic [ref=f14e142]: + - textbox "Message Gently… ( / commands · @ tools )" [ref=f14e143]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f14e144] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T10-49-06-442Z.yml b/.playwright-mcp/page-2026-08-24T10-49-06-442Z.yml new file mode 100644 index 00000000..1b127950 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T10-49-06-442Z.yml @@ -0,0 +1,135 @@ +- generic [active] [ref=e1]: + - generic [ref=e2]: + - generic: + - generic [ref=e3]: + - generic [ref=e4]: + - button "▼" [ref=e5] [cursor=pointer] + - generic [ref=e6]: EMBRYOS · 4 + - generic [ref=e7]: "0.70" + - generic [ref=e8]: live + - generic [ref=e9]: + - generic [ref=e10] [cursor=pointer]: board ⇱ + - generic [ref=e11] [cursor=pointer]: filmstrip ⇱ + - generic [ref=e12] [cursor=pointer]: vitals ⇱ + - generic [ref=e13]: + - generic [ref=e14]: + - generic [ref=e15] [cursor=pointer]: e01 1420, 880 + - generic [ref=e16] [cursor=pointer]: e02 1610, 905 + - generic [ref=e17] [cursor=pointer]: e03 1755, 1120 + - generic [ref=e18] [cursor=pointer]: e04 2010, 860 + - generic [ref=e19]: + - button "remap region" [ref=e20] [cursor=pointer] + - generic [ref=e21]: µm + - generic [ref=e22]: + - generic [ref=e23]: + - button "▼" [ref=e24] [cursor=pointer] + - generic [ref=e25]: BOTTOM CAMERA + - generic [ref=e26]: "0.90" + - generic [ref=e27]: live + - generic [ref=e31]: + - button "−" [ref=e32] [cursor=pointer] + - generic [ref=e33]: 1.0× + - button "+" [ref=e34] [cursor=pointer] + - generic [ref=e35]: + - generic [ref=e36]: + - button "▼" [ref=e37] [cursor=pointer] + - generic [ref=e38]: CALIBRATION · two-point + - generic [ref=e39]: "0.95" + - generic [ref=e40]: stale + - generic [ref=e41]: + - generic [ref=e42]: + - generic [ref=e43]: source + - generic [ref=e44]: laser 488 + - generic [ref=e45]: + - generic [ref=e46]: point 1 + - generic [ref=e47]: captured + - generic [ref=e48]: + - generic [ref=e49]: point 2 + - generic [ref=e50]: — + - generic [ref=e51]: + - button "capture point 2" [ref=e52] [cursor=pointer] + - button "solve transform" [ref=e53] [cursor=pointer] + - generic [ref=e54]: + - generic [ref=e55]: + - button "▼" [ref=e56] [cursor=pointer] + - generic [ref=e57]: ACQUISITION + - generic [ref=e58]: "0.50" + - generic [ref=e59]: ready + - generic [ref=e60]: + - generic [ref=e61]: + - generic [ref=e62]: interval + - slider [ref=e63]: "100" + - generic [ref=e64]: 120s + - generic [ref=e65]: + - generic [ref=e66]: timepoints + - slider [ref=e67]: "60" + - generic [ref=e68]: "60" + - button "start" [ref=e70] [cursor=pointer] + - generic [ref=e72]: + - button "▼" [ref=e73] [cursor=pointer] + - generic [ref=e74]: RELEASES + - generic [ref=e75]: none + - generic [ref=e76]: "0.40" + - generic [ref=e77]: live + - generic [ref=e79]: + - button "▼" [ref=e80] [cursor=pointer] + - generic [ref=e81]: COURTYARD + - generic [ref=e82]: rail · deck + - generic [ref=e83]: "0.30" + - generic [ref=e84]: ready + - generic [ref=e86]: + - button "▼" [ref=e87] [cursor=pointer] + - generic [ref=e88]: EVENTS + - generic [ref=e89]: none + - generic [ref=e90]: "0.20" + - generic [ref=e91]: ready + - generic: + - generic: + - generic [ref=e93]: + - button "▼" [ref=e94] [cursor=pointer] + - generic [ref=e95]: SPIM HEAD + - generic [ref=e96]: 35% · 40ms + - generic [ref=e97]: "0.80" + - generic [ref=e98]: PIN + - generic [ref=e99]: ready + - generic [ref=e101]: + - button "▼" [ref=e102] [cursor=pointer] + - generic [ref=e103]: STAGE + - generic [ref=e104]: 1610.4, 905.2, -12.8 + - generic [ref=e105]: "0.60" + - generic [ref=e106]: PIN + - generic [ref=e107]: live + - generic [ref=e109]: + - button "▼" [ref=e110] [cursor=pointer] + - generic [ref=e111]: CURATOR + - generic [ref=e112]: 1 needs you + - generic [ref=e113]: "0.85" + - generic [ref=e114]: PIN + - generic [ref=e115]: live + - generic [ref=e116]: + - button "0 home" [ref=e117] [cursor=pointer] + - button "1 detect" [ref=e118] [cursor=pointer] + - button "2 position" [ref=e119] [cursor=pointer] + - button "3 calibrate" [ref=e120] [cursor=pointer] + - button "4 acquire" [ref=e121] [cursor=pointer] + - button "5 curator" [ref=e122] [cursor=pointer] + - button "bench" [ref=e123] [cursor=pointer] + - generic [ref=e124]: + - text: density + - slider [ref=e125]: "4" + - generic [ref=e126]: "4" + - generic [ref=e127]: + - generic [ref=e128]: t+0s + - text: × + - combobox [ref=e129]: + - option "1" + - option "10" [selected] + - option "60" + - generic: + - generic [ref=e130]: + - generic [ref=e131]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=e132]: + - button "survey" [ref=e133] [cursor=pointer] + - button "operate" [ref=e134] [cursor=pointer] + - button "acquire" [ref=e135] [cursor=pointer] + - generic [ref=e136]: 100% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T10-50-18-696Z.yml b/.playwright-mcp/page-2026-08-24T10-50-18-696Z.yml new file mode 100644 index 00000000..425ea5ae --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T10-50-18-696Z.yml @@ -0,0 +1,135 @@ +- generic [active] [ref=f1e1]: + - generic [ref=f1e2]: + - generic: + - generic [ref=f1e3]: + - generic [ref=f1e4]: + - button "▼" [ref=f1e5] [cursor=pointer] + - generic [ref=f1e6]: EMBRYOS · 4 + - generic [ref=f1e7]: "0.70" + - generic [ref=f1e8]: live + - generic [ref=f1e9]: + - generic [ref=f1e10] [cursor=pointer]: board ⇱ + - generic [ref=f1e11] [cursor=pointer]: filmstrip ⇱ + - generic [ref=f1e12] [cursor=pointer]: vitals ⇱ + - generic [ref=f1e13]: + - generic [ref=f1e14]: + - generic [ref=f1e15] [cursor=pointer]: e01 1420, 880 + - generic [ref=f1e16] [cursor=pointer]: e02 1610, 905 + - generic [ref=f1e17] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f1e18] [cursor=pointer]: e04 2010, 860 + - generic [ref=f1e19]: + - button "remap region" [ref=f1e20] [cursor=pointer] + - generic [ref=f1e21]: µm + - generic [ref=f1e22]: + - generic [ref=f1e23]: + - button "▼" [ref=f1e24] [cursor=pointer] + - generic [ref=f1e25]: BOTTOM CAMERA + - generic [ref=f1e26]: "0.90" + - generic [ref=f1e27]: live + - generic [ref=f1e31]: + - button "−" [ref=f1e32] [cursor=pointer] + - generic [ref=f1e33]: 1.0× + - button "+" [ref=f1e34] [cursor=pointer] + - generic [ref=f1e35]: + - generic [ref=f1e36]: + - button "▼" [ref=f1e37] [cursor=pointer] + - generic [ref=f1e38]: CALIBRATION · two-point + - generic [ref=f1e39]: "0.95" + - generic [ref=f1e40]: stale + - generic [ref=f1e41]: + - generic [ref=f1e42]: + - generic [ref=f1e43]: source + - generic [ref=f1e44]: laser 488 + - generic [ref=f1e45]: + - generic [ref=f1e46]: point 1 + - generic [ref=f1e47]: captured + - generic [ref=f1e48]: + - generic [ref=f1e49]: point 2 + - generic [ref=f1e50]: — + - generic [ref=f1e51]: + - button "capture point 2" [ref=f1e52] [cursor=pointer] + - button "solve transform" [ref=f1e53] [cursor=pointer] + - generic [ref=f1e54]: + - generic [ref=f1e55]: + - button "▼" [ref=f1e56] [cursor=pointer] + - generic [ref=f1e57]: ACQUISITION + - generic [ref=f1e58]: "0.50" + - generic [ref=f1e59]: ready + - generic [ref=f1e60]: + - generic [ref=f1e61]: + - generic [ref=f1e62]: interval + - slider [ref=f1e63]: "100" + - generic [ref=f1e64]: 120s + - generic [ref=f1e65]: + - generic [ref=f1e66]: timepoints + - slider [ref=f1e67]: "60" + - generic [ref=f1e68]: "60" + - button "start" [ref=f1e70] [cursor=pointer] + - generic [ref=f1e72]: + - button "▼" [ref=f1e73] [cursor=pointer] + - generic [ref=f1e74]: RELEASES + - generic [ref=f1e75]: none + - generic [ref=f1e76]: "0.40" + - generic [ref=f1e77]: live + - generic [ref=f1e79]: + - button "▼" [ref=f1e80] [cursor=pointer] + - generic [ref=f1e81]: COURTYARD + - generic [ref=f1e82]: rail · deck + - generic [ref=f1e83]: "0.30" + - generic [ref=f1e84]: ready + - generic [ref=f1e86]: + - button "▼" [ref=f1e87] [cursor=pointer] + - generic [ref=f1e88]: EVENTS + - generic [ref=f1e89]: none + - generic [ref=f1e90]: "0.20" + - generic [ref=f1e91]: ready + - generic: + - generic: + - generic [ref=f1e93]: + - button "▼" [ref=f1e94] [cursor=pointer] + - generic [ref=f1e95]: SPIM HEAD + - generic [ref=f1e96]: 35% · 40ms + - generic [ref=f1e97]: "0.80" + - generic [ref=f1e98]: PIN + - generic [ref=f1e99]: ready + - generic [ref=f1e101]: + - button "▼" [ref=f1e102] [cursor=pointer] + - generic [ref=f1e103]: STAGE + - generic [ref=f1e104]: 1610.4, 905.2, -12.8 + - generic [ref=f1e105]: "0.60" + - generic [ref=f1e106]: PIN + - generic [ref=f1e107]: live + - generic [ref=f1e109]: + - button "▼" [ref=f1e110] [cursor=pointer] + - generic [ref=f1e111]: CURATOR + - generic [ref=f1e112]: 1 needs you + - generic [ref=f1e113]: "0.85" + - generic [ref=f1e114]: PIN + - generic [ref=f1e115]: live + - generic [ref=f1e116]: + - button "0 home" [ref=f1e117] [cursor=pointer] + - button "1 detect" [ref=f1e118] [cursor=pointer] + - button "2 position" [ref=f1e119] [cursor=pointer] + - button "3 calibrate" [ref=f1e120] [cursor=pointer] + - button "4 acquire" [ref=f1e121] [cursor=pointer] + - button "5 curator" [ref=f1e122] [cursor=pointer] + - button "bench" [ref=f1e123] [cursor=pointer] + - generic [ref=f1e124]: + - text: density + - slider [ref=f1e125]: "4" + - generic [ref=f1e126]: "4" + - generic [ref=f1e127]: + - generic [ref=f1e128]: t+0s + - text: × + - combobox [ref=f1e129]: + - option "1" + - option "10" [selected] + - option "60" + - generic: + - generic [ref=f1e130]: + - generic [ref=f1e131]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f1e132]: + - button "survey" [ref=f1e133] [cursor=pointer] + - button "operate" [ref=f1e134] [cursor=pointer] + - button "acquire" [ref=f1e135] [cursor=pointer] + - generic [ref=f1e136]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T11-06-20-407Z.yml b/.playwright-mcp/page-2026-08-24T11-06-20-407Z.yml new file mode 100644 index 00000000..f77c50ef --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T11-06-20-407Z.yml @@ -0,0 +1,15 @@ +- generic [ref=f17e2]: + - generic [ref=f17e3]: Gently + - paragraph [ref=f17e6]: What are we doing today? + - switch "Microscope" [ref=f17e7] [cursor=pointer]: + - generic [ref=f17e12]: + - generic [ref=f17e13]: Microscope + - generic [ref=f17e14]: Not this session — saved data only. + - switch "Assistant" [checked] [ref=f17e16] [cursor=pointer]: + - generic [ref=f17e20]: + - generic [ref=f17e21]: Assistant + - generic [ref=f17e22]: Help find embryos and watch the timelapse. + - button "Open →" [ref=f17e24] [cursor=pointer]: + - text: Open + - generic [ref=f17e25]: → + - generic [ref=f17e27]: Remembers your last choice \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T11-06-28-827Z.yml b/.playwright-mcp/page-2026-08-24T11-06-28-827Z.yml new file mode 100644 index 00000000..6e1e2224 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T11-06-28-827Z.yml @@ -0,0 +1,107 @@ +- generic [ref=f20e1]: + - generic "Welcome to Gently" [ref=f20e2]: + - button "Toggle theme" [ref=f20e3] [cursor=pointer] + - generic [ref=f20e7]: + - generic [ref=f20e8]: Good afternoon.What are we doing today? + - generic [ref=f20e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f20e12] [cursor=pointer]: + - generic [ref=f20e13]: guided + - heading "Plan an experiment" [level=3] [ref=f20e17] + - paragraph [ref=f20e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f20e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f20e22] [cursor=pointer]: + - generic [ref=f20e23]: standalone + - heading "Take a quick look" [level=3] [ref=f20e28] + - paragraph [ref=f20e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f20e30]: Open the scope + - generic [ref=f20e33]: + - button "or just tell me what you need" [ref=f20e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f20e40] + - button "Send" [ref=f20e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f20e44] [cursor=pointer] + - generic [ref=f20e45]: + - generic [ref=f20e46]: + - link "Gently Microscopy" [ref=f20e47] [cursor=pointer]: + - /url: / + - generic [ref=f20e48]: + - link "2fa715ae" [ref=f20e49] [cursor=pointer]: + - /url: /review?session=2fa715ae + - button "Copy session ID" [ref=f20e50] [cursor=pointer] + - generic [ref=f20e54]: + - generic [ref=f20e55]: R + - button "Open process console" [ref=f20e57] + - link "Dashboard settings" [ref=f20e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f20e65] [cursor=pointer] + - button "Scope offline" [ref=f20e69] [cursor=pointer] + - generic [ref=f20e74]: + - complementary [ref=f20e75]: + - navigation [ref=f20e76]: + - generic [ref=f20e77]: + - generic [ref=f20e78]: Now + - button "Home" [ref=f20e79] [cursor=pointer] + - button "Operations" [ref=f20e80] [cursor=pointer] + - button "Embryos" [ref=f20e81] [cursor=pointer] + - generic [ref=f20e82]: + - generic [ref=f20e83]: Library + - button "Plans" [ref=f20e84] [cursor=pointer] + - button "Sessions" [ref=f20e85] [cursor=pointer] + - button "Notebook" [ref=f20e86] [cursor=pointer] + - button "Gallery" [ref=f20e87] [cursor=pointer] + - generic [ref=f20e88]: + - generic [ref=f20e89]: System + - button "Devices" [ref=f20e90] [cursor=pointer] + - button "Calibration" [ref=f20e91] [cursor=pointer] + - button "Logs" [ref=f20e92] [cursor=pointer] + - button "Talk to Gently" [ref=f20e93] [cursor=pointer] + - generic [ref=f20e95]: + - generic [ref=f20e96]: + - generic [ref=f20e97]: LIVE + - generic [ref=f20e99]: 0 embryos · Online + - generic [ref=f20e101]: + - complementary [ref=f20e102]: + - generic [ref=f20e103]: Agent’s view + - generic [ref=f20e104]: Nothing yet — the agent’s notes, expectations, and open questions appear here as it works. + - generic [ref=f20e105]: + - generic [ref=f20e106]: + - generic [ref=f20e107]: + - generic [ref=f20e108]: Recent sessions + - link "All" [ref=f20e109] [cursor=pointer]: + - /url: "#sessions" + - generic [ref=f20e110]: + - generic [ref=f20e112]: + - generic [ref=f20e113]: + - generic [ref=f20e114]: 2fa715ae + - generic [ref=f20e115]: live + - generic [ref=f20e116]: 13m ago · 0 embryos + - generic [ref=f20e117]: + - generic [ref=f20e118]: + - generic [ref=f20e119]: 215b41df + - generic [ref=f20e121]: 44m ago · 0 embryos + - button "Resume" [ref=f20e122] [cursor=pointer] + - generic [ref=f20e123]: + - generic [ref=f20e124]: + - generic [ref=f20e125]: Recent plans + - link "All" [ref=f20e126] [cursor=pointer]: + - /url: "#plans" + - generic [ref=f20e127]: No plans yet. + - generic [ref=f20e129]: + - generic [ref=f20e130]: + - generic [ref=f20e131]: Recent images + - link "All" [ref=f20e132] [cursor=pointer]: + - /url: "#embryos" + - generic [ref=f20e133]: No images yet — they appear once a session has captured volumes. + - text: › + - contentinfo [ref=f20e135]: + - generic [ref=f20e136]: 0 embryos · 0 images · 8 events + - generic [ref=f20e137]: No active timelapse + - complementary "Agent chat" [ref=f20e138]: + - generic [ref=f20e140]: + - generic [ref=f20e141]: Agent + - generic [ref=f20e143]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f20e144] [cursor=pointer] + - generic [ref=f20e148]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f20e149]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f20e150] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T11-08-03-712Z.yml b/.playwright-mcp/page-2026-08-24T11-08-03-712Z.yml new file mode 100644 index 00000000..62b8b21e --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T11-08-03-712Z.yml @@ -0,0 +1,30 @@ +- generic [active] [ref=f2e1]: + - generic: + - generic [ref=f2e3]: + - button "←" [disabled] [ref=f2e4] + - button "0 home" [ref=f2e5] [cursor=pointer] + - button "1 detect" [ref=f2e6] [cursor=pointer] + - button "2 position" [ref=f2e7] [cursor=pointer] + - button "3 calibrate" [ref=f2e8] [cursor=pointer] + - button "4 acquire" [ref=f2e9] [cursor=pointer] + - button "5 curator" [ref=f2e10] [cursor=pointer] + - button "bench" [ref=f2e11] [cursor=pointer] + - generic [ref=f2e12]: + - text: density + - slider [ref=f2e13]: "5" + - generic [ref=f2e14]: "5" + - generic [ref=f2e15]: + - generic [ref=f2e16]: t+0s + - text: × + - combobox [ref=f2e17]: + - option "1" + - option "10" [selected] + - option "60" + - generic: + - generic [ref=f2e18]: + - generic [ref=f2e19]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f2e20]: + - button "survey" [ref=f2e21] [cursor=pointer] + - button "operate" [ref=f2e22] [cursor=pointer] + - button "acquire" [ref=f2e23] [cursor=pointer] + - generic [ref=f2e24]: 100% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T11-09-01-644Z.yml b/.playwright-mcp/page-2026-08-24T11-09-01-644Z.yml new file mode 100644 index 00000000..0b998921 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T11-09-01-644Z.yml @@ -0,0 +1,136 @@ +- generic [active] [ref=f3e1]: + - generic [ref=f3e2]: + - generic: + - generic [ref=f3e3]: + - generic [ref=f3e4]: + - button "▼" [ref=f3e5] [cursor=pointer] + - generic [ref=f3e6]: EMBRYOS · 4 + - generic [ref=f3e7]: "0.70" + - generic [ref=f3e8]: live + - generic [ref=f3e9]: + - generic [ref=f3e10] [cursor=pointer]: board ⇱ + - generic [ref=f3e11] [cursor=pointer]: filmstrip ⇱ + - generic [ref=f3e12] [cursor=pointer]: vitals ⇱ + - generic [ref=f3e13]: + - generic [ref=f3e14]: + - generic [ref=f3e15] [cursor=pointer]: e01 1420, 880 + - generic [ref=f3e16] [cursor=pointer]: e02 1610, 905 + - generic [ref=f3e17] [cursor=pointer]: e03 1755, 1120 + - generic [ref=f3e18] [cursor=pointer]: e04 2010, 860 + - generic [ref=f3e19]: + - button "remap region" [ref=f3e20] [cursor=pointer] + - generic [ref=f3e21]: µm + - generic [ref=f3e22]: + - generic [ref=f3e23]: + - button "▼" [ref=f3e24] [cursor=pointer] + - generic [ref=f3e25]: BOTTOM CAMERA + - generic [ref=f3e26]: "0.90" + - generic [ref=f3e27]: live + - generic [ref=f3e31]: + - button "−" [ref=f3e32] [cursor=pointer] + - generic [ref=f3e33]: 1.0× + - button "+" [ref=f3e34] [cursor=pointer] + - generic [ref=f3e35]: + - generic [ref=f3e36]: + - button "▼" [ref=f3e37] [cursor=pointer] + - generic [ref=f3e38]: CALIBRATION · two-point + - generic [ref=f3e39]: "0.95" + - generic [ref=f3e40]: stale + - generic [ref=f3e41]: + - generic [ref=f3e42]: + - generic [ref=f3e43]: source + - generic [ref=f3e44]: laser 488 + - generic [ref=f3e45]: + - generic [ref=f3e46]: point 1 + - generic [ref=f3e47]: captured + - generic [ref=f3e48]: + - generic [ref=f3e49]: point 2 + - generic [ref=f3e50]: — + - generic [ref=f3e51]: + - button "capture point 2" [ref=f3e52] [cursor=pointer] + - button "solve transform" [ref=f3e53] [cursor=pointer] + - generic [ref=f3e54]: + - generic [ref=f3e55]: + - button "▼" [ref=f3e56] [cursor=pointer] + - generic [ref=f3e57]: ACQUISITION + - generic [ref=f3e58]: "0.50" + - generic [ref=f3e59]: ready + - generic [ref=f3e60]: + - generic [ref=f3e61]: + - generic [ref=f3e62]: interval + - slider [ref=f3e63]: "100" + - generic [ref=f3e64]: 120s + - generic [ref=f3e65]: + - generic [ref=f3e66]: timepoints + - slider [ref=f3e67]: "60" + - generic [ref=f3e68]: "60" + - button "start" [ref=f3e70] [cursor=pointer] + - generic [ref=f3e72]: + - button "▼" [ref=f3e73] [cursor=pointer] + - generic [ref=f3e74]: RELEASES + - generic [ref=f3e75]: none + - generic [ref=f3e76]: "0.40" + - generic [ref=f3e77]: live + - generic [ref=f3e79]: + - button "▼" [ref=f3e80] [cursor=pointer] + - generic [ref=f3e81]: COURTYARD + - generic [ref=f3e82]: rail · deck + - generic [ref=f3e83]: "0.30" + - generic [ref=f3e84]: ready + - generic [ref=f3e86]: + - button "▼" [ref=f3e87] [cursor=pointer] + - generic [ref=f3e88]: EVENTS + - generic [ref=f3e89]: none + - generic [ref=f3e90]: "0.20" + - generic [ref=f3e91]: ready + - generic: + - generic: + - generic [ref=f3e93]: + - button "▼" [ref=f3e94] [cursor=pointer] + - generic [ref=f3e95]: SPIM HEAD + - generic [ref=f3e96]: 35% · 40ms + - generic [ref=f3e97]: "0.80" + - generic [ref=f3e98]: PIN + - generic [ref=f3e99]: ready + - generic [ref=f3e101]: + - button "▼" [ref=f3e102] [cursor=pointer] + - generic [ref=f3e103]: STAGE + - generic [ref=f3e104]: 1610.4, 905.2, -12.8 + - generic [ref=f3e105]: "0.60" + - generic [ref=f3e106]: PIN + - generic [ref=f3e107]: live + - generic [ref=f3e109]: + - button "▼" [ref=f3e110] [cursor=pointer] + - generic [ref=f3e111]: CURATOR + - generic [ref=f3e112]: 1 needs you + - generic [ref=f3e113]: "0.85" + - generic [ref=f3e114]: PIN + - generic [ref=f3e115]: live + - generic [ref=f3e116]: + - button "←" [ref=f3e117] [cursor=pointer] + - button "0 home" [ref=f3e118] [cursor=pointer] + - button "1 detect" [ref=f3e119] [cursor=pointer] + - button "2 position" [ref=f3e120] [cursor=pointer] + - button "3 calibrate" [ref=f3e121] [cursor=pointer] + - button "4 acquire" [ref=f3e122] [cursor=pointer] + - button "5 curator" [ref=f3e123] [cursor=pointer] + - button "bench" [ref=f3e124] [cursor=pointer] + - generic [ref=f3e125]: + - text: density + - slider [ref=f3e126]: "4" + - generic [ref=f3e127]: "4" + - generic [ref=f3e128]: + - generic [ref=f3e129]: t+0s + - text: × + - combobox [ref=f3e130]: + - option "1" + - option "10" [selected] + - option "60" + - generic: + - generic [ref=f3e131]: + - generic [ref=f3e132]: everything exists · attention travels · 0–5 · surface zoom ≠ frame zoom + - generic [ref=f3e133]: + - button "survey" [ref=f3e134] [cursor=pointer] + - button "operate" [ref=f3e135] [cursor=pointer] + - button "acquire" [ref=f3e136] [cursor=pointer] + - generic [ref=f3e137]: 90% \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T11-15-14-413Z.yml b/.playwright-mcp/page-2026-08-24T11-15-14-413Z.yml new file mode 100644 index 00000000..ccb8a2f4 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T11-15-14-413Z.yml @@ -0,0 +1,101 @@ +- generic [active] [ref=f23e1]: + - generic "Welcome to Gently" [ref=f23e2]: + - button "Toggle theme" [ref=f23e3] [cursor=pointer] + - generic [ref=f23e7]: + - generic [ref=f23e8]: Good afternoon.What are we doing today? + - generic [ref=f23e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f23e12] [cursor=pointer]: + - generic [ref=f23e13]: guided + - heading "Plan an experiment" [level=3] [ref=f23e17] + - paragraph [ref=f23e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f23e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f23e22] [cursor=pointer]: + - generic [ref=f23e23]: standalone + - heading "Take a quick look" [level=3] [ref=f23e28] + - paragraph [ref=f23e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f23e30]: Open the scope + - generic [ref=f23e33]: + - button "or just tell me what you need" [ref=f23e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f23e40] + - button "Send" [ref=f23e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f23e44] [cursor=pointer] + - generic [ref=f23e45]: + - generic [ref=f23e46]: + - link "Gently Microscopy" [ref=f23e47] [cursor=pointer]: + - /url: / + - generic [ref=f23e48]: + - link "2fa715ae" [ref=f23e49] [cursor=pointer]: + - /url: /review?session=2fa715ae + - button "Copy session ID" [ref=f23e50] [cursor=pointer] + - generic [ref=f23e54]: + - generic [ref=f23e55]: R + - button "Open process console" [ref=f23e57] + - link "Dashboard settings" [ref=f23e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f23e65] [cursor=pointer] + - button "Scope offline" [ref=f23e69] [cursor=pointer] + - generic [ref=f23e74]: + - complementary [ref=f23e75]: + - navigation [ref=f23e76]: + - generic [ref=f23e77]: + - generic [ref=f23e78]: Now + - button "Home" [ref=f23e79] [cursor=pointer] + - button "Operations" [ref=f23e80] [cursor=pointer] + - button "Embryos" [ref=f23e81] [cursor=pointer] + - generic [ref=f23e82]: + - generic [ref=f23e83]: Library + - button "Plans" [ref=f23e84] [cursor=pointer] + - button "Sessions" [ref=f23e85] [cursor=pointer] + - button "Notebook" [ref=f23e86] [cursor=pointer] + - button "Gallery" [ref=f23e87] [cursor=pointer] + - generic [ref=f23e88]: + - generic [ref=f23e89]: System + - button "Devices" [ref=f23e90] [cursor=pointer] + - button "Calibration" [ref=f23e91] [cursor=pointer] + - button "Logs" [ref=f23e92] [cursor=pointer] + - button "Talk to Gently" [ref=f23e93] [cursor=pointer] + - generic [ref=f23e95]: + - generic [ref=f23e96]: + - generic [ref=f23e97]: LIVE + - generic [ref=f23e99]: 0 embryos · Online + - generic [ref=f23e102]: + - generic [ref=f23e103]: + - generic [ref=f23e104]: + - generic [ref=f23e105]: Recent sessions + - link "All" [ref=f23e106] [cursor=pointer]: + - /url: "#sessions" + - generic [ref=f23e107]: + - generic [ref=f23e109]: + - generic [ref=f23e110]: + - generic [ref=f23e111]: 2fa715ae + - generic [ref=f23e112]: live + - generic [ref=f23e113]: 22m ago · 0 embryos + - generic [ref=f23e114]: + - generic [ref=f23e115]: + - generic [ref=f23e116]: 215b41df + - generic [ref=f23e118]: 53m ago · 0 embryos + - button "Resume" [ref=f23e119] [cursor=pointer] + - generic [ref=f23e120]: + - generic [ref=f23e121]: + - generic [ref=f23e122]: Recent plans + - link "All" [ref=f23e123] [cursor=pointer]: + - /url: "#plans" + - generic [ref=f23e124]: No plans yet. + - generic [ref=f23e126]: + - generic [ref=f23e127]: + - generic [ref=f23e128]: Recent images + - link "All" [ref=f23e129] [cursor=pointer]: + - /url: "#embryos" + - generic [ref=f23e130]: No images yet — they appear once a session has captured volumes. + - text: › + - contentinfo [ref=f23e132] + - complementary "Agent chat" [ref=f23e133]: + - generic [ref=f23e135]: + - generic [ref=f23e136]: Agent + - generic [ref=f23e138]: Connected + - button "Collapse agent panel" [ref=f23e139] [cursor=pointer] + - generic [ref=f23e143]: + - textbox "Message Gently… ( / commands · @ tools )" [ref=f23e144]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f23e145] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T11-15-33-212Z.yml b/.playwright-mcp/page-2026-08-24T11-15-33-212Z.yml new file mode 100644 index 00000000..dbe1a3aa --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T11-15-33-212Z.yml @@ -0,0 +1,182 @@ +- generic [ref=f26e1]: + - generic "Welcome to Gently" [ref=f26e2]: + - button "Toggle theme" [ref=f26e3] [cursor=pointer] + - generic [ref=f26e7]: + - generic [ref=f26e8]: Good afternoon.What are we doing today? + - generic [ref=f26e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f26e12] [cursor=pointer]: + - generic [ref=f26e13]: guided + - heading "Plan an experiment" [level=3] [ref=f26e17] + - paragraph [ref=f26e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f26e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f26e22] [cursor=pointer]: + - generic [ref=f26e23]: standalone + - heading "Take a quick look" [level=3] [ref=f26e28] + - paragraph [ref=f26e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f26e30]: Open the scope + - generic [ref=f26e33]: + - button "or just tell me what you need" [ref=f26e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f26e40] + - button "Send" [ref=f26e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f26e44] [cursor=pointer] + - generic [ref=f26e45]: + - generic [ref=f26e46]: + - link "Gently Microscopy" [ref=f26e47] [cursor=pointer]: + - /url: / + - generic [ref=f26e48]: + - link "2fa715ae" [ref=f26e49] [cursor=pointer]: + - /url: /review?session=2fa715ae + - button "Copy session ID" [ref=f26e50] [cursor=pointer] + - generic [ref=f26e54]: + - generic [ref=f26e55]: R + - button "Open process console" [ref=f26e57] + - link "Dashboard settings" [ref=f26e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f26e65] [cursor=pointer] + - button "Scope offline" [ref=f26e69] [cursor=pointer] + - generic [ref=f26e74]: + - complementary [ref=f26e75]: + - navigation [ref=f26e76]: + - generic [ref=f26e77]: + - generic [ref=f26e78]: Now + - button "Home" [ref=f26e79] [cursor=pointer] + - button "Operations" [ref=f26e80] [cursor=pointer] + - button "Embryos" [ref=f26e81] [cursor=pointer] + - generic [ref=f26e82]: + - generic [ref=f26e83]: Library + - button "Plans" [ref=f26e84] [cursor=pointer] + - button "Sessions" [ref=f26e85] [cursor=pointer] + - button "Notebook" [ref=f26e86] [cursor=pointer] + - button "Gallery" [ref=f26e87] [cursor=pointer] + - generic [ref=f26e88]: + - generic [ref=f26e89]: System + - button "Devices" [ref=f26e90] [cursor=pointer] + - button "Calibration" [ref=f26e91] [cursor=pointer] + - button "Logs" [ref=f26e92] [cursor=pointer] + - button "Talk to Gently" [ref=f26e93] [cursor=pointer] + - generic [ref=f26e95]: + - generic [ref=f26e96]: + - generic [ref=f26e97]: LIVE + - generic [ref=f26e99]: 0 embryos · Online + - contentinfo [ref=f26e100]: + - generic [ref=f26e101]: 0 embryos · 0 images · 8 events + - generic [ref=f26e102]: No active timelapse + - complementary "Agent chat" [ref=f26e103]: + - generic [ref=f26e105]: + - generic [ref=f26e106]: Agent + - generic [ref=f26e108]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f26e109] [cursor=pointer] + - generic [ref=f26e113]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f26e114]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f26e115] + - generic [ref=f26e118]: + - generic: + - generic [ref=f26e120]: + - button "▼" [ref=f26e121] [cursor=pointer] + - generic [ref=f26e122]: HOME + - generic [ref=f26e123]: + - generic [ref=f26e124]: + - button "▼" [ref=f26e125] [cursor=pointer] + - generic [ref=f26e126]: EMBRYOS + - generic [ref=f26e130]: + - generic [ref=f26e133] [cursor=pointer]: + - heading "Embryo Monitoring" [level=2] [ref=f26e134] + - generic [ref=f26e135]: No active timelapse + - generic [ref=f26e138]: + - button "Default" [ref=f26e139] + - button "Board" [ref=f26e140] + - button "Film" [ref=f26e141] + - button "Vitals" [ref=f26e142] + - generic [ref=f26e144]: + - generic [ref=f26e145]: Embryos + - generic [ref=f26e149]: + - generic [ref=f26e150]: 🔬 + - generic [ref=f26e151]: No embryos yet + - generic [ref=f26e152]: Start a timelapse acquisition to begin tracking embryos. Configure your experiment in the Calibration tab. + - button "Go to Calibration" [ref=f26e153] [cursor=pointer] + - generic [ref=f26e154]: + - generic [ref=f26e155]: + - button "▼" [ref=f26e156] [cursor=pointer] + - generic [ref=f26e157]: CALIBRATION + - generic [ref=f26e159]: + - generic [ref=f26e160]: + - heading "Calibration" [level=2] [ref=f26e161] + - generic [ref=f26e162]: + - button "Profile" [ref=f26e163] [cursor=pointer] + - button "Gallery" [ref=f26e164] [cursor=pointer] + - generic [ref=f26e165]: + - generic [ref=f26e166]: + - generic [ref=f26e167]: Embryos + - generic [ref=f26e168]: No calibration images yet + - generic [ref=f26e171]: + - generic [ref=f26e172]: 📷 + - generic [ref=f26e173]: Select an embryo to view calibration images + - generic [ref=f26e174]: + - generic [ref=f26e175]: + - button "▼" [ref=f26e176] [cursor=pointer] + - generic [ref=f26e177]: EXPERIMENT + - generic [ref=f26e180]: + - heading "Operations" [level=2] [ref=f26e181] + - generic [ref=f26e182]: + - button "Overview" [ref=f26e183] [cursor=pointer] + - button "Rules" [ref=f26e184] [cursor=pointer] + - generic [ref=f26e187]: + - button "▼" [ref=f26e188] [cursor=pointer] + - generic [ref=f26e189]: EVENTS + - generic [ref=f26e190]: + - generic [ref=f26e191]: + - button "▼" [ref=f26e192] [cursor=pointer] + - generic [ref=f26e193]: PLANS + - generic [ref=f26e195]: + - generic [ref=f26e197]: + - generic [ref=f26e198]: Campaigns + - text: › + - generic [ref=f26e199]: + - navigation [ref=f26e200] + - main [ref=f26e202]: + - paragraph [ref=f26e205]: Loading campaigns... + - complementary [ref=f26e206]: + - generic [ref=f26e207]: + - button "Close" [ref=f26e208] [cursor=pointer] + - heading [level=2] + - generic [ref=f26e214]: + - button "▼" [ref=f26e215] [cursor=pointer] + - generic [ref=f26e216]: SESSIONS + - generic [ref=f26e218]: + - button "▼" [ref=f26e219] [cursor=pointer] + - generic [ref=f26e220]: NOTEBOOK + - generic [ref=f26e222]: + - button "▼" [ref=f26e223] [cursor=pointer] + - generic [ref=f26e224]: GALLERY + - generic: + - generic [ref=f26e226]: + - button "▼" [ref=f26e227] [cursor=pointer] + - generic [ref=f26e228]: DEVICES + - generic: + - generic [ref=f26e229]: + - generic [ref=f26e230]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f26e231] [cursor=pointer]: + - /url: "#" + - generic [ref=f26e232]: + - button "←" [disabled] [ref=f26e233] + - button "home" [ref=f26e234] [cursor=pointer] + - button "bench" [ref=f26e235] [cursor=pointer] + - button "home" [ref=f26e236] [cursor=pointer] + - button "embryos" [ref=f26e237] [cursor=pointer] + - button "devices" [ref=f26e238] [cursor=pointer] + - button "calibration" [ref=f26e239] [cursor=pointer] + - button "experiment" [ref=f26e240] [cursor=pointer] + - button "events" [ref=f26e241] [cursor=pointer] + - button "plans" [ref=f26e242] [cursor=pointer] + - button "sessions" [ref=f26e243] [cursor=pointer] + - button "notebook" [ref=f26e244] [cursor=pointer] + - button "gallery" [ref=f26e245] [cursor=pointer] + - generic [ref=f26e246]: + - generic [ref=f26e247]: 62% + - generic [ref=f26e248]: + - text: density + - slider "density 4" [ref=f26e249]: "4" + - generic [ref=f26e250]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T11-16-41-053Z.yml b/.playwright-mcp/page-2026-08-24T11-16-41-053Z.yml new file mode 100644 index 00000000..79f9378e --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T11-16-41-053Z.yml @@ -0,0 +1,182 @@ +- generic [ref=f29e1]: + - generic "Welcome to Gently" [ref=f29e2]: + - button "Toggle theme" [ref=f29e3] [cursor=pointer] + - generic [ref=f29e7]: + - generic [ref=f29e8]: Good afternoon.What are we doing today? + - generic [ref=f29e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f29e12] [cursor=pointer]: + - generic [ref=f29e13]: guided + - heading "Plan an experiment" [level=3] [ref=f29e17] + - paragraph [ref=f29e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f29e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f29e22] [cursor=pointer]: + - generic [ref=f29e23]: standalone + - heading "Take a quick look" [level=3] [ref=f29e28] + - paragraph [ref=f29e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f29e30]: Open the scope + - generic [ref=f29e33]: + - button "or just tell me what you need" [ref=f29e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f29e40] + - button "Send" [ref=f29e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f29e44] [cursor=pointer] + - generic [ref=f29e45]: + - generic [ref=f29e46]: + - link "Gently Microscopy" [ref=f29e47] [cursor=pointer]: + - /url: / + - generic [ref=f29e48]: + - link "2fa715ae" [ref=f29e49] [cursor=pointer]: + - /url: /review?session=2fa715ae + - button "Copy session ID" [ref=f29e50] [cursor=pointer] + - generic [ref=f29e54]: + - generic [ref=f29e55]: R + - button "Open process console" [ref=f29e57] + - link "Dashboard settings" [ref=f29e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f29e65] [cursor=pointer] + - button "Scope offline" [ref=f29e69] [cursor=pointer] + - generic [ref=f29e74]: + - complementary [ref=f29e75]: + - navigation [ref=f29e76]: + - generic [ref=f29e77]: + - generic [ref=f29e78]: Now + - button "Home" [ref=f29e79] [cursor=pointer] + - button "Operations" [ref=f29e80] [cursor=pointer] + - button "Embryos" [ref=f29e81] [cursor=pointer] + - generic [ref=f29e82]: + - generic [ref=f29e83]: Library + - button "Plans" [ref=f29e84] [cursor=pointer] + - button "Sessions" [ref=f29e85] [cursor=pointer] + - button "Notebook" [ref=f29e86] [cursor=pointer] + - button "Gallery" [ref=f29e87] [cursor=pointer] + - generic [ref=f29e88]: + - generic [ref=f29e89]: System + - button "Devices" [ref=f29e90] [cursor=pointer] + - button "Calibration" [ref=f29e91] [cursor=pointer] + - button "Logs" [ref=f29e92] [cursor=pointer] + - button "Talk to Gently" [ref=f29e93] [cursor=pointer] + - generic [ref=f29e95]: + - generic [ref=f29e96]: + - generic [ref=f29e97]: LIVE + - generic [ref=f29e99]: 0 embryos · Online + - contentinfo [ref=f29e100]: + - generic [ref=f29e101]: 0 embryos · 0 images · 8 events + - generic [ref=f29e102]: No active timelapse + - complementary "Agent chat" [ref=f29e103]: + - generic [ref=f29e105]: + - generic [ref=f29e106]: Agent + - generic [ref=f29e108]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f29e109] [cursor=pointer] + - generic [ref=f29e113]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f29e114]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f29e115] + - generic [ref=f29e119]: + - generic: + - generic [ref=f29e121]: + - button "▼" [ref=f29e122] [cursor=pointer] + - generic [ref=f29e123]: HOME + - generic [ref=f29e124]: + - generic [ref=f29e125]: + - button "▼" [ref=f29e126] [cursor=pointer] + - generic [ref=f29e127]: EMBRYOS + - generic [ref=f29e131]: + - generic [ref=f29e134] [cursor=pointer]: + - heading "Embryo Monitoring" [level=2] [ref=f29e135] + - generic [ref=f29e136]: No active timelapse + - generic [ref=f29e139]: + - button "Default" [ref=f29e140] + - button "Board" [ref=f29e141] + - button "Film" [ref=f29e142] + - button "Vitals" [ref=f29e143] + - generic [ref=f29e145]: + - generic [ref=f29e146]: Embryos + - generic [ref=f29e150]: + - generic [ref=f29e151]: 🔬 + - generic [ref=f29e152]: No embryos yet + - generic [ref=f29e153]: Start a timelapse acquisition to begin tracking embryos. Configure your experiment in the Calibration tab. + - button "Go to Calibration" [ref=f29e154] [cursor=pointer] + - generic [ref=f29e155]: + - generic [ref=f29e156]: + - button "▼" [ref=f29e157] [cursor=pointer] + - generic [ref=f29e158]: CALIBRATION + - generic [ref=f29e160]: + - generic [ref=f29e161]: + - heading "Calibration" [level=2] [ref=f29e162] + - generic [ref=f29e163]: + - button "Profile" [ref=f29e164] [cursor=pointer] + - button "Gallery" [ref=f29e165] [cursor=pointer] + - generic [ref=f29e166]: + - generic [ref=f29e167]: + - generic [ref=f29e168]: Embryos + - generic [ref=f29e169]: No calibration images yet + - generic [ref=f29e172]: + - generic [ref=f29e173]: 📷 + - generic [ref=f29e174]: Select an embryo to view calibration images + - generic [ref=f29e175]: + - generic [ref=f29e176]: + - button "▼" [ref=f29e177] [cursor=pointer] + - generic [ref=f29e178]: EXPERIMENT + - generic [ref=f29e181]: + - heading "Operations" [level=2] [ref=f29e182] + - generic [ref=f29e183]: + - button "Overview" [ref=f29e184] [cursor=pointer] + - button "Rules" [ref=f29e185] [cursor=pointer] + - generic [ref=f29e188]: + - button "▼" [ref=f29e189] [cursor=pointer] + - generic [ref=f29e190]: EVENTS + - generic [ref=f29e191]: + - generic [ref=f29e192]: + - button "▼" [ref=f29e193] [cursor=pointer] + - generic [ref=f29e194]: PLANS + - generic [ref=f29e196]: + - generic [ref=f29e198]: + - generic [ref=f29e199]: Campaigns + - text: › + - generic [ref=f29e200]: + - navigation [ref=f29e201] + - main [ref=f29e203]: + - paragraph [ref=f29e206]: Loading campaigns... + - complementary [ref=f29e207]: + - generic [ref=f29e208]: + - button "Close" [ref=f29e209] [cursor=pointer] + - heading [level=2] + - generic [ref=f29e215]: + - button "▼" [ref=f29e216] [cursor=pointer] + - generic [ref=f29e217]: SESSIONS + - generic [ref=f29e219]: + - button "▼" [ref=f29e220] [cursor=pointer] + - generic [ref=f29e221]: NOTEBOOK + - generic [ref=f29e223]: + - button "▼" [ref=f29e224] [cursor=pointer] + - generic [ref=f29e225]: GALLERY + - generic: + - generic [ref=f29e227]: + - button "▼" [ref=f29e228] [cursor=pointer] + - generic [ref=f29e229]: DEVICES + - generic: + - generic [ref=f29e230]: + - generic [ref=f29e231]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f29e232] [cursor=pointer]: + - /url: "#" + - generic [ref=f29e233]: + - button "←" [disabled] [ref=f29e234] + - button "⌂ start" [ref=f29e235] [cursor=pointer] + - button "all" [ref=f29e236] [cursor=pointer] + - button "home" [ref=f29e237] [cursor=pointer] + - button "embryos" [ref=f29e238] [cursor=pointer] + - button "devices" [ref=f29e239] [cursor=pointer] + - button "calibration" [ref=f29e240] [cursor=pointer] + - button "experiment" [ref=f29e241] [cursor=pointer] + - button "events" [ref=f29e242] [cursor=pointer] + - button "plans" [ref=f29e243] [cursor=pointer] + - button "sessions" [ref=f29e244] [cursor=pointer] + - button "notebook" [ref=f29e245] [cursor=pointer] + - button "gallery" [ref=f29e246] [cursor=pointer] + - generic [ref=f29e247]: + - generic [ref=f29e248]: 62% + - generic [ref=f29e249]: + - text: density + - slider "density 4" [ref=f29e250]: "4" + - generic [ref=f29e251]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T11-27-27-635Z.yml b/.playwright-mcp/page-2026-08-24T11-27-27-635Z.yml new file mode 100644 index 00000000..8c7a2855 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T11-27-27-635Z.yml @@ -0,0 +1,190 @@ +- generic [ref=f32e1]: + - generic "Welcome to Gently" [ref=f32e2]: + - button "Toggle theme" [ref=f32e3] [cursor=pointer] + - generic [ref=f32e7]: + - generic [ref=f32e8]: Good afternoon.What are we doing today? + - generic [ref=f32e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f32e12] [cursor=pointer]: + - generic [ref=f32e13]: guided + - heading "Plan an experiment" [level=3] [ref=f32e17] + - paragraph [ref=f32e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f32e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f32e22] [cursor=pointer]: + - generic [ref=f32e23]: standalone + - heading "Take a quick look" [level=3] [ref=f32e28] + - paragraph [ref=f32e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f32e30]: Open the scope + - generic [ref=f32e33]: + - button "or just tell me what you need" [ref=f32e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f32e40] + - button "Send" [ref=f32e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f32e44] [cursor=pointer] + - generic [ref=f32e45]: + - generic [ref=f32e46]: + - link "Gently Microscopy" [ref=f32e47] [cursor=pointer]: + - /url: / + - generic [ref=f32e48]: + - link "2fa715ae" [ref=f32e49] [cursor=pointer]: + - /url: /review?session=2fa715ae + - button "Copy session ID" [ref=f32e50] [cursor=pointer] + - generic [ref=f32e54]: + - generic [ref=f32e55]: R + - button "Open process console" [ref=f32e57] + - link "Dashboard settings" [ref=f32e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f32e65] [cursor=pointer] + - button "Scope offline" [ref=f32e69] [cursor=pointer] + - generic [ref=f32e74]: + - complementary [ref=f32e75]: + - navigation [ref=f32e76]: + - generic [ref=f32e77]: + - generic [ref=f32e78]: Now + - button "Home" [ref=f32e79] [cursor=pointer] + - button "Operations" [ref=f32e80] [cursor=pointer] + - button "Embryos" [ref=f32e81] [cursor=pointer] + - generic [ref=f32e82]: + - generic [ref=f32e83]: Library + - button "Plans" [ref=f32e84] [cursor=pointer] + - button "Sessions" [ref=f32e85] [cursor=pointer] + - button "Notebook" [ref=f32e86] [cursor=pointer] + - button "Gallery" [ref=f32e87] [cursor=pointer] + - generic [ref=f32e88]: + - generic [ref=f32e89]: System + - button "Devices" [ref=f32e90] [cursor=pointer] + - button "Calibration" [ref=f32e91] [cursor=pointer] + - button "Logs" [ref=f32e92] [cursor=pointer] + - button "Talk to Gently" [ref=f32e93] [cursor=pointer] + - generic [ref=f32e95]: + - generic [ref=f32e96]: + - generic [ref=f32e97]: LIVE + - generic [ref=f32e99]: 0 embryos · Online + - contentinfo [ref=f32e100]: + - generic [ref=f32e101]: 0 embryos · 0 images · 8 events + - generic [ref=f32e102]: No active timelapse + - complementary "Agent chat" [ref=f32e103]: + - generic [ref=f32e105]: + - generic [ref=f32e106]: Agent + - generic [ref=f32e108]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f32e109] [cursor=pointer] + - generic [ref=f32e113]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f32e114]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f32e115] + - generic [ref=f32e119]: + - generic: + - generic [ref=f32e121]: + - button "▼" [ref=f32e122] [cursor=pointer] + - generic [ref=f32e123]: HOME + - generic [ref=f32e124]: + - generic [ref=f32e125]: + - button "▼" [ref=f32e126] [cursor=pointer] + - generic [ref=f32e127]: EMBRYOS + - generic [ref=f32e128]: + - generic [ref=f32e129] [cursor=pointer]: default + - generic [ref=f32e130] [cursor=pointer]: board + - generic [ref=f32e131] [cursor=pointer]: filmstrip + - generic [ref=f32e132] [cursor=pointer]: vitals + - generic [ref=f32e136]: + - generic [ref=f32e139] [cursor=pointer]: + - heading "Embryo Monitoring" [level=2] [ref=f32e140] + - generic [ref=f32e141]: No active timelapse + - generic [ref=f32e144]: + - button "Default" [ref=f32e145] + - button "Board" [ref=f32e146] + - button "Film" [ref=f32e147] + - button "Vitals" [ref=f32e148] + - generic [ref=f32e150]: + - generic [ref=f32e151]: Embryos + - generic [ref=f32e155]: + - generic [ref=f32e156]: 🔬 + - generic [ref=f32e157]: No embryos yet + - generic [ref=f32e158]: Start a timelapse acquisition to begin tracking embryos. Configure your experiment in the Calibration tab. + - button "Go to Calibration" [ref=f32e159] [cursor=pointer] + - generic [ref=f32e160]: + - generic [ref=f32e161]: + - button "▼" [ref=f32e162] [cursor=pointer] + - generic [ref=f32e163]: CALIBRATION + - generic [ref=f32e164]: + - generic [ref=f32e165] [cursor=pointer]: profile + - generic [ref=f32e166] [cursor=pointer]: gallery + - generic [ref=f32e168]: + - generic [ref=f32e169]: + - heading "Calibration" [level=2] [ref=f32e170] + - generic [ref=f32e171]: + - button "Profile" [ref=f32e172] [cursor=pointer] + - button "Gallery" [ref=f32e173] [cursor=pointer] + - generic [ref=f32e174]: + - generic [ref=f32e175]: + - generic [ref=f32e176]: Embryos + - generic [ref=f32e177]: No calibration images yet + - generic [ref=f32e180]: + - generic [ref=f32e181]: 📷 + - generic [ref=f32e182]: Select an embryo to view calibration images + - generic [ref=f32e183]: + - generic [ref=f32e184]: + - button "▼" [ref=f32e185] [cursor=pointer] + - generic [ref=f32e186]: EXPERIMENT + - generic [ref=f32e189]: + - heading "Operations" [level=2] [ref=f32e190] + - generic [ref=f32e191]: + - button "Overview" [ref=f32e192] [cursor=pointer] + - button "Rules" [ref=f32e193] [cursor=pointer] + - generic [ref=f32e196]: + - button "▼" [ref=f32e197] [cursor=pointer] + - generic [ref=f32e198]: EVENTS + - generic [ref=f32e199]: + - generic [ref=f32e200]: + - button "▼" [ref=f32e201] [cursor=pointer] + - generic [ref=f32e202]: PLANS + - generic [ref=f32e204]: + - generic [ref=f32e206]: + - generic [ref=f32e207]: Campaigns + - text: › + - generic [ref=f32e208]: + - navigation [ref=f32e209] + - main [ref=f32e211]: + - paragraph [ref=f32e214]: Loading campaigns... + - complementary [ref=f32e215]: + - generic [ref=f32e216]: + - button "Close" [ref=f32e217] [cursor=pointer] + - heading [level=2] + - generic [ref=f32e223]: + - button "▼" [ref=f32e224] [cursor=pointer] + - generic [ref=f32e225]: SESSIONS + - generic [ref=f32e227]: + - button "▼" [ref=f32e228] [cursor=pointer] + - generic [ref=f32e229]: NOTEBOOK + - generic [ref=f32e231]: + - button "▼" [ref=f32e232] [cursor=pointer] + - generic [ref=f32e233]: GALLERY + - generic: + - generic [ref=f32e235]: + - button "▼" [ref=f32e236] [cursor=pointer] + - generic [ref=f32e237]: DEVICES + - generic: + - generic [ref=f32e238]: + - generic [ref=f32e239]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f32e240] [cursor=pointer]: + - /url: "#" + - generic [ref=f32e241]: + - button "←" [disabled] [ref=f32e242] + - button "⌂ start" [ref=f32e243] [cursor=pointer] + - button "all" [ref=f32e244] [cursor=pointer] + - button "home" [ref=f32e245] [cursor=pointer] + - button "embryos" [ref=f32e246] [cursor=pointer] + - button "devices" [ref=f32e247] [cursor=pointer] + - button "calibration" [ref=f32e248] [cursor=pointer] + - button "experiment" [ref=f32e249] [cursor=pointer] + - button "events" [ref=f32e250] [cursor=pointer] + - button "plans" [ref=f32e251] [cursor=pointer] + - button "sessions" [ref=f32e252] [cursor=pointer] + - button "notebook" [ref=f32e253] [cursor=pointer] + - button "gallery" [ref=f32e254] [cursor=pointer] + - generic [ref=f32e255]: + - generic [ref=f32e256]: 58% + - generic [ref=f32e257]: + - text: density + - slider "density 4" [ref=f32e258]: "4" + - generic [ref=f32e259]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T11-28-39-557Z.yml b/.playwright-mcp/page-2026-08-24T11-28-39-557Z.yml new file mode 100644 index 00000000..3d1f1418 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T11-28-39-557Z.yml @@ -0,0 +1,185 @@ +- generic [active] [ref=f35e1]: + - generic "Welcome to Gently" [ref=f35e2]: + - button "Toggle theme" [ref=f35e3] [cursor=pointer] + - generic [ref=f35e7]: + - generic [ref=f35e8]: Good afternoon.What are we doing today? + - generic [ref=f35e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f35e12] [cursor=pointer]: + - generic [ref=f35e13]: guided + - heading "Plan an experiment" [level=3] [ref=f35e17] + - paragraph [ref=f35e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f35e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f35e22] [cursor=pointer]: + - generic [ref=f35e23]: standalone + - heading "Take a quick look" [level=3] [ref=f35e28] + - paragraph [ref=f35e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f35e30]: Open the scope + - generic [ref=f35e33]: + - button "or just tell me what you need" [ref=f35e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f35e40] + - button "Send" [ref=f35e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f35e44] [cursor=pointer] + - generic [ref=f35e45]: + - generic [ref=f35e46]: + - link "Gently Microscopy" [ref=f35e47] [cursor=pointer]: + - /url: / + - generic [ref=f35e48]: + - link "2fa715ae" [ref=f35e49] [cursor=pointer]: + - /url: /review?session=2fa715ae + - button "Copy session ID" [ref=f35e50] [cursor=pointer] + - generic [ref=f35e54]: + - generic [ref=f35e55]: + - generic [ref=f35e56] [cursor=pointer]: R + - generic [ref=f35e57]: R + - button "Open process console" [ref=f35e58] + - link "Dashboard settings" [ref=f35e62] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f35e66] [cursor=pointer] + - button "Scope offline" [ref=f35e70] [cursor=pointer] + - generic [ref=f35e75]: + - complementary [ref=f35e76]: + - navigation [ref=f35e77]: + - generic [ref=f35e78]: + - generic [ref=f35e79]: Now + - button "Home" [ref=f35e80] [cursor=pointer] + - button "Operations" [ref=f35e81] [cursor=pointer] + - button "Embryos" [ref=f35e82] [cursor=pointer] + - generic [ref=f35e83]: + - generic [ref=f35e84]: Library + - button "Plans" [ref=f35e85] [cursor=pointer] + - button "Sessions" [ref=f35e86] [cursor=pointer] + - button "Notebook" [ref=f35e87] [cursor=pointer] + - button "Gallery" [ref=f35e88] [cursor=pointer] + - generic [ref=f35e89]: + - generic [ref=f35e90]: System + - button "Devices" [ref=f35e91] [cursor=pointer] + - button "Calibration" [ref=f35e92] [cursor=pointer] + - button "Logs" [ref=f35e93] [cursor=pointer] + - button "Talk to Gently" [ref=f35e94] [cursor=pointer] + - generic [ref=f35e96]: + - generic [ref=f35e97]: + - generic [ref=f35e98]: LIVE + - generic [ref=f35e100]: 0 embryos · Online + - contentinfo [ref=f35e101]: + - generic [ref=f35e102]: 0 embryos · 0 images · 8 events + - generic [ref=f35e103]: No active timelapse + - complementary "Agent chat" [ref=f35e104]: + - generic [ref=f35e106]: + - generic [ref=f35e107]: Agent + - generic [ref=f35e109]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f35e110] [cursor=pointer] + - generic [ref=f35e113]: + - generic [ref=f35e114]: Control held by Anonymous + - button "Take control" [ref=f35e115] [cursor=pointer] + - generic [ref=f35e117]: + - textbox "Viewing only — take control to drive…" [disabled] [ref=f35e118] + - button "Send message" [disabled] [ref=f35e119] + - generic [ref=f35e123]: + - generic: + - generic [ref=f35e125]: + - button "▼" [ref=f35e126] [cursor=pointer] + - generic [ref=f35e127]: HOME + - generic [ref=f35e128]: + - generic [ref=f35e129]: + - button "▼" [ref=f35e130] [cursor=pointer] + - generic [ref=f35e131]: EMBRYOS + - generic [ref=f35e132]: + - generic [ref=f35e133] [cursor=pointer]: default + - generic [ref=f35e134] [cursor=pointer]: board + - generic [ref=f35e135] [cursor=pointer]: filmstrip + - generic [ref=f35e136] [cursor=pointer]: vitals + - generic [ref=f35e140]: + - generic [ref=f35e143] [cursor=pointer]: + - heading "Embryo Monitoring" [level=2] [ref=f35e144] + - generic [ref=f35e145]: No active timelapse + - generic [ref=f35e149]: + - generic [ref=f35e150]: Embryos + - generic [ref=f35e154]: + - generic [ref=f35e155]: 🔬 + - generic [ref=f35e156]: No embryos yet + - generic [ref=f35e157]: Start a timelapse acquisition to begin tracking embryos. Configure your experiment in the Calibration tab. + - button "Go to Calibration" [ref=f35e158] [cursor=pointer] + - generic [ref=f35e159]: + - generic [ref=f35e160]: + - button "▼" [ref=f35e161] [cursor=pointer] + - generic [ref=f35e162]: CALIBRATION + - generic [ref=f35e163]: + - generic [ref=f35e164] [cursor=pointer]: profile + - generic [ref=f35e165] [cursor=pointer]: gallery + - generic [ref=f35e167]: + - heading "Calibration" [level=2] [ref=f35e169] + - generic [ref=f35e170]: + - generic [ref=f35e171]: + - generic [ref=f35e172]: Embryos + - generic [ref=f35e173]: No calibration images yet + - generic [ref=f35e176]: + - generic [ref=f35e177]: 📷 + - generic [ref=f35e178]: Select an embryo to view calibration images + - generic [ref=f35e179]: + - generic [ref=f35e180]: + - button "▼" [ref=f35e181] [cursor=pointer] + - generic [ref=f35e182]: EXPERIMENT + - generic [ref=f35e185]: + - heading "Operations" [level=2] [ref=f35e186] + - generic [ref=f35e187]: + - button "Overview" [ref=f35e188] [cursor=pointer] + - button "Rules" [ref=f35e189] [cursor=pointer] + - generic [ref=f35e192]: + - button "▼" [ref=f35e193] [cursor=pointer] + - generic [ref=f35e194]: EVENTS + - generic [ref=f35e195]: + - generic [ref=f35e196]: + - button "▼" [ref=f35e197] [cursor=pointer] + - generic [ref=f35e198]: PLANS + - generic [ref=f35e200]: + - generic [ref=f35e202]: + - generic [ref=f35e203]: Campaigns + - text: › + - generic [ref=f35e204]: + - navigation [ref=f35e205] + - main [ref=f35e207]: + - paragraph [ref=f35e210]: Loading campaigns... + - complementary [ref=f35e211]: + - generic [ref=f35e212]: + - button "Close" [ref=f35e213] [cursor=pointer] + - heading [level=2] + - generic [ref=f35e219]: + - button "▼" [ref=f35e220] [cursor=pointer] + - generic [ref=f35e221]: SESSIONS + - generic [ref=f35e223]: + - button "▼" [ref=f35e224] [cursor=pointer] + - generic [ref=f35e225]: NOTEBOOK + - generic [ref=f35e227]: + - button "▼" [ref=f35e228] [cursor=pointer] + - generic [ref=f35e229]: GALLERY + - generic: + - generic [ref=f35e231]: + - button "▼" [ref=f35e232] [cursor=pointer] + - generic [ref=f35e233]: DEVICES + - generic: + - generic [ref=f35e234]: + - generic [ref=f35e235]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f35e236] [cursor=pointer]: + - /url: "#" + - generic [ref=f35e237]: + - button "←" [disabled] [ref=f35e238] + - button "⌂ start" [ref=f35e239] [cursor=pointer] + - button "all" [ref=f35e240] [cursor=pointer] + - button "home" [ref=f35e241] [cursor=pointer] + - button "embryos" [ref=f35e242] [cursor=pointer] + - button "devices" [ref=f35e243] [cursor=pointer] + - button "calibration" [ref=f35e244] [cursor=pointer] + - button "experiment" [ref=f35e245] [cursor=pointer] + - button "events" [ref=f35e246] [cursor=pointer] + - button "plans" [ref=f35e247] [cursor=pointer] + - button "sessions" [ref=f35e248] [cursor=pointer] + - button "notebook" [ref=f35e249] [cursor=pointer] + - button "gallery" [ref=f35e250] [cursor=pointer] + - generic [ref=f35e251]: + - generic [ref=f35e252]: 58% + - generic [ref=f35e253]: + - text: density + - slider "density 4" [ref=f35e254]: "4" + - generic [ref=f35e255]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T11-31-58-359Z.yml b/.playwright-mcp/page-2026-08-24T11-31-58-359Z.yml new file mode 100644 index 00000000..3ff1bcde --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T11-31-58-359Z.yml @@ -0,0 +1,187 @@ +- generic [ref=f38e1]: + - generic "Welcome to Gently" [ref=f38e2]: + - button "Toggle theme" [ref=f38e3] [cursor=pointer] + - generic [ref=f38e7]: + - generic [ref=f38e8]: Good afternoon.What are we doing today? + - generic [ref=f38e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f38e12] [cursor=pointer]: + - generic [ref=f38e13]: guided + - heading "Plan an experiment" [level=3] [ref=f38e17] + - paragraph [ref=f38e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f38e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f38e22] [cursor=pointer]: + - generic [ref=f38e23]: standalone + - heading "Take a quick look" [level=3] [ref=f38e28] + - paragraph [ref=f38e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f38e30]: Open the scope + - generic [ref=f38e33]: + - button "or just tell me what you need" [ref=f38e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f38e40] + - button "Send" [ref=f38e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f38e44] [cursor=pointer] + - generic [ref=f38e45]: + - generic [ref=f38e46]: + - link "Gently Microscopy" [ref=f38e47] [cursor=pointer]: + - /url: / + - generic [ref=f38e48]: + - link "2fa715ae" [ref=f38e49] [cursor=pointer]: + - /url: /review?session=2fa715ae + - button "Copy session ID" [ref=f38e50] [cursor=pointer] + - generic [ref=f38e54]: + - generic [ref=f38e55]: R + - button "Open process console" [ref=f38e57] + - link "Dashboard settings" [ref=f38e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f38e65] [cursor=pointer] + - button "Scope offline" [ref=f38e69] [cursor=pointer] + - generic [ref=f38e74]: + - complementary [ref=f38e75]: + - navigation [ref=f38e76]: + - generic [ref=f38e77]: + - generic [ref=f38e78]: Now + - button "Home" [ref=f38e79] [cursor=pointer] + - button "Operations" [ref=f38e80] [cursor=pointer] + - button "Embryos" [ref=f38e81] [cursor=pointer] + - generic [ref=f38e82]: + - generic [ref=f38e83]: Library + - button "Plans" [ref=f38e84] [cursor=pointer] + - button "Sessions" [ref=f38e85] [cursor=pointer] + - button "Notebook" [ref=f38e86] [cursor=pointer] + - button "Gallery" [ref=f38e87] [cursor=pointer] + - generic [ref=f38e88]: + - generic [ref=f38e89]: System + - button "Devices" [ref=f38e90] [cursor=pointer] + - button "Calibration" [ref=f38e91] [cursor=pointer] + - button "Logs" [ref=f38e92] [cursor=pointer] + - button "Talk to Gently" [ref=f38e93] [cursor=pointer] + - generic [ref=f38e95]: + - generic [ref=f38e96]: + - generic [ref=f38e97]: LIVE + - generic [ref=f38e99]: 0 embryos · Online + - contentinfo [ref=f38e100]: + - generic [ref=f38e101]: 0 embryos · 0 images · 8 events + - generic [ref=f38e102]: No active timelapse + - complementary "Agent chat" [ref=f38e103]: + - generic [ref=f38e105]: + - generic [ref=f38e106]: Agent + - generic [ref=f38e108]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f38e109] [cursor=pointer] + - generic [ref=f38e113]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f38e114]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f38e115] + - generic [ref=f38e119]: + - generic: + - generic [ref=f38e121]: + - button "▼" [ref=f38e122] [cursor=pointer] + - generic [ref=f38e123]: HOME + - generic [ref=f38e124]: + - generic [ref=f38e125]: + - button "▼" [ref=f38e126] [cursor=pointer] + - generic [ref=f38e127]: EMBRYOS + - generic [ref=f38e128]: + - generic [ref=f38e129] [cursor=pointer]: default + - generic [ref=f38e130] [cursor=pointer]: board + - generic [ref=f38e131] [cursor=pointer]: filmstrip + - generic [ref=f38e132] [cursor=pointer]: vitals + - generic [ref=f38e136]: + - generic [ref=f38e139] [cursor=pointer]: + - heading "Embryo Monitoring" [level=2] [ref=f38e140] + - generic [ref=f38e141]: No active timelapse + - generic [ref=f38e145]: + - generic [ref=f38e146]: Embryos + - generic [ref=f38e150]: + - generic [ref=f38e151]: 🔬 + - generic [ref=f38e152]: No embryos yet + - generic [ref=f38e153]: Start a timelapse acquisition to begin tracking embryos. Configure your experiment in the Calibration tab. + - button "Go to Calibration" [ref=f38e154] [cursor=pointer] + - generic [ref=f38e155]: + - generic [ref=f38e156]: + - button "▼" [ref=f38e157] [cursor=pointer] + - generic [ref=f38e158]: CALIBRATION + - generic [ref=f38e159]: + - generic [ref=f38e160] [cursor=pointer]: profile + - generic [ref=f38e161] [cursor=pointer]: gallery + - generic [ref=f38e163]: + - heading "Calibration" [level=2] [ref=f38e165] + - generic [ref=f38e166]: + - generic [ref=f38e167]: + - generic [ref=f38e168]: Embryos + - generic [ref=f38e169]: No calibration images yet + - generic [ref=f38e172]: + - generic [ref=f38e173]: 📷 + - generic [ref=f38e174]: Select an embryo to view calibration images + - generic [ref=f38e175]: + - generic [ref=f38e176]: + - button "▼" [ref=f38e177] [cursor=pointer] + - generic [ref=f38e178]: EXPERIMENT + - generic [ref=f38e179]: + - generic [ref=f38e180] [cursor=pointer]: overview + - generic [ref=f38e181] [cursor=pointer]: rules + - heading "Operations" [level=2] [ref=f38e185] + - generic [ref=f38e188]: + - button "▼" [ref=f38e189] [cursor=pointer] + - generic [ref=f38e190]: EVENTS + - generic [ref=f38e191]: + - generic [ref=f38e192]: + - button "▼" [ref=f38e193] [cursor=pointer] + - generic [ref=f38e194]: PLANS + - generic [ref=f38e195]: + - generic [ref=f38e196] [cursor=pointer]: document + - generic [ref=f38e197] [cursor=pointer]: graph + - generic [ref=f38e198] [cursor=pointer]: board + - generic [ref=f38e199] [cursor=pointer]: decisions + - generic [ref=f38e200] [cursor=pointer]: matrix + - generic [ref=f38e201] [cursor=pointer]: timeline + - generic [ref=f38e203]: + - generic [ref=f38e205]: + - generic [ref=f38e206]: Campaigns + - text: › + - generic [ref=f38e207]: + - navigation [ref=f38e208] + - main [ref=f38e210]: + - paragraph [ref=f38e213]: Loading campaigns... + - complementary [ref=f38e214]: + - generic [ref=f38e215]: + - button "Close" [ref=f38e216] [cursor=pointer] + - heading [level=2] + - generic [ref=f38e222]: + - button "▼" [ref=f38e223] [cursor=pointer] + - generic [ref=f38e224]: SESSIONS + - generic [ref=f38e226]: + - button "▼" [ref=f38e227] [cursor=pointer] + - generic [ref=f38e228]: NOTEBOOK + - generic [ref=f38e230]: + - button "▼" [ref=f38e231] [cursor=pointer] + - generic [ref=f38e232]: GALLERY + - generic: + - generic [ref=f38e234]: + - button "▼" [ref=f38e235] [cursor=pointer] + - generic [ref=f38e236]: DEVICES + - generic: + - generic [ref=f38e237]: + - generic [ref=f38e238]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f38e239] [cursor=pointer]: + - /url: "#" + - generic [ref=f38e240]: + - button "←" [disabled] [ref=f38e241] + - button "⌂ start" [ref=f38e242] [cursor=pointer] + - button "all" [ref=f38e243] [cursor=pointer] + - button "home" [ref=f38e244] [cursor=pointer] + - button "embryos" [ref=f38e245] [cursor=pointer] + - button "devices" [ref=f38e246] [cursor=pointer] + - button "calibration" [ref=f38e247] [cursor=pointer] + - button "experiment" [ref=f38e248] [cursor=pointer] + - button "events" [ref=f38e249] [cursor=pointer] + - button "plans" [ref=f38e250] [cursor=pointer] + - button "sessions" [ref=f38e251] [cursor=pointer] + - button "notebook" [ref=f38e252] [cursor=pointer] + - button "gallery" [ref=f38e253] [cursor=pointer] + - generic [ref=f38e254]: + - generic [ref=f38e255]: 58% + - generic [ref=f38e256]: + - text: density + - slider "density 4" [ref=f38e257]: "4" + - generic [ref=f38e258]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T11-33-19-293Z.yml b/.playwright-mcp/page-2026-08-24T11-33-19-293Z.yml new file mode 100644 index 00000000..8c9aae33 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T11-33-19-293Z.yml @@ -0,0 +1,187 @@ +- generic [ref=f41e1]: + - generic "Welcome to Gently" [ref=f41e2]: + - button "Toggle theme" [ref=f41e3] [cursor=pointer] + - generic [ref=f41e7]: + - generic [ref=f41e8]: Good afternoon.What are we doing today? + - generic [ref=f41e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f41e12] [cursor=pointer]: + - generic [ref=f41e13]: guided + - heading "Plan an experiment" [level=3] [ref=f41e17] + - paragraph [ref=f41e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f41e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f41e22] [cursor=pointer]: + - generic [ref=f41e23]: standalone + - heading "Take a quick look" [level=3] [ref=f41e28] + - paragraph [ref=f41e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f41e30]: Open the scope + - generic [ref=f41e33]: + - button "or just tell me what you need" [ref=f41e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f41e40] + - button "Send" [ref=f41e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f41e44] [cursor=pointer] + - generic [ref=f41e45]: + - generic [ref=f41e46]: + - link "Gently Microscopy" [ref=f41e47] [cursor=pointer]: + - /url: / + - generic [ref=f41e48]: + - link "2fa715ae" [ref=f41e49] [cursor=pointer]: + - /url: /review?session=2fa715ae + - button "Copy session ID" [ref=f41e50] [cursor=pointer] + - generic [ref=f41e54]: + - generic [ref=f41e55]: R + - button "Open process console" [ref=f41e57] + - link "Dashboard settings" [ref=f41e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f41e65] [cursor=pointer] + - button "Scope offline" [ref=f41e69] [cursor=pointer] + - generic [ref=f41e74]: + - complementary [ref=f41e75]: + - navigation [ref=f41e76]: + - generic [ref=f41e77]: + - generic [ref=f41e78]: Now + - button "Home" [ref=f41e79] [cursor=pointer] + - button "Operations" [ref=f41e80] [cursor=pointer] + - button "Embryos" [ref=f41e81] [cursor=pointer] + - generic [ref=f41e82]: + - generic [ref=f41e83]: Library + - button "Plans" [ref=f41e84] [cursor=pointer] + - button "Sessions" [ref=f41e85] [cursor=pointer] + - button "Notebook" [ref=f41e86] [cursor=pointer] + - button "Gallery" [ref=f41e87] [cursor=pointer] + - generic [ref=f41e88]: + - generic [ref=f41e89]: System + - button "Devices" [ref=f41e90] [cursor=pointer] + - button "Calibration" [ref=f41e91] [cursor=pointer] + - button "Logs" [ref=f41e92] [cursor=pointer] + - button "Talk to Gently" [ref=f41e93] [cursor=pointer] + - generic [ref=f41e95]: + - generic [ref=f41e96]: + - generic [ref=f41e97]: LIVE + - generic [ref=f41e99]: 0 embryos · Online + - contentinfo [ref=f41e100]: + - generic [ref=f41e101]: 0 embryos · 0 images · 8 events + - generic [ref=f41e102]: No active timelapse + - complementary "Agent chat" [ref=f41e103]: + - generic [ref=f41e105]: + - generic [ref=f41e106]: Agent + - generic [ref=f41e108]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f41e109] [cursor=pointer] + - generic [ref=f41e113]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f41e114]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f41e115] + - generic [ref=f41e119]: + - generic: + - generic [ref=f41e121]: + - button "▼" [ref=f41e122] [cursor=pointer] + - generic [ref=f41e123]: HOME + - generic [ref=f41e124]: + - generic [ref=f41e125]: + - button "▼" [ref=f41e126] [cursor=pointer] + - generic [ref=f41e127]: EMBRYOS + - generic [ref=f41e128]: + - generic [ref=f41e129] [cursor=pointer]: default + - generic [ref=f41e130] [cursor=pointer]: board + - generic [ref=f41e131] [cursor=pointer]: filmstrip + - generic [ref=f41e132] [cursor=pointer]: vitals + - generic [ref=f41e136]: + - generic [ref=f41e139] [cursor=pointer]: + - heading "Embryo Monitoring" [level=2] [ref=f41e140] + - generic [ref=f41e141]: No active timelapse + - generic [ref=f41e145]: + - generic [ref=f41e146]: Embryos + - generic [ref=f41e150]: + - generic [ref=f41e151]: 🔬 + - generic [ref=f41e152]: No embryos yet + - generic [ref=f41e153]: Start a timelapse acquisition to begin tracking embryos. Configure your experiment in the Calibration tab. + - button "Go to Calibration" [ref=f41e154] [cursor=pointer] + - generic [ref=f41e155]: + - generic [ref=f41e156]: + - button "▼" [ref=f41e157] [cursor=pointer] + - generic [ref=f41e158]: CALIBRATION + - generic [ref=f41e159]: + - generic [ref=f41e160] [cursor=pointer]: profile + - generic [ref=f41e161] [cursor=pointer]: gallery + - generic [ref=f41e163]: + - heading "Calibration" [level=2] [ref=f41e165] + - generic [ref=f41e166]: + - generic [ref=f41e167]: + - generic [ref=f41e168]: Embryos + - generic [ref=f41e169]: No calibration images yet + - generic [ref=f41e172]: + - generic [ref=f41e173]: 📷 + - generic [ref=f41e174]: Select an embryo to view calibration images + - generic [ref=f41e175]: + - generic [ref=f41e176]: + - button "▼" [ref=f41e177] [cursor=pointer] + - generic [ref=f41e178]: EXPERIMENT + - generic [ref=f41e179]: + - generic [ref=f41e180] [cursor=pointer]: overview + - generic [ref=f41e181] [cursor=pointer]: rules + - heading "Operations" [level=2] [ref=f41e185] + - generic [ref=f41e188]: + - button "▼" [ref=f41e189] [cursor=pointer] + - generic [ref=f41e190]: EVENTS + - generic [ref=f41e191]: + - generic [ref=f41e192]: + - button "▼" [ref=f41e193] [cursor=pointer] + - generic [ref=f41e194]: PLANS + - generic [ref=f41e195]: + - generic [ref=f41e196] [cursor=pointer]: document + - generic [ref=f41e197] [cursor=pointer]: graph + - generic [ref=f41e198] [cursor=pointer]: board + - generic [ref=f41e199] [cursor=pointer]: decisions + - generic [ref=f41e200] [cursor=pointer]: matrix + - generic [ref=f41e201] [cursor=pointer]: timeline + - generic [ref=f41e203]: + - generic [ref=f41e205]: + - generic [ref=f41e206]: Campaigns + - text: › + - generic [ref=f41e207]: + - navigation [ref=f41e208] + - main [ref=f41e210]: + - paragraph [ref=f41e213]: Loading campaigns... + - complementary [ref=f41e214]: + - generic [ref=f41e215]: + - button "Close" [ref=f41e216] [cursor=pointer] + - heading [level=2] + - generic [ref=f41e222]: + - button "▼" [ref=f41e223] [cursor=pointer] + - generic [ref=f41e224]: SESSIONS + - generic [ref=f41e226]: + - button "▼" [ref=f41e227] [cursor=pointer] + - generic [ref=f41e228]: NOTEBOOK + - generic [ref=f41e230]: + - button "▼" [ref=f41e231] [cursor=pointer] + - generic [ref=f41e232]: GALLERY + - generic: + - generic [ref=f41e234]: + - button "▼" [ref=f41e235] [cursor=pointer] + - generic [ref=f41e236]: DEVICES + - generic: + - generic [ref=f41e237]: + - generic [ref=f41e238]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f41e239] [cursor=pointer]: + - /url: "#" + - generic [ref=f41e240]: + - button "←" [disabled] [ref=f41e241] + - button "⌂ start" [ref=f41e242] [cursor=pointer] + - button "all" [ref=f41e243] [cursor=pointer] + - button "home" [ref=f41e244] [cursor=pointer] + - button "embryos" [ref=f41e245] [cursor=pointer] + - button "devices" [ref=f41e246] [cursor=pointer] + - button "calibration" [ref=f41e247] [cursor=pointer] + - button "experiment" [ref=f41e248] [cursor=pointer] + - button "events" [ref=f41e249] [cursor=pointer] + - button "plans" [ref=f41e250] [cursor=pointer] + - button "sessions" [ref=f41e251] [cursor=pointer] + - button "notebook" [ref=f41e252] [cursor=pointer] + - button "gallery" [ref=f41e253] [cursor=pointer] + - generic [ref=f41e254]: + - generic [ref=f41e255]: 58% + - generic [ref=f41e256]: + - text: density + - slider "density 4" [ref=f41e257]: "4" + - generic [ref=f41e258]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T12-08-23-205Z.yml b/.playwright-mcp/page-2026-08-24T12-08-23-205Z.yml new file mode 100644 index 00000000..ee476335 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T12-08-23-205Z.yml @@ -0,0 +1,187 @@ +- generic [ref=f44e1]: + - generic "Welcome to Gently" [ref=f44e2]: + - button "Toggle theme" [ref=f44e3] [cursor=pointer] + - generic [ref=f44e7]: + - generic [ref=f44e8]: Good afternoon.What are we doing today? + - generic [ref=f44e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f44e12] [cursor=pointer]: + - generic [ref=f44e13]: guided + - heading "Plan an experiment" [level=3] [ref=f44e17] + - paragraph [ref=f44e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f44e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f44e22] [cursor=pointer]: + - generic [ref=f44e23]: standalone + - heading "Take a quick look" [level=3] [ref=f44e28] + - paragraph [ref=f44e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f44e30]: Open the scope + - generic [ref=f44e33]: + - button "or just tell me what you need" [ref=f44e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f44e40] + - button "Send" [ref=f44e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f44e44] [cursor=pointer] + - generic [ref=f44e45]: + - generic [ref=f44e46]: + - link "Gently Microscopy" [ref=f44e47] [cursor=pointer]: + - /url: / + - generic [ref=f44e48]: + - link "2fa715ae" [ref=f44e49] [cursor=pointer]: + - /url: /review?session=2fa715ae + - button "Copy session ID" [ref=f44e50] [cursor=pointer] + - generic [ref=f44e54]: + - generic [ref=f44e55]: R + - button "Open process console" [ref=f44e57] + - link "Dashboard settings" [ref=f44e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f44e65] [cursor=pointer] + - button "Scope offline" [ref=f44e69] [cursor=pointer] + - generic [ref=f44e74]: + - complementary [ref=f44e75]: + - navigation [ref=f44e76]: + - generic [ref=f44e77]: + - generic [ref=f44e78]: Now + - button "Home" [ref=f44e79] [cursor=pointer] + - button "Operations" [ref=f44e80] [cursor=pointer] + - button "Embryos" [ref=f44e81] [cursor=pointer] + - generic [ref=f44e82]: + - generic [ref=f44e83]: Library + - button "Plans" [ref=f44e84] [cursor=pointer] + - button "Sessions" [ref=f44e85] [cursor=pointer] + - button "Notebook" [ref=f44e86] [cursor=pointer] + - button "Gallery" [ref=f44e87] [cursor=pointer] + - generic [ref=f44e88]: + - generic [ref=f44e89]: System + - button "Devices" [ref=f44e90] [cursor=pointer] + - button "Calibration" [ref=f44e91] [cursor=pointer] + - button "Logs" [ref=f44e92] [cursor=pointer] + - button "Talk to Gently" [ref=f44e93] [cursor=pointer] + - generic [ref=f44e95]: + - generic [ref=f44e96]: + - generic [ref=f44e97]: LIVE + - generic [ref=f44e99]: 0 embryos · Online + - contentinfo [ref=f44e100]: + - generic [ref=f44e101]: 0 embryos · 0 images · 8 events + - generic [ref=f44e102]: No active timelapse + - complementary "Agent chat" [ref=f44e103]: + - generic [ref=f44e105]: + - generic [ref=f44e106]: Agent + - generic [ref=f44e108]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f44e109] [cursor=pointer] + - generic [ref=f44e113]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f44e114]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f44e115] + - generic [ref=f44e119]: + - generic: + - generic [ref=f44e121]: + - button "▼" [ref=f44e122] [cursor=pointer] + - generic [ref=f44e123]: HOME + - generic [ref=f44e124]: + - generic [ref=f44e125]: + - button "▼" [ref=f44e126] [cursor=pointer] + - generic [ref=f44e127]: EMBRYOS + - generic [ref=f44e128]: + - generic [ref=f44e129] [cursor=pointer]: default + - generic [ref=f44e130] [cursor=pointer]: board + - generic [ref=f44e131] [cursor=pointer]: filmstrip + - generic [ref=f44e132] [cursor=pointer]: vitals + - generic [ref=f44e136]: + - generic [ref=f44e139] [cursor=pointer]: + - heading "Embryo Monitoring" [level=2] [ref=f44e140] + - generic [ref=f44e141]: No active timelapse + - generic [ref=f44e145]: + - generic [ref=f44e146]: Embryos + - generic [ref=f44e150]: + - generic [ref=f44e151]: 🔬 + - generic [ref=f44e152]: No embryos yet + - generic [ref=f44e153]: Start a timelapse acquisition to begin tracking embryos. Configure your experiment in the Calibration tab. + - button "Go to Calibration" [ref=f44e154] [cursor=pointer] + - generic [ref=f44e155]: + - generic [ref=f44e156]: + - button "▼" [ref=f44e157] [cursor=pointer] + - generic [ref=f44e158]: CALIBRATION + - generic [ref=f44e159]: + - generic [ref=f44e160] [cursor=pointer]: profile + - generic [ref=f44e161] [cursor=pointer]: gallery + - generic [ref=f44e163]: + - heading "Calibration" [level=2] [ref=f44e165] + - generic [ref=f44e166]: + - generic [ref=f44e167]: + - generic [ref=f44e168]: Embryos + - generic [ref=f44e169]: No calibration images yet + - generic [ref=f44e172]: + - generic [ref=f44e173]: 📷 + - generic [ref=f44e174]: Select an embryo to view calibration images + - generic [ref=f44e175]: + - generic [ref=f44e176]: + - button "▼" [ref=f44e177] [cursor=pointer] + - generic [ref=f44e178]: EXPERIMENT + - generic [ref=f44e179]: + - generic [ref=f44e180] [cursor=pointer]: overview + - generic [ref=f44e181] [cursor=pointer]: rules + - heading "Operations" [level=2] [ref=f44e185] + - generic [ref=f44e188]: + - button "▼" [ref=f44e189] [cursor=pointer] + - generic [ref=f44e190]: EVENTS + - generic [ref=f44e191]: + - generic [ref=f44e192]: + - button "▼" [ref=f44e193] [cursor=pointer] + - generic [ref=f44e194]: PLANS + - generic [ref=f44e195]: + - generic [ref=f44e196] [cursor=pointer]: document + - generic [ref=f44e197] [cursor=pointer]: graph + - generic [ref=f44e198] [cursor=pointer]: board + - generic [ref=f44e199] [cursor=pointer]: decisions + - generic [ref=f44e200] [cursor=pointer]: matrix + - generic [ref=f44e201] [cursor=pointer]: timeline + - generic [ref=f44e203]: + - generic [ref=f44e205]: + - generic [ref=f44e206]: Campaigns + - text: › + - generic [ref=f44e207]: + - navigation [ref=f44e208] + - main [ref=f44e210]: + - paragraph [ref=f44e213]: Loading campaigns... + - complementary [ref=f44e214]: + - generic [ref=f44e215]: + - button "Close" [ref=f44e216] [cursor=pointer] + - heading [level=2] + - generic [ref=f44e222]: + - button "▼" [ref=f44e223] [cursor=pointer] + - generic [ref=f44e224]: SESSIONS + - generic [ref=f44e226]: + - button "▼" [ref=f44e227] [cursor=pointer] + - generic [ref=f44e228]: NOTEBOOK + - generic [ref=f44e230]: + - button "▼" [ref=f44e231] [cursor=pointer] + - generic [ref=f44e232]: GALLERY + - generic: + - generic [ref=f44e234]: + - button "▼" [ref=f44e235] [cursor=pointer] + - generic [ref=f44e236]: DEVICES + - generic: + - generic [ref=f44e237]: + - generic [ref=f44e238]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f44e239] [cursor=pointer]: + - /url: "#" + - generic [ref=f44e240]: + - button "←" [disabled] [ref=f44e241] + - button "⌂ start" [ref=f44e242] [cursor=pointer] + - button "all" [ref=f44e243] [cursor=pointer] + - button "home" [ref=f44e244] [cursor=pointer] + - button "embryos" [ref=f44e245] [cursor=pointer] + - button "devices" [ref=f44e246] [cursor=pointer] + - button "calibration" [ref=f44e247] [cursor=pointer] + - button "experiment" [ref=f44e248] [cursor=pointer] + - button "events" [ref=f44e249] [cursor=pointer] + - button "plans" [ref=f44e250] [cursor=pointer] + - button "sessions" [ref=f44e251] [cursor=pointer] + - button "notebook" [ref=f44e252] [cursor=pointer] + - button "gallery" [ref=f44e253] [cursor=pointer] + - generic [ref=f44e254]: + - generic [ref=f44e255]: 58% + - generic [ref=f44e256]: + - text: density + - slider "density 4" [ref=f44e257]: "4" + - generic [ref=f44e258]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T14-37-52-312Z.yml b/.playwright-mcp/page-2026-08-24T14-37-52-312Z.yml new file mode 100644 index 00000000..ed8da2fe --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T14-37-52-312Z.yml @@ -0,0 +1,15 @@ +- generic [ref=e2]: + - generic [ref=e3]: Gently + - paragraph [ref=e6]: What are we doing today? + - switch "Microscope" [ref=e7] [cursor=pointer]: + - generic [ref=e12]: + - generic [ref=e13]: Microscope + - generic [ref=e14]: Not this session — saved data only. + - switch "Assistant" [checked] [ref=e16] [cursor=pointer]: + - generic [ref=e20]: + - generic [ref=e21]: Assistant + - generic [ref=e22]: Help find embryos and watch the timelapse. + - button "Open →" [ref=e24] [cursor=pointer]: + - text: Open + - generic [ref=e25]: → + - generic [ref=e27]: Remembers your last choice \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T14-39-38-192Z.yml b/.playwright-mcp/page-2026-08-24T14-39-38-192Z.yml new file mode 100644 index 00000000..e62663b2 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T14-39-38-192Z.yml @@ -0,0 +1,15 @@ +- generic [ref=f3e2]: + - generic [ref=f3e3]: Gently + - paragraph [ref=f3e6]: What are we doing today? + - switch "Microscope" [ref=f3e7] [cursor=pointer]: + - generic [ref=f3e12]: + - generic [ref=f3e13]: Microscope + - generic [ref=f3e14]: Not this session — saved data only. + - switch "Assistant" [checked] [ref=f3e16] [cursor=pointer]: + - generic [ref=f3e20]: + - generic [ref=f3e21]: Assistant + - generic [ref=f3e22]: Help find embryos and watch the timelapse. + - button "Open →" [ref=f3e24] [cursor=pointer]: + - text: Open + - generic [ref=f3e25]: → + - generic [ref=f3e27]: Remembers your last choice \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T14-39-58-197Z.yml b/.playwright-mcp/page-2026-08-24T14-39-58-197Z.yml new file mode 100644 index 00000000..31a56db9 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T14-39-58-197Z.yml @@ -0,0 +1,187 @@ +- generic [ref=f6e1]: + - generic "Welcome to Gently" [ref=f6e2]: + - button "Toggle theme" [ref=f6e3] [cursor=pointer] + - generic [ref=f6e7]: + - generic [ref=f6e8]: Good evening.What are we doing today? + - generic [ref=f6e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f6e12] [cursor=pointer]: + - generic [ref=f6e13]: guided + - heading "Plan an experiment" [level=3] [ref=f6e17] + - paragraph [ref=f6e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f6e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f6e22] [cursor=pointer]: + - generic [ref=f6e23]: standalone + - heading "Take a quick look" [level=3] [ref=f6e28] + - paragraph [ref=f6e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f6e30]: Open the scope + - generic [ref=f6e33]: + - button "or just tell me what you need" [ref=f6e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f6e40] + - button "Send" [ref=f6e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f6e44] [cursor=pointer] + - generic [ref=f6e45]: + - generic [ref=f6e46]: + - link "Gently Microscopy" [ref=f6e47] [cursor=pointer]: + - /url: / + - generic [ref=f6e48]: + - link "e465aaf0" [ref=f6e49] [cursor=pointer]: + - /url: /review?session=e465aaf0 + - button "Copy session ID" [ref=f6e50] [cursor=pointer] + - generic [ref=f6e54]: + - generic [ref=f6e55]: P + - button "Open process console" [ref=f6e57] + - link "Dashboard settings" [ref=f6e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f6e65] [cursor=pointer] + - button "Scope offline" [ref=f6e69] [cursor=pointer] + - generic [ref=f6e74]: + - complementary [ref=f6e75]: + - navigation [ref=f6e76]: + - generic [ref=f6e77]: + - generic [ref=f6e78]: Now + - button "Home" [ref=f6e79] [cursor=pointer] + - button "Operations" [ref=f6e80] [cursor=pointer] + - button "Embryos" [ref=f6e81] [cursor=pointer] + - generic [ref=f6e82]: + - generic [ref=f6e83]: Library + - button "Plans" [ref=f6e84] [cursor=pointer] + - button "Sessions" [ref=f6e85] [cursor=pointer] + - button "Notebook" [ref=f6e86] [cursor=pointer] + - button "Gallery" [ref=f6e87] [cursor=pointer] + - generic [ref=f6e88]: + - generic [ref=f6e89]: System + - button "Devices" [ref=f6e90] [cursor=pointer] + - button "Calibration" [ref=f6e91] [cursor=pointer] + - button "Logs" [ref=f6e92] [cursor=pointer] + - button "Talk to Gently" [ref=f6e93] [cursor=pointer] + - generic [ref=f6e95]: + - generic [ref=f6e96]: + - generic [ref=f6e97]: LIVE + - generic [ref=f6e99]: 0 embryos · Online + - contentinfo [ref=f6e100]: + - generic [ref=f6e101]: 0 embryos · 0 images · 12 events + - generic [ref=f6e102]: No active timelapse + - complementary "Agent chat" [ref=f6e103]: + - generic [ref=f6e105]: + - generic [ref=f6e106]: Agent + - generic [ref=f6e108]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f6e109] [cursor=pointer] + - generic [ref=f6e113]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f6e114]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f6e115] + - generic [ref=f6e119]: + - generic: + - generic [ref=f6e121]: + - button "▼" [ref=f6e122] [cursor=pointer] + - generic [ref=f6e123]: HOME + - generic [ref=f6e124]: + - generic [ref=f6e125]: + - button "▼" [ref=f6e126] [cursor=pointer] + - generic [ref=f6e127]: EMBRYOS + - generic [ref=f6e128]: + - generic [ref=f6e129] [cursor=pointer]: default + - generic [ref=f6e130] [cursor=pointer]: board + - generic [ref=f6e131] [cursor=pointer]: filmstrip + - generic [ref=f6e132] [cursor=pointer]: vitals + - generic [ref=f6e136]: + - generic [ref=f6e139] [cursor=pointer]: + - heading "Embryo Monitoring" [level=2] [ref=f6e140] + - generic [ref=f6e141]: No active timelapse + - generic [ref=f6e145]: + - generic [ref=f6e146]: Embryos + - generic [ref=f6e150]: + - generic [ref=f6e151]: 🔬 + - generic [ref=f6e152]: No embryos yet + - generic [ref=f6e153]: Start a timelapse acquisition to begin tracking embryos. Configure your experiment in the Calibration tab. + - button "Go to Calibration" [ref=f6e154] [cursor=pointer] + - generic [ref=f6e155]: + - generic [ref=f6e156]: + - button "▼" [ref=f6e157] [cursor=pointer] + - generic [ref=f6e158]: CALIBRATION + - generic [ref=f6e159]: + - generic [ref=f6e160] [cursor=pointer]: profile + - generic [ref=f6e161] [cursor=pointer]: gallery + - generic [ref=f6e163]: + - heading "Calibration" [level=2] [ref=f6e165] + - generic [ref=f6e166]: + - generic [ref=f6e167]: + - generic [ref=f6e168]: Embryos + - generic [ref=f6e169]: No calibration images yet + - generic [ref=f6e172]: + - generic [ref=f6e173]: 📷 + - generic [ref=f6e174]: Select an embryo to view calibration images + - generic [ref=f6e175]: + - generic [ref=f6e176]: + - button "▼" [ref=f6e177] [cursor=pointer] + - generic [ref=f6e178]: EXPERIMENT + - generic [ref=f6e179]: + - generic [ref=f6e180] [cursor=pointer]: overview + - generic [ref=f6e181] [cursor=pointer]: rules + - heading "Operations" [level=2] [ref=f6e185] + - generic [ref=f6e188]: + - button "▼" [ref=f6e189] [cursor=pointer] + - generic [ref=f6e190]: EVENTS + - generic [ref=f6e191]: + - generic [ref=f6e192]: + - button "▼" [ref=f6e193] [cursor=pointer] + - generic [ref=f6e194]: PLANS + - generic [ref=f6e195]: + - generic [ref=f6e196] [cursor=pointer]: document + - generic [ref=f6e197] [cursor=pointer]: graph + - generic [ref=f6e198] [cursor=pointer]: board + - generic [ref=f6e199] [cursor=pointer]: decisions + - generic [ref=f6e200] [cursor=pointer]: matrix + - generic [ref=f6e201] [cursor=pointer]: timeline + - generic [ref=f6e203]: + - generic [ref=f6e205]: + - generic [ref=f6e206]: Campaigns + - text: › + - generic [ref=f6e207]: + - navigation [ref=f6e208] + - main [ref=f6e210]: + - paragraph [ref=f6e213]: Loading campaigns... + - complementary [ref=f6e214]: + - generic [ref=f6e215]: + - button "Close" [ref=f6e216] [cursor=pointer] + - heading [level=2] + - generic [ref=f6e222]: + - button "▼" [ref=f6e223] [cursor=pointer] + - generic [ref=f6e224]: SESSIONS + - generic [ref=f6e226]: + - button "▼" [ref=f6e227] [cursor=pointer] + - generic [ref=f6e228]: NOTEBOOK + - generic [ref=f6e230]: + - button "▼" [ref=f6e231] [cursor=pointer] + - generic [ref=f6e232]: GALLERY + - generic: + - generic [ref=f6e234]: + - button "▼" [ref=f6e235] [cursor=pointer] + - generic [ref=f6e236]: DEVICES + - generic: + - generic [ref=f6e237]: + - generic [ref=f6e238]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f6e239] [cursor=pointer]: + - /url: "#" + - generic [ref=f6e240]: + - button "←" [disabled] [ref=f6e241] + - button "⌂ start" [ref=f6e242] [cursor=pointer] + - button "all" [ref=f6e243] [cursor=pointer] + - button "home" [ref=f6e244] [cursor=pointer] + - button "embryos" [ref=f6e245] [cursor=pointer] + - button "devices" [ref=f6e246] [cursor=pointer] + - button "calibration" [ref=f6e247] [cursor=pointer] + - button "experiment" [ref=f6e248] [cursor=pointer] + - button "events" [ref=f6e249] [cursor=pointer] + - button "plans" [ref=f6e250] [cursor=pointer] + - button "sessions" [ref=f6e251] [cursor=pointer] + - button "notebook" [ref=f6e252] [cursor=pointer] + - button "gallery" [ref=f6e253] [cursor=pointer] + - generic [ref=f6e254]: + - generic [ref=f6e255]: 58% + - generic [ref=f6e256]: + - text: density + - slider "density 4" [ref=f6e257]: "4" + - generic [ref=f6e258]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T16-46-40-043Z.yml b/.playwright-mcp/page-2026-08-24T16-46-40-043Z.yml new file mode 100644 index 00000000..c2943df7 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T16-46-40-043Z.yml @@ -0,0 +1,187 @@ +- generic [ref=f9e1]: + - generic "Welcome to Gently" [ref=f9e2]: + - button "Toggle theme" [ref=f9e3] [cursor=pointer] + - generic [ref=f9e7]: + - generic [ref=f9e8]: Good evening.What are we doing today? + - generic [ref=f9e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f9e12] [cursor=pointer]: + - generic [ref=f9e13]: guided + - heading "Plan an experiment" [level=3] [ref=f9e17] + - paragraph [ref=f9e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f9e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f9e22] [cursor=pointer]: + - generic [ref=f9e23]: standalone + - heading "Take a quick look" [level=3] [ref=f9e28] + - paragraph [ref=f9e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f9e30]: Open the scope + - generic [ref=f9e33]: + - button "or just tell me what you need" [ref=f9e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f9e40] + - button "Send" [ref=f9e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f9e44] [cursor=pointer] + - generic [ref=f9e45]: + - generic [ref=f9e46]: + - link "Gently Microscopy" [ref=f9e47] [cursor=pointer]: + - /url: / + - generic [ref=f9e48]: + - link "e465aaf0" [ref=f9e49] [cursor=pointer]: + - /url: /review?session=e465aaf0 + - button "Copy session ID" [ref=f9e50] [cursor=pointer] + - generic [ref=f9e54]: + - generic [ref=f9e55]: P + - button "Open process console" [ref=f9e57] + - link "Dashboard settings" [ref=f9e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f9e65] [cursor=pointer] + - button "Scope offline" [ref=f9e69] [cursor=pointer] + - generic [ref=f9e74]: + - complementary [ref=f9e75]: + - navigation [ref=f9e76]: + - generic [ref=f9e77]: + - generic [ref=f9e78]: Now + - button "Home" [ref=f9e79] [cursor=pointer] + - button "Operations" [ref=f9e80] [cursor=pointer] + - button "Embryos" [ref=f9e81] [cursor=pointer] + - generic [ref=f9e82]: + - generic [ref=f9e83]: Library + - button "Plans" [ref=f9e84] [cursor=pointer] + - button "Sessions" [ref=f9e85] [cursor=pointer] + - button "Notebook" [ref=f9e86] [cursor=pointer] + - button "Gallery" [ref=f9e87] [cursor=pointer] + - generic [ref=f9e88]: + - generic [ref=f9e89]: System + - button "Devices" [ref=f9e90] [cursor=pointer] + - button "Calibration" [ref=f9e91] [cursor=pointer] + - button "Logs" [ref=f9e92] [cursor=pointer] + - button "Talk to Gently" [ref=f9e93] [cursor=pointer] + - generic [ref=f9e95]: + - generic [ref=f9e96]: + - generic [ref=f9e97]: LIVE + - generic [ref=f9e99]: 0 embryos · Online + - contentinfo [ref=f9e100]: + - generic [ref=f9e101]: 0 embryos · 0 images · 8 events + - generic [ref=f9e102]: No active timelapse + - complementary "Agent chat" [ref=f9e103]: + - generic [ref=f9e105]: + - generic [ref=f9e106]: Agent + - generic [ref=f9e108]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f9e109] [cursor=pointer] + - generic [ref=f9e113]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f9e114]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f9e115] + - generic [ref=f9e119]: + - generic: + - generic [ref=f9e121]: + - button "▼" [ref=f9e122] [cursor=pointer] + - generic [ref=f9e123]: HOME + - generic [ref=f9e124]: + - generic [ref=f9e125]: + - button "▼" [ref=f9e126] [cursor=pointer] + - generic [ref=f9e127]: EMBRYOS + - generic [ref=f9e128]: + - generic [ref=f9e129] [cursor=pointer]: default + - generic [ref=f9e130] [cursor=pointer]: board + - generic [ref=f9e131] [cursor=pointer]: filmstrip + - generic [ref=f9e132] [cursor=pointer]: vitals + - generic [ref=f9e136]: + - generic [ref=f9e139] [cursor=pointer]: + - heading "Embryo Monitoring" [level=2] [ref=f9e140] + - generic [ref=f9e141]: No active timelapse + - generic [ref=f9e145]: + - generic [ref=f9e146]: Embryos + - generic [ref=f9e150]: + - generic [ref=f9e151]: 🔬 + - generic [ref=f9e152]: No embryos yet + - generic [ref=f9e153]: Start a timelapse acquisition to begin tracking embryos. Configure your experiment in the Calibration tab. + - button "Go to Calibration" [ref=f9e154] [cursor=pointer] + - generic [ref=f9e155]: + - generic [ref=f9e156]: + - button "▼" [ref=f9e157] [cursor=pointer] + - generic [ref=f9e158]: CALIBRATION + - generic [ref=f9e159]: + - generic [ref=f9e160] [cursor=pointer]: profile + - generic [ref=f9e161] [cursor=pointer]: gallery + - generic [ref=f9e163]: + - heading "Calibration" [level=2] [ref=f9e165] + - generic [ref=f9e166]: + - generic [ref=f9e167]: + - generic [ref=f9e168]: Embryos + - generic [ref=f9e169]: No calibration images yet + - generic [ref=f9e172]: + - generic [ref=f9e173]: 📷 + - generic [ref=f9e174]: Select an embryo to view calibration images + - generic [ref=f9e175]: + - generic [ref=f9e176]: + - button "▼" [ref=f9e177] [cursor=pointer] + - generic [ref=f9e178]: EXPERIMENT + - generic [ref=f9e179]: + - generic [ref=f9e180] [cursor=pointer]: overview + - generic [ref=f9e181] [cursor=pointer]: rules + - heading "Operations" [level=2] [ref=f9e185] + - generic [ref=f9e188]: + - button "▼" [ref=f9e189] [cursor=pointer] + - generic [ref=f9e190]: EVENTS + - generic [ref=f9e191]: + - generic [ref=f9e192]: + - button "▼" [ref=f9e193] [cursor=pointer] + - generic [ref=f9e194]: PLANS + - generic [ref=f9e195]: + - generic [ref=f9e196] [cursor=pointer]: document + - generic [ref=f9e197] [cursor=pointer]: graph + - generic [ref=f9e198] [cursor=pointer]: board + - generic [ref=f9e199] [cursor=pointer]: decisions + - generic [ref=f9e200] [cursor=pointer]: matrix + - generic [ref=f9e201] [cursor=pointer]: timeline + - generic [ref=f9e203]: + - generic [ref=f9e205]: + - generic [ref=f9e206]: Campaigns + - text: › + - generic [ref=f9e207]: + - navigation [ref=f9e208] + - main [ref=f9e210]: + - paragraph [ref=f9e213]: Loading campaigns... + - complementary [ref=f9e214]: + - generic [ref=f9e215]: + - button "Close" [ref=f9e216] [cursor=pointer] + - heading [level=2] + - generic [ref=f9e222]: + - button "▼" [ref=f9e223] [cursor=pointer] + - generic [ref=f9e224]: SESSIONS + - generic [ref=f9e226]: + - button "▼" [ref=f9e227] [cursor=pointer] + - generic [ref=f9e228]: NOTEBOOK + - generic [ref=f9e230]: + - button "▼" [ref=f9e231] [cursor=pointer] + - generic [ref=f9e232]: GALLERY + - generic: + - generic [ref=f9e234]: + - button "▼" [ref=f9e235] [cursor=pointer] + - generic [ref=f9e236]: DEVICES + - generic: + - generic [ref=f9e237]: + - generic [ref=f9e238]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f9e239] [cursor=pointer]: + - /url: "#" + - generic [ref=f9e240]: + - button "←" [disabled] [ref=f9e241] + - button "⌂ start" [ref=f9e242] [cursor=pointer] + - button "all" [ref=f9e243] [cursor=pointer] + - button "home" [ref=f9e244] [cursor=pointer] + - button "embryos" [ref=f9e245] [cursor=pointer] + - button "devices" [ref=f9e246] [cursor=pointer] + - button "calibration" [ref=f9e247] [cursor=pointer] + - button "experiment" [ref=f9e248] [cursor=pointer] + - button "events" [ref=f9e249] [cursor=pointer] + - button "plans" [ref=f9e250] [cursor=pointer] + - button "sessions" [ref=f9e251] [cursor=pointer] + - button "notebook" [ref=f9e252] [cursor=pointer] + - button "gallery" [ref=f9e253] [cursor=pointer] + - generic [ref=f9e254]: + - generic [ref=f9e255]: 58% + - generic [ref=f9e256]: + - text: density + - slider "density 4" [ref=f9e257]: "4" + - generic [ref=f9e258]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T16-48-25-411Z.yml b/.playwright-mcp/page-2026-08-24T16-48-25-411Z.yml new file mode 100644 index 00000000..0a028ffa --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T16-48-25-411Z.yml @@ -0,0 +1,187 @@ +- generic [ref=f12e1]: + - generic "Welcome to Gently" [ref=f12e2]: + - button "Toggle theme" [ref=f12e3] [cursor=pointer] + - generic [ref=f12e7]: + - generic [ref=f12e8]: Good evening.What are we doing today? + - generic [ref=f12e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f12e12] [cursor=pointer]: + - generic [ref=f12e13]: guided + - heading "Plan an experiment" [level=3] [ref=f12e17] + - paragraph [ref=f12e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f12e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f12e22] [cursor=pointer]: + - generic [ref=f12e23]: standalone + - heading "Take a quick look" [level=3] [ref=f12e28] + - paragraph [ref=f12e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f12e30]: Open the scope + - generic [ref=f12e33]: + - button "or just tell me what you need" [ref=f12e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f12e40] + - button "Send" [ref=f12e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f12e44] [cursor=pointer] + - generic [ref=f12e45]: + - generic [ref=f12e46]: + - link "Gently Microscopy" [ref=f12e47] [cursor=pointer]: + - /url: / + - generic [ref=f12e48]: + - link "e465aaf0" [ref=f12e49] [cursor=pointer]: + - /url: /review?session=e465aaf0 + - button "Copy session ID" [ref=f12e50] [cursor=pointer] + - generic [ref=f12e54]: + - generic [ref=f12e55]: P + - button "Open process console" [ref=f12e57] + - link "Dashboard settings" [ref=f12e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f12e65] [cursor=pointer] + - button "Scope offline" [ref=f12e69] [cursor=pointer] + - generic [ref=f12e74]: + - complementary [ref=f12e75]: + - navigation [ref=f12e76]: + - generic [ref=f12e77]: + - generic [ref=f12e78]: Now + - button "Home" [ref=f12e79] [cursor=pointer] + - button "Operations" [ref=f12e80] [cursor=pointer] + - button "Embryos" [ref=f12e81] [cursor=pointer] + - generic [ref=f12e82]: + - generic [ref=f12e83]: Library + - button "Plans" [ref=f12e84] [cursor=pointer] + - button "Sessions" [ref=f12e85] [cursor=pointer] + - button "Notebook" [ref=f12e86] [cursor=pointer] + - button "Gallery" [ref=f12e87] [cursor=pointer] + - generic [ref=f12e88]: + - generic [ref=f12e89]: System + - button "Devices" [ref=f12e90] [cursor=pointer] + - button "Calibration" [ref=f12e91] [cursor=pointer] + - button "Logs" [ref=f12e92] [cursor=pointer] + - button "Talk to Gently" [ref=f12e93] [cursor=pointer] + - generic [ref=f12e95]: + - generic [ref=f12e96]: + - generic [ref=f12e97]: LIVE + - generic [ref=f12e99]: 0 embryos · Online + - contentinfo [ref=f12e100]: + - generic [ref=f12e101]: 0 embryos · 0 images · 8 events + - generic [ref=f12e102]: No active timelapse + - complementary "Agent chat" [ref=f12e103]: + - generic [ref=f12e105]: + - generic [ref=f12e106]: Agent + - generic [ref=f12e108]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f12e109] [cursor=pointer] + - generic [ref=f12e113]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f12e114]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f12e115] + - generic [ref=f12e119]: + - generic: + - generic [ref=f12e121]: + - button "▼" [ref=f12e122] [cursor=pointer] + - generic [ref=f12e123]: HOME + - generic [ref=f12e124]: + - generic [ref=f12e125]: + - button "▼" [ref=f12e126] [cursor=pointer] + - generic [ref=f12e127]: EMBRYOS + - generic [ref=f12e128]: + - generic [ref=f12e129] [cursor=pointer]: default + - generic [ref=f12e130] [cursor=pointer]: board + - generic [ref=f12e131] [cursor=pointer]: filmstrip + - generic [ref=f12e132] [cursor=pointer]: vitals + - generic [ref=f12e136]: + - generic [ref=f12e139] [cursor=pointer]: + - heading "Embryo Monitoring" [level=2] [ref=f12e140] + - generic [ref=f12e141]: No active timelapse + - generic [ref=f12e145]: + - generic [ref=f12e146]: Embryos + - generic [ref=f12e150]: + - generic [ref=f12e151]: 🔬 + - generic [ref=f12e152]: No embryos yet + - generic [ref=f12e153]: Start a timelapse acquisition to begin tracking embryos. Configure your experiment in the Calibration tab. + - button "Go to Calibration" [ref=f12e154] [cursor=pointer] + - generic [ref=f12e155]: + - generic [ref=f12e156]: + - button "▼" [ref=f12e157] [cursor=pointer] + - generic [ref=f12e158]: CALIBRATION + - generic [ref=f12e159]: + - generic [ref=f12e160] [cursor=pointer]: profile + - generic [ref=f12e161] [cursor=pointer]: gallery + - generic [ref=f12e163]: + - heading "Calibration" [level=2] [ref=f12e165] + - generic [ref=f12e166]: + - generic [ref=f12e167]: + - generic [ref=f12e168]: Embryos + - generic [ref=f12e169]: No calibration images yet + - generic [ref=f12e172]: + - generic [ref=f12e173]: 📷 + - generic [ref=f12e174]: Select an embryo to view calibration images + - generic [ref=f12e175]: + - generic [ref=f12e176]: + - button "▼" [ref=f12e177] [cursor=pointer] + - generic [ref=f12e178]: EXPERIMENT + - generic [ref=f12e179]: + - generic [ref=f12e180] [cursor=pointer]: overview + - generic [ref=f12e181] [cursor=pointer]: rules + - heading "Operations" [level=2] [ref=f12e185] + - generic [ref=f12e188]: + - button "▼" [ref=f12e189] [cursor=pointer] + - generic [ref=f12e190]: EVENTS + - generic [ref=f12e191]: + - generic [ref=f12e192]: + - button "▼" [ref=f12e193] [cursor=pointer] + - generic [ref=f12e194]: PLANS + - generic [ref=f12e195]: + - generic [ref=f12e196] [cursor=pointer]: document + - generic [ref=f12e197] [cursor=pointer]: graph + - generic [ref=f12e198] [cursor=pointer]: board + - generic [ref=f12e199] [cursor=pointer]: decisions + - generic [ref=f12e200] [cursor=pointer]: matrix + - generic [ref=f12e201] [cursor=pointer]: timeline + - generic [ref=f12e203]: + - generic [ref=f12e205]: + - generic [ref=f12e206]: Campaigns + - text: › + - generic [ref=f12e207]: + - navigation [ref=f12e208] + - main [ref=f12e210]: + - paragraph [ref=f12e213]: Loading campaigns... + - complementary [ref=f12e214]: + - generic [ref=f12e215]: + - button "Close" [ref=f12e216] [cursor=pointer] + - heading [level=2] + - generic [ref=f12e222]: + - button "▼" [ref=f12e223] [cursor=pointer] + - generic [ref=f12e224]: SESSIONS + - generic [ref=f12e226]: + - button "▼" [ref=f12e227] [cursor=pointer] + - generic [ref=f12e228]: NOTEBOOK + - generic [ref=f12e230]: + - button "▼" [ref=f12e231] [cursor=pointer] + - generic [ref=f12e232]: GALLERY + - generic: + - generic [ref=f12e234]: + - button "▼" [ref=f12e235] [cursor=pointer] + - generic [ref=f12e236]: DEVICES + - generic: + - generic [ref=f12e237]: + - generic [ref=f12e238]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f12e239] [cursor=pointer]: + - /url: "#" + - generic [ref=f12e240]: + - button "←" [disabled] [ref=f12e241] + - button "⌂ start" [ref=f12e242] [cursor=pointer] + - button "all" [ref=f12e243] [cursor=pointer] + - button "home" [ref=f12e244] [cursor=pointer] + - button "embryos" [ref=f12e245] [cursor=pointer] + - button "devices" [ref=f12e246] [cursor=pointer] + - button "calibration" [ref=f12e247] [cursor=pointer] + - button "experiment" [ref=f12e248] [cursor=pointer] + - button "events" [ref=f12e249] [cursor=pointer] + - button "plans" [ref=f12e250] [cursor=pointer] + - button "sessions" [ref=f12e251] [cursor=pointer] + - button "notebook" [ref=f12e252] [cursor=pointer] + - button "gallery" [ref=f12e253] [cursor=pointer] + - generic [ref=f12e254]: + - generic [ref=f12e255]: 58% + - generic [ref=f12e256]: + - text: density + - slider "density 4" [ref=f12e257]: "4" + - generic [ref=f12e258]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T16-52-59-488Z.yml b/.playwright-mcp/page-2026-08-24T16-52-59-488Z.yml new file mode 100644 index 00000000..3711a283 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T16-52-59-488Z.yml @@ -0,0 +1,187 @@ +- generic [ref=f18e1]: + - generic "Welcome to Gently" [ref=f18e2]: + - button "Toggle theme" [ref=f18e3] [cursor=pointer] + - generic [ref=f18e7]: + - generic [ref=f18e8]: Good evening.What are we doing today? + - generic [ref=f18e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f18e12] [cursor=pointer]: + - generic [ref=f18e13]: guided + - heading "Plan an experiment" [level=3] [ref=f18e17] + - paragraph [ref=f18e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f18e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f18e22] [cursor=pointer]: + - generic [ref=f18e23]: standalone + - heading "Take a quick look" [level=3] [ref=f18e28] + - paragraph [ref=f18e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f18e30]: Open the scope + - generic [ref=f18e33]: + - button "or just tell me what you need" [ref=f18e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f18e40] + - button "Send" [ref=f18e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f18e44] [cursor=pointer] + - generic [ref=f18e45]: + - generic [ref=f18e46]: + - link "Gently Microscopy" [ref=f18e47] [cursor=pointer]: + - /url: / + - generic [ref=f18e48]: + - link "e465aaf0" [ref=f18e49] [cursor=pointer]: + - /url: /review?session=e465aaf0 + - button "Copy session ID" [ref=f18e50] [cursor=pointer] + - generic [ref=f18e54]: + - generic [ref=f18e55]: P + - button "Open process console" [ref=f18e57] + - link "Dashboard settings" [ref=f18e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f18e65] [cursor=pointer] + - button "Scope offline" [ref=f18e69] [cursor=pointer] + - generic [ref=f18e74]: + - complementary [ref=f18e75]: + - navigation [ref=f18e76]: + - generic [ref=f18e77]: + - generic [ref=f18e78]: Now + - button "Home" [ref=f18e79] [cursor=pointer] + - button "Operations" [ref=f18e80] [cursor=pointer] + - button "Embryos" [ref=f18e81] [cursor=pointer] + - generic [ref=f18e82]: + - generic [ref=f18e83]: Library + - button "Plans" [ref=f18e84] [cursor=pointer] + - button "Sessions" [ref=f18e85] [cursor=pointer] + - button "Notebook" [ref=f18e86] [cursor=pointer] + - button "Gallery" [ref=f18e87] [cursor=pointer] + - generic [ref=f18e88]: + - generic [ref=f18e89]: System + - button "Devices" [ref=f18e90] [cursor=pointer] + - button "Calibration" [ref=f18e91] [cursor=pointer] + - button "Logs" [ref=f18e92] [cursor=pointer] + - button "Talk to Gently" [ref=f18e93] [cursor=pointer] + - generic [ref=f18e95]: + - generic [ref=f18e96]: + - generic [ref=f18e97]: LIVE + - generic [ref=f18e99]: 0 embryos · Online + - contentinfo [ref=f18e100]: + - generic [ref=f18e101]: 0 embryos · 0 images · 8 events + - generic [ref=f18e102]: No active timelapse + - complementary "Agent chat" [ref=f18e103]: + - generic [ref=f18e105]: + - generic [ref=f18e106]: Agent + - generic [ref=f18e108]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f18e109] [cursor=pointer] + - generic [ref=f18e113]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f18e114]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f18e115] + - generic [ref=f18e119]: + - generic: + - generic [ref=f18e121]: + - button "▼" [ref=f18e122] [cursor=pointer] + - generic [ref=f18e123]: HOME + - generic [ref=f18e124]: + - generic [ref=f18e125]: + - button "▼" [ref=f18e126] [cursor=pointer] + - generic [ref=f18e127]: EMBRYOS + - generic [ref=f18e128]: + - generic [ref=f18e129] [cursor=pointer]: default + - generic [ref=f18e130] [cursor=pointer]: board + - generic [ref=f18e131] [cursor=pointer]: filmstrip + - generic [ref=f18e132] [cursor=pointer]: vitals + - generic [ref=f18e136]: + - generic [ref=f18e139] [cursor=pointer]: + - heading "Embryo Monitoring" [level=2] [ref=f18e140] + - generic [ref=f18e141]: No active timelapse + - generic [ref=f18e145]: + - generic [ref=f18e146]: Embryos + - generic [ref=f18e150]: + - generic [ref=f18e151]: 🔬 + - generic [ref=f18e152]: No embryos yet + - generic [ref=f18e153]: Start a timelapse acquisition to begin tracking embryos. Configure your experiment in the Calibration tab. + - button "Go to Calibration" [ref=f18e154] [cursor=pointer] + - generic [ref=f18e155]: + - generic [ref=f18e156]: + - button "▼" [ref=f18e157] [cursor=pointer] + - generic [ref=f18e158]: CALIBRATION + - generic [ref=f18e159]: + - generic [ref=f18e160] [cursor=pointer]: profile + - generic [ref=f18e161] [cursor=pointer]: gallery + - generic [ref=f18e163]: + - heading "Calibration" [level=2] [ref=f18e165] + - generic [ref=f18e166]: + - generic [ref=f18e167]: + - generic [ref=f18e168]: Embryos + - generic [ref=f18e169]: No calibration images yet + - generic [ref=f18e172]: + - generic [ref=f18e173]: 📷 + - generic [ref=f18e174]: Select an embryo to view calibration images + - generic [ref=f18e175]: + - generic [ref=f18e176]: + - button "▼" [ref=f18e177] [cursor=pointer] + - generic [ref=f18e178]: EXPERIMENT + - generic [ref=f18e179]: + - generic [ref=f18e180] [cursor=pointer]: overview + - generic [ref=f18e181] [cursor=pointer]: rules + - heading "Operations" [level=2] [ref=f18e185] + - generic [ref=f18e188]: + - button "▼" [ref=f18e189] [cursor=pointer] + - generic [ref=f18e190]: EVENTS + - generic [ref=f18e191]: + - generic [ref=f18e192]: + - button "▼" [ref=f18e193] [cursor=pointer] + - generic [ref=f18e194]: PLANS + - generic [ref=f18e195]: + - generic [ref=f18e196] [cursor=pointer]: document + - generic [ref=f18e197] [cursor=pointer]: graph + - generic [ref=f18e198] [cursor=pointer]: board + - generic [ref=f18e199] [cursor=pointer]: decisions + - generic [ref=f18e200] [cursor=pointer]: matrix + - generic [ref=f18e201] [cursor=pointer]: timeline + - generic [ref=f18e203]: + - generic [ref=f18e205]: + - generic [ref=f18e206]: Campaigns + - text: › + - generic [ref=f18e207]: + - navigation [ref=f18e208] + - main [ref=f18e210]: + - paragraph [ref=f18e213]: Loading campaigns... + - complementary [ref=f18e214]: + - generic [ref=f18e215]: + - button "Close" [ref=f18e216] [cursor=pointer] + - heading [level=2] + - generic [ref=f18e222]: + - button "▼" [ref=f18e223] [cursor=pointer] + - generic [ref=f18e224]: SESSIONS + - generic [ref=f18e226]: + - button "▼" [ref=f18e227] [cursor=pointer] + - generic [ref=f18e228]: NOTEBOOK + - generic [ref=f18e230]: + - button "▼" [ref=f18e231] [cursor=pointer] + - generic [ref=f18e232]: GALLERY + - generic: + - generic [ref=f18e234]: + - button "▼" [ref=f18e235] [cursor=pointer] + - generic [ref=f18e236]: DEVICES + - generic: + - generic [ref=f18e237]: + - generic [ref=f18e238]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f18e239] [cursor=pointer]: + - /url: "#" + - generic [ref=f18e240]: + - button "←" [disabled] [ref=f18e241] + - button "⌂ start" [ref=f18e242] [cursor=pointer] + - button "all" [ref=f18e243] [cursor=pointer] + - button "home" [ref=f18e244] [cursor=pointer] + - button "embryos" [ref=f18e245] [cursor=pointer] + - button "devices" [ref=f18e246] [cursor=pointer] + - button "calibration" [ref=f18e247] [cursor=pointer] + - button "experiment" [ref=f18e248] [cursor=pointer] + - button "events" [ref=f18e249] [cursor=pointer] + - button "plans" [ref=f18e250] [cursor=pointer] + - button "sessions" [ref=f18e251] [cursor=pointer] + - button "notebook" [ref=f18e252] [cursor=pointer] + - button "gallery" [ref=f18e253] [cursor=pointer] + - generic [ref=f18e254]: + - generic [ref=f18e255]: 58% + - generic [ref=f18e256]: + - text: density + - slider "density 4" [ref=f18e257]: "4" + - generic [ref=f18e258]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-03-37-273Z.yml b/.playwright-mcp/page-2026-08-24T17-03-37-273Z.yml new file mode 100644 index 00000000..f8396486 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-03-37-273Z.yml @@ -0,0 +1,227 @@ +- generic [ref=e1]: + - generic "Welcome to Gently" [ref=e2]: + - button "Toggle theme" [ref=e3] [cursor=pointer] + - generic [ref=e7]: + - generic [ref=e8]: Good evening.What are we doing today? + - generic [ref=e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=e12] [cursor=pointer]: + - generic [ref=e13]: guided + - heading "Plan an experiment" [level=3] [ref=e17] + - paragraph [ref=e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=e22] [cursor=pointer]: + - generic [ref=e23]: standalone + - heading "Take a quick look" [level=3] [ref=e28] + - paragraph [ref=e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=e30]: Open the scope + - generic [ref=e33]: + - button "or just tell me what you need" [ref=e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=e40] + - button "Send" [ref=e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=e44] [cursor=pointer] + - generic [ref=e45]: + - generic [ref=e46]: + - link "Gently Microscopy" [ref=e47] [cursor=pointer]: + - /url: / + - generic [ref=e48]: + - link "e465aaf0" [ref=e49] [cursor=pointer]: + - /url: /review?session=e465aaf0 + - button "Copy session ID" [ref=e50] [cursor=pointer] + - generic [ref=e54]: + - generic [ref=e55]: P + - button "Open process console" [ref=e57] + - link "Dashboard settings" [ref=e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=e65] [cursor=pointer] + - button "Scope offline" [ref=e69] [cursor=pointer] + - generic [ref=e74]: + - complementary [ref=e75]: + - navigation [ref=e76]: + - generic [ref=e77]: + - generic [ref=e78]: Now + - button "Home" [ref=e79] [cursor=pointer] + - button "Operations" [ref=e80] [cursor=pointer] + - button "Embryos" [ref=e81] [cursor=pointer] + - generic [ref=e82]: + - generic [ref=e83]: Library + - button "Plans" [ref=e84] [cursor=pointer] + - button "Sessions" [ref=e85] [cursor=pointer] + - button "Notebook" [ref=e86] [cursor=pointer] + - button "Gallery" [ref=e87] [cursor=pointer] + - generic [ref=e88]: + - generic [ref=e89]: System + - button "Devices" [ref=e90] [cursor=pointer] + - button "Calibration" [ref=e91] [cursor=pointer] + - button "Logs" [ref=e92] [cursor=pointer] + - button "Talk to Gently" [ref=e93] [cursor=pointer] + - generic [ref=e95]: + - generic [ref=e96]: + - generic [ref=e97]: LIVE + - generic [ref=e99]: 0 embryos · Online + - contentinfo [ref=e100]: + - generic [ref=e101]: 0 embryos · 0 images · 8 events + - generic [ref=e102]: No active timelapse + - complementary "Agent chat" [ref=e103]: + - generic [ref=e105]: + - generic [ref=e106]: Agent + - generic [ref=e108]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=e109] [cursor=pointer] + - generic [ref=e112]: + - generic [ref=e113]: + - generic [ref=e114]: Anonymous + - generic [ref=e115]: "Set up a temperature-strain operation: baseline monitoring, a temperature-change protocol on the test subjects, then recovery monitoring." + - paragraph [ref=e119]: + - text: The agent is running in + - strong [ref=e120]: UI-only mode + - text: ( + - code [ref=e121]: "--no-api" + - text: ), so it can't respond — no Anthropic API calls are made. You can browse the interface, view saved sessions, and explore the UI. To enable chat, perception, and plan generation, restart without + - code [ref=e122]: "--no-api" + - text: and with + - code [ref=e123]: ANTHROPIC_API_KEY + - text: set. + - generic [ref=e124]: + - generic [ref=e125]: Anonymous + - generic [ref=e126]: Set up a standing timelapse on all embryos at 120 s cadence. + - paragraph [ref=e130]: + - text: The agent is running in + - strong [ref=e131]: UI-only mode + - text: ( + - code [ref=e132]: "--no-api" + - text: ), so it can't respond — no Anthropic API calls are made. You can browse the interface, view saved sessions, and explore the UI. To enable chat, perception, and plan generation, restart without + - code [ref=e133]: "--no-api" + - text: and with + - code [ref=e134]: ANTHROPIC_API_KEY + - text: set. + - generic [ref=e135]: + - generic [ref=e136]: Anonymous + - generic [ref=e137]: Arm a reactive monitor that watches for hatching on the most advanced embryos. + - paragraph [ref=e141]: + - text: The agent is running in + - strong [ref=e142]: UI-only mode + - text: ( + - code [ref=e143]: "--no-api" + - text: ), so it can't respond — no Anthropic API calls are made. You can browse the interface, view saved sessions, and explore the UI. To enable chat, perception, and plan generation, restart without + - code [ref=e144]: "--no-api" + - text: and with + - code [ref=e145]: ANTHROPIC_API_KEY + - text: set. + - generic [ref=e146]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=e147]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=e148] + - generic [ref=e152]: + - generic: + - generic [ref=e154]: + - button "▼" [ref=e155] [cursor=pointer] + - generic [ref=e156]: HOME + - generic [ref=e157]: + - generic [ref=e158]: + - button "▼" [ref=e159] [cursor=pointer] + - generic [ref=e160]: EMBRYOS + - generic [ref=e161]: + - generic [ref=e162] [cursor=pointer]: default + - generic [ref=e163] [cursor=pointer]: board + - generic [ref=e164] [cursor=pointer]: filmstrip + - generic [ref=e165] [cursor=pointer]: vitals + - generic [ref=e169]: + - generic [ref=e172] [cursor=pointer]: + - heading "Embryo Monitoring" [level=2] [ref=e173] + - generic [ref=e174]: No active timelapse + - generic [ref=e178]: + - generic [ref=e179]: Embryos + - generic [ref=e183]: + - generic [ref=e184]: 🔬 + - generic [ref=e185]: No embryos yet + - generic [ref=e186]: Start a timelapse acquisition to begin tracking embryos. Configure your experiment in the Calibration tab. + - button "Go to Calibration" [ref=e187] [cursor=pointer] + - generic [ref=e188]: + - generic [ref=e189]: + - button "▼" [ref=e190] [cursor=pointer] + - generic [ref=e191]: CALIBRATION + - generic [ref=e192]: + - generic [ref=e193] [cursor=pointer]: profile + - generic [ref=e194] [cursor=pointer]: gallery + - generic [ref=e196]: + - heading "Calibration" [level=2] [ref=e198] + - generic [ref=e199]: + - generic [ref=e200]: + - generic [ref=e201]: Embryos + - generic [ref=e202]: No calibration images yet + - generic [ref=e205]: + - generic [ref=e206]: 📷 + - generic [ref=e207]: Select an embryo to view calibration images + - generic [ref=e208]: + - generic [ref=e209]: + - button "▼" [ref=e210] [cursor=pointer] + - generic [ref=e211]: EXPERIMENT + - generic [ref=e212]: + - generic [ref=e213] [cursor=pointer]: overview + - generic [ref=e214] [cursor=pointer]: rules + - heading "Operations" [level=2] [ref=e218] + - generic [ref=e221]: + - button "▼" [ref=e222] [cursor=pointer] + - generic [ref=e223]: EVENTS + - generic [ref=e224]: + - generic [ref=e225]: + - button "▼" [ref=e226] [cursor=pointer] + - generic [ref=e227]: PLANS + - generic [ref=e228]: + - generic [ref=e229] [cursor=pointer]: document + - generic [ref=e230] [cursor=pointer]: graph + - generic [ref=e231] [cursor=pointer]: board + - generic [ref=e232] [cursor=pointer]: decisions + - generic [ref=e233] [cursor=pointer]: matrix + - generic [ref=e234] [cursor=pointer]: timeline + - generic [ref=e236]: + - generic [ref=e238]: + - generic [ref=e239]: Campaigns + - text: › + - generic [ref=e240]: + - navigation [ref=e241] + - main [ref=e243]: + - paragraph [ref=e246]: Loading campaigns... + - complementary [ref=e247]: + - generic [ref=e248]: + - button "Close" [ref=e249] [cursor=pointer] + - heading [level=2] + - generic [ref=e255]: + - button "▼" [ref=e256] [cursor=pointer] + - generic [ref=e257]: SESSIONS + - generic [ref=e259]: + - button "▼" [ref=e260] [cursor=pointer] + - generic [ref=e261]: NOTEBOOK + - generic [ref=e263]: + - button "▼" [ref=e264] [cursor=pointer] + - generic [ref=e265]: GALLERY + - generic: + - generic [ref=e267]: + - button "▼" [ref=e268] [cursor=pointer] + - generic [ref=e269]: DEVICES + - generic: + - generic [ref=e270]: + - generic [ref=e271]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=e272] [cursor=pointer]: + - /url: "#" + - generic [ref=e273]: + - button "←" [disabled] [ref=e274] + - button "⌂ start" [ref=e275] [cursor=pointer] + - button "all" [ref=e276] [cursor=pointer] + - button "home" [ref=e277] [cursor=pointer] + - button "embryos" [ref=e278] [cursor=pointer] + - button "devices" [ref=e279] [cursor=pointer] + - button "calibration" [ref=e280] [cursor=pointer] + - button "experiment" [ref=e281] [cursor=pointer] + - button "events" [ref=e282] [cursor=pointer] + - button "plans" [ref=e283] [cursor=pointer] + - button "sessions" [ref=e284] [cursor=pointer] + - button "notebook" [ref=e285] [cursor=pointer] + - button "gallery" [ref=e286] [cursor=pointer] + - generic [ref=e287]: + - generic [ref=e288]: 58% + - generic [ref=e289]: + - text: density + - slider "density 4" [ref=e290]: "4" + - generic [ref=e291]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-04-27-719Z.yml b/.playwright-mcp/page-2026-08-24T17-04-27-719Z.yml new file mode 100644 index 00000000..a024b55e --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-04-27-719Z.yml @@ -0,0 +1,235 @@ +- generic [ref=f3e1]: + - generic "Welcome to Gently" [ref=f3e2]: + - button "Toggle theme" [ref=f3e3] [cursor=pointer] + - generic [ref=f3e7]: + - generic [ref=f3e8]: Good evening.What are we doing today? + - generic [ref=f3e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f3e12] [cursor=pointer]: + - generic [ref=f3e13]: guided + - heading "Plan an experiment" [level=3] [ref=f3e17] + - paragraph [ref=f3e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f3e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f3e22] [cursor=pointer]: + - generic [ref=f3e23]: standalone + - heading "Take a quick look" [level=3] [ref=f3e28] + - paragraph [ref=f3e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f3e30]: Open the scope + - generic [ref=f3e33]: + - button "or just tell me what you need" [ref=f3e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f3e40] + - button "Send" [ref=f3e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f3e44] [cursor=pointer] + - generic [ref=f3e45]: + - generic [ref=f3e46]: + - link "Gently Microscopy" [ref=f3e47] [cursor=pointer]: + - /url: / + - generic [ref=f3e48]: + - link "e465aaf0" [ref=f3e49] [cursor=pointer]: + - /url: /review?session=e465aaf0 + - button "Copy session ID" [ref=f3e50] [cursor=pointer] + - generic [ref=f3e54]: + - generic [ref=f3e55]: P + - button "Open process console" [ref=f3e57] + - link "Dashboard settings" [ref=f3e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f3e65] [cursor=pointer] + - button "Scope offline" [ref=f3e69] [cursor=pointer] + - generic [ref=f3e74]: + - complementary [ref=f3e75]: + - navigation [ref=f3e76]: + - generic [ref=f3e77]: + - generic [ref=f3e78]: Now + - button "Home" [ref=f3e79] [cursor=pointer] + - button "Operations" [ref=f3e80] [cursor=pointer] + - button "Embryos" [ref=f3e81] [cursor=pointer] + - generic [ref=f3e82]: + - generic [ref=f3e83]: Library + - button "Plans" [ref=f3e84] [cursor=pointer] + - button "Sessions" [ref=f3e85] [cursor=pointer] + - button "Notebook" [ref=f3e86] [cursor=pointer] + - button "Gallery" [ref=f3e87] [cursor=pointer] + - generic [ref=f3e88]: + - generic [ref=f3e89]: System + - button "Devices" [ref=f3e90] [cursor=pointer] + - button "Calibration" [ref=f3e91] [cursor=pointer] + - button "Logs" [ref=f3e92] [cursor=pointer] + - button "Talk to Gently" [ref=f3e93] [cursor=pointer] + - generic [ref=f3e95]: + - generic [ref=f3e96]: + - generic [ref=f3e97]: LIVE + - generic [ref=f3e99]: 0 embryos · Online + - contentinfo [ref=f3e100]: + - generic [ref=f3e101]: 0 embryos · 0 images · 8 events + - generic [ref=f3e102]: No active timelapse + - complementary "Agent chat" [ref=f3e103]: + - generic [ref=f3e105]: + - generic [ref=f3e106]: Agent + - generic [ref=f3e108]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f3e109] [cursor=pointer] + - generic [ref=f3e112]: + - generic [ref=f3e113]: + - generic [ref=f3e114]: Anonymous + - generic [ref=f3e115]: "Set up a temperature-strain operation: baseline monitoring, a temperature-change protocol on the test subjects, then recovery monitoring." + - paragraph [ref=f3e119]: + - text: The agent is running in + - strong [ref=f3e120]: UI-only mode + - text: ( + - code [ref=f3e121]: "--no-api" + - text: ), so it can't respond — no Anthropic API calls are made. You can browse the interface, view saved sessions, and explore the UI. To enable chat, perception, and plan generation, restart without + - code [ref=f3e122]: "--no-api" + - text: and with + - code [ref=f3e123]: ANTHROPIC_API_KEY + - text: set. + - generic [ref=f3e124]: + - generic [ref=f3e125]: Anonymous + - generic [ref=f3e126]: Set up a standing timelapse on all embryos at 120 s cadence. + - paragraph [ref=f3e130]: + - text: The agent is running in + - strong [ref=f3e131]: UI-only mode + - text: ( + - code [ref=f3e132]: "--no-api" + - text: ), so it can't respond — no Anthropic API calls are made. You can browse the interface, view saved sessions, and explore the UI. To enable chat, perception, and plan generation, restart without + - code [ref=f3e133]: "--no-api" + - text: and with + - code [ref=f3e134]: ANTHROPIC_API_KEY + - text: set. + - generic [ref=f3e135]: + - generic [ref=f3e136]: Anonymous + - generic [ref=f3e137]: Arm a reactive monitor that watches for hatching on the most advanced embryos. + - paragraph [ref=f3e141]: + - text: The agent is running in + - strong [ref=f3e142]: UI-only mode + - text: ( + - code [ref=f3e143]: "--no-api" + - text: ), so it can't respond — no Anthropic API calls are made. You can browse the interface, view saved sessions, and explore the UI. To enable chat, perception, and plan generation, restart without + - code [ref=f3e144]: "--no-api" + - text: and with + - code [ref=f3e145]: ANTHROPIC_API_KEY + - text: set. + - generic [ref=f3e146]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f3e147]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f3e148] + - generic [ref=f3e152]: + - generic: + - generic [ref=f3e154]: + - button "▼" [ref=f3e155] [cursor=pointer] + - generic [ref=f3e156]: HOME + - generic [ref=f3e157]: empty + - generic [ref=f3e158]: + - generic [ref=f3e159]: + - button "▼" [ref=f3e160] [cursor=pointer] + - generic [ref=f3e161]: EMBRYOS + - generic [ref=f3e162]: + - generic [ref=f3e163] [cursor=pointer]: default + - generic [ref=f3e164] [cursor=pointer]: board + - generic [ref=f3e165] [cursor=pointer]: filmstrip + - generic [ref=f3e166] [cursor=pointer]: vitals + - generic [ref=f3e170]: + - generic [ref=f3e173] [cursor=pointer]: + - heading "Embryo Monitoring" [level=2] [ref=f3e174] + - generic [ref=f3e175]: No active timelapse + - generic [ref=f3e179]: + - generic [ref=f3e180]: Embryos + - generic [ref=f3e184]: + - generic [ref=f3e185]: 🔬 + - generic [ref=f3e186]: No embryos yet + - generic [ref=f3e187]: Start a timelapse acquisition to begin tracking embryos. Configure your experiment in the Calibration tab. + - button "Go to Calibration" [ref=f3e188] [cursor=pointer] + - generic [ref=f3e189]: + - generic [ref=f3e190]: + - button "▼" [ref=f3e191] [cursor=pointer] + - generic [ref=f3e192]: CALIBRATION + - generic [ref=f3e193]: empty + - generic [ref=f3e194]: + - generic [ref=f3e195] [cursor=pointer]: profile + - generic [ref=f3e196] [cursor=pointer]: gallery + - generic [ref=f3e198]: + - heading "Calibration" [level=2] [ref=f3e200] + - generic [ref=f3e201]: + - generic [ref=f3e202]: + - generic [ref=f3e203]: Embryos + - generic [ref=f3e204]: No calibration images yet + - generic [ref=f3e207]: + - generic [ref=f3e208]: 📷 + - generic [ref=f3e209]: Select an embryo to view calibration images + - generic [ref=f3e210]: + - generic [ref=f3e211]: + - button "▼" [ref=f3e212] [cursor=pointer] + - generic [ref=f3e213]: EXPERIMENT + - generic [ref=f3e214]: empty + - generic [ref=f3e215]: + - generic [ref=f3e216] [cursor=pointer]: overview + - generic [ref=f3e217] [cursor=pointer]: rules + - heading "Operations" [level=2] [ref=f3e221] + - generic [ref=f3e224]: + - button "▼" [ref=f3e225] [cursor=pointer] + - generic [ref=f3e226]: EVENTS + - generic [ref=f3e227]: "1" + - generic [ref=f3e228]: + - generic [ref=f3e229]: + - button "▼" [ref=f3e230] [cursor=pointer] + - generic [ref=f3e231]: PLANS + - generic [ref=f3e232]: empty + - generic [ref=f3e233]: + - generic [ref=f3e234] [cursor=pointer]: document + - generic [ref=f3e235] [cursor=pointer]: graph + - generic [ref=f3e236] [cursor=pointer]: board + - generic [ref=f3e237] [cursor=pointer]: decisions + - generic [ref=f3e238] [cursor=pointer]: matrix + - generic [ref=f3e239] [cursor=pointer]: timeline + - generic [ref=f3e241]: + - generic [ref=f3e243]: + - generic [ref=f3e244]: Campaigns + - text: › + - generic [ref=f3e245]: + - navigation [ref=f3e246] + - main [ref=f3e248]: + - paragraph [ref=f3e251]: Loading campaigns... + - complementary [ref=f3e252]: + - generic [ref=f3e253]: + - button "Close" [ref=f3e254] [cursor=pointer] + - heading [level=2] + - generic [ref=f3e260]: + - button "▼" [ref=f3e261] [cursor=pointer] + - generic [ref=f3e262]: SESSIONS + - generic [ref=f3e263]: empty + - generic [ref=f3e265]: + - button "▼" [ref=f3e266] [cursor=pointer] + - generic [ref=f3e267]: NOTEBOOK + - generic [ref=f3e268]: empty + - generic [ref=f3e270]: + - button "▼" [ref=f3e271] [cursor=pointer] + - generic [ref=f3e272]: GALLERY + - generic [ref=f3e273]: empty + - generic: + - generic [ref=f3e275]: + - button "▼" [ref=f3e276] [cursor=pointer] + - generic [ref=f3e277]: DEVICES + - generic: + - generic [ref=f3e278]: + - generic [ref=f3e279]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f3e280] [cursor=pointer]: + - /url: "#" + - generic [ref=f3e281]: + - button "←" [disabled] [ref=f3e282] + - button "⌂ start" [ref=f3e283] [cursor=pointer] + - button "all" [ref=f3e284] [cursor=pointer] + - button "home" [ref=f3e285] [cursor=pointer] + - button "embryos" [ref=f3e286] [cursor=pointer] + - button "devices" [ref=f3e287] [cursor=pointer] + - button "calibration" [ref=f3e288] [cursor=pointer] + - button "experiment" [ref=f3e289] [cursor=pointer] + - button "events" [ref=f3e290] [cursor=pointer] + - button "plans" [ref=f3e291] [cursor=pointer] + - button "sessions" [ref=f3e292] [cursor=pointer] + - button "notebook" [ref=f3e293] [cursor=pointer] + - button "gallery" [ref=f3e294] [cursor=pointer] + - generic [ref=f3e295]: + - generic [ref=f3e296]: 58% + - generic [ref=f3e297]: + - text: density + - slider "density 4" [ref=f3e298]: "4" + - generic [ref=f3e299]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-05-05-574Z.yml b/.playwright-mcp/page-2026-08-24T17-05-05-574Z.yml new file mode 100644 index 00000000..e8c2d258 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-05-05-574Z.yml @@ -0,0 +1,237 @@ +- generic [ref=f6e1]: + - generic "Welcome to Gently" [ref=f6e2]: + - button "Toggle theme" [ref=f6e3] [cursor=pointer] + - generic [ref=f6e7]: + - generic [ref=f6e8]: Good evening.What are we doing today? + - generic [ref=f6e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f6e12] [cursor=pointer]: + - generic [ref=f6e13]: guided + - heading "Plan an experiment" [level=3] [ref=f6e17] + - paragraph [ref=f6e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f6e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f6e22] [cursor=pointer]: + - generic [ref=f6e23]: standalone + - heading "Take a quick look" [level=3] [ref=f6e28] + - paragraph [ref=f6e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f6e30]: Open the scope + - generic [ref=f6e33]: + - button "or just tell me what you need" [ref=f6e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f6e40] + - button "Send" [ref=f6e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f6e44] [cursor=pointer] + - generic [ref=f6e45]: + - generic [ref=f6e46]: + - link "Gently Microscopy" [ref=f6e47] [cursor=pointer]: + - /url: / + - generic [ref=f6e48]: + - link "e465aaf0" [ref=f6e49] [cursor=pointer]: + - /url: /review?session=e465aaf0 + - button "Copy session ID" [ref=f6e50] [cursor=pointer] + - generic [ref=f6e54]: + - generic [ref=f6e55]: P + - button "Open process console" [ref=f6e57] + - link "Dashboard settings" [ref=f6e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f6e65] [cursor=pointer] + - button "Scope offline" [ref=f6e69] [cursor=pointer] + - generic [ref=f6e74]: + - complementary [ref=f6e75]: + - navigation [ref=f6e76]: + - generic [ref=f6e77]: + - generic [ref=f6e78]: Now + - button "Home" [ref=f6e79] [cursor=pointer] + - button "Operations" [ref=f6e80] [cursor=pointer] + - button "Embryos" [ref=f6e81] [cursor=pointer] + - generic [ref=f6e82]: + - generic [ref=f6e83]: Library + - button "Plans" [ref=f6e84] [cursor=pointer] + - button "Sessions" [ref=f6e85] [cursor=pointer] + - button "Notebook" [ref=f6e86] [cursor=pointer] + - button "Gallery" [ref=f6e87] [cursor=pointer] + - generic [ref=f6e88]: + - generic [ref=f6e89]: System + - button "Devices" [ref=f6e90] [cursor=pointer] + - button "Calibration" [ref=f6e91] [cursor=pointer] + - button "Logs" [ref=f6e92] [cursor=pointer] + - button "Talk to Gently" [ref=f6e93] [cursor=pointer] + - generic [ref=f6e95]: + - generic [ref=f6e96]: + - generic [ref=f6e97]: LIVE + - generic [ref=f6e99]: 0 embryos · Online + - contentinfo [ref=f6e100]: + - generic [ref=f6e101]: 0 embryos · 0 images · 8 events + - generic [ref=f6e102]: No active timelapse + - complementary "Agent chat" [ref=f6e103]: + - generic [ref=f6e105]: + - generic [ref=f6e106]: Agent + - generic [ref=f6e108]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f6e109] [cursor=pointer] + - generic [ref=f6e112]: + - generic [ref=f6e113]: + - generic [ref=f6e114]: Anonymous + - generic [ref=f6e115]: "Set up a temperature-strain operation: baseline monitoring, a temperature-change protocol on the test subjects, then recovery monitoring." + - paragraph [ref=f6e119]: + - text: The agent is running in + - strong [ref=f6e120]: UI-only mode + - text: ( + - code [ref=f6e121]: "--no-api" + - text: ), so it can't respond — no Anthropic API calls are made. You can browse the interface, view saved sessions, and explore the UI. To enable chat, perception, and plan generation, restart without + - code [ref=f6e122]: "--no-api" + - text: and with + - code [ref=f6e123]: ANTHROPIC_API_KEY + - text: set. + - generic [ref=f6e124]: + - generic [ref=f6e125]: Anonymous + - generic [ref=f6e126]: Set up a standing timelapse on all embryos at 120 s cadence. + - paragraph [ref=f6e130]: + - text: The agent is running in + - strong [ref=f6e131]: UI-only mode + - text: ( + - code [ref=f6e132]: "--no-api" + - text: ), so it can't respond — no Anthropic API calls are made. You can browse the interface, view saved sessions, and explore the UI. To enable chat, perception, and plan generation, restart without + - code [ref=f6e133]: "--no-api" + - text: and with + - code [ref=f6e134]: ANTHROPIC_API_KEY + - text: set. + - generic [ref=f6e135]: + - generic [ref=f6e136]: Anonymous + - generic [ref=f6e137]: Arm a reactive monitor that watches for hatching on the most advanced embryos. + - paragraph [ref=f6e141]: + - text: The agent is running in + - strong [ref=f6e142]: UI-only mode + - text: ( + - code [ref=f6e143]: "--no-api" + - text: ), so it can't respond — no Anthropic API calls are made. You can browse the interface, view saved sessions, and explore the UI. To enable chat, perception, and plan generation, restart without + - code [ref=f6e144]: "--no-api" + - text: and with + - code [ref=f6e145]: ANTHROPIC_API_KEY + - text: set. + - generic [ref=f6e146]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f6e147]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f6e148] + - generic [ref=f6e152]: + - generic: + - generic [ref=f6e154]: + - button "▼" [ref=f6e155] [cursor=pointer] + - generic [ref=f6e156]: HOME + - generic [ref=f6e157]: empty + - generic [ref=f6e158]: + - generic [ref=f6e159]: + - button "▼" [ref=f6e160] [cursor=pointer] + - generic [ref=f6e161]: EMBRYOS + - generic [ref=f6e162]: empty + - generic [ref=f6e163]: + - generic [ref=f6e164] [cursor=pointer]: default + - generic [ref=f6e165] [cursor=pointer]: board + - generic [ref=f6e166] [cursor=pointer]: filmstrip + - generic [ref=f6e167] [cursor=pointer]: vitals + - generic [ref=f6e171]: + - generic [ref=f6e174] [cursor=pointer]: + - heading "Embryo Monitoring" [level=2] [ref=f6e175] + - generic [ref=f6e176]: No active timelapse + - generic [ref=f6e180]: + - generic [ref=f6e181]: Embryos + - generic [ref=f6e185]: + - generic [ref=f6e186]: 🔬 + - generic [ref=f6e187]: No embryos yet + - generic [ref=f6e188]: Start a timelapse acquisition to begin tracking embryos. Configure your experiment in the Calibration tab. + - button "Go to Calibration" [ref=f6e189] [cursor=pointer] + - generic [ref=f6e190]: + - generic [ref=f6e191]: + - button "▼" [ref=f6e192] [cursor=pointer] + - generic [ref=f6e193]: CALIBRATION + - generic [ref=f6e194]: empty + - generic [ref=f6e195]: + - generic [ref=f6e196] [cursor=pointer]: profile + - generic [ref=f6e197] [cursor=pointer]: gallery + - generic [ref=f6e199]: + - heading "Calibration" [level=2] [ref=f6e201] + - generic [ref=f6e202]: + - generic [ref=f6e203]: + - generic [ref=f6e204]: Embryos + - generic [ref=f6e205]: No calibration images yet + - generic [ref=f6e208]: + - generic [ref=f6e209]: 📷 + - generic [ref=f6e210]: Select an embryo to view calibration images + - generic [ref=f6e211]: + - generic [ref=f6e212]: + - button "▼" [ref=f6e213] [cursor=pointer] + - generic [ref=f6e214]: EXPERIMENT + - generic [ref=f6e215]: empty + - generic [ref=f6e216]: + - generic [ref=f6e217] [cursor=pointer]: overview + - generic [ref=f6e218] [cursor=pointer]: rules + - heading "Operations" [level=2] [ref=f6e222] + - generic [ref=f6e225]: + - button "▼" [ref=f6e226] [cursor=pointer] + - generic [ref=f6e227]: EVENTS + - generic [ref=f6e228]: "1" + - generic [ref=f6e229]: + - generic [ref=f6e230]: + - button "▼" [ref=f6e231] [cursor=pointer] + - generic [ref=f6e232]: PLANS + - generic [ref=f6e233]: empty + - generic [ref=f6e234]: + - generic [ref=f6e235] [cursor=pointer]: document + - generic [ref=f6e236] [cursor=pointer]: graph + - generic [ref=f6e237] [cursor=pointer]: board + - generic [ref=f6e238] [cursor=pointer]: decisions + - generic [ref=f6e239] [cursor=pointer]: matrix + - generic [ref=f6e240] [cursor=pointer]: timeline + - generic [ref=f6e242]: + - generic [ref=f6e244]: + - generic [ref=f6e245]: Campaigns + - text: › + - generic [ref=f6e246]: + - navigation [ref=f6e247] + - main [ref=f6e249]: + - paragraph [ref=f6e252]: Loading campaigns... + - complementary [ref=f6e253]: + - generic [ref=f6e254]: + - button "Close" [ref=f6e255] [cursor=pointer] + - heading [level=2] + - generic [ref=f6e261]: + - button "▼" [ref=f6e262] [cursor=pointer] + - generic [ref=f6e263]: SESSIONS + - generic [ref=f6e264]: empty + - generic [ref=f6e266]: + - button "▼" [ref=f6e267] [cursor=pointer] + - generic [ref=f6e268]: NOTEBOOK + - generic [ref=f6e269]: empty + - generic [ref=f6e271]: + - button "▼" [ref=f6e272] [cursor=pointer] + - generic [ref=f6e273]: GALLERY + - generic [ref=f6e274]: empty + - generic: + - generic [ref=f6e276]: + - button "▼" [ref=f6e277] [cursor=pointer] + - generic [ref=f6e278]: DEVICES + - generic [ref=f6e279]: "2" + - generic: + - generic [ref=f6e280]: + - generic [ref=f6e281]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f6e282] [cursor=pointer]: + - /url: "#" + - generic [ref=f6e283]: + - button "←" [disabled] [ref=f6e284] + - button "⌂ start" [ref=f6e285] [cursor=pointer] + - button "all" [ref=f6e286] [cursor=pointer] + - button "home" [ref=f6e287] [cursor=pointer] + - button "embryos" [ref=f6e288] [cursor=pointer] + - button "devices" [ref=f6e289] [cursor=pointer] + - button "calibration" [ref=f6e290] [cursor=pointer] + - button "experiment" [ref=f6e291] [cursor=pointer] + - button "events" [ref=f6e292] [cursor=pointer] + - button "plans" [ref=f6e293] [cursor=pointer] + - button "sessions" [ref=f6e294] [cursor=pointer] + - button "notebook" [ref=f6e295] [cursor=pointer] + - button "gallery" [ref=f6e296] [cursor=pointer] + - generic [ref=f6e297]: + - generic [ref=f6e298]: 58% + - generic [ref=f6e299]: + - text: density + - slider "density 4" [ref=f6e300]: "4" + - generic [ref=f6e301]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-09-01-122Z.yml b/.playwright-mcp/page-2026-08-24T17-09-01-122Z.yml new file mode 100644 index 00000000..7cda8e6d --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-09-01-122Z.yml @@ -0,0 +1,156 @@ +- generic [active] [ref=f9e1]: + - generic "Welcome to Gently" [ref=f9e2]: + - button "Toggle theme" [ref=f9e3] [cursor=pointer] + - generic [ref=f9e7]: + - generic [ref=f9e8]: Good evening.What are we doing today? + - generic [ref=f9e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f9e12] [cursor=pointer]: + - generic [ref=f9e13]: guided + - heading "Plan an experiment" [level=3] [ref=f9e17] + - paragraph [ref=f9e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f9e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f9e22] [cursor=pointer]: + - generic [ref=f9e23]: standalone + - heading "Take a quick look" [level=3] [ref=f9e28] + - paragraph [ref=f9e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f9e30]: Open the scope + - generic [ref=f9e33]: + - button "or just tell me what you need" [ref=f9e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f9e40] + - button "Send" [ref=f9e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f9e44] [cursor=pointer] + - generic [ref=f9e45]: + - generic [ref=f9e46]: + - link "Gently Microscopy" [ref=f9e47] [cursor=pointer]: + - /url: / + - generic [ref=f9e48]: + - link "e465aaf0" [ref=f9e49] [cursor=pointer]: + - /url: /review?session=e465aaf0 + - button "Copy session ID" [ref=f9e50] [cursor=pointer] + - generic [ref=f9e54]: + - generic [ref=f9e55]: P + - button "Open process console" [ref=f9e57] + - link "Dashboard settings" [ref=f9e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f9e65] [cursor=pointer] + - button "Scope offline" [ref=f9e69] [cursor=pointer] + - generic [ref=f9e74]: + - complementary [ref=f9e75]: + - navigation [ref=f9e76]: + - generic [ref=f9e77]: + - generic [ref=f9e78]: Now + - button "Home" [ref=f9e79] [cursor=pointer] + - button "Operations" [ref=f9e80] [cursor=pointer] + - button "Embryos" [ref=f9e81] [cursor=pointer] + - generic [ref=f9e82]: + - generic [ref=f9e83]: Library + - button "Plans" [ref=f9e84] [cursor=pointer] + - button "Sessions" [ref=f9e85] [cursor=pointer] + - button "Notebook" [ref=f9e86] [cursor=pointer] + - button "Gallery" [ref=f9e87] [cursor=pointer] + - generic [ref=f9e88]: + - generic [ref=f9e89]: System + - button "Devices" [ref=f9e90] [cursor=pointer] + - button "Calibration" [ref=f9e91] [cursor=pointer] + - button "Logs" [ref=f9e92] [cursor=pointer] + - button "Talk to Gently" [ref=f9e93] [cursor=pointer] + - generic [ref=f9e95]: + - generic [ref=f9e96]: + - generic [ref=f9e97]: LIVE + - generic [ref=f9e99]: 0 embryos · Online + - generic [ref=f9e102]: + - generic [ref=f9e103]: + - generic [ref=f9e104]: + - generic [ref=f9e105]: Recent sessions + - link "All" [ref=f9e106] [cursor=pointer]: + - /url: "#sessions" + - generic [ref=f9e107]: + - generic [ref=f9e109]: + - generic [ref=f9e110]: + - generic [ref=f9e111]: e465aaf0 + - generic [ref=f9e112]: live + - generic [ref=f9e113]: 2h ago · 0 embryos + - generic [ref=f9e114]: + - generic [ref=f9e115]: + - generic [ref=f9e116]: "11e62048" + - generic [ref=f9e118]: 2h ago · 0 embryos + - button "Resume" [ref=f9e119] [cursor=pointer] + - generic [ref=f9e120]: + - generic [ref=f9e121]: + - generic [ref=f9e122]: 0aa7a55e + - generic [ref=f9e124]: 2h ago · 0 embryos + - button "Resume" [ref=f9e125] [cursor=pointer] + - generic [ref=f9e126]: + - generic [ref=f9e127]: + - generic [ref=f9e128]: 98d44986 + - generic [ref=f9e130]: 2h ago · 0 embryos + - button "Resume" [ref=f9e131] [cursor=pointer] + - generic [ref=f9e132]: + - generic [ref=f9e133]: + - generic [ref=f9e134]: e4293359 + - generic [ref=f9e136]: 2h ago · 0 embryos + - button "Resume" [ref=f9e137] [cursor=pointer] + - generic [ref=f9e138]: + - generic [ref=f9e139]: + - generic [ref=f9e140]: Recent plans + - link "All" [ref=f9e141] [cursor=pointer]: + - /url: "#plans" + - generic [ref=f9e142]: No plans yet. + - generic [ref=f9e144]: + - generic [ref=f9e145]: + - generic [ref=f9e146]: Recent images + - link "All" [ref=f9e147] [cursor=pointer]: + - /url: "#embryos" + - generic [ref=f9e148]: No images yet — they appear once a session has captured volumes. + - text: › + - contentinfo [ref=f9e150] + - complementary "Agent chat" [ref=f9e151]: + - generic [ref=f9e153]: + - generic [ref=f9e154]: Agent + - generic [ref=f9e156]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f9e157] [cursor=pointer] + - generic [ref=f9e160]: + - generic [ref=f9e161]: + - generic [ref=f9e162]: Anonymous + - generic [ref=f9e163]: "Set up a temperature-strain operation: baseline monitoring, a temperature-change protocol on the test subjects, then recovery monitoring." + - paragraph [ref=f9e167]: + - text: The agent is running in + - strong [ref=f9e168]: UI-only mode + - text: ( + - code [ref=f9e169]: "--no-api" + - text: ), so it can't respond — no Anthropic API calls are made. You can browse the interface, view saved sessions, and explore the UI. To enable chat, perception, and plan generation, restart without + - code [ref=f9e170]: "--no-api" + - text: and with + - code [ref=f9e171]: ANTHROPIC_API_KEY + - text: set. + - generic [ref=f9e172]: + - generic [ref=f9e173]: Anonymous + - generic [ref=f9e174]: Set up a standing timelapse on all embryos at 120 s cadence. + - paragraph [ref=f9e178]: + - text: The agent is running in + - strong [ref=f9e179]: UI-only mode + - text: ( + - code [ref=f9e180]: "--no-api" + - text: ), so it can't respond — no Anthropic API calls are made. You can browse the interface, view saved sessions, and explore the UI. To enable chat, perception, and plan generation, restart without + - code [ref=f9e181]: "--no-api" + - text: and with + - code [ref=f9e182]: ANTHROPIC_API_KEY + - text: set. + - generic [ref=f9e183]: + - generic [ref=f9e184]: Anonymous + - generic [ref=f9e185]: Arm a reactive monitor that watches for hatching on the most advanced embryos. + - paragraph [ref=f9e189]: + - text: The agent is running in + - strong [ref=f9e190]: UI-only mode + - text: ( + - code [ref=f9e191]: "--no-api" + - text: ), so it can't respond — no Anthropic API calls are made. You can browse the interface, view saved sessions, and explore the UI. To enable chat, perception, and plan generation, restart without + - code [ref=f9e192]: "--no-api" + - text: and with + - code [ref=f9e193]: ANTHROPIC_API_KEY + - text: set. + - generic [ref=f9e194]: + - textbox "Message Gently… ( / commands · @ tools )" [ref=f9e195]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f9e196] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-15-39-371Z.yml b/.playwright-mcp/page-2026-08-24T17-15-39-371Z.yml new file mode 100644 index 00000000..339db7d4 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-15-39-371Z.yml @@ -0,0 +1,239 @@ +- generic [ref=f15e1]: + - generic [ref=f15e2]: + - generic [ref=f15e3]: + - link "Gently Microscopy" [ref=f15e4] [cursor=pointer]: + - /url: / + - generic [ref=f15e5]: + - link "db03fcbc" [ref=f15e6] [cursor=pointer]: + - /url: /review?session=db03fcbc + - button "Copy session ID" [ref=f15e7] [cursor=pointer] + - generic [ref=f15e11]: + - generic [ref=f15e12]: P + - button "Open process console" [ref=f15e14] + - link "Dashboard settings" [ref=f15e18] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f15e22] [cursor=pointer] + - button "Scope offline" [ref=f15e26] [cursor=pointer] + - generic [ref=f15e31]: + - complementary [ref=f15e32]: + - navigation [ref=f15e33]: + - generic [ref=f15e34]: + - generic [ref=f15e35]: Now + - button "Home" [ref=f15e36] [cursor=pointer] + - button "Operations" [ref=f15e37] [cursor=pointer] + - button "Embryos" [ref=f15e38] [cursor=pointer] + - generic [ref=f15e39]: + - generic [ref=f15e40]: Library + - button "Plans" [ref=f15e41] [cursor=pointer] + - button "Sessions" [ref=f15e42] [cursor=pointer] + - button "Notebook" [ref=f15e43] [cursor=pointer] + - button "Gallery" [ref=f15e44] [cursor=pointer] + - generic [ref=f15e45]: + - generic [ref=f15e46]: System + - button "Devices" [ref=f15e47] [cursor=pointer] + - button "Calibration" [ref=f15e48] [cursor=pointer] + - button "Logs" [ref=f15e49] [cursor=pointer] + - button "Talk to Gently" [ref=f15e50] [cursor=pointer] + - generic [ref=f15e52]: + - generic [ref=f15e53]: + - generic [ref=f15e54]: LIVE + - generic [ref=f15e56]: 0 embryos · Online + - contentinfo [ref=f15e57]: + - generic [ref=f15e58]: 0 embryos · 40 images · 16 events + - generic [ref=f15e59]: No active timelapse + - complementary "Agent chat" [ref=f15e60]: + - generic [ref=f15e62]: + - generic [ref=f15e63]: Agent + - generic [ref=f15e65]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f15e66] [cursor=pointer] + - generic [ref=f15e70]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f15e71]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f15e72] + - generic [ref=f15e76]: + - generic: + - generic [ref=f15e78]: + - button "▼" [ref=f15e79] [cursor=pointer] + - generic [ref=f15e80]: HOME + - generic [ref=f15e81]: empty + - generic [ref=f15e82]: + - generic [ref=f15e83]: + - button "▼" [ref=f15e84] [cursor=pointer] + - generic [ref=f15e85]: EMBRYOS + - generic [ref=f15e86]: ◆ e01 + - generic [ref=f15e87]: + - generic [ref=f15e88] [cursor=pointer]: default + - generic [ref=f15e89] [cursor=pointer]: board + - generic [ref=f15e90] [cursor=pointer]: filmstrip + - generic [ref=f15e91] [cursor=pointer]: vitals + - generic [ref=f15e95]: + - generic [ref=f15e97] [cursor=pointer]: + - generic [ref=f15e98]: + - heading "Embryo Monitoring" [level=2] [ref=f15e99] + - generic [ref=f15e100]: No active timelapse + - generic [ref=f15e103]: + - generic [ref=f15e104]: + - generic [ref=f15e105]: "40" + - generic [ref=f15e106]: TP + - generic [ref=f15e107]: + - generic [ref=f15e108]: "4" + - generic [ref=f15e109]: Active + - generic [ref=f15e110]: + - generic [ref=f15e111]: "0" + - generic [ref=f15e112]: Done + - generic [ref=f15e113]: + - generic [ref=f15e114]: 2:00 + - generic [ref=f15e115]: Next + - generic [ref=f15e117]: + - generic [ref=f15e118]: + - generic [ref=f15e119]: Embryos + - generic [ref=f15e120]: + - generic "e01 — gastrula — 9 TP" [ref=f15e121] [cursor=pointer]: + - generic [ref=f15e122]: 🔬 + - generic [ref=f15e123]: e01 + - generic "e02 — Comma — 9 TP" [ref=f15e124] [cursor=pointer]: + - generic [ref=f15e125]: 🌙 + - generic [ref=f15e126]: e02 + - generic "e03 — lima-bean — 9 TP" [ref=f15e127] [cursor=pointer]: + - generic [ref=f15e128]: 🔬 + - generic [ref=f15e129]: e03 + - generic "e04 — Comma — 9 TP" [ref=f15e130] [cursor=pointer]: + - generic [ref=f15e131]: 🌙 + - generic [ref=f15e132]: e04 + - generic [ref=f15e133]: + - generic [ref=f15e134]: + - generic [ref=f15e135]: + - generic [ref=f15e136]: ● + - generic [ref=f15e137]: e01 + - generic [ref=f15e138]: 🔬 gastrula + - generic [ref=f15e139]: 5 transitions + - generic [ref=f15e140]: 10 evals + - generic [ref=f15e141]: 9 tp + - generic [ref=f15e142]: + - generic "Jump to 2-cell" [ref=f15e143] [cursor=pointer]: + - generic [ref=f15e144]: 🔬 + - text: 2-cell @ T0 + - generic "Jump to 4-cell" [ref=f15e145] [cursor=pointer]: + - generic [ref=f15e146]: 🔬 + - text: 4-cell @ T2 + - generic "Jump to 8-cell" [ref=f15e147] [cursor=pointer]: + - generic [ref=f15e148]: 🔬 + - text: 8-cell @ T4 + - generic "Jump to 26-cell" [ref=f15e149] [cursor=pointer]: + - generic [ref=f15e150]: 🔬 + - text: 26-cell @ T6 + - generic "Jump to gastrula" [ref=f15e151] [cursor=pointer]: + - generic [ref=f15e152]: 🔬 + - text: gastrula @ T8 + - generic [ref=f15e153]: + - generic [ref=f15e154]: + - generic [ref=f15e155]: Evaluations + - generic [ref=f15e156]: 10 checked, 5 stages + - generic [ref=f15e157]: + - 'generic "T0: 2-cell" [ref=f15e158] [cursor=pointer]': 🔬 + - 'generic "T1: 2-cell" [ref=f15e160] [cursor=pointer]': 🔬 + - 'generic "T2: 4-cell" [ref=f15e162] [cursor=pointer]': 🔬 + - 'generic "T3: 4-cell" [ref=f15e164] [cursor=pointer]': 🔬 + - 'generic "T4: 8-cell" [ref=f15e166] [cursor=pointer]': 🔬 + - 'generic "T5: 8-cell" [ref=f15e168] [cursor=pointer]': 🔬 + - 'generic "T6: 26-cell" [ref=f15e170] [cursor=pointer]': 🔬 + - 'generic "T7: 26-cell" [ref=f15e172] [cursor=pointer]': 🔬 + - 'generic "T8: gastrula" [ref=f15e174] [cursor=pointer]': 🔬 + - 'generic "T9: gastrula" [ref=f15e176] [cursor=pointer]': 🔬 + - generic [ref=f15e178]: + - generic [ref=f15e179]: + - button "▼" [ref=f15e180] [cursor=pointer] + - generic [ref=f15e181]: CALIBRATION + - generic [ref=f15e182]: empty + - generic [ref=f15e183]: + - generic [ref=f15e184] [cursor=pointer]: profile + - generic [ref=f15e185] [cursor=pointer]: gallery + - generic [ref=f15e187]: + - heading "Calibration" [level=2] [ref=f15e189] + - generic [ref=f15e190]: + - generic [ref=f15e191]: + - generic [ref=f15e192]: Embryos + - generic [ref=f15e193]: No calibration images yet + - generic [ref=f15e196]: + - generic [ref=f15e197]: 📷 + - generic [ref=f15e198]: Select an embryo to view calibration images + - generic [ref=f15e199]: + - generic [ref=f15e200]: + - button "▼" [ref=f15e201] [cursor=pointer] + - generic [ref=f15e202]: EXPERIMENT + - generic [ref=f15e203]: empty + - generic [ref=f15e204]: + - generic [ref=f15e205] [cursor=pointer]: overview + - generic [ref=f15e206] [cursor=pointer]: rules + - heading "Operations" [level=2] [ref=f15e210] + - generic [ref=f15e213]: + - button "▼" [ref=f15e214] [cursor=pointer] + - generic [ref=f15e215]: EVENTS + - generic [ref=f15e216]: "1" + - generic [ref=f15e217]: + - generic [ref=f15e218]: + - button "▼" [ref=f15e219] [cursor=pointer] + - generic [ref=f15e220]: PLANS + - generic [ref=f15e221]: empty + - generic [ref=f15e222]: + - generic [ref=f15e223] [cursor=pointer]: document + - generic [ref=f15e224] [cursor=pointer]: graph + - generic [ref=f15e225] [cursor=pointer]: board + - generic [ref=f15e226] [cursor=pointer]: decisions + - generic [ref=f15e227] [cursor=pointer]: matrix + - generic [ref=f15e228] [cursor=pointer]: timeline + - generic [ref=f15e230]: + - generic [ref=f15e232]: + - generic [ref=f15e233]: Campaigns + - text: › + - generic [ref=f15e234]: + - navigation [ref=f15e235] + - main [ref=f15e237]: + - paragraph [ref=f15e240]: Loading campaigns... + - complementary [ref=f15e241]: + - generic [ref=f15e242]: + - button "Close" [ref=f15e243] [cursor=pointer] + - heading [level=2] + - generic [ref=f15e249]: + - button "▼" [ref=f15e250] [cursor=pointer] + - generic [ref=f15e251]: SESSIONS + - generic [ref=f15e252]: empty + - generic [ref=f15e254]: + - button "▼" [ref=f15e255] [cursor=pointer] + - generic [ref=f15e256]: NOTEBOOK + - generic [ref=f15e257]: empty + - generic [ref=f15e259]: + - button "▼" [ref=f15e260] [cursor=pointer] + - generic [ref=f15e261]: GALLERY + - generic [ref=f15e262]: empty + - generic: + - generic [ref=f15e264]: + - button "▼" [ref=f15e265] [cursor=pointer] + - generic [ref=f15e266]: DEVICES + - generic [ref=f15e267]: "2" + - generic: + - generic [ref=f15e268]: + - generic [ref=f15e269]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f15e270] [cursor=pointer]: + - /url: "#" + - generic [ref=f15e271]: + - button "←" [disabled] [ref=f15e272] + - button "⌂ start" [ref=f15e273] [cursor=pointer] + - button "all" [ref=f15e274] [cursor=pointer] + - button "home" [ref=f15e275] [cursor=pointer] + - button "embryos" [ref=f15e276] [cursor=pointer] + - button "devices" [ref=f15e277] [cursor=pointer] + - button "calibration" [ref=f15e278] [cursor=pointer] + - button "experiment" [ref=f15e279] [cursor=pointer] + - button "events" [ref=f15e280] [cursor=pointer] + - button "plans" [ref=f15e281] [cursor=pointer] + - button "sessions" [ref=f15e282] [cursor=pointer] + - button "notebook" [ref=f15e283] [cursor=pointer] + - button "gallery" [ref=f15e284] [cursor=pointer] + - generic [ref=f15e285]: + - generic [ref=f15e286]: 58% + - generic [ref=f15e287]: + - text: density + - slider "density 4" [ref=f15e288]: "4" + - generic [ref=f15e289]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-17-18-368Z.yml b/.playwright-mcp/page-2026-08-24T17-17-18-368Z.yml new file mode 100644 index 00000000..b0abdfaf --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-17-18-368Z.yml @@ -0,0 +1,239 @@ +- generic [ref=f18e1]: + - generic [ref=f18e2]: + - generic [ref=f18e3]: + - link "Gently Microscopy" [ref=f18e4] [cursor=pointer]: + - /url: / + - generic [ref=f18e5]: + - link "db03fcbc" [ref=f18e6] [cursor=pointer]: + - /url: /review?session=db03fcbc + - button "Copy session ID" [ref=f18e7] [cursor=pointer] + - generic [ref=f18e11]: + - generic [ref=f18e12]: P + - button "Open process console" [ref=f18e14] + - link "Dashboard settings" [ref=f18e18] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f18e22] [cursor=pointer] + - button "Scope offline" [ref=f18e26] [cursor=pointer] + - generic [ref=f18e31]: + - complementary [ref=f18e32]: + - navigation [ref=f18e33]: + - generic [ref=f18e34]: + - generic [ref=f18e35]: Now + - button "Home" [ref=f18e36] [cursor=pointer] + - button "Operations" [ref=f18e37] [cursor=pointer] + - button "Embryos" [ref=f18e38] [cursor=pointer] + - generic [ref=f18e39]: + - generic [ref=f18e40]: Library + - button "Plans" [ref=f18e41] [cursor=pointer] + - button "Sessions" [ref=f18e42] [cursor=pointer] + - button "Notebook" [ref=f18e43] [cursor=pointer] + - button "Gallery" [ref=f18e44] [cursor=pointer] + - generic [ref=f18e45]: + - generic [ref=f18e46]: System + - button "Devices" [ref=f18e47] [cursor=pointer] + - button "Calibration" [ref=f18e48] [cursor=pointer] + - button "Logs" [ref=f18e49] [cursor=pointer] + - button "Talk to Gently" [ref=f18e50] [cursor=pointer] + - generic [ref=f18e52]: + - generic [ref=f18e53]: + - generic [ref=f18e54]: LIVE + - generic [ref=f18e56]: 4 embryos · Online + - contentinfo [ref=f18e57]: + - generic [ref=f18e58]: 4 embryos · 40 images · 16 events + - generic [ref=f18e59]: No active timelapse + - complementary "Agent chat" [ref=f18e60]: + - generic [ref=f18e62]: + - generic [ref=f18e63]: Agent + - generic [ref=f18e65]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f18e66] [cursor=pointer] + - generic [ref=f18e70]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f18e71]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f18e72] + - generic [ref=f18e76]: + - generic: + - generic [ref=f18e78]: + - button "▼" [ref=f18e79] [cursor=pointer] + - generic [ref=f18e80]: HOME + - generic [ref=f18e81]: "3" + - generic [ref=f18e82]: + - generic [ref=f18e83]: + - button "▼" [ref=f18e84] [cursor=pointer] + - generic [ref=f18e85]: EMBRYOS + - generic [ref=f18e86]: ◆ e01 + - generic [ref=f18e87]: + - generic [ref=f18e88] [cursor=pointer]: default + - generic [ref=f18e89] [cursor=pointer]: board + - generic [ref=f18e90] [cursor=pointer]: filmstrip + - generic [ref=f18e91] [cursor=pointer]: vitals + - generic [ref=f18e95]: + - generic [ref=f18e97] [cursor=pointer]: + - generic [ref=f18e98]: + - heading "Embryo Monitoring" [level=2] [ref=f18e99] + - generic [ref=f18e100]: No active timelapse + - generic [ref=f18e103]: + - generic [ref=f18e104]: + - generic [ref=f18e105]: "40" + - generic [ref=f18e106]: TP + - generic [ref=f18e107]: + - generic [ref=f18e108]: "4" + - generic [ref=f18e109]: Active + - generic [ref=f18e110]: + - generic [ref=f18e111]: "0" + - generic [ref=f18e112]: Done + - generic [ref=f18e113]: + - generic [ref=f18e114]: 2:00 + - generic [ref=f18e115]: Next + - generic [ref=f18e117]: + - generic [ref=f18e118]: + - generic [ref=f18e119]: Embryos + - generic [ref=f18e120]: + - generic "e01 — gastrula — 9 TP" [ref=f18e121] [cursor=pointer]: + - generic [ref=f18e122]: 🔬 + - generic [ref=f18e123]: e01 + - generic "e02 — Comma — 9 TP" [ref=f18e124] [cursor=pointer]: + - generic [ref=f18e125]: 🌙 + - generic [ref=f18e126]: e02 + - generic "e03 — lima-bean — 9 TP" [ref=f18e127] [cursor=pointer]: + - generic [ref=f18e128]: 🔬 + - generic [ref=f18e129]: e03 + - generic "e04 — Comma — 9 TP" [ref=f18e130] [cursor=pointer]: + - generic [ref=f18e131]: 🌙 + - generic [ref=f18e132]: e04 + - generic [ref=f18e133]: + - generic [ref=f18e134]: + - generic [ref=f18e135]: + - generic [ref=f18e136]: ● + - generic [ref=f18e137]: e01 + - generic [ref=f18e138]: 🔬 gastrula + - generic [ref=f18e139]: 5 transitions + - generic [ref=f18e140]: 10 evals + - generic [ref=f18e141]: 9 tp + - generic [ref=f18e142]: + - generic "Jump to 2-cell" [ref=f18e143] [cursor=pointer]: + - generic [ref=f18e144]: 🔬 + - text: 2-cell @ T0 + - generic "Jump to 4-cell" [ref=f18e145] [cursor=pointer]: + - generic [ref=f18e146]: 🔬 + - text: 4-cell @ T2 + - generic "Jump to 8-cell" [ref=f18e147] [cursor=pointer]: + - generic [ref=f18e148]: 🔬 + - text: 8-cell @ T4 + - generic "Jump to 26-cell" [ref=f18e149] [cursor=pointer]: + - generic [ref=f18e150]: 🔬 + - text: 26-cell @ T6 + - generic "Jump to gastrula" [ref=f18e151] [cursor=pointer]: + - generic [ref=f18e152]: 🔬 + - text: gastrula @ T8 + - generic [ref=f18e153]: + - generic [ref=f18e154]: + - generic [ref=f18e155]: Evaluations + - generic [ref=f18e156]: 10 checked, 5 stages + - generic [ref=f18e157]: + - 'generic "T0: 2-cell" [ref=f18e158] [cursor=pointer]': 🔬 + - 'generic "T1: 2-cell" [ref=f18e160] [cursor=pointer]': 🔬 + - 'generic "T2: 4-cell" [ref=f18e162] [cursor=pointer]': 🔬 + - 'generic "T3: 4-cell" [ref=f18e164] [cursor=pointer]': 🔬 + - 'generic "T4: 8-cell" [ref=f18e166] [cursor=pointer]': 🔬 + - 'generic "T5: 8-cell" [ref=f18e168] [cursor=pointer]': 🔬 + - 'generic "T6: 26-cell" [ref=f18e170] [cursor=pointer]': 🔬 + - 'generic "T7: 26-cell" [ref=f18e172] [cursor=pointer]': 🔬 + - 'generic "T8: gastrula" [ref=f18e174] [cursor=pointer]': 🔬 + - 'generic "T9: gastrula" [ref=f18e176] [cursor=pointer]': 🔬 + - generic [ref=f18e178]: + - generic [ref=f18e179]: + - button "▼" [ref=f18e180] [cursor=pointer] + - generic [ref=f18e181]: CALIBRATION + - generic [ref=f18e182]: empty + - generic [ref=f18e183]: + - generic [ref=f18e184] [cursor=pointer]: profile + - generic [ref=f18e185] [cursor=pointer]: gallery + - generic [ref=f18e187]: + - heading "Calibration" [level=2] [ref=f18e189] + - generic [ref=f18e190]: + - generic [ref=f18e191]: + - generic [ref=f18e192]: Embryos + - generic [ref=f18e193]: No calibration images yet + - generic [ref=f18e196]: + - generic [ref=f18e197]: 📷 + - generic [ref=f18e198]: Select an embryo to view calibration images + - generic [ref=f18e199]: + - generic [ref=f18e200]: + - button "▼" [ref=f18e201] [cursor=pointer] + - generic [ref=f18e202]: EXPERIMENT + - generic [ref=f18e203]: empty + - generic [ref=f18e204]: + - generic [ref=f18e205] [cursor=pointer]: overview + - generic [ref=f18e206] [cursor=pointer]: rules + - heading "Operations" [level=2] [ref=f18e210] + - generic [ref=f18e213]: + - button "▼" [ref=f18e214] [cursor=pointer] + - generic [ref=f18e215]: EVENTS + - generic [ref=f18e216]: "3" + - generic [ref=f18e217]: + - generic [ref=f18e218]: + - button "▼" [ref=f18e219] [cursor=pointer] + - generic [ref=f18e220]: PLANS + - generic [ref=f18e221]: "6" + - generic [ref=f18e222]: + - generic [ref=f18e223] [cursor=pointer]: document + - generic [ref=f18e224] [cursor=pointer]: graph + - generic [ref=f18e225] [cursor=pointer]: board + - generic [ref=f18e226] [cursor=pointer]: decisions + - generic [ref=f18e227] [cursor=pointer]: matrix + - generic [ref=f18e228] [cursor=pointer]: timeline + - generic [ref=f18e230]: + - generic [ref=f18e232]: + - generic [ref=f18e233]: Campaigns + - text: › + - generic [ref=f18e234]: + - navigation [ref=f18e235] + - main [ref=f18e237]: + - paragraph [ref=f18e240]: Loading campaigns... + - complementary [ref=f18e241]: + - generic [ref=f18e242]: + - button "Close" [ref=f18e243] [cursor=pointer] + - heading [level=2] + - generic [ref=f18e249]: + - button "▼" [ref=f18e250] [cursor=pointer] + - generic [ref=f18e251]: SESSIONS + - generic [ref=f18e252]: empty + - generic [ref=f18e254]: + - button "▼" [ref=f18e255] [cursor=pointer] + - generic [ref=f18e256]: NOTEBOOK + - generic [ref=f18e257]: "4" + - generic [ref=f18e259]: + - button "▼" [ref=f18e260] [cursor=pointer] + - generic [ref=f18e261]: GALLERY + - generic [ref=f18e262]: empty + - generic: + - generic [ref=f18e264]: + - button "▼" [ref=f18e265] [cursor=pointer] + - generic [ref=f18e266]: DEVICES + - generic [ref=f18e267]: "19" + - generic: + - generic [ref=f18e268]: + - generic [ref=f18e269]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f18e270] [cursor=pointer]: + - /url: "#" + - generic [ref=f18e271]: + - button "←" [disabled] [ref=f18e272] + - button "⌂ start" [ref=f18e273] [cursor=pointer] + - button "all" [ref=f18e274] [cursor=pointer] + - button "home" [ref=f18e275] [cursor=pointer] + - button "embryos" [ref=f18e276] [cursor=pointer] + - button "devices" [ref=f18e277] [cursor=pointer] + - button "calibration" [ref=f18e278] [cursor=pointer] + - button "experiment" [ref=f18e279] [cursor=pointer] + - button "events" [ref=f18e280] [cursor=pointer] + - button "plans" [ref=f18e281] [cursor=pointer] + - button "sessions" [ref=f18e282] [cursor=pointer] + - button "notebook" [ref=f18e283] [cursor=pointer] + - button "gallery" [ref=f18e284] [cursor=pointer] + - generic [ref=f18e285]: + - generic [ref=f18e286]: 58% + - generic [ref=f18e287]: + - text: density + - slider "density 4" [ref=f18e288]: "4" + - generic [ref=f18e289]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-18-26-267Z.yml b/.playwright-mcp/page-2026-08-24T17-18-26-267Z.yml new file mode 100644 index 00000000..793bdd70 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-18-26-267Z.yml @@ -0,0 +1,239 @@ +- generic [ref=f21e1]: + - generic [ref=f21e2]: + - generic [ref=f21e3]: + - link "Gently Microscopy" [ref=f21e4] [cursor=pointer]: + - /url: / + - generic [ref=f21e5]: + - link "db03fcbc" [ref=f21e6] [cursor=pointer]: + - /url: /review?session=db03fcbc + - button "Copy session ID" [ref=f21e7] [cursor=pointer] + - generic [ref=f21e11]: + - generic [ref=f21e12]: P + - button "Open process console" [ref=f21e14] + - link "Dashboard settings" [ref=f21e18] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f21e22] [cursor=pointer] + - button "Scope offline" [ref=f21e26] [cursor=pointer] + - generic [ref=f21e31]: + - complementary [ref=f21e32]: + - navigation [ref=f21e33]: + - generic [ref=f21e34]: + - generic [ref=f21e35]: Now + - button "Home" [ref=f21e36] [cursor=pointer] + - button "Operations" [ref=f21e37] [cursor=pointer] + - button "Embryos" [ref=f21e38] [cursor=pointer] + - generic [ref=f21e39]: + - generic [ref=f21e40]: Library + - button "Plans" [ref=f21e41] [cursor=pointer] + - button "Sessions" [ref=f21e42] [cursor=pointer] + - button "Notebook" [ref=f21e43] [cursor=pointer] + - button "Gallery" [ref=f21e44] [cursor=pointer] + - generic [ref=f21e45]: + - generic [ref=f21e46]: System + - button "Devices" [ref=f21e47] [cursor=pointer] + - button "Calibration" [ref=f21e48] [cursor=pointer] + - button "Logs" [ref=f21e49] [cursor=pointer] + - button "Talk to Gently" [ref=f21e50] [cursor=pointer] + - generic [ref=f21e52]: + - generic [ref=f21e53]: + - generic [ref=f21e54]: LIVE + - generic [ref=f21e56]: 4 embryos · Online + - contentinfo [ref=f21e57]: + - generic [ref=f21e58]: 4 embryos · 40 images · 16 events + - generic [ref=f21e59]: No active timelapse + - complementary "Agent chat" [ref=f21e60]: + - generic [ref=f21e62]: + - generic [ref=f21e63]: Agent + - generic [ref=f21e65]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f21e66] [cursor=pointer] + - generic [ref=f21e70]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f21e71]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f21e72] + - generic [ref=f21e76]: + - generic: + - generic [ref=f21e78]: + - button "▼" [ref=f21e79] [cursor=pointer] + - generic [ref=f21e80]: HOME + - generic [ref=f21e81]: 3 rows + - generic [ref=f21e82]: + - generic [ref=f21e83]: + - button "▼" [ref=f21e84] [cursor=pointer] + - generic [ref=f21e85]: EMBRYOS + - generic [ref=f21e86]: ◆ e01 + - generic [ref=f21e87]: + - generic [ref=f21e88] [cursor=pointer]: default + - generic [ref=f21e89] [cursor=pointer]: board + - generic [ref=f21e90] [cursor=pointer]: filmstrip + - generic [ref=f21e91] [cursor=pointer]: vitals + - generic [ref=f21e95]: + - generic [ref=f21e97] [cursor=pointer]: + - generic [ref=f21e98]: + - heading "Embryo Monitoring" [level=2] [ref=f21e99] + - generic [ref=f21e100]: No active timelapse + - generic [ref=f21e103]: + - generic [ref=f21e104]: + - generic [ref=f21e105]: "40" + - generic [ref=f21e106]: TP + - generic [ref=f21e107]: + - generic [ref=f21e108]: "4" + - generic [ref=f21e109]: Active + - generic [ref=f21e110]: + - generic [ref=f21e111]: "0" + - generic [ref=f21e112]: Done + - generic [ref=f21e113]: + - generic [ref=f21e114]: 2:00 + - generic [ref=f21e115]: Next + - generic [ref=f21e117]: + - generic [ref=f21e118]: + - generic [ref=f21e119]: Embryos + - generic [ref=f21e120]: + - generic "e01 — gastrula — 9 TP" [ref=f21e121] [cursor=pointer]: + - generic [ref=f21e122]: 🔬 + - generic [ref=f21e123]: e01 + - generic "e02 — Comma — 9 TP" [ref=f21e124] [cursor=pointer]: + - generic [ref=f21e125]: 🌙 + - generic [ref=f21e126]: e02 + - generic "e03 — lima-bean — 9 TP" [ref=f21e127] [cursor=pointer]: + - generic [ref=f21e128]: 🔬 + - generic [ref=f21e129]: e03 + - generic "e04 — Comma — 9 TP" [ref=f21e130] [cursor=pointer]: + - generic [ref=f21e131]: 🌙 + - generic [ref=f21e132]: e04 + - generic [ref=f21e133]: + - generic [ref=f21e134]: + - generic [ref=f21e135]: + - generic [ref=f21e136]: ● + - generic [ref=f21e137]: e01 + - generic [ref=f21e138]: 🔬 gastrula + - generic [ref=f21e139]: 5 transitions + - generic [ref=f21e140]: 10 evals + - generic [ref=f21e141]: 9 tp + - generic [ref=f21e142]: + - generic "Jump to 2-cell" [ref=f21e143] [cursor=pointer]: + - generic [ref=f21e144]: 🔬 + - text: 2-cell @ T0 + - generic "Jump to 4-cell" [ref=f21e145] [cursor=pointer]: + - generic [ref=f21e146]: 🔬 + - text: 4-cell @ T2 + - generic "Jump to 8-cell" [ref=f21e147] [cursor=pointer]: + - generic [ref=f21e148]: 🔬 + - text: 8-cell @ T4 + - generic "Jump to 26-cell" [ref=f21e149] [cursor=pointer]: + - generic [ref=f21e150]: 🔬 + - text: 26-cell @ T6 + - generic "Jump to gastrula" [ref=f21e151] [cursor=pointer]: + - generic [ref=f21e152]: 🔬 + - text: gastrula @ T8 + - generic [ref=f21e153]: + - generic [ref=f21e154]: + - generic [ref=f21e155]: Evaluations + - generic [ref=f21e156]: 10 checked, 5 stages + - generic [ref=f21e157]: + - 'generic "T0: 2-cell" [ref=f21e158] [cursor=pointer]': 🔬 + - 'generic "T1: 2-cell" [ref=f21e160] [cursor=pointer]': 🔬 + - 'generic "T2: 4-cell" [ref=f21e162] [cursor=pointer]': 🔬 + - 'generic "T3: 4-cell" [ref=f21e164] [cursor=pointer]': 🔬 + - 'generic "T4: 8-cell" [ref=f21e166] [cursor=pointer]': 🔬 + - 'generic "T5: 8-cell" [ref=f21e168] [cursor=pointer]': 🔬 + - 'generic "T6: 26-cell" [ref=f21e170] [cursor=pointer]': 🔬 + - 'generic "T7: 26-cell" [ref=f21e172] [cursor=pointer]': 🔬 + - 'generic "T8: gastrula" [ref=f21e174] [cursor=pointer]': 🔬 + - 'generic "T9: gastrula" [ref=f21e176] [cursor=pointer]': 🔬 + - generic [ref=f21e178]: + - generic [ref=f21e179]: + - button "▼" [ref=f21e180] [cursor=pointer] + - generic [ref=f21e181]: CALIBRATION + - generic [ref=f21e182]: no cal images + - generic [ref=f21e183]: + - generic [ref=f21e184] [cursor=pointer]: profile + - generic [ref=f21e185] [cursor=pointer]: gallery + - generic [ref=f21e187]: + - heading "Calibration" [level=2] [ref=f21e189] + - generic [ref=f21e190]: + - generic [ref=f21e191]: + - generic [ref=f21e192]: Embryos + - generic [ref=f21e193]: No calibration images yet + - generic [ref=f21e196]: + - generic [ref=f21e197]: 📷 + - generic [ref=f21e198]: Select an embryo to view calibration images + - generic [ref=f21e199]: + - generic [ref=f21e200]: + - button "▼" [ref=f21e201] [cursor=pointer] + - generic [ref=f21e202]: EXPERIMENT + - generic [ref=f21e203]: empty + - generic [ref=f21e204]: + - generic [ref=f21e205] [cursor=pointer]: overview + - generic [ref=f21e206] [cursor=pointer]: rules + - heading "Operations" [level=2] [ref=f21e210] + - generic [ref=f21e213]: + - button "▼" [ref=f21e214] [cursor=pointer] + - generic [ref=f21e215]: EVENTS + - generic [ref=f21e216]: no events + - generic [ref=f21e217]: + - generic [ref=f21e218]: + - button "▼" [ref=f21e219] [cursor=pointer] + - generic [ref=f21e220]: PLANS + - generic [ref=f21e221]: 6 rows + - generic [ref=f21e222]: + - generic [ref=f21e223] [cursor=pointer]: document + - generic [ref=f21e224] [cursor=pointer]: graph + - generic [ref=f21e225] [cursor=pointer]: board + - generic [ref=f21e226] [cursor=pointer]: decisions + - generic [ref=f21e227] [cursor=pointer]: matrix + - generic [ref=f21e228] [cursor=pointer]: timeline + - generic [ref=f21e230]: + - generic [ref=f21e232]: + - generic [ref=f21e233]: Campaigns + - text: › + - generic [ref=f21e234]: + - navigation [ref=f21e235] + - main [ref=f21e237]: + - paragraph [ref=f21e240]: Loading campaigns... + - complementary [ref=f21e241]: + - generic [ref=f21e242]: + - button "Close" [ref=f21e243] [cursor=pointer] + - heading [level=2] + - generic [ref=f21e249]: + - button "▼" [ref=f21e250] [cursor=pointer] + - generic [ref=f21e251]: SESSIONS + - generic [ref=f21e252]: empty + - generic [ref=f21e254]: + - button "▼" [ref=f21e255] [cursor=pointer] + - generic [ref=f21e256]: NOTEBOOK + - generic [ref=f21e257]: 4 rows + - generic [ref=f21e259]: + - button "▼" [ref=f21e260] [cursor=pointer] + - generic [ref=f21e261]: GALLERY + - generic [ref=f21e262]: no images + - generic: + - generic [ref=f21e264]: + - button "▼" [ref=f21e265] [cursor=pointer] + - generic [ref=f21e266]: DEVICES + - generic [ref=f21e267]: 19 rows + - generic: + - generic [ref=f21e268]: + - generic [ref=f21e269]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f21e270] [cursor=pointer]: + - /url: "#" + - generic [ref=f21e271]: + - button "←" [disabled] [ref=f21e272] + - button "⌂ start" [ref=f21e273] [cursor=pointer] + - button "all" [ref=f21e274] [cursor=pointer] + - button "home" [ref=f21e275] [cursor=pointer] + - button "embryos" [ref=f21e276] [cursor=pointer] + - button "devices" [ref=f21e277] [cursor=pointer] + - button "calibration" [ref=f21e278] [cursor=pointer] + - button "experiment" [ref=f21e279] [cursor=pointer] + - button "events" [ref=f21e280] [cursor=pointer] + - button "plans" [ref=f21e281] [cursor=pointer] + - button "sessions" [ref=f21e282] [cursor=pointer] + - button "notebook" [ref=f21e283] [cursor=pointer] + - button "gallery" [ref=f21e284] [cursor=pointer] + - generic [ref=f21e285]: + - generic [ref=f21e286]: 58% + - generic [ref=f21e287]: + - text: density + - slider "density 4" [ref=f21e288]: "4" + - generic [ref=f21e289]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-19-08-761Z.yml b/.playwright-mcp/page-2026-08-24T17-19-08-761Z.yml new file mode 100644 index 00000000..993b04bc --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-19-08-761Z.yml @@ -0,0 +1,239 @@ +- generic [ref=f24e1]: + - generic [ref=f24e2]: + - generic [ref=f24e3]: + - link "Gently Microscopy" [ref=f24e4] [cursor=pointer]: + - /url: / + - generic [ref=f24e5]: + - link "db03fcbc" [ref=f24e6] [cursor=pointer]: + - /url: /review?session=db03fcbc + - button "Copy session ID" [ref=f24e7] [cursor=pointer] + - generic [ref=f24e11]: + - generic [ref=f24e12]: P + - button "Open process console" [ref=f24e14] + - link "Dashboard settings" [ref=f24e18] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f24e22] [cursor=pointer] + - button "Scope offline" [ref=f24e26] [cursor=pointer] + - generic [ref=f24e31]: + - complementary [ref=f24e32]: + - navigation [ref=f24e33]: + - generic [ref=f24e34]: + - generic [ref=f24e35]: Now + - button "Home" [ref=f24e36] [cursor=pointer] + - button "Operations" [ref=f24e37] [cursor=pointer] + - button "Embryos" [ref=f24e38] [cursor=pointer] + - generic [ref=f24e39]: + - generic [ref=f24e40]: Library + - button "Plans" [ref=f24e41] [cursor=pointer] + - button "Sessions" [ref=f24e42] [cursor=pointer] + - button "Notebook" [ref=f24e43] [cursor=pointer] + - button "Gallery" [ref=f24e44] [cursor=pointer] + - generic [ref=f24e45]: + - generic [ref=f24e46]: System + - button "Devices" [ref=f24e47] [cursor=pointer] + - button "Calibration" [ref=f24e48] [cursor=pointer] + - button "Logs" [ref=f24e49] [cursor=pointer] + - button "Talk to Gently" [ref=f24e50] [cursor=pointer] + - generic [ref=f24e52]: + - generic [ref=f24e53]: + - generic [ref=f24e54]: LIVE + - generic [ref=f24e56]: 4 embryos · Online + - contentinfo [ref=f24e57]: + - generic [ref=f24e58]: 4 embryos · 40 images · 16 events + - generic [ref=f24e59]: No active timelapse + - complementary "Agent chat" [ref=f24e60]: + - generic [ref=f24e62]: + - generic [ref=f24e63]: Agent + - generic [ref=f24e65]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f24e66] [cursor=pointer] + - generic [ref=f24e70]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f24e71]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f24e72] + - generic [ref=f24e76]: + - generic: + - generic [ref=f24e78]: + - button "▼" [ref=f24e79] [cursor=pointer] + - generic [ref=f24e80]: HOME + - generic [ref=f24e81]: 3 rows + - generic [ref=f24e82]: + - generic [ref=f24e83]: + - button "▼" [ref=f24e84] [cursor=pointer] + - generic [ref=f24e85]: EMBRYOS + - generic [ref=f24e86]: no embryos + - generic [ref=f24e87]: + - generic [ref=f24e88] [cursor=pointer]: default + - generic [ref=f24e89] [cursor=pointer]: board + - generic [ref=f24e90] [cursor=pointer]: filmstrip + - generic [ref=f24e91] [cursor=pointer]: vitals + - generic [ref=f24e95]: + - generic [ref=f24e97] [cursor=pointer]: + - generic [ref=f24e98]: + - heading "Embryo Monitoring" [level=2] [ref=f24e99] + - generic [ref=f24e100]: No active timelapse + - generic [ref=f24e103]: + - generic [ref=f24e104]: + - generic [ref=f24e105]: "40" + - generic [ref=f24e106]: TP + - generic [ref=f24e107]: + - generic [ref=f24e108]: "4" + - generic [ref=f24e109]: Active + - generic [ref=f24e110]: + - generic [ref=f24e111]: "0" + - generic [ref=f24e112]: Done + - generic [ref=f24e113]: + - generic [ref=f24e114]: 2:00 + - generic [ref=f24e115]: Next + - generic [ref=f24e117]: + - generic [ref=f24e118]: + - generic [ref=f24e119]: Embryos + - generic [ref=f24e120]: + - generic "e01 — gastrula — 9 TP" [ref=f24e121] [cursor=pointer]: + - generic [ref=f24e122]: 🔬 + - generic [ref=f24e123]: e01 + - generic "e02 — Comma — 9 TP" [ref=f24e124] [cursor=pointer]: + - generic [ref=f24e125]: 🌙 + - generic [ref=f24e126]: e02 + - generic "e03 — lima-bean — 9 TP" [ref=f24e127] [cursor=pointer]: + - generic [ref=f24e128]: 🔬 + - generic [ref=f24e129]: e03 + - generic "e04 — Comma — 9 TP" [ref=f24e130] [cursor=pointer]: + - generic [ref=f24e131]: 🌙 + - generic [ref=f24e132]: e04 + - generic [ref=f24e133]: + - generic [ref=f24e134]: + - generic [ref=f24e135]: + - generic [ref=f24e136]: ● + - generic [ref=f24e137]: e01 + - generic [ref=f24e138]: 🔬 gastrula + - generic [ref=f24e139]: 5 transitions + - generic [ref=f24e140]: 10 evals + - generic [ref=f24e141]: 9 tp + - generic [ref=f24e142]: + - generic "Jump to 2-cell" [ref=f24e143] [cursor=pointer]: + - generic [ref=f24e144]: 🔬 + - text: 2-cell @ T0 + - generic "Jump to 4-cell" [ref=f24e145] [cursor=pointer]: + - generic [ref=f24e146]: 🔬 + - text: 4-cell @ T2 + - generic "Jump to 8-cell" [ref=f24e147] [cursor=pointer]: + - generic [ref=f24e148]: 🔬 + - text: 8-cell @ T4 + - generic "Jump to 26-cell" [ref=f24e149] [cursor=pointer]: + - generic [ref=f24e150]: 🔬 + - text: 26-cell @ T6 + - generic "Jump to gastrula" [ref=f24e151] [cursor=pointer]: + - generic [ref=f24e152]: 🔬 + - text: gastrula @ T8 + - generic [ref=f24e153]: + - generic [ref=f24e154]: + - generic [ref=f24e155]: Evaluations + - generic [ref=f24e156]: 10 checked, 5 stages + - generic [ref=f24e157]: + - 'generic "T0: 2-cell" [ref=f24e158] [cursor=pointer]': 🔬 + - 'generic "T1: 2-cell" [ref=f24e160] [cursor=pointer]': 🔬 + - 'generic "T2: 4-cell" [ref=f24e162] [cursor=pointer]': 🔬 + - 'generic "T3: 4-cell" [ref=f24e164] [cursor=pointer]': 🔬 + - 'generic "T4: 8-cell" [ref=f24e166] [cursor=pointer]': 🔬 + - 'generic "T5: 8-cell" [ref=f24e168] [cursor=pointer]': 🔬 + - 'generic "T6: 26-cell" [ref=f24e170] [cursor=pointer]': 🔬 + - 'generic "T7: 26-cell" [ref=f24e172] [cursor=pointer]': 🔬 + - 'generic "T8: gastrula" [ref=f24e174] [cursor=pointer]': 🔬 + - 'generic "T9: gastrula" [ref=f24e176] [cursor=pointer]': 🔬 + - generic [ref=f24e178]: + - generic [ref=f24e179]: + - button "▼" [ref=f24e180] [cursor=pointer] + - generic [ref=f24e181]: CALIBRATION + - generic [ref=f24e182]: no cal images + - generic [ref=f24e183]: + - generic [ref=f24e184] [cursor=pointer]: profile + - generic [ref=f24e185] [cursor=pointer]: gallery + - generic [ref=f24e187]: + - heading "Calibration" [level=2] [ref=f24e189] + - generic [ref=f24e190]: + - generic [ref=f24e191]: + - generic [ref=f24e192]: Embryos + - generic [ref=f24e193]: No calibration images yet + - generic [ref=f24e196]: + - generic [ref=f24e197]: 📷 + - generic [ref=f24e198]: Select an embryo to view calibration images + - generic [ref=f24e199]: + - generic [ref=f24e200]: + - button "▼" [ref=f24e201] [cursor=pointer] + - generic [ref=f24e202]: EXPERIMENT + - generic [ref=f24e203]: empty + - generic [ref=f24e204]: + - generic [ref=f24e205] [cursor=pointer]: overview + - generic [ref=f24e206] [cursor=pointer]: rules + - heading "Operations" [level=2] [ref=f24e210] + - generic [ref=f24e213]: + - button "▼" [ref=f24e214] [cursor=pointer] + - generic [ref=f24e215]: EVENTS + - generic [ref=f24e216]: no events + - generic [ref=f24e217]: + - generic [ref=f24e218]: + - button "▼" [ref=f24e219] [cursor=pointer] + - generic [ref=f24e220]: PLANS + - generic [ref=f24e221]: 6 rows + - generic [ref=f24e222]: + - generic [ref=f24e223] [cursor=pointer]: document + - generic [ref=f24e224] [cursor=pointer]: graph + - generic [ref=f24e225] [cursor=pointer]: board + - generic [ref=f24e226] [cursor=pointer]: decisions + - generic [ref=f24e227] [cursor=pointer]: matrix + - generic [ref=f24e228] [cursor=pointer]: timeline + - generic [ref=f24e230]: + - generic [ref=f24e232]: + - generic [ref=f24e233]: Campaigns + - text: › + - generic [ref=f24e234]: + - navigation [ref=f24e235] + - main [ref=f24e237]: + - paragraph [ref=f24e240]: Loading campaigns... + - complementary [ref=f24e241]: + - generic [ref=f24e242]: + - button "Close" [ref=f24e243] [cursor=pointer] + - heading [level=2] + - generic [ref=f24e249]: + - button "▼" [ref=f24e250] [cursor=pointer] + - generic [ref=f24e251]: SESSIONS + - generic [ref=f24e252]: empty + - generic [ref=f24e254]: + - button "▼" [ref=f24e255] [cursor=pointer] + - generic [ref=f24e256]: NOTEBOOK + - generic [ref=f24e257]: 4 rows + - generic [ref=f24e259]: + - button "▼" [ref=f24e260] [cursor=pointer] + - generic [ref=f24e261]: GALLERY + - generic [ref=f24e262]: no images + - generic: + - generic [ref=f24e264]: + - button "▼" [ref=f24e265] [cursor=pointer] + - generic [ref=f24e266]: DEVICES + - generic [ref=f24e267]: scope offline + - generic: + - generic [ref=f24e268]: + - generic [ref=f24e269]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f24e270] [cursor=pointer]: + - /url: "#" + - generic [ref=f24e271]: + - button "←" [disabled] [ref=f24e272] + - button "⌂ start" [ref=f24e273] [cursor=pointer] + - button "all" [ref=f24e274] [cursor=pointer] + - button "home" [ref=f24e275] [cursor=pointer] + - button "embryos" [ref=f24e276] [cursor=pointer] + - button "devices" [ref=f24e277] [cursor=pointer] + - button "calibration" [ref=f24e278] [cursor=pointer] + - button "experiment" [ref=f24e279] [cursor=pointer] + - button "events" [ref=f24e280] [cursor=pointer] + - button "plans" [ref=f24e281] [cursor=pointer] + - button "sessions" [ref=f24e282] [cursor=pointer] + - button "notebook" [ref=f24e283] [cursor=pointer] + - button "gallery" [ref=f24e284] [cursor=pointer] + - generic [ref=f24e285]: + - generic [ref=f24e286]: 58% + - generic [ref=f24e287]: + - text: density + - slider "density 4" [ref=f24e288]: "4" + - generic [ref=f24e289]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-22-01-622Z.yml b/.playwright-mcp/page-2026-08-24T17-22-01-622Z.yml new file mode 100644 index 00000000..c48c02cf --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-22-01-622Z.yml @@ -0,0 +1,239 @@ +- generic [ref=f27e1]: + - generic [ref=f27e2]: + - generic [ref=f27e3]: + - link "Gently Microscopy" [ref=f27e4] [cursor=pointer]: + - /url: / + - generic [ref=f27e5]: + - link "db03fcbc" [ref=f27e6] [cursor=pointer]: + - /url: /review?session=db03fcbc + - button "Copy session ID" [ref=f27e7] [cursor=pointer] + - generic [ref=f27e11]: + - generic [ref=f27e12]: P + - button "Open process console" [ref=f27e14] + - link "Dashboard settings" [ref=f27e18] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f27e22] [cursor=pointer] + - button "Scope offline" [ref=f27e26] [cursor=pointer] + - generic [ref=f27e31]: + - complementary [ref=f27e32]: + - navigation [ref=f27e33]: + - generic [ref=f27e34]: + - generic [ref=f27e35]: Now + - button "Home" [ref=f27e36] [cursor=pointer] + - button "Operations" [ref=f27e37] [cursor=pointer] + - button "Embryos" [ref=f27e38] [cursor=pointer] + - generic [ref=f27e39]: + - generic [ref=f27e40]: Library + - button "Plans" [ref=f27e41] [cursor=pointer] + - button "Sessions" [ref=f27e42] [cursor=pointer] + - button "Notebook" [ref=f27e43] [cursor=pointer] + - button "Gallery" [ref=f27e44] [cursor=pointer] + - generic [ref=f27e45]: + - generic [ref=f27e46]: System + - button "Devices" [ref=f27e47] [cursor=pointer] + - button "Calibration" [ref=f27e48] [cursor=pointer] + - button "Logs" [ref=f27e49] [cursor=pointer] + - button "Talk to Gently" [ref=f27e50] [cursor=pointer] + - generic [ref=f27e52]: + - generic [ref=f27e53]: + - generic [ref=f27e54]: LIVE + - generic [ref=f27e56]: 4 embryos · Online + - contentinfo [ref=f27e57]: + - generic [ref=f27e58]: 4 embryos · 40 images · 16 events + - generic [ref=f27e59]: No active timelapse + - complementary "Agent chat" [ref=f27e60]: + - generic [ref=f27e62]: + - generic [ref=f27e63]: Agent + - generic [ref=f27e65]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f27e66] [cursor=pointer] + - generic [ref=f27e70]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f27e71]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f27e72] + - generic [ref=f27e76]: + - generic: + - generic [ref=f27e78]: + - button "▼" [ref=f27e79] [cursor=pointer] + - generic [ref=f27e80]: HOME + - generic [ref=f27e81]: 3 rows + - generic [ref=f27e82]: + - generic [ref=f27e83]: + - button "▼" [ref=f27e84] [cursor=pointer] + - generic [ref=f27e85]: EMBRYOS + - generic [ref=f27e86]: no embryos + - generic [ref=f27e87]: + - generic [ref=f27e88] [cursor=pointer]: default + - generic [ref=f27e89] [cursor=pointer]: board + - generic [ref=f27e90] [cursor=pointer]: filmstrip + - generic [ref=f27e91] [cursor=pointer]: vitals + - generic [ref=f27e95]: + - generic [ref=f27e97] [cursor=pointer]: + - generic [ref=f27e98]: + - heading "Embryo Monitoring" [level=2] [ref=f27e99] + - generic [ref=f27e100]: No active timelapse + - generic [ref=f27e103]: + - generic [ref=f27e104]: + - generic [ref=f27e105]: "40" + - generic [ref=f27e106]: TP + - generic [ref=f27e107]: + - generic [ref=f27e108]: "4" + - generic [ref=f27e109]: Active + - generic [ref=f27e110]: + - generic [ref=f27e111]: "0" + - generic [ref=f27e112]: Done + - generic [ref=f27e113]: + - generic [ref=f27e114]: 2:00 + - generic [ref=f27e115]: Next + - generic [ref=f27e117]: + - generic [ref=f27e118]: + - generic [ref=f27e119]: Embryos + - generic [ref=f27e120]: + - generic "e01 — gastrula — 9 TP" [ref=f27e121] [cursor=pointer]: + - generic [ref=f27e122]: 🔬 + - generic [ref=f27e123]: e01 + - generic "e02 — Comma — 9 TP" [ref=f27e124] [cursor=pointer]: + - generic [ref=f27e125]: 🌙 + - generic [ref=f27e126]: e02 + - generic "e03 — lima-bean — 9 TP" [ref=f27e127] [cursor=pointer]: + - generic [ref=f27e128]: 🔬 + - generic [ref=f27e129]: e03 + - generic "e04 — Comma — 9 TP" [ref=f27e130] [cursor=pointer]: + - generic [ref=f27e131]: 🌙 + - generic [ref=f27e132]: e04 + - generic [ref=f27e133]: + - generic [ref=f27e134]: + - generic [ref=f27e135]: + - generic [ref=f27e136]: ● + - generic [ref=f27e137]: e01 + - generic [ref=f27e138]: 🔬 gastrula + - generic [ref=f27e139]: 5 transitions + - generic [ref=f27e140]: 10 evals + - generic [ref=f27e141]: 9 tp + - generic [ref=f27e142]: + - generic "Jump to 2-cell" [ref=f27e143] [cursor=pointer]: + - generic [ref=f27e144]: 🔬 + - text: 2-cell @ T0 + - generic "Jump to 4-cell" [ref=f27e145] [cursor=pointer]: + - generic [ref=f27e146]: 🔬 + - text: 4-cell @ T2 + - generic "Jump to 8-cell" [ref=f27e147] [cursor=pointer]: + - generic [ref=f27e148]: 🔬 + - text: 8-cell @ T4 + - generic "Jump to 26-cell" [ref=f27e149] [cursor=pointer]: + - generic [ref=f27e150]: 🔬 + - text: 26-cell @ T6 + - generic "Jump to gastrula" [ref=f27e151] [cursor=pointer]: + - generic [ref=f27e152]: 🔬 + - text: gastrula @ T8 + - generic [ref=f27e153]: + - generic [ref=f27e154]: + - generic [ref=f27e155]: Evaluations + - generic [ref=f27e156]: 10 checked, 5 stages + - generic [ref=f27e157]: + - 'generic "T0: 2-cell" [ref=f27e158] [cursor=pointer]': 🔬 + - 'generic "T1: 2-cell" [ref=f27e160] [cursor=pointer]': 🔬 + - 'generic "T2: 4-cell" [ref=f27e162] [cursor=pointer]': 🔬 + - 'generic "T3: 4-cell" [ref=f27e164] [cursor=pointer]': 🔬 + - 'generic "T4: 8-cell" [ref=f27e166] [cursor=pointer]': 🔬 + - 'generic "T5: 8-cell" [ref=f27e168] [cursor=pointer]': 🔬 + - 'generic "T6: 26-cell" [ref=f27e170] [cursor=pointer]': 🔬 + - 'generic "T7: 26-cell" [ref=f27e172] [cursor=pointer]': 🔬 + - 'generic "T8: gastrula" [ref=f27e174] [cursor=pointer]': 🔬 + - 'generic "T9: gastrula" [ref=f27e176] [cursor=pointer]': 🔬 + - generic [ref=f27e178]: + - generic [ref=f27e179]: + - button "▼" [ref=f27e180] [cursor=pointer] + - generic [ref=f27e181]: CALIBRATION + - generic [ref=f27e182]: no cal images + - generic [ref=f27e183]: + - generic [ref=f27e184] [cursor=pointer]: profile + - generic [ref=f27e185] [cursor=pointer]: gallery + - generic [ref=f27e187]: + - heading "Calibration" [level=2] [ref=f27e189] + - generic [ref=f27e190]: + - generic [ref=f27e191]: + - generic [ref=f27e192]: Embryos + - generic [ref=f27e193]: No calibration images yet + - generic [ref=f27e196]: + - generic [ref=f27e197]: 📷 + - generic [ref=f27e198]: Select an embryo to view calibration images + - generic [ref=f27e199]: + - generic [ref=f27e200]: + - button "▼" [ref=f27e201] [cursor=pointer] + - generic [ref=f27e202]: EXPERIMENT + - generic [ref=f27e203]: empty + - generic [ref=f27e204]: + - generic [ref=f27e205] [cursor=pointer]: overview + - generic [ref=f27e206] [cursor=pointer]: rules + - heading "Operations" [level=2] [ref=f27e210] + - generic [ref=f27e213]: + - button "▼" [ref=f27e214] [cursor=pointer] + - generic [ref=f27e215]: EVENTS + - generic [ref=f27e216]: no events + - generic [ref=f27e217]: + - generic [ref=f27e218]: + - button "▼" [ref=f27e219] [cursor=pointer] + - generic [ref=f27e220]: PLANS + - generic [ref=f27e221]: 6 rows + - generic [ref=f27e222]: + - generic [ref=f27e223] [cursor=pointer]: document + - generic [ref=f27e224] [cursor=pointer]: graph + - generic [ref=f27e225] [cursor=pointer]: board + - generic [ref=f27e226] [cursor=pointer]: decisions + - generic [ref=f27e227] [cursor=pointer]: matrix + - generic [ref=f27e228] [cursor=pointer]: timeline + - generic [ref=f27e230]: + - generic [ref=f27e232]: + - generic [ref=f27e233]: Campaigns + - text: › + - generic [ref=f27e234]: + - navigation [ref=f27e235] + - main [ref=f27e237]: + - paragraph [ref=f27e240]: Loading campaigns... + - complementary [ref=f27e241]: + - generic [ref=f27e242]: + - button "Close" [ref=f27e243] [cursor=pointer] + - heading [level=2] + - generic [ref=f27e249]: + - button "▼" [ref=f27e250] [cursor=pointer] + - generic [ref=f27e251]: SESSIONS + - generic [ref=f27e252]: empty + - generic [ref=f27e254]: + - button "▼" [ref=f27e255] [cursor=pointer] + - generic [ref=f27e256]: NOTEBOOK + - generic [ref=f27e257]: 4 rows + - generic [ref=f27e259]: + - button "▼" [ref=f27e260] [cursor=pointer] + - generic [ref=f27e261]: GALLERY + - generic [ref=f27e262]: no images + - generic: + - generic [ref=f27e264]: + - button "▼" [ref=f27e265] [cursor=pointer] + - generic [ref=f27e266]: DEVICES + - generic [ref=f27e267]: scope offline + - generic: + - generic [ref=f27e268]: + - generic [ref=f27e269]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f27e270] [cursor=pointer]: + - /url: "#" + - generic [ref=f27e271]: + - button "←" [disabled] [ref=f27e272] + - button "⌂ start" [ref=f27e273] [cursor=pointer] + - button "all" [ref=f27e274] [cursor=pointer] + - button "home" [ref=f27e275] [cursor=pointer] + - button "embryos" [ref=f27e276] [cursor=pointer] + - button "devices" [ref=f27e277] [cursor=pointer] + - button "calibration" [ref=f27e278] [cursor=pointer] + - button "experiment" [ref=f27e279] [cursor=pointer] + - button "events" [ref=f27e280] [cursor=pointer] + - button "plans" [ref=f27e281] [cursor=pointer] + - button "sessions" [ref=f27e282] [cursor=pointer] + - button "notebook" [ref=f27e283] [cursor=pointer] + - button "gallery" [ref=f27e284] [cursor=pointer] + - generic [ref=f27e285]: + - generic [ref=f27e286]: 58% + - generic [ref=f27e287]: + - text: density + - slider "density 4" [ref=f27e288]: "4" + - generic [ref=f27e289]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-23-42-629Z.yml b/.playwright-mcp/page-2026-08-24T17-23-42-629Z.yml new file mode 100644 index 00000000..7ac4f7d4 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-23-42-629Z.yml @@ -0,0 +1,239 @@ +- generic [ref=f30e1]: + - generic [ref=f30e2]: + - generic [ref=f30e3]: + - link "Gently Microscopy" [ref=f30e4] [cursor=pointer]: + - /url: / + - generic [ref=f30e5]: + - link "db03fcbc" [ref=f30e6] [cursor=pointer]: + - /url: /review?session=db03fcbc + - button "Copy session ID" [ref=f30e7] [cursor=pointer] + - generic [ref=f30e11]: + - generic [ref=f30e12]: P + - button "Open process console" [ref=f30e14] + - link "Dashboard settings" [ref=f30e18] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f30e22] [cursor=pointer] + - button "Scope offline" [ref=f30e26] [cursor=pointer] + - generic [ref=f30e31]: + - complementary [ref=f30e32]: + - navigation [ref=f30e33]: + - generic [ref=f30e34]: + - generic [ref=f30e35]: Now + - button "Home" [ref=f30e36] [cursor=pointer] + - button "Operations" [ref=f30e37] [cursor=pointer] + - button "Embryos" [ref=f30e38] [cursor=pointer] + - generic [ref=f30e39]: + - generic [ref=f30e40]: Library + - button "Plans" [ref=f30e41] [cursor=pointer] + - button "Sessions" [ref=f30e42] [cursor=pointer] + - button "Notebook" [ref=f30e43] [cursor=pointer] + - button "Gallery" [ref=f30e44] [cursor=pointer] + - generic [ref=f30e45]: + - generic [ref=f30e46]: System + - button "Devices" [ref=f30e47] [cursor=pointer] + - button "Calibration" [ref=f30e48] [cursor=pointer] + - button "Logs" [ref=f30e49] [cursor=pointer] + - button "Talk to Gently" [ref=f30e50] [cursor=pointer] + - generic [ref=f30e52]: + - generic [ref=f30e53]: + - generic [ref=f30e54]: LIVE + - generic [ref=f30e56]: 4 embryos · Online + - contentinfo [ref=f30e57]: + - generic [ref=f30e58]: 4 embryos · 40 images · 16 events + - generic [ref=f30e59]: No active timelapse + - complementary "Agent chat" [ref=f30e60]: + - generic [ref=f30e62]: + - generic [ref=f30e63]: Agent + - generic [ref=f30e65]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f30e66] [cursor=pointer] + - generic [ref=f30e70]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f30e71]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f30e72] + - generic [ref=f30e76]: + - generic: + - generic [ref=f30e78]: + - button "▼" [ref=f30e79] [cursor=pointer] + - generic [ref=f30e80]: HOME + - generic [ref=f30e81]: 3 rows + - generic [ref=f30e82]: + - generic [ref=f30e83]: + - button "▼" [ref=f30e84] [cursor=pointer] + - generic [ref=f30e85]: EMBRYOS + - generic [ref=f30e86]: no embryos + - generic [ref=f30e87]: + - generic [ref=f30e88] [cursor=pointer]: default + - generic [ref=f30e89] [cursor=pointer]: board + - generic [ref=f30e90] [cursor=pointer]: filmstrip + - generic [ref=f30e91] [cursor=pointer]: vitals + - generic [ref=f30e95]: + - generic [ref=f30e97] [cursor=pointer]: + - generic [ref=f30e98]: + - heading "Embryo Monitoring" [level=2] [ref=f30e99] + - generic [ref=f30e100]: No active timelapse + - generic [ref=f30e103]: + - generic [ref=f30e104]: + - generic [ref=f30e105]: "40" + - generic [ref=f30e106]: TP + - generic [ref=f30e107]: + - generic [ref=f30e108]: "4" + - generic [ref=f30e109]: Active + - generic [ref=f30e110]: + - generic [ref=f30e111]: "0" + - generic [ref=f30e112]: Done + - generic [ref=f30e113]: + - generic [ref=f30e114]: 2:00 + - generic [ref=f30e115]: Next + - generic [ref=f30e117]: + - generic [ref=f30e118]: + - generic [ref=f30e119]: Embryos + - generic [ref=f30e120]: + - generic "e01 — gastrula — 9 TP" [ref=f30e121] [cursor=pointer]: + - generic [ref=f30e122]: 🔬 + - generic [ref=f30e123]: e01 + - generic "e02 — Comma — 9 TP" [ref=f30e124] [cursor=pointer]: + - generic [ref=f30e125]: 🌙 + - generic [ref=f30e126]: e02 + - generic "e03 — lima-bean — 9 TP" [ref=f30e127] [cursor=pointer]: + - generic [ref=f30e128]: 🔬 + - generic [ref=f30e129]: e03 + - generic "e04 — Comma — 9 TP" [ref=f30e130] [cursor=pointer]: + - generic [ref=f30e131]: 🌙 + - generic [ref=f30e132]: e04 + - generic [ref=f30e133]: + - generic [ref=f30e134]: + - generic [ref=f30e135]: + - generic [ref=f30e136]: ● + - generic [ref=f30e137]: e01 + - generic [ref=f30e138]: 🔬 gastrula + - generic [ref=f30e139]: 5 transitions + - generic [ref=f30e140]: 10 evals + - generic [ref=f30e141]: 9 tp + - generic [ref=f30e142]: + - generic "Jump to 2-cell" [ref=f30e143] [cursor=pointer]: + - generic [ref=f30e144]: 🔬 + - text: 2-cell @ T0 + - generic "Jump to 4-cell" [ref=f30e145] [cursor=pointer]: + - generic [ref=f30e146]: 🔬 + - text: 4-cell @ T2 + - generic "Jump to 8-cell" [ref=f30e147] [cursor=pointer]: + - generic [ref=f30e148]: 🔬 + - text: 8-cell @ T4 + - generic "Jump to 26-cell" [ref=f30e149] [cursor=pointer]: + - generic [ref=f30e150]: 🔬 + - text: 26-cell @ T6 + - generic "Jump to gastrula" [ref=f30e151] [cursor=pointer]: + - generic [ref=f30e152]: 🔬 + - text: gastrula @ T8 + - generic [ref=f30e153]: + - generic [ref=f30e154]: + - generic [ref=f30e155]: Evaluations + - generic [ref=f30e156]: 10 checked, 5 stages + - generic [ref=f30e157]: + - 'generic "T0: 2-cell" [ref=f30e158] [cursor=pointer]': 🔬 + - 'generic "T1: 2-cell" [ref=f30e160] [cursor=pointer]': 🔬 + - 'generic "T2: 4-cell" [ref=f30e162] [cursor=pointer]': 🔬 + - 'generic "T3: 4-cell" [ref=f30e164] [cursor=pointer]': 🔬 + - 'generic "T4: 8-cell" [ref=f30e166] [cursor=pointer]': 🔬 + - 'generic "T5: 8-cell" [ref=f30e168] [cursor=pointer]': 🔬 + - 'generic "T6: 26-cell" [ref=f30e170] [cursor=pointer]': 🔬 + - 'generic "T7: 26-cell" [ref=f30e172] [cursor=pointer]': 🔬 + - 'generic "T8: gastrula" [ref=f30e174] [cursor=pointer]': 🔬 + - 'generic "T9: gastrula" [ref=f30e176] [cursor=pointer]': 🔬 + - generic [ref=f30e178]: + - generic [ref=f30e179]: + - button "▼" [ref=f30e180] [cursor=pointer] + - generic [ref=f30e181]: CALIBRATION + - generic [ref=f30e182]: no cal images + - generic [ref=f30e183]: + - generic [ref=f30e184] [cursor=pointer]: profile + - generic [ref=f30e185] [cursor=pointer]: gallery + - generic [ref=f30e187]: + - heading "Calibration" [level=2] [ref=f30e189] + - generic [ref=f30e190]: + - generic [ref=f30e191]: + - generic [ref=f30e192]: Embryos + - generic [ref=f30e193]: No calibration images yet + - generic [ref=f30e196]: + - generic [ref=f30e197]: 📷 + - generic [ref=f30e198]: Select an embryo to view calibration images + - generic [ref=f30e199]: + - generic [ref=f30e200]: + - button "▼" [ref=f30e201] [cursor=pointer] + - generic [ref=f30e202]: EXPERIMENT + - generic [ref=f30e203]: empty + - generic [ref=f30e204]: + - generic [ref=f30e205] [cursor=pointer]: overview + - generic [ref=f30e206] [cursor=pointer]: rules + - heading "Operations" [level=2] [ref=f30e210] + - generic [ref=f30e213]: + - button "▼" [ref=f30e214] [cursor=pointer] + - generic [ref=f30e215]: EVENTS + - generic [ref=f30e216]: no events + - generic [ref=f30e217]: + - generic [ref=f30e218]: + - button "▼" [ref=f30e219] [cursor=pointer] + - generic [ref=f30e220]: PLANS + - generic [ref=f30e221]: 6 rows + - generic [ref=f30e222]: + - generic [ref=f30e223] [cursor=pointer]: document + - generic [ref=f30e224] [cursor=pointer]: graph + - generic [ref=f30e225] [cursor=pointer]: board + - generic [ref=f30e226] [cursor=pointer]: decisions + - generic [ref=f30e227] [cursor=pointer]: matrix + - generic [ref=f30e228] [cursor=pointer]: timeline + - generic [ref=f30e230]: + - generic [ref=f30e232]: + - generic [ref=f30e233]: Campaigns + - text: › + - generic [ref=f30e234]: + - navigation [ref=f30e235] + - main [ref=f30e237]: + - paragraph [ref=f30e240]: Loading campaigns... + - complementary [ref=f30e241]: + - generic [ref=f30e242]: + - button "Close" [ref=f30e243] [cursor=pointer] + - heading [level=2] + - generic [ref=f30e249]: + - button "▼" [ref=f30e250] [cursor=pointer] + - generic [ref=f30e251]: SESSIONS + - generic [ref=f30e252]: empty + - generic [ref=f30e254]: + - button "▼" [ref=f30e255] [cursor=pointer] + - generic [ref=f30e256]: NOTEBOOK + - generic [ref=f30e257]: 4 rows + - generic [ref=f30e259]: + - button "▼" [ref=f30e260] [cursor=pointer] + - generic [ref=f30e261]: GALLERY + - generic [ref=f30e262]: no images + - generic: + - generic [ref=f30e264]: + - button "▼" [ref=f30e265] [cursor=pointer] + - generic [ref=f30e266]: DEVICES + - generic [ref=f30e267]: scope offline + - generic: + - generic [ref=f30e268]: + - generic [ref=f30e269]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f30e270] [cursor=pointer]: + - /url: "#" + - generic [ref=f30e271]: + - button "←" [disabled] [ref=f30e272] + - button "⌂ start" [ref=f30e273] [cursor=pointer] + - button "all" [ref=f30e274] [cursor=pointer] + - button "home" [ref=f30e275] [cursor=pointer] + - button "embryos" [ref=f30e276] [cursor=pointer] + - button "devices" [ref=f30e277] [cursor=pointer] + - button "calibration" [ref=f30e278] [cursor=pointer] + - button "experiment" [ref=f30e279] [cursor=pointer] + - button "events" [ref=f30e280] [cursor=pointer] + - button "plans" [ref=f30e281] [cursor=pointer] + - button "sessions" [ref=f30e282] [cursor=pointer] + - button "notebook" [ref=f30e283] [cursor=pointer] + - button "gallery" [ref=f30e284] [cursor=pointer] + - generic [ref=f30e285]: + - generic [ref=f30e286]: 58% + - generic [ref=f30e287]: + - text: density + - slider "density 4" [ref=f30e288]: "4" + - generic [ref=f30e289]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-25-28-775Z.yml b/.playwright-mcp/page-2026-08-24T17-25-28-775Z.yml new file mode 100644 index 00000000..5a2b89a8 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-25-28-775Z.yml @@ -0,0 +1,239 @@ +- generic [ref=f33e1]: + - generic [ref=f33e2]: + - generic [ref=f33e3]: + - link "Gently Microscopy" [ref=f33e4] [cursor=pointer]: + - /url: / + - generic [ref=f33e5]: + - link "db03fcbc" [ref=f33e6] [cursor=pointer]: + - /url: /review?session=db03fcbc + - button "Copy session ID" [ref=f33e7] [cursor=pointer] + - generic [ref=f33e11]: + - generic [ref=f33e12]: P + - button "Open process console" [ref=f33e14] + - link "Dashboard settings" [ref=f33e18] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f33e22] [cursor=pointer] + - button "Scope offline" [ref=f33e26] [cursor=pointer] + - generic [ref=f33e31]: + - complementary [ref=f33e32]: + - navigation [ref=f33e33]: + - generic [ref=f33e34]: + - generic [ref=f33e35]: Now + - button "Home" [ref=f33e36] [cursor=pointer] + - button "Operations" [ref=f33e37] [cursor=pointer] + - button "Embryos" [ref=f33e38] [cursor=pointer] + - generic [ref=f33e39]: + - generic [ref=f33e40]: Library + - button "Plans" [ref=f33e41] [cursor=pointer] + - button "Sessions" [ref=f33e42] [cursor=pointer] + - button "Notebook" [ref=f33e43] [cursor=pointer] + - button "Gallery" [ref=f33e44] [cursor=pointer] + - generic [ref=f33e45]: + - generic [ref=f33e46]: System + - button "Devices" [ref=f33e47] [cursor=pointer] + - button "Calibration" [ref=f33e48] [cursor=pointer] + - button "Logs" [ref=f33e49] [cursor=pointer] + - button "Talk to Gently" [ref=f33e50] [cursor=pointer] + - generic [ref=f33e52]: + - generic [ref=f33e53]: + - generic [ref=f33e54]: LIVE + - generic [ref=f33e56]: 4 embryos · Online + - contentinfo [ref=f33e57]: + - generic [ref=f33e58]: 4 embryos · 40 images · 16 events + - generic [ref=f33e59]: No active timelapse + - complementary "Agent chat" [ref=f33e60]: + - generic [ref=f33e62]: + - generic [ref=f33e63]: Agent + - generic [ref=f33e65]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f33e66] [cursor=pointer] + - generic [ref=f33e70]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f33e71]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f33e72] + - generic [ref=f33e76]: + - generic: + - generic [ref=f33e78]: + - button "▼" [ref=f33e79] [cursor=pointer] + - generic [ref=f33e80]: HOME + - generic [ref=f33e81]: 3 rows + - generic [ref=f33e82]: + - generic [ref=f33e83]: + - button "▼" [ref=f33e84] [cursor=pointer] + - generic [ref=f33e85]: EMBRYOS + - generic [ref=f33e86]: no embryos + - generic [ref=f33e87]: + - generic [ref=f33e88] [cursor=pointer]: default + - generic [ref=f33e89] [cursor=pointer]: board + - generic [ref=f33e90] [cursor=pointer]: filmstrip + - generic [ref=f33e91] [cursor=pointer]: vitals + - generic [ref=f33e95]: + - generic [ref=f33e97] [cursor=pointer]: + - generic [ref=f33e98]: + - heading "Embryo Monitoring" [level=2] [ref=f33e99] + - generic [ref=f33e100]: No active timelapse + - generic [ref=f33e103]: + - generic [ref=f33e104]: + - generic [ref=f33e105]: "40" + - generic [ref=f33e106]: TP + - generic [ref=f33e107]: + - generic [ref=f33e108]: "4" + - generic [ref=f33e109]: Active + - generic [ref=f33e110]: + - generic [ref=f33e111]: "0" + - generic [ref=f33e112]: Done + - generic [ref=f33e113]: + - generic [ref=f33e114]: 2:00 + - generic [ref=f33e115]: Next + - generic [ref=f33e117]: + - generic [ref=f33e118]: + - generic [ref=f33e119]: Embryos + - generic [ref=f33e120]: + - generic "e01 — gastrula — 9 TP" [ref=f33e121] [cursor=pointer]: + - generic [ref=f33e122]: 🔬 + - generic [ref=f33e123]: e01 + - generic "e02 — Comma — 9 TP" [ref=f33e124] [cursor=pointer]: + - generic [ref=f33e125]: 🌙 + - generic [ref=f33e126]: e02 + - generic "e03 — lima-bean — 9 TP" [ref=f33e127] [cursor=pointer]: + - generic [ref=f33e128]: 🔬 + - generic [ref=f33e129]: e03 + - generic "e04 — Comma — 9 TP" [ref=f33e130] [cursor=pointer]: + - generic [ref=f33e131]: 🌙 + - generic [ref=f33e132]: e04 + - generic [ref=f33e133]: + - generic [ref=f33e134]: + - generic [ref=f33e135]: + - generic [ref=f33e136]: ● + - generic [ref=f33e137]: e01 + - generic [ref=f33e138]: 🔬 gastrula + - generic [ref=f33e139]: 5 transitions + - generic [ref=f33e140]: 10 evals + - generic [ref=f33e141]: 9 tp + - generic [ref=f33e142]: + - generic "Jump to 2-cell" [ref=f33e143] [cursor=pointer]: + - generic [ref=f33e144]: 🔬 + - text: 2-cell @ T0 + - generic "Jump to 4-cell" [ref=f33e145] [cursor=pointer]: + - generic [ref=f33e146]: 🔬 + - text: 4-cell @ T2 + - generic "Jump to 8-cell" [ref=f33e147] [cursor=pointer]: + - generic [ref=f33e148]: 🔬 + - text: 8-cell @ T4 + - generic "Jump to 26-cell" [ref=f33e149] [cursor=pointer]: + - generic [ref=f33e150]: 🔬 + - text: 26-cell @ T6 + - generic "Jump to gastrula" [ref=f33e151] [cursor=pointer]: + - generic [ref=f33e152]: 🔬 + - text: gastrula @ T8 + - generic [ref=f33e153]: + - generic [ref=f33e154]: + - generic [ref=f33e155]: Evaluations + - generic [ref=f33e156]: 10 checked, 5 stages + - generic [ref=f33e157]: + - 'generic "T0: 2-cell" [ref=f33e158] [cursor=pointer]': 🔬 + - 'generic "T1: 2-cell" [ref=f33e160] [cursor=pointer]': 🔬 + - 'generic "T2: 4-cell" [ref=f33e162] [cursor=pointer]': 🔬 + - 'generic "T3: 4-cell" [ref=f33e164] [cursor=pointer]': 🔬 + - 'generic "T4: 8-cell" [ref=f33e166] [cursor=pointer]': 🔬 + - 'generic "T5: 8-cell" [ref=f33e168] [cursor=pointer]': 🔬 + - 'generic "T6: 26-cell" [ref=f33e170] [cursor=pointer]': 🔬 + - 'generic "T7: 26-cell" [ref=f33e172] [cursor=pointer]': 🔬 + - 'generic "T8: gastrula" [ref=f33e174] [cursor=pointer]': 🔬 + - 'generic "T9: gastrula" [ref=f33e176] [cursor=pointer]': 🔬 + - generic [ref=f33e178]: + - generic [ref=f33e179]: + - button "▼" [ref=f33e180] [cursor=pointer] + - generic [ref=f33e181]: CALIBRATION + - generic [ref=f33e182]: no cal images + - generic [ref=f33e183]: + - generic [ref=f33e184] [cursor=pointer]: profile + - generic [ref=f33e185] [cursor=pointer]: gallery + - generic [ref=f33e187]: + - heading "Calibration" [level=2] [ref=f33e189] + - generic [ref=f33e190]: + - generic [ref=f33e191]: + - generic [ref=f33e192]: Embryos + - generic [ref=f33e193]: No calibration images yet + - generic [ref=f33e196]: + - generic [ref=f33e197]: 📷 + - generic [ref=f33e198]: Select an embryo to view calibration images + - generic [ref=f33e199]: + - generic [ref=f33e200]: + - button "▼" [ref=f33e201] [cursor=pointer] + - generic [ref=f33e202]: EXPERIMENT + - generic [ref=f33e203]: empty + - generic [ref=f33e204]: + - generic [ref=f33e205] [cursor=pointer]: overview + - generic [ref=f33e206] [cursor=pointer]: rules + - heading "Operations" [level=2] [ref=f33e210] + - generic [ref=f33e213]: + - button "▼" [ref=f33e214] [cursor=pointer] + - generic [ref=f33e215]: EVENTS + - generic [ref=f33e216]: no events + - generic [ref=f33e217]: + - generic [ref=f33e218]: + - button "▼" [ref=f33e219] [cursor=pointer] + - generic [ref=f33e220]: PLANS + - generic [ref=f33e221]: 6 rows + - generic [ref=f33e222]: + - generic [ref=f33e223] [cursor=pointer]: document + - generic [ref=f33e224] [cursor=pointer]: graph + - generic [ref=f33e225] [cursor=pointer]: board + - generic [ref=f33e226] [cursor=pointer]: decisions + - generic [ref=f33e227] [cursor=pointer]: matrix + - generic [ref=f33e228] [cursor=pointer]: timeline + - generic [ref=f33e230]: + - generic [ref=f33e232]: + - generic [ref=f33e233]: Campaigns + - text: › + - generic [ref=f33e234]: + - navigation [ref=f33e235] + - main [ref=f33e237]: + - paragraph [ref=f33e240]: Loading campaigns... + - complementary [ref=f33e241]: + - generic [ref=f33e242]: + - button "Close" [ref=f33e243] [cursor=pointer] + - heading [level=2] + - generic [ref=f33e249]: + - button "▼" [ref=f33e250] [cursor=pointer] + - generic [ref=f33e251]: SESSIONS + - generic [ref=f33e252]: empty + - generic [ref=f33e254]: + - button "▼" [ref=f33e255] [cursor=pointer] + - generic [ref=f33e256]: NOTEBOOK + - generic [ref=f33e257]: 4 rows + - generic [ref=f33e259]: + - button "▼" [ref=f33e260] [cursor=pointer] + - generic [ref=f33e261]: GALLERY + - generic [ref=f33e262]: no images + - generic: + - generic [ref=f33e264]: + - button "▼" [ref=f33e265] [cursor=pointer] + - generic [ref=f33e266]: DEVICES + - generic [ref=f33e267]: scope offline + - generic: + - generic [ref=f33e268]: + - generic [ref=f33e269]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f33e270] [cursor=pointer]: + - /url: "#" + - generic [ref=f33e271]: + - button "←" [disabled] [ref=f33e272] + - button "⌂ start" [ref=f33e273] [cursor=pointer] + - button "all" [ref=f33e274] [cursor=pointer] + - button "home" [ref=f33e275] [cursor=pointer] + - button "embryos" [ref=f33e276] [cursor=pointer] + - button "devices" [ref=f33e277] [cursor=pointer] + - button "calibration" [ref=f33e278] [cursor=pointer] + - button "experiment" [ref=f33e279] [cursor=pointer] + - button "events" [ref=f33e280] [cursor=pointer] + - button "plans" [ref=f33e281] [cursor=pointer] + - button "sessions" [ref=f33e282] [cursor=pointer] + - button "notebook" [ref=f33e283] [cursor=pointer] + - button "gallery" [ref=f33e284] [cursor=pointer] + - generic [ref=f33e285]: + - generic [ref=f33e286]: 58% + - generic [ref=f33e287]: + - text: density + - slider "density 4" [ref=f33e288]: "4" + - generic [ref=f33e289]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-32-40-158Z.yml b/.playwright-mcp/page-2026-08-24T17-32-40-158Z.yml new file mode 100644 index 00000000..fa1a7cab --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-32-40-158Z.yml @@ -0,0 +1,15 @@ +- generic [ref=f40e2]: + - generic [ref=f40e3]: Gently + - paragraph [ref=f40e6]: What are we doing today? + - switch "Microscope" [ref=f40e7] [cursor=pointer]: + - generic [ref=f40e12]: + - generic [ref=f40e13]: Microscope + - generic [ref=f40e14]: Not this session — saved data only. + - switch "Assistant" [checked] [ref=f40e16] [cursor=pointer]: + - generic [ref=f40e20]: + - generic [ref=f40e21]: Assistant + - generic [ref=f40e22]: Help find embryos and watch the timelapse. + - button "Open →" [ref=f40e24] [cursor=pointer]: + - text: Open + - generic [ref=f40e25]: → + - generic [ref=f40e27]: Remembers your last choice \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-32-55-500Z.yml b/.playwright-mcp/page-2026-08-24T17-32-55-500Z.yml new file mode 100644 index 00000000..0f554087 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-32-55-500Z.yml @@ -0,0 +1,197 @@ +- generic [ref=f43e1]: + - generic "Welcome to Gently" [ref=f43e2]: + - button "Toggle theme" [ref=f43e3] [cursor=pointer] + - generic [ref=f43e7]: + - generic [ref=f43e8]: Good evening.What are we doing today? + - generic [ref=f43e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f43e12] [cursor=pointer]: + - generic [ref=f43e13]: guided + - heading "Plan an experiment" [level=3] [ref=f43e17] + - paragraph [ref=f43e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f43e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f43e22] [cursor=pointer]: + - generic [ref=f43e23]: standalone + - heading "Take a quick look" [level=3] [ref=f43e28] + - paragraph [ref=f43e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f43e30]: Open the scope + - generic [ref=f43e33]: + - button "or just tell me what you need" [ref=f43e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f43e40] + - button "Send" [ref=f43e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f43e44] [cursor=pointer] + - generic [ref=f43e45]: + - generic [ref=f43e46]: + - link "Gently Microscopy" [ref=f43e47] [cursor=pointer]: + - /url: / + - generic [ref=f43e48]: + - link "ced24add" [ref=f43e49] [cursor=pointer]: + - /url: /review?session=ced24add + - button "Copy session ID" [ref=f43e50] [cursor=pointer] + - generic [ref=f43e54]: + - generic [ref=f43e55]: P + - button "Open process console" [ref=f43e57] + - link "Dashboard settings" [ref=f43e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f43e65] [cursor=pointer] + - button "Scope offline" [ref=f43e69] [cursor=pointer] + - generic [ref=f43e74]: + - complementary [ref=f43e75]: + - navigation [ref=f43e76]: + - generic [ref=f43e77]: + - generic [ref=f43e78]: Now + - button "Home" [ref=f43e79] [cursor=pointer] + - button "Operations" [ref=f43e80] [cursor=pointer] + - button "Embryos" [ref=f43e81] [cursor=pointer] + - generic [ref=f43e82]: + - generic [ref=f43e83]: Library + - button "Plans" [ref=f43e84] [cursor=pointer] + - button "Sessions" [ref=f43e85] [cursor=pointer] + - button "Notebook" [ref=f43e86] [cursor=pointer] + - button "Gallery" [ref=f43e87] [cursor=pointer] + - generic [ref=f43e88]: + - generic [ref=f43e89]: System + - button "Devices" [ref=f43e90] [cursor=pointer] + - button "Calibration" [ref=f43e91] [cursor=pointer] + - button "Logs" [ref=f43e92] [cursor=pointer] + - button "Talk to Gently" [ref=f43e93] [cursor=pointer] + - generic [ref=f43e95]: + - generic [ref=f43e96]: + - generic [ref=f43e97]: LIVE + - generic [ref=f43e99]: 0 embryos · Online + - contentinfo [ref=f43e100]: + - generic [ref=f43e101]: 0 embryos · 0 images · 11 events + - generic [ref=f43e102]: No active timelapse + - complementary "Agent chat" [ref=f43e103]: + - generic [ref=f43e105]: + - generic [ref=f43e106]: Agent + - generic [ref=f43e108]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f43e109] [cursor=pointer] + - generic [ref=f43e113]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f43e114]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f43e115] + - generic [ref=f43e119]: + - generic: + - generic [ref=f43e121]: + - button "▼" [ref=f43e122] [cursor=pointer] + - generic [ref=f43e123]: HOME + - generic [ref=f43e124]: 3 rows + - generic [ref=f43e125]: + - generic [ref=f43e126]: + - button "▼" [ref=f43e127] [cursor=pointer] + - generic [ref=f43e128]: EMBRYOS + - generic [ref=f43e129]: no embryos + - generic [ref=f43e130]: + - generic [ref=f43e131] [cursor=pointer]: default + - generic [ref=f43e132] [cursor=pointer]: board + - generic [ref=f43e133] [cursor=pointer]: filmstrip + - generic [ref=f43e134] [cursor=pointer]: vitals + - generic [ref=f43e138]: + - generic [ref=f43e141] [cursor=pointer]: + - heading "Embryo Monitoring" [level=2] [ref=f43e142] + - generic [ref=f43e143]: No active timelapse + - generic [ref=f43e147]: + - generic [ref=f43e148]: Embryos + - generic [ref=f43e152]: + - generic [ref=f43e153]: 🔬 + - generic [ref=f43e154]: No embryos yet + - generic [ref=f43e155]: Start a timelapse acquisition to begin tracking embryos. Configure your experiment in the Calibration tab. + - button "Go to Calibration" [ref=f43e156] [cursor=pointer] + - generic [ref=f43e157]: + - generic [ref=f43e158]: + - button "▼" [ref=f43e159] [cursor=pointer] + - generic [ref=f43e160]: CALIBRATION + - generic [ref=f43e161]: no cal images + - generic [ref=f43e162]: + - generic [ref=f43e163] [cursor=pointer]: profile + - generic [ref=f43e164] [cursor=pointer]: gallery + - generic [ref=f43e166]: + - heading "Calibration" [level=2] [ref=f43e168] + - generic [ref=f43e169]: + - generic [ref=f43e170]: + - generic [ref=f43e171]: Embryos + - generic [ref=f43e172]: No calibration images yet + - generic [ref=f43e175]: + - generic [ref=f43e176]: 📷 + - generic [ref=f43e177]: Select an embryo to view calibration images + - generic [ref=f43e178]: + - generic [ref=f43e179]: + - button "▼" [ref=f43e180] [cursor=pointer] + - generic [ref=f43e181]: EXPERIMENT + - generic [ref=f43e182]: empty + - generic [ref=f43e183]: + - generic [ref=f43e184] [cursor=pointer]: overview + - generic [ref=f43e185] [cursor=pointer]: rules + - heading "Operations" [level=2] [ref=f43e189] + - generic [ref=f43e192]: + - button "▼" [ref=f43e193] [cursor=pointer] + - generic [ref=f43e194]: EVENTS + - generic [ref=f43e195]: no events + - generic [ref=f43e196]: + - generic [ref=f43e197]: + - button "▼" [ref=f43e198] [cursor=pointer] + - generic [ref=f43e199]: PLANS + - generic [ref=f43e200]: 6 rows + - generic [ref=f43e201]: + - generic [ref=f43e202] [cursor=pointer]: document + - generic [ref=f43e203] [cursor=pointer]: graph + - generic [ref=f43e204] [cursor=pointer]: board + - generic [ref=f43e205] [cursor=pointer]: decisions + - generic [ref=f43e206] [cursor=pointer]: matrix + - generic [ref=f43e207] [cursor=pointer]: timeline + - generic [ref=f43e209]: + - generic [ref=f43e211]: + - generic [ref=f43e212]: Campaigns + - text: › + - generic [ref=f43e213]: + - navigation [ref=f43e214] + - main [ref=f43e216]: + - paragraph [ref=f43e219]: Loading campaigns... + - complementary [ref=f43e220]: + - generic [ref=f43e221]: + - button "Close" [ref=f43e222] [cursor=pointer] + - heading [level=2] + - generic [ref=f43e228]: + - button "▼" [ref=f43e229] [cursor=pointer] + - generic [ref=f43e230]: SESSIONS + - generic [ref=f43e231]: empty + - generic [ref=f43e233]: + - button "▼" [ref=f43e234] [cursor=pointer] + - generic [ref=f43e235]: NOTEBOOK + - generic [ref=f43e236]: 4 rows + - generic [ref=f43e238]: + - button "▼" [ref=f43e239] [cursor=pointer] + - generic [ref=f43e240]: GALLERY + - generic [ref=f43e241]: no images + - generic: + - generic [ref=f43e243]: + - button "▼" [ref=f43e244] [cursor=pointer] + - generic [ref=f43e245]: DEVICES + - generic [ref=f43e246]: scope offline + - generic: + - generic [ref=f43e247]: + - generic [ref=f43e248]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f43e249] [cursor=pointer]: + - /url: "#" + - generic [ref=f43e250]: + - button "←" [disabled] [ref=f43e251] + - button "⌂ start" [ref=f43e252] [cursor=pointer] + - button "all" [ref=f43e253] [cursor=pointer] + - button "home" [ref=f43e254] [cursor=pointer] + - button "embryos" [ref=f43e255] [cursor=pointer] + - button "devices" [ref=f43e256] [cursor=pointer] + - button "calibration" [ref=f43e257] [cursor=pointer] + - button "experiment" [ref=f43e258] [cursor=pointer] + - button "events" [ref=f43e259] [cursor=pointer] + - button "plans" [ref=f43e260] [cursor=pointer] + - button "sessions" [ref=f43e261] [cursor=pointer] + - button "notebook" [ref=f43e262] [cursor=pointer] + - button "gallery" [ref=f43e263] [cursor=pointer] + - generic [ref=f43e264]: + - generic [ref=f43e265]: 58% + - generic [ref=f43e266]: + - text: density + - slider "density 4" [ref=f43e267]: "4" + - generic [ref=f43e268]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-32-59-398Z.yml b/.playwright-mcp/page-2026-08-24T17-32-59-398Z.yml new file mode 100644 index 00000000..494101be --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-32-59-398Z.yml @@ -0,0 +1,197 @@ +- generic [ref=f46e1]: + - generic "Welcome to Gently" [ref=f46e2]: + - button "Toggle theme" [ref=f46e3] [cursor=pointer] + - generic [ref=f46e7]: + - generic [ref=f46e8]: Good evening.What are we doing today? + - generic [ref=f46e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f46e12] [cursor=pointer]: + - generic [ref=f46e13]: guided + - heading "Plan an experiment" [level=3] [ref=f46e17] + - paragraph [ref=f46e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f46e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f46e22] [cursor=pointer]: + - generic [ref=f46e23]: standalone + - heading "Take a quick look" [level=3] [ref=f46e28] + - paragraph [ref=f46e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f46e30]: Open the scope + - generic [ref=f46e33]: + - button "or just tell me what you need" [ref=f46e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f46e40] + - button "Send" [ref=f46e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f46e44] [cursor=pointer] + - generic [ref=f46e45]: + - generic [ref=f46e46]: + - link "Gently Microscopy" [ref=f46e47] [cursor=pointer]: + - /url: / + - generic [ref=f46e48]: + - link "ced24add" [ref=f46e49] [cursor=pointer]: + - /url: /review?session=ced24add + - button "Copy session ID" [ref=f46e50] [cursor=pointer] + - generic [ref=f46e54]: + - generic [ref=f46e55]: P + - button "Open process console" [ref=f46e57] + - link "Dashboard settings" [ref=f46e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f46e65] [cursor=pointer] + - button "Scope offline" [ref=f46e69] [cursor=pointer] + - generic [ref=f46e74]: + - complementary [ref=f46e75]: + - navigation [ref=f46e76]: + - generic [ref=f46e77]: + - generic [ref=f46e78]: Now + - button "Home" [ref=f46e79] [cursor=pointer] + - button "Operations" [ref=f46e80] [cursor=pointer] + - button "Embryos" [ref=f46e81] [cursor=pointer] + - generic [ref=f46e82]: + - generic [ref=f46e83]: Library + - button "Plans" [ref=f46e84] [cursor=pointer] + - button "Sessions" [ref=f46e85] [cursor=pointer] + - button "Notebook" [ref=f46e86] [cursor=pointer] + - button "Gallery" [ref=f46e87] [cursor=pointer] + - generic [ref=f46e88]: + - generic [ref=f46e89]: System + - button "Devices" [ref=f46e90] [cursor=pointer] + - button "Calibration" [ref=f46e91] [cursor=pointer] + - button "Logs" [ref=f46e92] [cursor=pointer] + - button "Talk to Gently" [ref=f46e93] [cursor=pointer] + - generic [ref=f46e95]: + - generic [ref=f46e96]: + - generic [ref=f46e97]: LIVE + - generic [ref=f46e99]: 0 embryos · Online + - contentinfo [ref=f46e100]: + - generic [ref=f46e101]: 0 embryos · 0 images · 8 events + - generic [ref=f46e102]: No active timelapse + - complementary "Agent chat" [ref=f46e103]: + - generic [ref=f46e105]: + - generic [ref=f46e106]: Agent + - generic [ref=f46e108]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f46e109] [cursor=pointer] + - generic [ref=f46e113]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f46e114]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f46e115] + - generic [ref=f46e119]: + - generic: + - generic [ref=f46e121]: + - button "▼" [ref=f46e122] [cursor=pointer] + - generic [ref=f46e123]: HOME + - generic [ref=f46e124]: 3 rows + - generic [ref=f46e125]: + - generic [ref=f46e126]: + - button "▼" [ref=f46e127] [cursor=pointer] + - generic [ref=f46e128]: EMBRYOS + - generic [ref=f46e129]: no embryos + - generic [ref=f46e130]: + - generic [ref=f46e131] [cursor=pointer]: default + - generic [ref=f46e132] [cursor=pointer]: board + - generic [ref=f46e133] [cursor=pointer]: filmstrip + - generic [ref=f46e134] [cursor=pointer]: vitals + - generic [ref=f46e138]: + - generic [ref=f46e141] [cursor=pointer]: + - heading "Embryo Monitoring" [level=2] [ref=f46e142] + - generic [ref=f46e143]: No active timelapse + - generic [ref=f46e147]: + - generic [ref=f46e148]: Embryos + - generic [ref=f46e152]: + - generic [ref=f46e153]: 🔬 + - generic [ref=f46e154]: No embryos yet + - generic [ref=f46e155]: Start a timelapse acquisition to begin tracking embryos. Configure your experiment in the Calibration tab. + - button "Go to Calibration" [ref=f46e156] [cursor=pointer] + - generic [ref=f46e157]: + - generic [ref=f46e158]: + - button "▼" [ref=f46e159] [cursor=pointer] + - generic [ref=f46e160]: CALIBRATION + - generic [ref=f46e161]: no cal images + - generic [ref=f46e162]: + - generic [ref=f46e163] [cursor=pointer]: profile + - generic [ref=f46e164] [cursor=pointer]: gallery + - generic [ref=f46e166]: + - heading "Calibration" [level=2] [ref=f46e168] + - generic [ref=f46e169]: + - generic [ref=f46e170]: + - generic [ref=f46e171]: Embryos + - generic [ref=f46e172]: No calibration images yet + - generic [ref=f46e175]: + - generic [ref=f46e176]: 📷 + - generic [ref=f46e177]: Select an embryo to view calibration images + - generic [ref=f46e178]: + - generic [ref=f46e179]: + - button "▼" [ref=f46e180] [cursor=pointer] + - generic [ref=f46e181]: EXPERIMENT + - generic [ref=f46e182]: empty + - generic [ref=f46e183]: + - generic [ref=f46e184] [cursor=pointer]: overview + - generic [ref=f46e185] [cursor=pointer]: rules + - heading "Operations" [level=2] [ref=f46e189] + - generic [ref=f46e192]: + - button "▼" [ref=f46e193] [cursor=pointer] + - generic [ref=f46e194]: EVENTS + - generic [ref=f46e195]: no events + - generic [ref=f46e196]: + - generic [ref=f46e197]: + - button "▼" [ref=f46e198] [cursor=pointer] + - generic [ref=f46e199]: PLANS + - generic [ref=f46e200]: 6 rows + - generic [ref=f46e201]: + - generic [ref=f46e202] [cursor=pointer]: document + - generic [ref=f46e203] [cursor=pointer]: graph + - generic [ref=f46e204] [cursor=pointer]: board + - generic [ref=f46e205] [cursor=pointer]: decisions + - generic [ref=f46e206] [cursor=pointer]: matrix + - generic [ref=f46e207] [cursor=pointer]: timeline + - generic [ref=f46e209]: + - generic [ref=f46e211]: + - generic [ref=f46e212]: Campaigns + - text: › + - generic [ref=f46e213]: + - navigation [ref=f46e214] + - main [ref=f46e216]: + - paragraph [ref=f46e219]: Loading campaigns... + - complementary [ref=f46e220]: + - generic [ref=f46e221]: + - button "Close" [ref=f46e222] [cursor=pointer] + - heading [level=2] + - generic [ref=f46e228]: + - button "▼" [ref=f46e229] [cursor=pointer] + - generic [ref=f46e230]: SESSIONS + - generic [ref=f46e231]: empty + - generic [ref=f46e233]: + - button "▼" [ref=f46e234] [cursor=pointer] + - generic [ref=f46e235]: NOTEBOOK + - generic [ref=f46e236]: 4 rows + - generic [ref=f46e238]: + - button "▼" [ref=f46e239] [cursor=pointer] + - generic [ref=f46e240]: GALLERY + - generic [ref=f46e241]: no images + - generic: + - generic [ref=f46e243]: + - button "▼" [ref=f46e244] [cursor=pointer] + - generic [ref=f46e245]: DEVICES + - generic [ref=f46e246]: scope offline + - generic: + - generic [ref=f46e247]: + - generic [ref=f46e248]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f46e249] [cursor=pointer]: + - /url: "#" + - generic [ref=f46e250]: + - button "←" [disabled] [ref=f46e251] + - button "⌂ start" [ref=f46e252] [cursor=pointer] + - button "all" [ref=f46e253] [cursor=pointer] + - button "home" [ref=f46e254] [cursor=pointer] + - button "embryos" [ref=f46e255] [cursor=pointer] + - button "devices" [ref=f46e256] [cursor=pointer] + - button "calibration" [ref=f46e257] [cursor=pointer] + - button "experiment" [ref=f46e258] [cursor=pointer] + - button "events" [ref=f46e259] [cursor=pointer] + - button "plans" [ref=f46e260] [cursor=pointer] + - button "sessions" [ref=f46e261] [cursor=pointer] + - button "notebook" [ref=f46e262] [cursor=pointer] + - button "gallery" [ref=f46e263] [cursor=pointer] + - generic [ref=f46e264]: + - generic [ref=f46e265]: 58% + - generic [ref=f46e266]: + - text: density + - slider "density 4" [ref=f46e267]: "4" + - generic [ref=f46e268]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-37-29-859Z.yml b/.playwright-mcp/page-2026-08-24T17-37-29-859Z.yml new file mode 100644 index 00000000..dbcaedc1 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-37-29-859Z.yml @@ -0,0 +1,237 @@ +- generic [active] [ref=f49e1]: + - generic [ref=f49e2]: + - generic [ref=f49e3]: + - link "Dashboard" [ref=f49e4] [cursor=pointer]: + - /url: / + - heading "Settings" [level=1] [ref=f49e7] + - button "Toggle theme" [ref=f49e9] [cursor=pointer] + - generic [ref=f49e12]: + - navigation [ref=f49e13]: + - generic [ref=f49e14]: + - generic [ref=f49e15]: Dashboard + - link "Views" [ref=f49e16] [cursor=pointer]: + - /url: "#views" + - link "Alerts" [ref=f49e17] [cursor=pointer]: + - /url: "#alerts" + - link "Ambient Pulse" [ref=f49e18] [cursor=pointer]: + - /url: "#ambient" + - generic [ref=f49e19]: + - generic [ref=f49e20]: View Settings + - link "Board View" [ref=f49e21] [cursor=pointer]: + - /url: "#board" + - link "Filmstrip View" [ref=f49e22] [cursor=pointer]: + - /url: "#filmstrip" + - link "Vitals View" [ref=f49e23] [cursor=pointer]: + - /url: "#vitals" + - link "Default View" [ref=f49e24] [cursor=pointer]: + - /url: "#detail" + - generic [ref=f49e25]: + - generic [ref=f49e26]: Hardware + - link "Device layer" [ref=f49e27] [cursor=pointer]: + - /url: "#devicelayer" + - link "Thermalizer" [ref=f49e28] [cursor=pointer]: + - /url: "#thermalizer" + - link "Effective config" [ref=f49e29] [cursor=pointer]: + - /url: "#effective" + - link "Advanced" [ref=f49e30] [cursor=pointer]: + - /url: "#advanced" + - main [ref=f49e31]: + - generic [ref=f49e32]: + - heading "Dashboard Views" [level=2] [ref=f49e33] + - generic [ref=f49e34]: + - generic [ref=f49e35]: Default view on load + - generic [ref=f49e36]: + - generic [ref=f49e37] [cursor=pointer]: Default + - generic [ref=f49e38] [cursor=pointer]: Board + - generic [ref=f49e39] [cursor=pointer]: Filmstrip + - generic [ref=f49e40] [cursor=pointer]: Vitals + - generic [ref=f49e41]: + - heading "Alert Thresholds" [level=2] [ref=f49e42] + - generic [ref=f49e43]: + - generic [ref=f49e44]: Warn (amber) when overtime ratio exceeds + - generic [ref=f49e45]: + - spinbutton [ref=f49e46]: "1.5" + - generic [ref=f49e47]: x + - generic [ref=f49e48]: + - generic [ref=f49e49]: Critical (red) when overtime ratio exceeds + - generic [ref=f49e50]: + - spinbutton [ref=f49e51]: "2.5" + - generic [ref=f49e52]: x + - generic [ref=f49e53]: + - heading "Device layer" [level=2] [ref=f49e54] + - paragraph [ref=f49e55]: Install-time settings for the microscope control process. Most rigs never change these — they're kept off the launch screen on purpose. + - generic [ref=f49e56]: + - generic [ref=f49e57]: Device layer port + - spinbutton [ref=f49e59]: "60610" + - generic [ref=f49e60]: + - generic [ref=f49e61]: Image analysis (SAM) runs on + - generic [ref=f49e62]: + - generic [ref=f49e63] [cursor=pointer]: Auto-detect + - generic [ref=f49e64] [cursor=pointer]: GPU (CUDA) + - generic [ref=f49e65] [cursor=pointer]: CPU + - paragraph [ref=f49e66]: "Detected: CPU — no GPU found, so image analysis will be slower" + - paragraph + - generic [ref=f49e67]: + - heading "Ambient Pulse" [level=2] [ref=f49e68] + - generic [ref=f49e70] [cursor=pointer]: + - checkbox "Enable background health pulse" [checked] [ref=f49e71] + - text: Enable background health pulse + - generic [ref=f49e73] [cursor=pointer]: + - checkbox "Audio tick on acquisition" [ref=f49e74] + - text: Audio tick on acquisition + - generic [ref=f49e75]: + - generic [ref=f49e76]: Sensitivity + - generic [ref=f49e77]: + - generic [ref=f49e78] [cursor=pointer]: Low + - generic [ref=f49e79] [cursor=pointer]: Normal + - generic [ref=f49e80] [cursor=pointer]: High + - generic [ref=f49e81]: + - heading "Board View" [level=2] [ref=f49e82] + - generic [ref=f49e83]: + - generic [ref=f49e84]: Visible columns + - generic [ref=f49e85]: + - generic [ref=f49e86] [cursor=pointer]: + - checkbox "Stage" [checked] [ref=f49e87] + - text: Stage + - generic [ref=f49e88] [cursor=pointer]: + - checkbox "Confidence" [checked] [ref=f49e89] + - text: Confidence + - generic [ref=f49e90] [cursor=pointer]: + - checkbox "Rate" [checked] [ref=f49e91] + - text: Rate + - generic [ref=f49e92] [cursor=pointer]: + - checkbox "ETA" [checked] [ref=f49e93] + - text: ETA + - generic [ref=f49e94] [cursor=pointer]: + - checkbox "Sparkline" [checked] [ref=f49e95] + - text: Sparkline + - generic [ref=f49e96] [cursor=pointer]: + - checkbox "Alert" [checked] [ref=f49e97] + - text: Alert + - generic [ref=f49e98]: + - generic [ref=f49e99]: Sparkline length (evaluations) + - spinbutton [ref=f49e101]: "20" + - generic [ref=f49e102]: + - heading "Filmstrip View" [level=2] [ref=f49e103] + - generic [ref=f49e104]: + - generic [ref=f49e105]: Thumbnail size + - generic [ref=f49e106]: + - generic [ref=f49e107] [cursor=pointer]: Small + - generic [ref=f49e108] [cursor=pointer]: Medium + - generic [ref=f49e109] [cursor=pointer]: Large + - generic [ref=f49e111] [cursor=pointer]: + - checkbox "Show stage labels below thumbnails" [checked] [ref=f49e112] + - text: Show stage labels below thumbnails + - generic [ref=f49e113]: + - generic [ref=f49e114]: Show every Nth timepoint + - generic [ref=f49e115]: + - spinbutton [ref=f49e116]: "1" + - generic [ref=f49e117]: 1 = show all + - generic [ref=f49e118]: + - generic [ref=f49e119]: Border color encoding + - generic [ref=f49e120]: + - generic [ref=f49e121] [cursor=pointer]: Stage + - generic [ref=f49e122] [cursor=pointer]: Confidence + - generic [ref=f49e123]: + - heading "Vitals View" [level=2] [ref=f49e124] + - generic [ref=f49e125]: + - generic [ref=f49e126]: Developmental-timing reference + - generic [ref=f49e127]: + - generic [ref=f49e128] [cursor=pointer]: 20°C + - generic [ref=f49e129] [cursor=pointer]: 25°C + - generic [ref=f49e130]: C. elegans staging reference curve for the vitals chart — not the hardware controller (see Hardware → Thermalizer). + - generic [ref=f49e132] [cursor=pointer]: + - checkbox "Show expected timing reference line" [checked] [ref=f49e133] + - text: Show expected timing reference line + - generic [ref=f49e134]: + - generic [ref=f49e135]: Time axis + - generic [ref=f49e136]: + - generic [ref=f49e137] [cursor=pointer]: Elapsed + - generic [ref=f49e138] [cursor=pointer]: Clock time + - generic [ref=f49e139]: + - heading "Default View" [level=2] [ref=f49e140] + - generic [ref=f49e141]: + - generic [ref=f49e142]: Image / reasoning split ratio + - generic [ref=f49e143]: + - slider [ref=f49e144]: "40" + - generic [ref=f49e145]: 40 / 60 + - generic [ref=f49e147] [cursor=pointer]: + - checkbox "Auto-advance to latest evaluation" [ref=f49e148] + - text: Auto-advance to latest evaluation + - generic [ref=f49e150] [cursor=pointer]: + - checkbox "Show contrastive reasoning" [checked] [ref=f49e151] + - text: Show contrastive reasoning + - generic [ref=f49e152]: + - heading "Thermalizer (ACUITYnano)" [level=2] [ref=f49e153] + - generic [ref=f49e154]: Machine-wide hardware setting, saved on the server (not this browser). Requires control. + - generic [ref=f49e155]: + - generic [ref=f49e156]: Live status + - generic [ref=f49e157]: Controller not available (device layer offline or no thermalizer configured). + - generic [ref=f49e158]: + - generic [ref=f49e159]: Connection + - generic [ref=f49e160]: + - generic [ref=f49e161] [cursor=pointer]: Serial (COM) + - generic [ref=f49e162] [cursor=pointer]: MQTT (HiveMQ) + - generic [ref=f49e163]: + - generic [ref=f49e164]: + - generic [ref=f49e165]: COM port + - textbox "COM port" [ref=f49e166]: + - /placeholder: COM8 + - generic [ref=f49e167]: + - generic [ref=f49e168]: Baud rate + - spinbutton "Baud rate" [ref=f49e169]: "115200" + - generic [ref=f49e170]: + - generic [ref=f49e171]: Stabilize timeout (s) + - spinbutton "Stabilize timeout (s)" [ref=f49e172]: "600" + - generic [ref=f49e174] [cursor=pointer]: + - checkbox "Control off the Peltier sensor (else water)" [ref=f49e175] + - text: Control off the Peltier sensor (else water) + - generic [ref=f49e176]: + - button "Test connection" [ref=f49e177] [cursor=pointer] + - button "Apply" [ref=f49e178] [cursor=pointer] + - generic [ref=f49e180]: + - heading "Effective config (read-only)" [level=2] [ref=f49e181] + - generic [ref=f49e182]: The server's live configuration, secrets redacted. Editing these needs a restart / env override. + - generic [ref=f49e183]: "{ \"note\": \"settings.py values are read from env at startup; changing them needs a restart.\", \"network\": { \"viz_host\": \"0.0.0.0\", \"viz_port\": 8080, \"device_host\": \"127.0.0.1\", \"device_port\": 60610, \"mesh_port\": 19547 }, \"models\": { \"main\": \"claude-opus-4-8\", \"perception\": \"claude-opus-4-8\", \"fast\": \"claude-sonnet-4-6\", \"medium\": \"claude-opus-4-8\", \"refusal_fallback\": \"claude-opus-4-8\" }, \"storage\": { \"base_path\": \"/tmp/gently-dev\" }, \"timeouts\": { \"plan_execution\": 300, \"volume_acquisition\": 15, \"api_call\": 10 }, \"ml\": { \"default_batch_size\": 32, \"default_epochs\": 50, \"default_lr\": 0.0001, \"model_cache_dir\": \"models\" }, \"transfer\": { \"transfer_port\": 19548, \"chunk_size\": 1048576, \"max_concurrent_transfers\": 4 }, \"mesh\": { \"broadcast_interval_s\": 5, \"stale_threshold_s\": 15, \"dead_threshold_s\": 30 }, \"ui\": { \"ux_v2\": true }, \"api\": { \"ncbi_tool\": \"gently\" }, \"secrets_present\": { \"anthropic_api_key\": true, \"control_token\": false } }" + - generic [ref=f49e184]: + - heading "Advanced (restart required)" [level=2] [ref=f49e185] + - generic [ref=f49e186]: + - text: System tunables persisted to + - code [ref=f49e187]: config/settings.local.yml + - text: . Saved values take effect on the next server restart. Requires control. + - generic [ref=f49e188]: + - generic [ref=f49e189]: Timeouts + - generic [ref=f49e190]: + - generic [ref=f49e191]: Volume acquisition (s) (override set) + - spinbutton [ref=f49e192]: "15" + - generic [ref=f49e193]: + - generic [ref=f49e194]: External API call (s) (override set) + - spinbutton [ref=f49e195]: "10" + - generic [ref=f49e196]: Mesh network + - generic [ref=f49e197]: + - generic [ref=f49e198]: Broadcast interval (s) (override set) + - spinbutton [ref=f49e199]: "5" + - generic [ref=f49e200]: + - generic [ref=f49e201]: Stale threshold (s) (override set) + - spinbutton [ref=f49e202]: "15" + - generic [ref=f49e203]: + - generic [ref=f49e204]: Dead threshold (s) (override set) + - spinbutton [ref=f49e205]: "30" + - generic [ref=f49e206]: Interface + - generic [ref=f49e208] [cursor=pointer]: + - checkbox "UX v2 dashboard (override set)" [checked] [ref=f49e209] + - text: UX v2 dashboard + - generic [ref=f49e210]: (override set) + - generic [ref=f49e211]: NCBI (Entrez) + - generic [ref=f49e212]: + - generic [ref=f49e213]: Tool name (override set) + - textbox [ref=f49e214]: gently + - generic [ref=f49e215]: + - generic [ref=f49e216]: Contact email (override set) + - textbox [ref=f49e217]: pskeshu@gmail.com + - button "Save (restart required)" [ref=f49e219] [cursor=pointer] + - generic [ref=f49e222]: + - button "Save as rig defaults" [ref=f49e223] [cursor=pointer] + - button "Reset to defaults" [ref=f49e224] [cursor=pointer] + - button "Export" [ref=f49e225] [cursor=pointer] + - button "Import" [ref=f49e226] [cursor=pointer] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-38-36-679Z.yml b/.playwright-mcp/page-2026-08-24T17-38-36-679Z.yml new file mode 100644 index 00000000..eeb2677b --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-38-36-679Z.yml @@ -0,0 +1,237 @@ +- generic [active] [ref=f53e1]: + - generic [ref=f53e2]: + - generic [ref=f53e3]: + - link "Dashboard" [ref=f53e4] [cursor=pointer]: + - /url: / + - heading "Settings" [level=1] [ref=f53e7] + - button "Toggle theme" [ref=f53e9] [cursor=pointer] + - generic [ref=f53e12]: + - navigation [ref=f53e13]: + - generic [ref=f53e14]: + - generic [ref=f53e15]: Dashboard + - link "Views" [ref=f53e16] [cursor=pointer]: + - /url: "#views" + - link "Alerts" [ref=f53e17] [cursor=pointer]: + - /url: "#alerts" + - link "Ambient Pulse" [ref=f53e18] [cursor=pointer]: + - /url: "#ambient" + - generic [ref=f53e19]: + - generic [ref=f53e20]: View Settings + - link "Board View" [ref=f53e21] [cursor=pointer]: + - /url: "#board" + - link "Filmstrip View" [ref=f53e22] [cursor=pointer]: + - /url: "#filmstrip" + - link "Vitals View" [ref=f53e23] [cursor=pointer]: + - /url: "#vitals" + - link "Default View" [ref=f53e24] [cursor=pointer]: + - /url: "#detail" + - generic [ref=f53e25]: + - generic [ref=f53e26]: Hardware + - link "Device layer" [ref=f53e27] [cursor=pointer]: + - /url: "#devicelayer" + - link "Thermalizer" [ref=f53e28] [cursor=pointer]: + - /url: "#thermalizer" + - link "Effective config" [ref=f53e29] [cursor=pointer]: + - /url: "#effective" + - link "Advanced" [ref=f53e30] [cursor=pointer]: + - /url: "#advanced" + - main [ref=f53e31]: + - generic [ref=f53e32]: + - heading "Dashboard Views" [level=2] [ref=f53e33] + - generic [ref=f53e34]: + - generic [ref=f53e35]: Default view on load + - generic [ref=f53e36]: + - generic [ref=f53e37] [cursor=pointer]: Default + - generic [ref=f53e38] [cursor=pointer]: Board + - generic [ref=f53e39] [cursor=pointer]: Filmstrip + - generic [ref=f53e40] [cursor=pointer]: Vitals + - generic [ref=f53e41]: + - heading "Alert Thresholds" [level=2] [ref=f53e42] + - generic [ref=f53e43]: + - generic [ref=f53e44]: Warn (amber) when overtime ratio exceeds + - generic [ref=f53e45]: + - spinbutton [ref=f53e46]: "1.5" + - generic [ref=f53e47]: x + - generic [ref=f53e48]: + - generic [ref=f53e49]: Critical (red) when overtime ratio exceeds + - generic [ref=f53e50]: + - spinbutton [ref=f53e51]: "2.5" + - generic [ref=f53e52]: x + - generic [ref=f53e53]: + - heading "Device layer" [level=2] [ref=f53e54] + - paragraph [ref=f53e55]: Install-time settings for the microscope control process. Most rigs never change these — they're kept off the launch screen on purpose. + - generic [ref=f53e56]: + - generic [ref=f53e57]: Device layer port + - spinbutton [ref=f53e59]: "60610" + - generic [ref=f53e60]: + - generic [ref=f53e61]: Image analysis (SAM) runs on + - generic [ref=f53e62]: + - generic [ref=f53e63] [cursor=pointer]: Auto-detect + - generic [ref=f53e64] [cursor=pointer]: GPU (CUDA) + - generic [ref=f53e65] [cursor=pointer]: CPU + - paragraph [ref=f53e66]: "Detected: CPU — no GPU found, so image analysis will be slower" + - paragraph + - generic [ref=f53e67]: + - heading "Ambient Pulse" [level=2] [ref=f53e68] + - generic [ref=f53e70] [cursor=pointer]: + - checkbox "Enable background health pulse" [checked] [ref=f53e71] + - text: Enable background health pulse + - generic [ref=f53e73] [cursor=pointer]: + - checkbox "Audio tick on acquisition" [ref=f53e74] + - text: Audio tick on acquisition + - generic [ref=f53e75]: + - generic [ref=f53e76]: Sensitivity + - generic [ref=f53e77]: + - generic [ref=f53e78] [cursor=pointer]: Low + - generic [ref=f53e79] [cursor=pointer]: Normal + - generic [ref=f53e80] [cursor=pointer]: High + - generic [ref=f53e81]: + - heading "Board View" [level=2] [ref=f53e82] + - generic [ref=f53e83]: + - generic [ref=f53e84]: Visible columns + - generic [ref=f53e85]: + - generic [ref=f53e86] [cursor=pointer]: + - checkbox "Stage" [checked] [ref=f53e87] + - text: Stage + - generic [ref=f53e88] [cursor=pointer]: + - checkbox "Confidence" [checked] [ref=f53e89] + - text: Confidence + - generic [ref=f53e90] [cursor=pointer]: + - checkbox "Rate" [checked] [ref=f53e91] + - text: Rate + - generic [ref=f53e92] [cursor=pointer]: + - checkbox "ETA" [checked] [ref=f53e93] + - text: ETA + - generic [ref=f53e94] [cursor=pointer]: + - checkbox "Sparkline" [checked] [ref=f53e95] + - text: Sparkline + - generic [ref=f53e96] [cursor=pointer]: + - checkbox "Alert" [checked] [ref=f53e97] + - text: Alert + - generic [ref=f53e98]: + - generic [ref=f53e99]: Sparkline length (evaluations) + - spinbutton [ref=f53e101]: "20" + - generic [ref=f53e102]: + - heading "Filmstrip View" [level=2] [ref=f53e103] + - generic [ref=f53e104]: + - generic [ref=f53e105]: Thumbnail size + - generic [ref=f53e106]: + - generic [ref=f53e107] [cursor=pointer]: Small + - generic [ref=f53e108] [cursor=pointer]: Medium + - generic [ref=f53e109] [cursor=pointer]: Large + - generic [ref=f53e111] [cursor=pointer]: + - checkbox "Show stage labels below thumbnails" [checked] [ref=f53e112] + - text: Show stage labels below thumbnails + - generic [ref=f53e113]: + - generic [ref=f53e114]: Show every Nth timepoint + - generic [ref=f53e115]: + - spinbutton [ref=f53e116]: "1" + - generic [ref=f53e117]: 1 = show all + - generic [ref=f53e118]: + - generic [ref=f53e119]: Border color encoding + - generic [ref=f53e120]: + - generic [ref=f53e121] [cursor=pointer]: Stage + - generic [ref=f53e122] [cursor=pointer]: Confidence + - generic [ref=f53e123]: + - heading "Vitals View" [level=2] [ref=f53e124] + - generic [ref=f53e125]: + - generic [ref=f53e126]: Developmental-timing reference + - generic [ref=f53e127]: + - generic [ref=f53e128] [cursor=pointer]: 20°C + - generic [ref=f53e129] [cursor=pointer]: 25°C + - generic [ref=f53e130]: C. elegans staging reference curve for the vitals chart — not the hardware controller (see Hardware → Thermalizer). + - generic [ref=f53e132] [cursor=pointer]: + - checkbox "Show expected timing reference line" [checked] [ref=f53e133] + - text: Show expected timing reference line + - generic [ref=f53e134]: + - generic [ref=f53e135]: Time axis + - generic [ref=f53e136]: + - generic [ref=f53e137] [cursor=pointer]: Elapsed + - generic [ref=f53e138] [cursor=pointer]: Clock time + - generic [ref=f53e139]: + - heading "Default View" [level=2] [ref=f53e140] + - generic [ref=f53e141]: + - generic [ref=f53e142]: Image / reasoning split ratio + - generic [ref=f53e143]: + - slider [ref=f53e144]: "40" + - generic [ref=f53e145]: 40 / 60 + - generic [ref=f53e147] [cursor=pointer]: + - checkbox "Auto-advance to latest evaluation" [ref=f53e148] + - text: Auto-advance to latest evaluation + - generic [ref=f53e150] [cursor=pointer]: + - checkbox "Show contrastive reasoning" [checked] [ref=f53e151] + - text: Show contrastive reasoning + - generic [ref=f53e152]: + - heading "Thermalizer (ACUITYnano)" [level=2] [ref=f53e153] + - generic [ref=f53e154]: Machine-wide hardware setting, saved on the server (not this browser). Requires control. + - generic [ref=f53e155]: + - generic [ref=f53e156]: Live status + - generic [ref=f53e157]: Controller not available (device layer offline or no thermalizer configured). + - generic [ref=f53e158]: + - generic [ref=f53e159]: Connection + - generic [ref=f53e160]: + - generic [ref=f53e161] [cursor=pointer]: Serial (COM) + - generic [ref=f53e162] [cursor=pointer]: MQTT (HiveMQ) + - generic [ref=f53e163]: + - generic [ref=f53e164]: + - generic [ref=f53e165]: COM port + - textbox "COM port" [ref=f53e166]: + - /placeholder: COM8 + - generic [ref=f53e167]: + - generic [ref=f53e168]: Baud rate + - spinbutton "Baud rate" [ref=f53e169]: "115200" + - generic [ref=f53e170]: + - generic [ref=f53e171]: Stabilize timeout (s) + - spinbutton "Stabilize timeout (s)" [ref=f53e172]: "600" + - generic [ref=f53e174] [cursor=pointer]: + - checkbox "Control off the Peltier sensor (else water)" [ref=f53e175] + - text: Control off the Peltier sensor (else water) + - generic [ref=f53e176]: + - button "Test connection" [ref=f53e177] [cursor=pointer] + - button "Apply" [ref=f53e178] [cursor=pointer] + - generic [ref=f53e180]: + - heading "Effective config (read-only)" [level=2] [ref=f53e181] + - generic [ref=f53e182]: The server's live configuration, secrets redacted. Editing these needs a restart / env override. + - generic [ref=f53e183]: Loading… + - generic [ref=f53e184]: + - heading "Advanced (restart required)" [level=2] [ref=f53e185] + - generic [ref=f53e186]: + - text: System tunables persisted to + - code [ref=f53e187]: config/settings.local.yml + - text: . Saved values take effect on the next server restart. Requires control. + - generic [ref=f53e188]: + - generic [ref=f53e189]: Timeouts + - generic [ref=f53e190]: + - generic [ref=f53e191]: Volume acquisition (s) (override set) + - spinbutton [ref=f53e192]: "15" + - generic [ref=f53e193]: + - generic [ref=f53e194]: External API call (s) (override set) + - spinbutton [ref=f53e195]: "10" + - generic [ref=f53e196]: Mesh network + - generic [ref=f53e197]: + - generic [ref=f53e198]: Broadcast interval (s) (override set) + - spinbutton [ref=f53e199]: "5" + - generic [ref=f53e200]: + - generic [ref=f53e201]: Stale threshold (s) (override set) + - spinbutton [ref=f53e202]: "15" + - generic [ref=f53e203]: + - generic [ref=f53e204]: Dead threshold (s) (override set) + - spinbutton [ref=f53e205]: "30" + - generic [ref=f53e206]: Interface + - generic [ref=f53e208] [cursor=pointer]: + - checkbox "UX v2 dashboard (override set)" [checked] [ref=f53e209] + - text: UX v2 dashboard + - generic [ref=f53e210]: (override set) + - generic [ref=f53e211]: NCBI (Entrez) + - generic [ref=f53e212]: + - generic [ref=f53e213]: Tool name (override set) + - textbox [ref=f53e214]: gently + - generic [ref=f53e215]: + - generic [ref=f53e216]: Contact email (override set) + - textbox [ref=f53e217]: pskeshu@gmail.com + - button "Save (restart required)" [ref=f53e219] [cursor=pointer] + - generic [ref=f53e222]: + - button "Save as rig defaults" [ref=f53e223] [cursor=pointer] + - button "Reset to defaults" [ref=f53e224] [cursor=pointer] + - button "Export" [ref=f53e225] [cursor=pointer] + - button "Import" [ref=f53e226] [cursor=pointer] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-39-57-517Z.yml b/.playwright-mcp/page-2026-08-24T17-39-57-517Z.yml new file mode 100644 index 00000000..8650b987 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-39-57-517Z.yml @@ -0,0 +1,15 @@ +- generic [ref=f56e2]: + - generic [ref=f56e3]: Gently + - paragraph [ref=f56e6]: What are we doing today? + - switch "Microscope" [ref=f56e7] [cursor=pointer]: + - generic [ref=f56e12]: + - generic [ref=f56e13]: Microscope + - generic [ref=f56e14]: Not this session — saved data only. + - switch "Assistant" [checked] [ref=f56e16] [cursor=pointer]: + - generic [ref=f56e20]: + - generic [ref=f56e21]: Assistant + - generic [ref=f56e22]: Help find embryos and watch the timelapse. + - button "Open →" [ref=f56e24] [cursor=pointer]: + - text: Open + - generic [ref=f56e25]: → + - generic [ref=f56e27]: Remembers your last choice \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-40-08-329Z.yml b/.playwright-mcp/page-2026-08-24T17-40-08-329Z.yml new file mode 100644 index 00000000..2262da14 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-40-08-329Z.yml @@ -0,0 +1,141 @@ +- generic [ref=f59e1]: + - generic "Welcome to Gently" [ref=f59e2]: + - button "Toggle theme" [ref=f59e3] [cursor=pointer] + - generic [ref=f59e7]: + - generic [ref=f59e8]: Good evening.What are we doing today? + - generic [ref=f59e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f59e12] [cursor=pointer]: + - generic [ref=f59e13]: guided + - heading "Plan an experiment" [level=3] [ref=f59e17] + - paragraph [ref=f59e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f59e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f59e22] [cursor=pointer]: + - generic [ref=f59e23]: standalone + - heading "Take a quick look" [level=3] [ref=f59e28] + - paragraph [ref=f59e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f59e30]: Open the scope + - generic [ref=f59e33]: + - button "or just tell me what you need" [ref=f59e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f59e40] + - button "Send" [ref=f59e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f59e44] [cursor=pointer] + - generic [ref=f59e45]: + - generic [ref=f59e46]: + - link "Gently Microscopy" [ref=f59e47] [cursor=pointer]: + - /url: / + - generic [ref=f59e48]: + - link "4ebb40a7" [ref=f59e49] [cursor=pointer]: + - /url: /review?session=4ebb40a7 + - button "Copy session ID" [ref=f59e50] [cursor=pointer] + - generic [ref=f59e54]: + - generic [ref=f59e55]: P + - button "Open process console" [ref=f59e57] + - link "Dashboard settings" [ref=f59e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f59e65] [cursor=pointer] + - button "Scope offline" [ref=f59e69] [cursor=pointer] + - generic [ref=f59e74]: + - complementary [ref=f59e75]: + - navigation [ref=f59e76]: + - generic [ref=f59e77]: + - generic [ref=f59e78]: Now + - button "Home" [ref=f59e79] [cursor=pointer] + - button "Operations" [ref=f59e80] [cursor=pointer] + - button "Embryos" [ref=f59e81] [cursor=pointer] + - generic [ref=f59e82]: + - generic [ref=f59e83]: Library + - button "Plans" [ref=f59e84] [cursor=pointer] + - button "Sessions" [ref=f59e85] [cursor=pointer] + - button "Notebook" [ref=f59e86] [cursor=pointer] + - button "Gallery" [ref=f59e87] [cursor=pointer] + - generic [ref=f59e88]: + - generic [ref=f59e89]: System + - button "Devices" [ref=f59e90] [cursor=pointer] + - button "Calibration" [ref=f59e91] [cursor=pointer] + - button "Logs" [ref=f59e92] [cursor=pointer] + - button "Talk to Gently" [ref=f59e93] [cursor=pointer] + - generic [ref=f59e95]: + - generic [ref=f59e96]: + - generic [ref=f59e97]: LIVE + - generic [ref=f59e99]: 0 embryos · Online + - generic [ref=f59e101]: + - complementary [ref=f59e102]: + - generic [ref=f59e103]: Agent’s view + - generic [ref=f59e104]: + - generic [ref=f59e105]: From the notebook + - generic [ref=f59e106] [cursor=pointer]: laser at 35% is enough for this strain + - generic [ref=f59e109] [cursor=pointer]: is the 2-fold call reliable at this exposure? + - generic [ref=f59e112] [cursor=pointer]: gastrula timing is consistent across the dish + - generic [ref=f59e115] [cursor=pointer]: e02 drifts in z after t6 + - generic [ref=f59e118]: + - generic [ref=f59e119]: + - generic [ref=f59e120]: + - generic [ref=f59e121]: Recent sessions + - link "All" [ref=f59e122] [cursor=pointer]: + - /url: "#sessions" + - generic [ref=f59e123]: + - generic [ref=f59e125]: + - generic [ref=f59e126]: + - generic [ref=f59e127]: 4ebb40a7 + - generic [ref=f59e128]: live + - generic [ref=f59e129]: 1m ago · 0 embryos + - generic [ref=f59e130]: + - generic [ref=f59e131]: + - generic [ref=f59e132]: ced24add + - generic [ref=f59e134]: 9m ago · 0 embryos + - button "Resume" [ref=f59e135] [cursor=pointer] + - generic [ref=f59e136]: + - generic [ref=f59e137]: + - generic [ref=f59e138]: 5aaf1f3c + - generic [ref=f59e140]: 9m ago · 0 embryos + - button "Resume" [ref=f59e141] [cursor=pointer] + - generic [ref=f59e142]: + - generic [ref=f59e143]: + - generic [ref=f59e144]: 7f12d51b + - generic [ref=f59e146]: 10m ago · 0 embryos + - button "Resume" [ref=f59e147] [cursor=pointer] + - generic [ref=f59e148]: + - generic [ref=f59e149]: + - generic [ref=f59e150]: seeded demo + - generic [ref=f59e152]: 10m ago · 3 embryos + - button "Resume" [ref=f59e153] [cursor=pointer] + - generic [ref=f59e154]: + - generic [ref=f59e155]: + - generic [ref=f59e156]: Recent plans + - link "All" [ref=f59e157] [cursor=pointer]: + - /url: "#plans" + - generic [ref=f59e158]: timing-variance + - generic [ref=f59e161]: + - generic [ref=f59e162]: + - generic [ref=f59e163]: Recent images + - link "All" [ref=f59e164] [cursor=pointer]: + - /url: "#embryos" + - generic [ref=f59e166]: + - generic "e01 · t5 (seeded demo)" [ref=f59e167]: + - img "e01 · t5" [ref=f59e168] + - generic "e02 · t5 (seeded demo)" [ref=f59e169]: + - img "e02 · t5" [ref=f59e170] + - generic "e03 · t5 (seeded demo)" [ref=f59e171]: + - img "e03 · t5" [ref=f59e172] + - generic "e01 · t9 (seeded demo)" [ref=f59e173]: + - img "e01 · t9" [ref=f59e174] + - generic "e02 · t9 (seeded demo)" [ref=f59e175]: + - img "e02 · t9" [ref=f59e176] + - generic "e03 · t9 (seeded demo)" [ref=f59e177]: + - img "e03 · t9" [ref=f59e178] + - generic "e04 · t9 (seeded demo)" [ref=f59e179]: + - img "e04 · t9" [ref=f59e180] + - text: › + - contentinfo [ref=f59e181]: + - generic [ref=f59e182]: 0 embryos · 0 images · 11 events + - generic [ref=f59e183]: No active timelapse + - complementary "Agent chat" [ref=f59e184]: + - generic [ref=f59e186]: + - generic [ref=f59e187]: Agent + - generic [ref=f59e189]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f59e190] [cursor=pointer] + - generic [ref=f59e194]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f59e195]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f59e196] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-43-40-883Z.yml b/.playwright-mcp/page-2026-08-24T17-43-40-883Z.yml new file mode 100644 index 00000000..10b0d9ae --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-43-40-883Z.yml @@ -0,0 +1,213 @@ +- generic [ref=f62e1]: + - generic "Welcome to Gently" [ref=f62e2]: + - button "Toggle theme" [ref=f62e3] [cursor=pointer] + - generic [ref=f62e7]: + - generic [ref=f62e8]: Good evening.What are we doing today? + - generic [ref=f62e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f62e12] [cursor=pointer]: + - generic [ref=f62e13]: guided + - heading "Plan an experiment" [level=3] [ref=f62e17] + - paragraph [ref=f62e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f62e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f62e22] [cursor=pointer]: + - generic [ref=f62e23]: standalone + - heading "Take a quick look" [level=3] [ref=f62e28] + - paragraph [ref=f62e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f62e30]: Open the scope + - generic [ref=f62e33]: + - button "or just tell me what you need" [ref=f62e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f62e40] + - button "Send" [ref=f62e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f62e44] [cursor=pointer] + - generic [ref=f62e45]: + - generic [ref=f62e46]: + - link "Gently Microscopy" [ref=f62e47] [cursor=pointer]: + - /url: / + - generic [ref=f62e48]: + - link "4ebb40a7" [ref=f62e49] [cursor=pointer]: + - /url: /review?session=4ebb40a7 + - button "Copy session ID" [ref=f62e50] [cursor=pointer] + - generic [ref=f62e54]: + - generic [ref=f62e55]: P + - button "Open process console" [ref=f62e57] + - link "Dashboard settings" [ref=f62e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f62e65] [cursor=pointer] + - button "Scope offline" [ref=f62e69] [cursor=pointer] + - generic [ref=f62e74]: + - complementary [ref=f62e75]: + - navigation [ref=f62e76]: + - generic [ref=f62e77]: + - generic [ref=f62e78]: Now + - button "Home" [ref=f62e79] [cursor=pointer] + - button "Operations" [ref=f62e80] [cursor=pointer] + - button "Embryos" [ref=f62e81] [cursor=pointer] + - generic [ref=f62e82]: + - generic [ref=f62e83]: Library + - button "Plans" [ref=f62e84] [cursor=pointer] + - button "Sessions" [ref=f62e85] [cursor=pointer] + - button "Notebook" [ref=f62e86] [cursor=pointer] + - button "Gallery" [ref=f62e87] [cursor=pointer] + - generic [ref=f62e88]: + - generic [ref=f62e89]: System + - button "Devices" [ref=f62e90] [cursor=pointer] + - button "Calibration" [ref=f62e91] [cursor=pointer] + - button "Logs" [ref=f62e92] [cursor=pointer] + - button "Talk to Gently" [ref=f62e93] [cursor=pointer] + - generic [ref=f62e95]: + - generic [ref=f62e96]: + - generic [ref=f62e97]: LIVE + - generic [ref=f62e99]: 0 embryos · Online + - contentinfo [ref=f62e100]: + - generic [ref=f62e101]: 0 embryos · 0 images · 8 events + - generic [ref=f62e102]: No active timelapse + - complementary "Agent chat" [ref=f62e103]: + - generic [ref=f62e105]: + - generic [ref=f62e106]: Agent + - generic [ref=f62e108]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f62e109] [cursor=pointer] + - generic [ref=f62e113]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f62e114]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f62e115] + - generic [ref=f62e119]: + - generic: + - generic [ref=f62e121]: + - button "▼" [ref=f62e122] [cursor=pointer] + - generic [ref=f62e123]: HOME + - generic [ref=f62e124]: 3 rows + - generic [ref=f62e125]: + - generic [ref=f62e126]: + - button "▼" [ref=f62e127] [cursor=pointer] + - generic [ref=f62e128]: EMBRYOS + - generic [ref=f62e129]: no embryos + - generic [ref=f62e130]: + - generic [ref=f62e131] [cursor=pointer]: default + - generic [ref=f62e132] [cursor=pointer]: board + - generic [ref=f62e133] [cursor=pointer]: filmstrip + - generic [ref=f62e134] [cursor=pointer]: vitals + - generic [ref=f62e138]: + - generic [ref=f62e141] [cursor=pointer]: + - heading "Embryo Monitoring" [level=2] [ref=f62e142] + - generic [ref=f62e143]: No active timelapse + - generic [ref=f62e147]: + - generic [ref=f62e148]: Embryos + - generic [ref=f62e152]: + - generic [ref=f62e153]: 🔬 + - generic [ref=f62e154]: No embryos yet + - generic [ref=f62e155]: Start a timelapse acquisition to begin tracking embryos. Configure your experiment in the Calibration tab. + - button "Go to Calibration" [ref=f62e156] [cursor=pointer] + - generic [ref=f62e157]: + - generic [ref=f62e158]: + - button "▼" [ref=f62e159] [cursor=pointer] + - generic [ref=f62e160]: CALIBRATION + - generic [ref=f62e161]: no cal images + - generic [ref=f62e162]: + - generic [ref=f62e163] [cursor=pointer]: profile + - generic [ref=f62e164] [cursor=pointer]: gallery + - generic [ref=f62e166]: + - heading "Calibration" [level=2] [ref=f62e168] + - generic [ref=f62e169]: + - generic [ref=f62e170]: + - generic [ref=f62e171]: Embryos + - generic [ref=f62e172]: No calibration images yet + - generic [ref=f62e175]: + - generic [ref=f62e176]: 📷 + - generic [ref=f62e177]: Select an embryo to view calibration images + - generic [ref=f62e178]: + - generic [ref=f62e179]: + - button "▼" [ref=f62e180] [cursor=pointer] + - generic [ref=f62e181]: EXPERIMENT + - generic [ref=f62e182]: empty + - generic [ref=f62e183]: + - generic [ref=f62e184] [cursor=pointer]: overview + - generic [ref=f62e185] [cursor=pointer]: rules + - generic [ref=f62e187]: + - heading "Operations" [level=2] [ref=f62e189] + - generic [ref=f62e192]: + - generic [ref=f62e193]: Operations + - heading "No operation running" [level=1] [ref=f62e194] + - generic [ref=f62e195]: Brief the agent — it will declare a tactic plan and the spine renders live. + - generic [ref=f62e196]: + - button "Brief the agent" [ref=f62e197] [cursor=pointer] + - generic [ref=f62e198]: — or start from a template + - generic [ref=f62e199]: + - button "Temperature-strain run" [ref=f62e200] [cursor=pointer] + - button "Standing timelapse" [ref=f62e201] [cursor=pointer] + - button "Watch for hatching" [ref=f62e202] [cursor=pointer] + - generic [ref=f62e203]: Loading linked plans… + - generic [ref=f62e206]: + - button "▼" [ref=f62e207] [cursor=pointer] + - generic [ref=f62e208]: EVENTS + - generic [ref=f62e209]: no events + - generic [ref=f62e210]: + - generic [ref=f62e211]: + - button "▼" [ref=f62e212] [cursor=pointer] + - generic [ref=f62e213]: PLANS + - generic [ref=f62e214]: empty + - generic [ref=f62e215]: + - generic [ref=f62e216] [cursor=pointer]: document + - generic [ref=f62e217] [cursor=pointer]: graph + - generic [ref=f62e218] [cursor=pointer]: board + - generic [ref=f62e219] [cursor=pointer]: decisions + - generic [ref=f62e220] [cursor=pointer]: matrix + - generic [ref=f62e221] [cursor=pointer]: timeline + - generic [ref=f62e223]: + - generic [ref=f62e225]: + - generic [ref=f62e226]: Campaigns + - text: › + - generic [ref=f62e227]: + - navigation [ref=f62e228]: + - generic [ref=f62e229]: + - generic [ref=f62e230]: Campaigns + - generic [ref=f62e231] [cursor=pointer]: timing-variance + - main [ref=f62e234]: + - paragraph [ref=f62e237]: Loading plan... + - complementary [ref=f62e238]: + - generic [ref=f62e239]: + - button "Close" [ref=f62e240] [cursor=pointer] + - heading [level=2] + - generic [ref=f62e246]: + - button "▼" [ref=f62e247] [cursor=pointer] + - generic [ref=f62e248]: SESSIONS + - generic [ref=f62e249]: empty + - generic [ref=f62e251]: + - button "▼" [ref=f62e252] [cursor=pointer] + - generic [ref=f62e253]: NOTEBOOK + - generic [ref=f62e254]: 4 rows + - generic [ref=f62e256]: + - button "▼" [ref=f62e257] [cursor=pointer] + - generic [ref=f62e258]: GALLERY + - generic [ref=f62e259]: no images + - generic: + - generic [ref=f62e261]: + - button "▼" [ref=f62e262] [cursor=pointer] + - generic [ref=f62e263]: DEVICES + - generic [ref=f62e264]: scope offline + - generic: + - generic [ref=f62e265]: + - generic [ref=f62e266]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f62e267] [cursor=pointer]: + - /url: "#" + - generic [ref=f62e268]: + - button "←" [disabled] [ref=f62e269] + - button "⌂ start" [ref=f62e270] [cursor=pointer] + - button "all" [ref=f62e271] [cursor=pointer] + - button "home" [ref=f62e272] [cursor=pointer] + - button "embryos" [ref=f62e273] [cursor=pointer] + - button "devices" [ref=f62e274] [cursor=pointer] + - button "calibration" [ref=f62e275] [cursor=pointer] + - button "experiment" [ref=f62e276] [cursor=pointer] + - button "events" [ref=f62e277] [cursor=pointer] + - button "plans" [ref=f62e278] [cursor=pointer] + - button "sessions" [ref=f62e279] [cursor=pointer] + - button "notebook" [ref=f62e280] [cursor=pointer] + - button "gallery" [ref=f62e281] [cursor=pointer] + - generic [ref=f62e282]: + - generic [ref=f62e283]: 58% + - generic [ref=f62e284]: + - text: density + - slider "density 4" [ref=f62e285]: "4" + - generic [ref=f62e286]: "4" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-45-43-734Z.yml b/.playwright-mcp/page-2026-08-24T17-45-43-734Z.yml new file mode 100644 index 00000000..03803579 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-45-43-734Z.yml @@ -0,0 +1,213 @@ +- generic [ref=f65e1]: + - generic "Welcome to Gently" [ref=f65e2]: + - button "Toggle theme" [ref=f65e3] [cursor=pointer] + - generic [ref=f65e7]: + - generic [ref=f65e8]: Good evening.What are we doing today? + - generic [ref=f65e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f65e12] [cursor=pointer]: + - generic [ref=f65e13]: guided + - heading "Plan an experiment" [level=3] [ref=f65e17] + - paragraph [ref=f65e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f65e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f65e22] [cursor=pointer]: + - generic [ref=f65e23]: standalone + - heading "Take a quick look" [level=3] [ref=f65e28] + - paragraph [ref=f65e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f65e30]: Open the scope + - generic [ref=f65e33]: + - button "or just tell me what you need" [ref=f65e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f65e40] + - button "Send" [ref=f65e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f65e44] [cursor=pointer] + - generic [ref=f65e45]: + - generic [ref=f65e46]: + - link "Gently Microscopy" [ref=f65e47] [cursor=pointer]: + - /url: / + - generic [ref=f65e48]: + - link "4ebb40a7" [ref=f65e49] [cursor=pointer]: + - /url: /review?session=4ebb40a7 + - button "Copy session ID" [ref=f65e50] [cursor=pointer] + - generic [ref=f65e54]: + - generic [ref=f65e55]: P + - button "Open process console" [ref=f65e57] + - link "Dashboard settings" [ref=f65e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f65e65] [cursor=pointer] + - button "Scope offline" [ref=f65e69] [cursor=pointer] + - generic [ref=f65e74]: + - complementary [ref=f65e75]: + - navigation [ref=f65e76]: + - generic [ref=f65e77]: + - generic [ref=f65e78]: Now + - button "Home" [ref=f65e79] [cursor=pointer] + - button "Operations" [ref=f65e80] [cursor=pointer] + - button "Embryos" [ref=f65e81] [cursor=pointer] + - generic [ref=f65e82]: + - generic [ref=f65e83]: Library + - button "Plans" [ref=f65e84] [cursor=pointer] + - button "Sessions" [ref=f65e85] [cursor=pointer] + - button "Notebook" [ref=f65e86] [cursor=pointer] + - button "Gallery" [ref=f65e87] [cursor=pointer] + - generic [ref=f65e88]: + - generic [ref=f65e89]: System + - button "Devices" [ref=f65e90] [cursor=pointer] + - button "Calibration" [ref=f65e91] [cursor=pointer] + - button "Logs" [ref=f65e92] [cursor=pointer] + - button "Talk to Gently" [ref=f65e93] [cursor=pointer] + - generic [ref=f65e95]: + - generic [ref=f65e96]: + - generic [ref=f65e97]: LIVE + - generic [ref=f65e99]: 0 embryos · Online + - contentinfo [ref=f65e100]: + - generic [ref=f65e101]: 0 embryos · 0 images · 8 events + - generic [ref=f65e102]: No active timelapse + - complementary "Agent chat" [ref=f65e103]: + - generic [ref=f65e105]: + - generic [ref=f65e106]: Agent + - generic [ref=f65e108]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f65e109] [cursor=pointer] + - generic [ref=f65e113]: + - textbox "Message Gently… ( / commands · @ tools )" [active] [ref=f65e114]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f65e115] + - generic: + - generic [ref=f65e119]: + - button "Fold or open DEVICES" [ref=f65e120] [cursor=pointer]: ▼ + - generic [ref=f65e121]: DEVICES + - generic [ref=f65e122]: scope offline + - generic: + - generic [ref=f65e123]: + - generic [ref=f65e124]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f65e125] [cursor=pointer]: + - /url: "#" + - generic [ref=f65e126]: + - button "←" [disabled] [ref=f65e127] + - button "⌂ start" [ref=f65e128] [cursor=pointer] + - button "all" [ref=f65e129] [cursor=pointer] + - button "home" [ref=f65e130] [cursor=pointer] + - button "embryos" [ref=f65e131] [cursor=pointer] + - button "devices" [ref=f65e132] [cursor=pointer] + - button "calibration" [ref=f65e133] [cursor=pointer] + - button "experiment" [ref=f65e134] [cursor=pointer] + - button "events" [ref=f65e135] [cursor=pointer] + - button "plans" [ref=f65e136] [cursor=pointer] + - button "sessions" [ref=f65e137] [cursor=pointer] + - button "notebook" [ref=f65e138] [cursor=pointer] + - button "gallery" [ref=f65e139] [cursor=pointer] + - generic [ref=f65e140]: + - generic [ref=f65e141]: 58% + - generic [ref=f65e142]: + - text: density + - slider "density 4" [ref=f65e143]: "4" + - generic [ref=f65e144]: "4" + - generic [ref=f65e146]: + - generic: + - generic [ref=f65e148]: + - button "Fold or open HOME" [ref=f65e149] [cursor=pointer]: ▼ + - generic [ref=f65e150]: HOME + - generic [ref=f65e151]: 3 rows + - generic [ref=f65e152]: + - generic [ref=f65e153]: + - button "Fold or open EMBRYOS" [expanded] [ref=f65e154] [cursor=pointer]: ▼ + - generic [ref=f65e155]: EMBRYOS + - generic [ref=f65e156]: no embryos + - generic [ref=f65e157]: + - button "default" [pressed] [ref=f65e158] [cursor=pointer] + - button "board" [ref=f65e159] [cursor=pointer] + - button "filmstrip" [ref=f65e160] [cursor=pointer] + - button "vitals" [ref=f65e161] [cursor=pointer] + - generic [ref=f65e165]: + - generic [ref=f65e168] [cursor=pointer]: + - heading "Embryo Monitoring" [level=2] [ref=f65e169] + - generic [ref=f65e170]: No active timelapse + - generic [ref=f65e174]: + - generic [ref=f65e175]: Embryos + - generic [ref=f65e179]: + - generic [ref=f65e180]: 🔬 + - generic [ref=f65e181]: No embryos yet + - generic [ref=f65e182]: Start a timelapse acquisition to begin tracking embryos. Configure your experiment in the Calibration tab. + - button "Go to Calibration" [ref=f65e183] [cursor=pointer] + - generic [ref=f65e184]: + - generic [ref=f65e185]: + - button "Fold or open CALIBRATION" [expanded] [ref=f65e186] [cursor=pointer]: ▼ + - generic [ref=f65e187]: CALIBRATION + - generic [ref=f65e188]: no cal images + - generic [ref=f65e189]: + - button "profile" [pressed] [ref=f65e190] [cursor=pointer] + - button "gallery" [ref=f65e191] [cursor=pointer] + - generic [ref=f65e193]: + - heading "Calibration" [level=2] [ref=f65e195] + - generic [ref=f65e196]: + - generic [ref=f65e197]: + - generic [ref=f65e198]: Embryos + - generic [ref=f65e199]: No calibration images yet + - generic [ref=f65e202]: + - generic [ref=f65e203]: 📷 + - generic [ref=f65e204]: Select an embryo to view calibration images + - generic [ref=f65e205]: + - generic [ref=f65e206]: + - button "Fold or open EXPERIMENT" [expanded] [ref=f65e207] [cursor=pointer]: ▼ + - generic [ref=f65e208]: EXPERIMENT + - generic [ref=f65e209]: empty + - generic [ref=f65e210]: + - button "overview" [pressed] [ref=f65e211] [cursor=pointer] + - button "rules" [ref=f65e212] [cursor=pointer] + - generic [ref=f65e214]: + - heading "Operations" [level=2] [ref=f65e216] + - generic [ref=f65e219]: + - generic [ref=f65e220]: Operations + - heading "No operation running" [level=1] [ref=f65e221] + - generic [ref=f65e222]: Brief the agent — it will declare a tactic plan and the spine renders live. + - generic [ref=f65e223]: + - button "Brief the agent" [ref=f65e224] [cursor=pointer] + - generic [ref=f65e225]: — or start from a template + - generic [ref=f65e226]: + - button "Temperature-strain run" [ref=f65e227] [cursor=pointer] + - button "Standing timelapse" [ref=f65e228] [cursor=pointer] + - button "Watch for hatching" [ref=f65e229] [cursor=pointer] + - generic [ref=f65e230]: Loading linked plans… + - generic [ref=f65e233]: + - button "Fold or open EVENTS" [ref=f65e234] [cursor=pointer]: ▼ + - generic [ref=f65e235]: EVENTS + - generic [ref=f65e236]: no events + - generic [ref=f65e237]: + - generic [ref=f65e238]: + - button "Fold or open PLANS" [expanded] [ref=f65e239] [cursor=pointer]: ▼ + - generic [ref=f65e240]: PLANS + - generic [ref=f65e241]: empty + - generic [ref=f65e242]: + - button "document" [pressed] [ref=f65e243] [cursor=pointer] + - button "graph" [ref=f65e244] [cursor=pointer] + - button "board" [ref=f65e245] [cursor=pointer] + - button "decisions" [ref=f65e246] [cursor=pointer] + - button "matrix" [ref=f65e247] [cursor=pointer] + - button "timeline" [ref=f65e248] [cursor=pointer] + - generic [ref=f65e250]: + - generic [ref=f65e252]: + - generic [ref=f65e253]: Campaigns + - text: › + - generic [ref=f65e254]: + - navigation [ref=f65e255]: + - generic [ref=f65e256]: + - generic [ref=f65e257]: Campaigns + - generic [ref=f65e258] [cursor=pointer]: timing-variance + - main [ref=f65e261]: + - paragraph [ref=f65e264]: Loading plan... + - complementary [ref=f65e265]: + - generic [ref=f65e266]: + - button "Close" [ref=f65e267] [cursor=pointer] + - heading [level=2] + - generic [ref=f65e273]: + - button "Fold or open SESSIONS" [ref=f65e274] [cursor=pointer]: ▼ + - generic [ref=f65e275]: SESSIONS + - generic [ref=f65e276]: empty + - generic [ref=f65e278]: + - button "Fold or open NOTEBOOK" [ref=f65e279] [cursor=pointer]: ▼ + - generic [ref=f65e280]: NOTEBOOK + - generic [ref=f65e281]: 4 rows + - generic [ref=f65e283]: + - button "Fold or open GALLERY" [ref=f65e284] [cursor=pointer]: ▼ + - generic [ref=f65e285]: GALLERY + - generic [ref=f65e286]: no images \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-47-52-724Z.yml b/.playwright-mcp/page-2026-08-24T17-47-52-724Z.yml new file mode 100644 index 00000000..5964d94a --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-47-52-724Z.yml @@ -0,0 +1,213 @@ +- generic [active] [ref=f68e1]: + - generic "Welcome to Gently" [ref=f68e2]: + - button "Toggle theme" [ref=f68e3] [cursor=pointer] + - generic [ref=f68e7]: + - generic [ref=f68e8]: Good evening.What are we doing today? + - generic [ref=f68e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f68e12] [cursor=pointer]: + - generic [ref=f68e13]: guided + - heading "Plan an experiment" [level=3] [ref=f68e17] + - paragraph [ref=f68e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f68e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f68e22] [cursor=pointer]: + - generic [ref=f68e23]: standalone + - heading "Take a quick look" [level=3] [ref=f68e28] + - paragraph [ref=f68e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f68e30]: Open the scope + - generic [ref=f68e33]: + - button "or just tell me what you need" [ref=f68e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f68e40] + - button "Send" [ref=f68e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f68e44] [cursor=pointer] + - generic [ref=f68e45]: + - generic [ref=f68e46]: + - link "Gently Microscopy" [ref=f68e47] [cursor=pointer]: + - /url: / + - generic [ref=f68e48]: + - link "4ebb40a7" [ref=f68e49] [cursor=pointer]: + - /url: /review?session=4ebb40a7 + - button "Copy session ID" [ref=f68e50] [cursor=pointer] + - generic [ref=f68e54]: + - generic [ref=f68e55]: P + - button "Open process console" [ref=f68e57] + - link "Dashboard settings" [ref=f68e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f68e65] [cursor=pointer] + - button "Scope offline" [ref=f68e69] [cursor=pointer] + - generic [ref=f68e74]: + - complementary [ref=f68e75]: + - navigation [ref=f68e76]: + - generic [ref=f68e77]: + - generic [ref=f68e78]: Now + - button "Home" [ref=f68e79] [cursor=pointer] + - button "Operations" [ref=f68e80] [cursor=pointer] + - button "Embryos" [ref=f68e81] [cursor=pointer] + - generic [ref=f68e82]: + - generic [ref=f68e83]: Library + - button "Plans" [ref=f68e84] [cursor=pointer] + - button "Sessions" [ref=f68e85] [cursor=pointer] + - button "Notebook" [ref=f68e86] [cursor=pointer] + - button "Gallery" [ref=f68e87] [cursor=pointer] + - generic [ref=f68e88]: + - generic [ref=f68e89]: System + - button "Devices" [ref=f68e90] [cursor=pointer] + - button "Calibration" [ref=f68e91] [cursor=pointer] + - button "Logs" [ref=f68e92] [cursor=pointer] + - button "Talk to Gently" [ref=f68e93] [cursor=pointer] + - generic [ref=f68e95]: + - generic [ref=f68e96]: + - generic [ref=f68e97]: LIVE + - generic [ref=f68e99]: 0 embryos · Online + - contentinfo [ref=f68e100]: + - generic [ref=f68e101]: 0 embryos · 0 images · 8 events + - generic [ref=f68e102]: No active timelapse + - complementary "Agent chat" [ref=f68e103]: + - generic [ref=f68e105]: + - generic [ref=f68e106]: Agent + - generic [ref=f68e108]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f68e109] [cursor=pointer] + - generic [ref=f68e113]: + - textbox "Message Gently… ( / commands · @ tools )" [ref=f68e114]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f68e115] + - generic: + - generic [ref=f68e119]: + - button "Fold or open DEVICES" [ref=f68e120] [cursor=pointer]: ▼ + - generic [ref=f68e121]: DEVICES + - generic [ref=f68e122]: scope offline + - generic: + - generic [ref=f68e123]: + - generic [ref=f68e124]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f68e125] [cursor=pointer]: + - /url: "#" + - generic [ref=f68e126]: + - button "←" [disabled] [ref=f68e127] + - button "⌂ start" [ref=f68e128] [cursor=pointer] + - button "all" [ref=f68e129] [cursor=pointer] + - button "home" [ref=f68e130] [cursor=pointer] + - button "embryos" [ref=f68e131] [cursor=pointer] + - button "devices" [ref=f68e132] [cursor=pointer] + - button "calibration" [ref=f68e133] [cursor=pointer] + - button "experiment" [ref=f68e134] [cursor=pointer] + - button "events" [ref=f68e135] [cursor=pointer] + - button "plans" [ref=f68e136] [cursor=pointer] + - button "sessions" [ref=f68e137] [cursor=pointer] + - button "notebook" [ref=f68e138] [cursor=pointer] + - button "gallery" [ref=f68e139] [cursor=pointer] + - generic [ref=f68e140]: + - generic [ref=f68e141]: 58% + - generic [ref=f68e142]: + - text: density + - slider "density 4" [ref=f68e143]: "4" + - generic [ref=f68e144]: "4" + - generic [ref=f68e146]: + - generic: + - generic [ref=f68e148]: + - button "Fold or open HOME" [ref=f68e149] [cursor=pointer]: ▼ + - generic [ref=f68e150]: HOME + - generic [ref=f68e151]: 3 rows + - generic [ref=f68e152]: + - generic [ref=f68e153]: + - button "Fold or open EMBRYOS" [expanded] [ref=f68e154] [cursor=pointer]: ▼ + - generic [ref=f68e155]: EMBRYOS + - generic [ref=f68e156]: no embryos + - generic [ref=f68e157]: + - button "default" [pressed] [ref=f68e158] [cursor=pointer] + - button "board" [ref=f68e159] [cursor=pointer] + - button "filmstrip" [ref=f68e160] [cursor=pointer] + - button "vitals" [ref=f68e161] [cursor=pointer] + - generic [ref=f68e165]: + - generic [ref=f68e168] [cursor=pointer]: + - heading "Embryo Monitoring" [level=2] [ref=f68e169] + - generic [ref=f68e170]: No active timelapse + - generic [ref=f68e174]: + - generic [ref=f68e175]: Embryos + - generic [ref=f68e179]: + - generic [ref=f68e180]: 🔬 + - generic [ref=f68e181]: No embryos yet + - generic [ref=f68e182]: Start a timelapse acquisition to begin tracking embryos. Configure your experiment in the Calibration tab. + - button "Go to Calibration" [ref=f68e183] [cursor=pointer] + - generic [ref=f68e184]: + - generic [ref=f68e185]: + - button "Fold or open CALIBRATION" [expanded] [ref=f68e186] [cursor=pointer]: ▼ + - generic [ref=f68e187]: CALIBRATION + - generic [ref=f68e188]: no cal images + - generic [ref=f68e189]: + - button "profile" [pressed] [ref=f68e190] [cursor=pointer] + - button "gallery" [ref=f68e191] [cursor=pointer] + - generic [ref=f68e193]: + - heading "Calibration" [level=2] [ref=f68e195] + - generic [ref=f68e196]: + - generic [ref=f68e197]: + - generic [ref=f68e198]: Embryos + - generic [ref=f68e199]: No calibration images yet + - generic [ref=f68e202]: + - generic [ref=f68e203]: 📷 + - generic [ref=f68e204]: Select an embryo to view calibration images + - generic [ref=f68e205]: + - generic [ref=f68e206]: + - button "Fold or open EXPERIMENT" [expanded] [ref=f68e207] [cursor=pointer]: ▼ + - generic [ref=f68e208]: EXPERIMENT + - generic [ref=f68e209]: empty + - generic [ref=f68e210]: + - button "overview" [pressed] [ref=f68e211] [cursor=pointer] + - button "rules" [ref=f68e212] [cursor=pointer] + - generic [ref=f68e214]: + - heading "Operations" [level=2] [ref=f68e216] + - generic [ref=f68e219]: + - generic [ref=f68e220]: Operations + - heading "No operation running" [level=1] [ref=f68e221] + - generic [ref=f68e222]: Brief the agent — it will declare a tactic plan and the spine renders live. + - generic [ref=f68e223]: + - button "Brief the agent" [ref=f68e224] [cursor=pointer] + - generic [ref=f68e225]: — or start from a template + - generic [ref=f68e226]: + - button "Temperature-strain run" [ref=f68e227] [cursor=pointer] + - button "Standing timelapse" [ref=f68e228] [cursor=pointer] + - button "Watch for hatching" [ref=f68e229] [cursor=pointer] + - generic [ref=f68e230]: Loading linked plans… + - generic [ref=f68e233]: + - button "Fold or open EVENTS" [ref=f68e234] [cursor=pointer]: ▼ + - generic [ref=f68e235]: EVENTS + - generic [ref=f68e236]: no events + - generic [ref=f68e237]: + - generic [ref=f68e238]: + - button "Fold or open PLANS" [expanded] [ref=f68e239] [cursor=pointer]: ▼ + - generic [ref=f68e240]: PLANS + - generic [ref=f68e241]: empty + - generic [ref=f68e242]: + - button "document" [pressed] [ref=f68e243] [cursor=pointer] + - button "graph" [ref=f68e244] [cursor=pointer] + - button "board" [ref=f68e245] [cursor=pointer] + - button "decisions" [ref=f68e246] [cursor=pointer] + - button "matrix" [ref=f68e247] [cursor=pointer] + - button "timeline" [ref=f68e248] [cursor=pointer] + - generic [ref=f68e250]: + - generic [ref=f68e252]: + - generic [ref=f68e253]: Campaigns + - text: › + - generic [ref=f68e254]: + - navigation [ref=f68e255]: + - generic [ref=f68e256]: + - generic [ref=f68e257]: Campaigns + - generic [ref=f68e258] [cursor=pointer]: timing-variance + - main [ref=f68e261]: + - paragraph [ref=f68e264]: Loading plan... + - complementary [ref=f68e265]: + - generic [ref=f68e266]: + - button "Close" [ref=f68e267] [cursor=pointer] + - heading [level=2] + - generic [ref=f68e273]: + - button "Fold or open SESSIONS" [ref=f68e274] [cursor=pointer]: ▼ + - generic [ref=f68e275]: SESSIONS + - generic [ref=f68e276]: empty + - generic [ref=f68e278]: + - button "Fold or open NOTEBOOK" [ref=f68e279] [cursor=pointer]: ▼ + - generic [ref=f68e280]: NOTEBOOK + - generic [ref=f68e281]: 4 rows + - generic [ref=f68e283]: + - button "Fold or open GALLERY" [ref=f68e284] [cursor=pointer]: ▼ + - generic [ref=f68e285]: GALLERY + - generic [ref=f68e286]: no images \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-48-41-014Z.yml b/.playwright-mcp/page-2026-08-24T17-48-41-014Z.yml new file mode 100644 index 00000000..84ca0fdb --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-48-41-014Z.yml @@ -0,0 +1,213 @@ +- generic [active] [ref=f71e1]: + - generic "Welcome to Gently" [ref=f71e2]: + - button "Toggle theme" [ref=f71e3] [cursor=pointer] + - generic [ref=f71e7]: + - generic [ref=f71e8]: Good evening.What are we doing today? + - generic [ref=f71e11]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f71e12] [cursor=pointer]: + - generic [ref=f71e13]: guided + - heading "Plan an experiment" [level=3] [ref=f71e17] + - paragraph [ref=f71e18]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f71e19]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f71e22] [cursor=pointer]: + - generic [ref=f71e23]: standalone + - heading "Take a quick look" [level=3] [ref=f71e28] + - paragraph [ref=f71e29]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f71e30]: Open the scope + - generic [ref=f71e33]: + - button "or just tell me what you need" [ref=f71e34] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f71e40] + - button "Send" [ref=f71e41] [cursor=pointer] + - button "Skip to workspace ›" [ref=f71e44] [cursor=pointer] + - generic [ref=f71e45]: + - generic [ref=f71e46]: + - link "Gently Microscopy" [ref=f71e47] [cursor=pointer]: + - /url: / + - generic [ref=f71e48]: + - link "4ebb40a7" [ref=f71e49] [cursor=pointer]: + - /url: /review?session=4ebb40a7 + - button "Copy session ID" [ref=f71e50] [cursor=pointer] + - generic [ref=f71e54]: + - generic [ref=f71e55]: P + - button "Open process console" [ref=f71e57] + - link "Dashboard settings" [ref=f71e61] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f71e65] [cursor=pointer] + - button "Scope offline" [ref=f71e69] [cursor=pointer] + - generic [ref=f71e74]: + - complementary [ref=f71e75]: + - navigation [ref=f71e76]: + - generic [ref=f71e77]: + - generic [ref=f71e78]: Now + - button "Home" [ref=f71e79] [cursor=pointer] + - button "Operations" [ref=f71e80] [cursor=pointer] + - button "Embryos" [ref=f71e81] [cursor=pointer] + - generic [ref=f71e82]: + - generic [ref=f71e83]: Library + - button "Plans" [ref=f71e84] [cursor=pointer] + - button "Sessions" [ref=f71e85] [cursor=pointer] + - button "Notebook" [ref=f71e86] [cursor=pointer] + - button "Gallery" [ref=f71e87] [cursor=pointer] + - generic [ref=f71e88]: + - generic [ref=f71e89]: System + - button "Devices" [ref=f71e90] [cursor=pointer] + - button "Calibration" [ref=f71e91] [cursor=pointer] + - button "Logs" [ref=f71e92] [cursor=pointer] + - button "Talk to Gently" [ref=f71e93] [cursor=pointer] + - generic [ref=f71e95]: + - generic [ref=f71e96]: + - generic [ref=f71e97]: LIVE + - generic [ref=f71e99]: 0 embryos · Online + - contentinfo [ref=f71e100]: + - generic [ref=f71e101]: 0 embryos · 0 images · 8 events + - generic [ref=f71e102]: No active timelapse + - complementary "Agent chat" [ref=f71e103]: + - generic [ref=f71e105]: + - generic [ref=f71e106]: Agent + - generic [ref=f71e108]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f71e109] [cursor=pointer] + - generic [ref=f71e113]: + - textbox "Message Gently… ( / commands · @ tools )" [ref=f71e114]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f71e115] + - generic: + - generic [ref=f71e119]: + - button "Fold or open DEVICES" [ref=f71e120] [cursor=pointer]: ▼ + - generic [ref=f71e121]: DEVICES + - generic [ref=f71e122]: scope offline + - generic: + - generic [ref=f71e123]: + - generic [ref=f71e124]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f71e125] [cursor=pointer]: + - /url: "#" + - generic [ref=f71e126]: + - button "←" [disabled] [ref=f71e127] + - button "⌂ start" [ref=f71e128] [cursor=pointer] + - button "all" [ref=f71e129] [cursor=pointer] + - button "home" [ref=f71e130] [cursor=pointer] + - button "embryos" [ref=f71e131] [cursor=pointer] + - button "devices" [ref=f71e132] [cursor=pointer] + - button "calibration" [ref=f71e133] [cursor=pointer] + - button "experiment" [ref=f71e134] [cursor=pointer] + - button "events" [ref=f71e135] [cursor=pointer] + - button "plans" [ref=f71e136] [cursor=pointer] + - button "sessions" [ref=f71e137] [cursor=pointer] + - button "notebook" [ref=f71e138] [cursor=pointer] + - button "gallery" [ref=f71e139] [cursor=pointer] + - generic [ref=f71e140]: + - generic [ref=f71e141]: 58% + - generic [ref=f71e142]: + - text: density + - slider "density 4" [ref=f71e143]: "4" + - generic [ref=f71e144]: "4" + - generic [ref=f71e146]: + - generic: + - generic [ref=f71e148]: + - button "Fold or open HOME" [ref=f71e149] [cursor=pointer]: ▼ + - generic [ref=f71e150]: HOME + - generic [ref=f71e151]: 3 rows + - generic [ref=f71e152]: + - generic [ref=f71e153]: + - button "Fold or open EMBRYOS" [expanded] [ref=f71e154] [cursor=pointer]: ▼ + - generic [ref=f71e155]: EMBRYOS + - generic [ref=f71e156]: no embryos + - generic [ref=f71e157]: + - button "default" [pressed] [ref=f71e158] [cursor=pointer] + - button "board" [ref=f71e159] [cursor=pointer] + - button "filmstrip" [ref=f71e160] [cursor=pointer] + - button "vitals" [ref=f71e161] [cursor=pointer] + - generic [ref=f71e165]: + - generic [ref=f71e168] [cursor=pointer]: + - heading "Embryo Monitoring" [level=2] [ref=f71e169] + - generic [ref=f71e170]: No active timelapse + - generic [ref=f71e174]: + - generic [ref=f71e175]: Embryos + - generic [ref=f71e179]: + - generic [ref=f71e180]: 🔬 + - generic [ref=f71e181]: No embryos yet + - generic [ref=f71e182]: Start a timelapse acquisition to begin tracking embryos. Configure your experiment in the Calibration tab. + - button "Go to Calibration" [ref=f71e183] [cursor=pointer] + - generic [ref=f71e184]: + - generic [ref=f71e185]: + - button "Fold or open CALIBRATION" [expanded] [ref=f71e186] [cursor=pointer]: ▼ + - generic [ref=f71e187]: CALIBRATION + - generic [ref=f71e188]: no cal images + - generic [ref=f71e189]: + - button "profile" [pressed] [ref=f71e190] [cursor=pointer] + - button "gallery" [ref=f71e191] [cursor=pointer] + - generic [ref=f71e193]: + - heading "Calibration" [level=2] [ref=f71e195] + - generic [ref=f71e196]: + - generic [ref=f71e197]: + - generic [ref=f71e198]: Embryos + - generic [ref=f71e199]: No calibration images yet + - generic [ref=f71e202]: + - generic [ref=f71e203]: 📷 + - generic [ref=f71e204]: Select an embryo to view calibration images + - generic [ref=f71e205]: + - generic [ref=f71e206]: + - button "Fold or open EXPERIMENT" [expanded] [ref=f71e207] [cursor=pointer]: ▼ + - generic [ref=f71e208]: EXPERIMENT + - generic [ref=f71e209]: empty + - generic [ref=f71e210]: + - button "overview" [pressed] [ref=f71e211] [cursor=pointer] + - button "rules" [ref=f71e212] [cursor=pointer] + - generic [ref=f71e214]: + - heading "Operations" [level=2] [ref=f71e216] + - generic [ref=f71e219]: + - generic [ref=f71e220]: Operations + - heading "No operation running" [level=1] [ref=f71e221] + - generic [ref=f71e222]: Brief the agent — it will declare a tactic plan and the spine renders live. + - generic [ref=f71e223]: + - button "Brief the agent" [ref=f71e224] [cursor=pointer] + - generic [ref=f71e225]: — or start from a template + - generic [ref=f71e226]: + - button "Temperature-strain run" [ref=f71e227] [cursor=pointer] + - button "Standing timelapse" [ref=f71e228] [cursor=pointer] + - button "Watch for hatching" [ref=f71e229] [cursor=pointer] + - generic [ref=f71e230]: Loading linked plans… + - generic [ref=f71e233]: + - button "Fold or open EVENTS" [ref=f71e234] [cursor=pointer]: ▼ + - generic [ref=f71e235]: EVENTS + - generic [ref=f71e236]: no events + - generic [ref=f71e237]: + - generic [ref=f71e238]: + - button "Fold or open PLANS" [expanded] [ref=f71e239] [cursor=pointer]: ▼ + - generic [ref=f71e240]: PLANS + - generic [ref=f71e241]: empty + - generic [ref=f71e242]: + - button "document" [pressed] [ref=f71e243] [cursor=pointer] + - button "graph" [ref=f71e244] [cursor=pointer] + - button "board" [ref=f71e245] [cursor=pointer] + - button "decisions" [ref=f71e246] [cursor=pointer] + - button "matrix" [ref=f71e247] [cursor=pointer] + - button "timeline" [ref=f71e248] [cursor=pointer] + - generic [ref=f71e250]: + - generic [ref=f71e252]: + - generic [ref=f71e253]: Campaigns + - text: › + - generic [ref=f71e254]: + - navigation [ref=f71e255]: + - generic [ref=f71e256]: + - generic [ref=f71e257]: Campaigns + - generic [ref=f71e258] [cursor=pointer]: timing-variance + - main [ref=f71e261]: + - paragraph [ref=f71e264]: Loading plan... + - complementary [ref=f71e265]: + - generic [ref=f71e266]: + - button "Close" [ref=f71e267] [cursor=pointer] + - heading [level=2] + - generic [ref=f71e273]: + - button "Fold or open SESSIONS" [ref=f71e274] [cursor=pointer]: ▼ + - generic [ref=f71e275]: SESSIONS + - generic [ref=f71e276]: empty + - generic [ref=f71e278]: + - button "Fold or open NOTEBOOK" [ref=f71e279] [cursor=pointer]: ▼ + - generic [ref=f71e280]: NOTEBOOK + - generic [ref=f71e281]: 4 rows + - generic [ref=f71e283]: + - button "Fold or open GALLERY" [ref=f71e284] [cursor=pointer]: ▼ + - generic [ref=f71e285]: GALLERY + - generic [ref=f71e286]: no images \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-52-28-877Z.yml b/.playwright-mcp/page-2026-08-24T17-52-28-877Z.yml new file mode 100644 index 00000000..d72d546c --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-52-28-877Z.yml @@ -0,0 +1,255 @@ +- generic [active] [ref=f77e1]: + - generic [ref=f77e2]: + - generic [ref=f77e3]: + - link "Gently Microscopy" [ref=f77e4] [cursor=pointer]: + - /url: / + - generic [ref=f77e5]: + - link "db03fcbc" [ref=f77e6] [cursor=pointer]: + - /url: /review?session=db03fcbc + - button "Copy session ID" [ref=f77e7] [cursor=pointer] + - generic [ref=f77e11]: + - generic [ref=f77e12]: P + - button "Open process console" [ref=f77e14] + - link "Dashboard settings" [ref=f77e18] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f77e22] [cursor=pointer] + - button "Scope offline" [ref=f77e26] [cursor=pointer] + - generic [ref=f77e31]: + - complementary [ref=f77e32]: + - navigation [ref=f77e33]: + - generic [ref=f77e34]: + - generic [ref=f77e35]: Now + - button "Home" [ref=f77e36] [cursor=pointer] + - button "Operations" [ref=f77e37] [cursor=pointer] + - button "Embryos" [ref=f77e38] [cursor=pointer] + - generic [ref=f77e39]: + - generic [ref=f77e40]: Library + - button "Plans" [ref=f77e41] [cursor=pointer] + - button "Sessions" [ref=f77e42] [cursor=pointer] + - button "Notebook" [ref=f77e43] [cursor=pointer] + - button "Gallery" [ref=f77e44] [cursor=pointer] + - generic [ref=f77e45]: + - generic [ref=f77e46]: System + - button "Devices" [ref=f77e47] [cursor=pointer] + - button "Calibration" [ref=f77e48] [cursor=pointer] + - button "Logs" [ref=f77e49] [cursor=pointer] + - button "Talk to Gently" [ref=f77e50] [cursor=pointer] + - generic [ref=f77e52]: + - generic [ref=f77e53]: + - generic [ref=f77e54]: LIVE + - generic [ref=f77e56]: 4 embryos · Online + - contentinfo [ref=f77e57]: + - generic [ref=f77e58]: 4 embryos · 40 images · 16 events + - generic [ref=f77e59]: No active timelapse + - complementary "Agent chat" [ref=f77e60]: + - generic [ref=f77e62]: + - generic [ref=f77e63]: Agent + - generic [ref=f77e65]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f77e66] [cursor=pointer] + - generic [ref=f77e70]: + - textbox "Message Gently… ( / commands · @ tools )" [ref=f77e71]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f77e72] + - generic: + - generic [ref=f77e76]: + - button "Fold or open DEVICES" [ref=f77e77] [cursor=pointer]: ▼ + - generic [ref=f77e78]: DEVICES + - generic [ref=f77e79]: scope offline + - generic: + - generic [ref=f77e80]: + - generic [ref=f77e81]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f77e82] [cursor=pointer]: + - /url: "#" + - generic [ref=f77e83]: + - button "←" [disabled] [ref=f77e84] + - button "⌂ start" [ref=f77e85] [cursor=pointer] + - button "all" [ref=f77e86] [cursor=pointer] + - button "home" [ref=f77e87] [cursor=pointer] + - button "embryos" [ref=f77e88] [cursor=pointer] + - button "devices" [ref=f77e89] [cursor=pointer] + - button "calibration" [ref=f77e90] [cursor=pointer] + - button "experiment" [ref=f77e91] [cursor=pointer] + - button "events" [ref=f77e92] [cursor=pointer] + - button "plans" [ref=f77e93] [cursor=pointer] + - button "sessions" [ref=f77e94] [cursor=pointer] + - button "notebook" [ref=f77e95] [cursor=pointer] + - button "gallery" [ref=f77e96] [cursor=pointer] + - generic [ref=f77e97]: + - generic [ref=f77e98]: 58% + - generic [ref=f77e99]: + - text: density + - slider "density 4" [ref=f77e100]: "4" + - generic [ref=f77e101]: "4" + - generic [ref=f77e103]: + - generic: + - generic [ref=f77e105]: + - button "Fold or open HOME" [ref=f77e106] [cursor=pointer]: ▼ + - generic [ref=f77e107]: HOME + - generic [ref=f77e108]: 3 rows + - generic [ref=f77e109]: + - generic [ref=f77e110]: + - button "Fold or open EMBRYOS" [expanded] [ref=f77e111] [cursor=pointer]: ▼ + - generic [ref=f77e112]: EMBRYOS + - generic [ref=f77e113]: no embryos + - generic [ref=f77e114]: + - button "default" [pressed] [ref=f77e115] [cursor=pointer] + - button "board" [ref=f77e116] [cursor=pointer] + - button "filmstrip" [ref=f77e117] [cursor=pointer] + - button "vitals" [ref=f77e118] [cursor=pointer] + - generic [ref=f77e122]: + - generic [ref=f77e124] [cursor=pointer]: + - generic [ref=f77e125]: + - heading "Embryo Monitoring" [level=2] [ref=f77e126] + - generic [ref=f77e127]: No active timelapse + - generic [ref=f77e130]: + - generic [ref=f77e131]: + - generic [ref=f77e132]: "40" + - generic [ref=f77e133]: TP + - generic [ref=f77e134]: + - generic [ref=f77e135]: "4" + - generic [ref=f77e136]: Active + - generic [ref=f77e137]: + - generic [ref=f77e138]: "0" + - generic [ref=f77e139]: Done + - generic [ref=f77e140]: + - generic [ref=f77e141]: 2:00 + - generic [ref=f77e142]: Next + - generic [ref=f77e144]: + - generic [ref=f77e145]: + - generic [ref=f77e146]: Embryos + - generic [ref=f77e147]: + - generic "e01 — gastrula — 9 TP" [ref=f77e148] [cursor=pointer]: + - generic [ref=f77e149]: 🔬 + - generic [ref=f77e150]: e01 + - generic "e02 — Comma — 9 TP" [ref=f77e151] [cursor=pointer]: + - generic [ref=f77e152]: 🌙 + - generic [ref=f77e153]: e02 + - generic "e03 — lima-bean — 9 TP" [ref=f77e154] [cursor=pointer]: + - generic [ref=f77e155]: 🔬 + - generic [ref=f77e156]: e03 + - generic "e04 — Comma — 9 TP" [ref=f77e157] [cursor=pointer]: + - generic [ref=f77e158]: 🌙 + - generic [ref=f77e159]: e04 + - generic [ref=f77e160]: + - generic [ref=f77e161]: + - generic [ref=f77e162]: + - generic [ref=f77e163]: ● + - generic [ref=f77e164]: e01 + - generic [ref=f77e165]: 🔬 gastrula + - generic [ref=f77e166]: 5 transitions + - generic [ref=f77e167]: 10 evals + - generic [ref=f77e168]: 9 tp + - generic [ref=f77e169]: + - generic "Jump to 2-cell" [ref=f77e170] [cursor=pointer]: + - generic [ref=f77e171]: 🔬 + - text: 2-cell @ T0 + - generic "Jump to 4-cell" [ref=f77e172] [cursor=pointer]: + - generic [ref=f77e173]: 🔬 + - text: 4-cell @ T2 + - generic "Jump to 8-cell" [ref=f77e174] [cursor=pointer]: + - generic [ref=f77e175]: 🔬 + - text: 8-cell @ T4 + - generic "Jump to 26-cell" [ref=f77e176] [cursor=pointer]: + - generic [ref=f77e177]: 🔬 + - text: 26-cell @ T6 + - generic "Jump to gastrula" [ref=f77e178] [cursor=pointer]: + - generic [ref=f77e179]: 🔬 + - text: gastrula @ T8 + - generic [ref=f77e180]: + - generic [ref=f77e181]: + - generic [ref=f77e182]: Evaluations + - generic [ref=f77e183]: 10 checked, 5 stages + - generic [ref=f77e184]: + - 'generic "T0: 2-cell" [ref=f77e185] [cursor=pointer]': 🔬 + - 'generic "T1: 2-cell" [ref=f77e187] [cursor=pointer]': 🔬 + - 'generic "T2: 4-cell" [ref=f77e189] [cursor=pointer]': 🔬 + - 'generic "T3: 4-cell" [ref=f77e191] [cursor=pointer]': 🔬 + - 'generic "T4: 8-cell" [ref=f77e193] [cursor=pointer]': 🔬 + - 'generic "T5: 8-cell" [ref=f77e195] [cursor=pointer]': 🔬 + - 'generic "T6: 26-cell" [ref=f77e197] [cursor=pointer]': 🔬 + - 'generic "T7: 26-cell" [ref=f77e199] [cursor=pointer]': 🔬 + - 'generic "T8: gastrula" [ref=f77e201] [cursor=pointer]': 🔬 + - 'generic "T9: gastrula" [ref=f77e203] [cursor=pointer]': 🔬 + - generic [ref=f77e205]: + - generic [ref=f77e206]: + - button "Fold or open CALIBRATION" [expanded] [ref=f77e207] [cursor=pointer]: ▼ + - generic [ref=f77e208]: CALIBRATION + - generic [ref=f77e209]: no cal images + - generic [ref=f77e210]: + - button "profile" [pressed] [ref=f77e211] [cursor=pointer] + - button "gallery" [ref=f77e212] [cursor=pointer] + - generic [ref=f77e214]: + - heading "Calibration" [level=2] [ref=f77e216] + - generic [ref=f77e217]: + - generic [ref=f77e218]: + - generic [ref=f77e219]: Embryos + - generic [ref=f77e220]: No calibration images yet + - generic [ref=f77e223]: + - generic [ref=f77e224]: 📷 + - generic [ref=f77e225]: Select an embryo to view calibration images + - generic [ref=f77e226]: + - generic [ref=f77e227]: + - button "Fold or open EXPERIMENT" [expanded] [ref=f77e228] [cursor=pointer]: ▼ + - generic [ref=f77e229]: EXPERIMENT + - generic [ref=f77e230]: empty + - generic [ref=f77e231]: + - button "overview" [pressed] [ref=f77e232] [cursor=pointer] + - button "rules" [ref=f77e233] [cursor=pointer] + - generic [ref=f77e235]: + - heading "Operations" [level=2] [ref=f77e237] + - generic [ref=f77e240]: + - generic [ref=f77e241]: Operations + - heading "No operation running" [level=1] [ref=f77e242] + - generic [ref=f77e243]: Brief the agent — it will declare a tactic plan and the spine renders live. + - generic [ref=f77e244]: + - button "Brief the agent" [ref=f77e245] [cursor=pointer] + - generic [ref=f77e246]: — or start from a template + - generic [ref=f77e247]: + - button "Temperature-strain run" [ref=f77e248] [cursor=pointer] + - button "Standing timelapse" [ref=f77e249] [cursor=pointer] + - button "Watch for hatching" [ref=f77e250] [cursor=pointer] + - generic [ref=f77e251]: Loading linked plans… + - generic [ref=f77e254]: + - button "Fold or open EVENTS" [ref=f77e255] [cursor=pointer]: ▼ + - generic [ref=f77e256]: EVENTS + - generic [ref=f77e257]: no events + - generic [ref=f77e258]: + - generic [ref=f77e259]: + - button "Fold or open PLANS" [expanded] [ref=f77e260] [cursor=pointer]: ▼ + - generic [ref=f77e261]: PLANS + - generic [ref=f77e262]: empty + - generic [ref=f77e263]: + - button "document" [pressed] [ref=f77e264] [cursor=pointer] + - button "graph" [ref=f77e265] [cursor=pointer] + - button "board" [ref=f77e266] [cursor=pointer] + - button "decisions" [ref=f77e267] [cursor=pointer] + - button "matrix" [ref=f77e268] [cursor=pointer] + - button "timeline" [ref=f77e269] [cursor=pointer] + - generic [ref=f77e271]: + - generic [ref=f77e273]: + - generic [ref=f77e274]: Campaigns + - text: › + - generic [ref=f77e275]: + - navigation [ref=f77e276]: + - generic [ref=f77e277]: + - generic [ref=f77e278]: Campaigns + - generic [ref=f77e279] [cursor=pointer]: timing-variance + - main [ref=f77e282]: + - paragraph [ref=f77e285]: Loading plan... + - complementary [ref=f77e286]: + - generic [ref=f77e287]: + - button "Close" [ref=f77e288] [cursor=pointer] + - heading [level=2] + - generic [ref=f77e294]: + - button "Fold or open SESSIONS" [ref=f77e295] [cursor=pointer]: ▼ + - generic [ref=f77e296]: SESSIONS + - generic [ref=f77e297]: empty + - generic [ref=f77e299]: + - button "Fold or open NOTEBOOK" [ref=f77e300] [cursor=pointer]: ▼ + - generic [ref=f77e301]: NOTEBOOK + - generic [ref=f77e302]: 4 rows + - generic [ref=f77e304]: + - button "Fold or open GALLERY" [ref=f77e305] [cursor=pointer]: ▼ + - generic [ref=f77e306]: GALLERY + - generic [ref=f77e307]: no images \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-24T17-53-08-343Z.yml b/.playwright-mcp/page-2026-08-24T17-53-08-343Z.yml new file mode 100644 index 00000000..b16e79c4 --- /dev/null +++ b/.playwright-mcp/page-2026-08-24T17-53-08-343Z.yml @@ -0,0 +1,94 @@ +- generic [active] [ref=f80e1]: + - generic [ref=f80e2]: + - generic [ref=f80e3]: + - link "Gently Microscopy" [ref=f80e4] [cursor=pointer]: + - /url: / + - generic [ref=f80e5]: + - link "db03fcbc" [ref=f80e6] [cursor=pointer]: + - /url: /review?session=db03fcbc + - button "Copy session ID" [ref=f80e7] [cursor=pointer] + - generic [ref=f80e11]: + - generic [ref=f80e12]: P + - button "Open process console" [ref=f80e14] + - link "Dashboard settings" [ref=f80e18] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f80e22] [cursor=pointer] + - button "Scope offline" [ref=f80e26] [cursor=pointer] + - generic [ref=f80e31]: + - complementary [ref=f80e32]: + - navigation [ref=f80e33]: + - generic [ref=f80e34]: + - generic [ref=f80e35]: Now + - button "Home" [ref=f80e36] [cursor=pointer] + - button "Operations" [ref=f80e37] [cursor=pointer] + - button "Embryos" [ref=f80e38] [cursor=pointer] + - generic [ref=f80e39]: + - generic [ref=f80e40]: Library + - button "Plans" [ref=f80e41] [cursor=pointer] + - button "Sessions" [ref=f80e42] [cursor=pointer] + - button "Notebook" [ref=f80e43] [cursor=pointer] + - button "Gallery" [ref=f80e44] [cursor=pointer] + - generic [ref=f80e45]: + - generic [ref=f80e46]: System + - button "Devices" [ref=f80e47] [cursor=pointer] + - button "Calibration" [ref=f80e48] [cursor=pointer] + - button "Logs" [ref=f80e49] [cursor=pointer] + - button "Talk to Gently" [ref=f80e50] [cursor=pointer] + - generic [ref=f80e52]: + - generic [ref=f80e53]: + - generic [ref=f80e54]: LIVE + - generic [ref=f80e56]: 0 embryos · Online + - generic [ref=f80e59]: + - generic [ref=f80e60]: + - generic [ref=f80e61]: + - generic [ref=f80e62]: Recent sessions + - link "All" [ref=f80e63] [cursor=pointer]: + - /url: "#sessions" + - generic [ref=f80e64]: + - generic [ref=f80e66]: + - generic [ref=f80e67]: + - generic [ref=f80e68]: seeded demo + - generic [ref=f80e69]: live + - generic [ref=f80e70]: 3m ago · 4 embryos + - generic [ref=f80e71]: + - generic [ref=f80e72]: + - generic [ref=f80e73]: 4ebb40a7 + - generic [ref=f80e75]: 3m ago · 0 embryos + - button "Resume" [ref=f80e76] [cursor=pointer] + - generic [ref=f80e77]: + - generic [ref=f80e78]: + - generic [ref=f80e79]: ced24add + - generic [ref=f80e81]: 22m ago · 0 embryos + - button "Resume" [ref=f80e82] [cursor=pointer] + - generic [ref=f80e83]: + - generic [ref=f80e84]: + - generic [ref=f80e85]: 5aaf1f3c + - generic [ref=f80e87]: 22m ago · 0 embryos + - button "Resume" [ref=f80e88] [cursor=pointer] + - generic [ref=f80e89]: + - generic [ref=f80e90]: + - generic [ref=f80e91]: 7f12d51b + - generic [ref=f80e93]: 23m ago · 0 embryos + - button "Resume" [ref=f80e94] [cursor=pointer] + - generic [ref=f80e95]: + - generic [ref=f80e96]: + - generic [ref=f80e97]: Recent plans + - link "All" [ref=f80e98] [cursor=pointer]: + - /url: "#plans" + - generic [ref=f80e99]: timing-variance + - generic [ref=f80e102]: + - generic [ref=f80e103]: + - generic [ref=f80e104]: Recent images + - link "All" [ref=f80e105] [cursor=pointer]: + - /url: "#embryos" + - generic [ref=f80e106]: No images yet — they appear once a session is active. + - text: › + - contentinfo [ref=f80e108] + - complementary "Agent chat" [ref=f80e109]: + - generic [ref=f80e111]: + - generic [ref=f80e112]: Agent + - generic [ref=f80e114]: Connected + - button "Collapse agent panel" [ref=f80e115] [cursor=pointer] + - generic [ref=f80e119]: + - textbox "Message Gently…" [ref=f80e120] + - button "Send message" [disabled] [ref=f80e121] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-25T04-24-23-601Z.yml b/.playwright-mcp/page-2026-08-25T04-24-23-601Z.yml new file mode 100644 index 00000000..b409a7ac --- /dev/null +++ b/.playwright-mcp/page-2026-08-25T04-24-23-601Z.yml @@ -0,0 +1,255 @@ +- generic [active] [ref=f86e1]: + - generic [ref=f86e2]: + - generic [ref=f86e3]: + - link "Gently Microscopy" [ref=f86e4] [cursor=pointer]: + - /url: / + - generic [ref=f86e5]: + - link "db03fcbc" [ref=f86e6] [cursor=pointer]: + - /url: /review?session=db03fcbc + - button "Copy session ID" [ref=f86e7] [cursor=pointer] + - generic [ref=f86e11]: + - generic [ref=f86e12]: P + - button "Open process console" [ref=f86e14] + - link "Dashboard settings" [ref=f86e18] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f86e22] [cursor=pointer] + - button "Scope offline" [ref=f86e26] [cursor=pointer] + - generic [ref=f86e31]: + - complementary [ref=f86e32]: + - navigation [ref=f86e33]: + - generic [ref=f86e34]: + - generic [ref=f86e35]: Now + - button "Home" [ref=f86e36] [cursor=pointer] + - button "Operations" [ref=f86e37] [cursor=pointer] + - button "Embryos" [ref=f86e38] [cursor=pointer] + - generic [ref=f86e39]: + - generic [ref=f86e40]: Library + - button "Plans" [ref=f86e41] [cursor=pointer] + - button "Sessions" [ref=f86e42] [cursor=pointer] + - button "Notebook" [ref=f86e43] [cursor=pointer] + - button "Gallery" [ref=f86e44] [cursor=pointer] + - generic [ref=f86e45]: + - generic [ref=f86e46]: System + - button "Devices" [ref=f86e47] [cursor=pointer] + - button "Calibration" [ref=f86e48] [cursor=pointer] + - button "Logs" [ref=f86e49] [cursor=pointer] + - button "Talk to Gently" [ref=f86e50] [cursor=pointer] + - generic [ref=f86e52]: + - generic [ref=f86e53]: + - generic [ref=f86e54]: LIVE + - generic [ref=f86e56]: 4 embryos · Online + - contentinfo [ref=f86e57]: + - generic [ref=f86e58]: 4 embryos · 40 images · 20 events + - generic [ref=f86e59]: No active timelapse + - complementary "Agent chat" [ref=f86e60]: + - generic [ref=f86e62]: + - generic [ref=f86e63]: Agent + - generic [ref=f86e65]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f86e66] [cursor=pointer] + - generic [ref=f86e70]: + - textbox "Message Gently… ( / commands · @ tools )" [ref=f86e71]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f86e72] + - generic: + - generic [ref=f86e76]: + - button "Fold or open DEVICES" [ref=f86e77] [cursor=pointer]: ▼ + - generic [ref=f86e78]: DEVICES + - generic [ref=f86e79]: scope offline + - generic: + - generic [ref=f86e80]: + - generic [ref=f86e81]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f86e82] [cursor=pointer]: + - /url: "#" + - generic [ref=f86e83]: + - button "←" [disabled] [ref=f86e84] + - button "⌂ start" [ref=f86e85] [cursor=pointer] + - button "all" [ref=f86e86] [cursor=pointer] + - button "home" [ref=f86e87] [cursor=pointer] + - button "embryos" [ref=f86e88] [cursor=pointer] + - button "devices" [ref=f86e89] [cursor=pointer] + - button "calibration" [ref=f86e90] [cursor=pointer] + - button "experiment" [ref=f86e91] [cursor=pointer] + - button "events" [ref=f86e92] [cursor=pointer] + - button "plans" [ref=f86e93] [cursor=pointer] + - button "sessions" [ref=f86e94] [cursor=pointer] + - button "notebook" [ref=f86e95] [cursor=pointer] + - button "gallery" [ref=f86e96] [cursor=pointer] + - generic [ref=f86e97]: + - generic [ref=f86e98]: 58% + - generic [ref=f86e99]: + - text: density + - slider "density 4" [ref=f86e100]: "4" + - generic [ref=f86e101]: "4" + - generic [ref=f86e103]: + - generic: + - generic [ref=f86e105]: + - button "Fold or open HOME" [ref=f86e106] [cursor=pointer]: ▼ + - generic [ref=f86e107]: HOME + - generic [ref=f86e108]: 3 rows + - generic [ref=f86e109]: + - generic [ref=f86e110]: + - button "Fold or open EMBRYOS" [expanded] [ref=f86e111] [cursor=pointer]: ▼ + - generic [ref=f86e112]: EMBRYOS + - generic [ref=f86e113]: no embryos + - generic [ref=f86e114]: + - button "default" [pressed] [ref=f86e115] [cursor=pointer] + - button "board" [ref=f86e116] [cursor=pointer] + - button "filmstrip" [ref=f86e117] [cursor=pointer] + - button "vitals" [ref=f86e118] [cursor=pointer] + - generic [ref=f86e122]: + - generic [ref=f86e124] [cursor=pointer]: + - generic [ref=f86e125]: + - heading "Embryo Monitoring" [level=2] [ref=f86e126] + - generic [ref=f86e127]: No active timelapse + - generic [ref=f86e130]: + - generic [ref=f86e131]: + - generic [ref=f86e132]: "40" + - generic [ref=f86e133]: TP + - generic [ref=f86e134]: + - generic [ref=f86e135]: "4" + - generic [ref=f86e136]: Active + - generic [ref=f86e137]: + - generic [ref=f86e138]: "0" + - generic [ref=f86e139]: Done + - generic [ref=f86e140]: + - generic [ref=f86e141]: 2:00 + - generic [ref=f86e142]: Next + - generic [ref=f86e144]: + - generic [ref=f86e145]: + - generic [ref=f86e146]: Embryos + - generic [ref=f86e147]: + - generic "e01 — gastrula — 9 TP" [ref=f86e148] [cursor=pointer]: + - generic [ref=f86e149]: 🔬 + - generic [ref=f86e150]: e01 + - generic "e02 — Comma — 9 TP" [ref=f86e151] [cursor=pointer]: + - generic [ref=f86e152]: 🌙 + - generic [ref=f86e153]: e02 + - generic "e03 — lima-bean — 9 TP" [ref=f86e154] [cursor=pointer]: + - generic [ref=f86e155]: 🔬 + - generic [ref=f86e156]: e03 + - generic "e04 — Comma — 9 TP" [ref=f86e157] [cursor=pointer]: + - generic [ref=f86e158]: 🌙 + - generic [ref=f86e159]: e04 + - generic [ref=f86e160]: + - generic [ref=f86e161]: + - generic [ref=f86e162]: + - generic [ref=f86e163]: ● + - generic [ref=f86e164]: e01 + - generic [ref=f86e165]: 🔬 gastrula + - generic [ref=f86e166]: 5 transitions + - generic [ref=f86e167]: 10 evals + - generic [ref=f86e168]: 9 tp + - generic [ref=f86e169]: + - generic "Jump to 2-cell" [ref=f86e170] [cursor=pointer]: + - generic [ref=f86e171]: 🔬 + - text: 2-cell @ T0 + - generic "Jump to 4-cell" [ref=f86e172] [cursor=pointer]: + - generic [ref=f86e173]: 🔬 + - text: 4-cell @ T2 + - generic "Jump to 8-cell" [ref=f86e174] [cursor=pointer]: + - generic [ref=f86e175]: 🔬 + - text: 8-cell @ T4 + - generic "Jump to 26-cell" [ref=f86e176] [cursor=pointer]: + - generic [ref=f86e177]: 🔬 + - text: 26-cell @ T6 + - generic "Jump to gastrula" [ref=f86e178] [cursor=pointer]: + - generic [ref=f86e179]: 🔬 + - text: gastrula @ T8 + - generic [ref=f86e180]: + - generic [ref=f86e181]: + - generic [ref=f86e182]: Evaluations + - generic [ref=f86e183]: 10 checked, 5 stages + - generic [ref=f86e184]: + - 'generic "T0: 2-cell" [ref=f86e185] [cursor=pointer]': 🔬 + - 'generic "T1: 2-cell" [ref=f86e187] [cursor=pointer]': 🔬 + - 'generic "T2: 4-cell" [ref=f86e189] [cursor=pointer]': 🔬 + - 'generic "T3: 4-cell" [ref=f86e191] [cursor=pointer]': 🔬 + - 'generic "T4: 8-cell" [ref=f86e193] [cursor=pointer]': 🔬 + - 'generic "T5: 8-cell" [ref=f86e195] [cursor=pointer]': 🔬 + - 'generic "T6: 26-cell" [ref=f86e197] [cursor=pointer]': 🔬 + - 'generic "T7: 26-cell" [ref=f86e199] [cursor=pointer]': 🔬 + - 'generic "T8: gastrula" [ref=f86e201] [cursor=pointer]': 🔬 + - 'generic "T9: gastrula" [ref=f86e203] [cursor=pointer]': 🔬 + - generic [ref=f86e205]: + - generic [ref=f86e206]: + - button "Fold or open CALIBRATION" [expanded] [ref=f86e207] [cursor=pointer]: ▼ + - generic [ref=f86e208]: CALIBRATION + - generic [ref=f86e209]: no cal images + - generic [ref=f86e210]: + - button "profile" [pressed] [ref=f86e211] [cursor=pointer] + - button "gallery" [ref=f86e212] [cursor=pointer] + - generic [ref=f86e214]: + - heading "Calibration" [level=2] [ref=f86e216] + - generic [ref=f86e217]: + - generic [ref=f86e218]: + - generic [ref=f86e219]: Embryos + - generic [ref=f86e220]: No calibration images yet + - generic [ref=f86e223]: + - generic [ref=f86e224]: 📷 + - generic [ref=f86e225]: Select an embryo to view calibration images + - generic [ref=f86e226]: + - generic [ref=f86e227]: + - button "Fold or open EXPERIMENT" [expanded] [ref=f86e228] [cursor=pointer]: ▼ + - generic [ref=f86e229]: EXPERIMENT + - generic [ref=f86e230]: empty + - generic [ref=f86e231]: + - button "overview" [pressed] [ref=f86e232] [cursor=pointer] + - button "rules" [ref=f86e233] [cursor=pointer] + - generic [ref=f86e235]: + - heading "Operations" [level=2] [ref=f86e237] + - generic [ref=f86e240]: + - generic [ref=f86e241]: Operations + - heading "No operation running" [level=1] [ref=f86e242] + - generic [ref=f86e243]: Brief the agent — it will declare a tactic plan and the spine renders live. + - generic [ref=f86e244]: + - button "Brief the agent" [ref=f86e245] [cursor=pointer] + - generic [ref=f86e246]: — or start from a template + - generic [ref=f86e247]: + - button "Temperature-strain run" [ref=f86e248] [cursor=pointer] + - button "Standing timelapse" [ref=f86e249] [cursor=pointer] + - button "Watch for hatching" [ref=f86e250] [cursor=pointer] + - generic [ref=f86e251]: Loading linked plans… + - generic [ref=f86e254]: + - button "Fold or open EVENTS" [ref=f86e255] [cursor=pointer]: ▼ + - generic [ref=f86e256]: EVENTS + - generic [ref=f86e257]: no events + - generic [ref=f86e258]: + - generic [ref=f86e259]: + - button "Fold or open PLANS" [expanded] [ref=f86e260] [cursor=pointer]: ▼ + - generic [ref=f86e261]: PLANS + - generic [ref=f86e262]: empty + - generic [ref=f86e263]: + - button "document" [pressed] [ref=f86e264] [cursor=pointer] + - button "graph" [ref=f86e265] [cursor=pointer] + - button "board" [ref=f86e266] [cursor=pointer] + - button "decisions" [ref=f86e267] [cursor=pointer] + - button "matrix" [ref=f86e268] [cursor=pointer] + - button "timeline" [ref=f86e269] [cursor=pointer] + - generic [ref=f86e271]: + - generic [ref=f86e273]: + - generic [ref=f86e274]: Campaigns + - text: › + - generic [ref=f86e275]: + - navigation [ref=f86e276]: + - generic [ref=f86e277]: + - generic [ref=f86e278]: Campaigns + - generic [ref=f86e279] [cursor=pointer]: timing-variance + - main [ref=f86e282]: + - paragraph [ref=f86e285]: Loading plan... + - complementary [ref=f86e286]: + - generic [ref=f86e287]: + - button "Close" [ref=f86e288] [cursor=pointer] + - heading [level=2] + - generic [ref=f86e294]: + - button "Fold or open SESSIONS" [ref=f86e295] [cursor=pointer]: ▼ + - generic [ref=f86e296]: SESSIONS + - generic [ref=f86e297]: empty + - generic [ref=f86e299]: + - button "Fold or open NOTEBOOK" [ref=f86e300] [cursor=pointer]: ▼ + - generic [ref=f86e301]: NOTEBOOK + - generic [ref=f86e302]: 4 rows + - generic [ref=f86e304]: + - button "Fold or open GALLERY" [ref=f86e305] [cursor=pointer]: ▼ + - generic [ref=f86e306]: GALLERY + - generic [ref=f86e307]: no images \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-25T04-25-30-112Z.yml b/.playwright-mcp/page-2026-08-25T04-25-30-112Z.yml new file mode 100644 index 00000000..1d5464d2 --- /dev/null +++ b/.playwright-mcp/page-2026-08-25T04-25-30-112Z.yml @@ -0,0 +1,255 @@ +- generic [active] [ref=f89e1]: + - generic [ref=f89e2]: + - generic [ref=f89e3]: + - link "Gently Microscopy" [ref=f89e4] [cursor=pointer]: + - /url: / + - generic [ref=f89e5]: + - link "db03fcbc" [ref=f89e6] [cursor=pointer]: + - /url: /review?session=db03fcbc + - button "Copy session ID" [ref=f89e7] [cursor=pointer] + - generic [ref=f89e11]: + - generic [ref=f89e12]: P + - button "Open process console" [ref=f89e14] + - link "Dashboard settings" [ref=f89e18] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f89e22] [cursor=pointer] + - button "Scope offline" [ref=f89e26] [cursor=pointer] + - generic [ref=f89e31]: + - complementary [ref=f89e32]: + - navigation [ref=f89e33]: + - generic [ref=f89e34]: + - generic [ref=f89e35]: Now + - button "Home" [ref=f89e36] [cursor=pointer] + - button "Operations" [ref=f89e37] [cursor=pointer] + - button "Embryos" [ref=f89e38] [cursor=pointer] + - generic [ref=f89e39]: + - generic [ref=f89e40]: Library + - button "Plans" [ref=f89e41] [cursor=pointer] + - button "Sessions" [ref=f89e42] [cursor=pointer] + - button "Notebook" [ref=f89e43] [cursor=pointer] + - button "Gallery" [ref=f89e44] [cursor=pointer] + - generic [ref=f89e45]: + - generic [ref=f89e46]: System + - button "Devices" [ref=f89e47] [cursor=pointer] + - button "Calibration" [ref=f89e48] [cursor=pointer] + - button "Logs" [ref=f89e49] [cursor=pointer] + - button "Talk to Gently" [ref=f89e50] [cursor=pointer] + - generic [ref=f89e52]: + - generic [ref=f89e53]: + - generic [ref=f89e54]: LIVE + - generic [ref=f89e56]: 4 embryos · Online + - contentinfo [ref=f89e57]: + - generic [ref=f89e58]: 4 embryos · 40 images · 20 events + - generic [ref=f89e59]: No active timelapse + - complementary "Agent chat" [ref=f89e60]: + - generic [ref=f89e62]: + - generic [ref=f89e63]: Agent + - generic [ref=f89e65]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f89e66] [cursor=pointer] + - generic [ref=f89e70]: + - textbox "Message Gently… ( / commands · @ tools )" [ref=f89e71]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f89e72] + - generic: + - generic [ref=f89e76]: + - button "Fold or open DEVICES" [ref=f89e77] [cursor=pointer]: ▼ + - generic [ref=f89e78]: DEVICES + - generic [ref=f89e79]: scope offline + - generic: + - generic [ref=f89e80]: + - generic [ref=f89e81]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f89e82] [cursor=pointer]: + - /url: "#" + - generic [ref=f89e83]: + - button "←" [disabled] [ref=f89e84] + - button "⌂ start" [ref=f89e85] [cursor=pointer] + - button "all" [ref=f89e86] [cursor=pointer] + - button "home" [ref=f89e87] [cursor=pointer] + - button "embryos" [ref=f89e88] [cursor=pointer] + - button "devices" [ref=f89e89] [cursor=pointer] + - button "calibration" [ref=f89e90] [cursor=pointer] + - button "experiment" [ref=f89e91] [cursor=pointer] + - button "events" [ref=f89e92] [cursor=pointer] + - button "plans" [ref=f89e93] [cursor=pointer] + - button "sessions" [ref=f89e94] [cursor=pointer] + - button "notebook" [ref=f89e95] [cursor=pointer] + - button "gallery" [ref=f89e96] [cursor=pointer] + - generic [ref=f89e97]: + - generic [ref=f89e98]: 58% + - generic [ref=f89e99]: + - text: density + - slider "density 4" [ref=f89e100]: "4" + - generic [ref=f89e101]: "4" + - generic [ref=f89e103]: + - generic: + - generic [ref=f89e105]: + - button "Fold or open HOME" [ref=f89e106] [cursor=pointer]: ▼ + - generic [ref=f89e107]: HOME + - generic [ref=f89e108]: 3 rows + - generic [ref=f89e109]: + - generic [ref=f89e110]: + - button "Fold or open EMBRYOS" [expanded] [ref=f89e111] [cursor=pointer]: ▼ + - generic [ref=f89e112]: EMBRYOS + - generic [ref=f89e113]: no embryos + - generic [ref=f89e114]: + - button "default" [pressed] [ref=f89e115] [cursor=pointer] + - button "board" [ref=f89e116] [cursor=pointer] + - button "filmstrip" [ref=f89e117] [cursor=pointer] + - button "vitals" [ref=f89e118] [cursor=pointer] + - generic [ref=f89e122]: + - generic [ref=f89e124] [cursor=pointer]: + - generic [ref=f89e125]: + - heading "Embryo Monitoring" [level=2] [ref=f89e126] + - generic [ref=f89e127]: No active timelapse + - generic [ref=f89e130]: + - generic [ref=f89e131]: + - generic [ref=f89e132]: "40" + - generic [ref=f89e133]: TP + - generic [ref=f89e134]: + - generic [ref=f89e135]: "4" + - generic [ref=f89e136]: Active + - generic [ref=f89e137]: + - generic [ref=f89e138]: "0" + - generic [ref=f89e139]: Done + - generic [ref=f89e140]: + - generic [ref=f89e141]: 2:00 + - generic [ref=f89e142]: Next + - generic [ref=f89e144]: + - generic [ref=f89e145]: + - generic [ref=f89e146]: Embryos + - generic [ref=f89e147]: + - generic "e01 — gastrula — 9 TP" [ref=f89e148] [cursor=pointer]: + - generic [ref=f89e149]: 🔬 + - generic [ref=f89e150]: e01 + - generic "e02 — Comma — 9 TP" [ref=f89e151] [cursor=pointer]: + - generic [ref=f89e152]: 🌙 + - generic [ref=f89e153]: e02 + - generic "e03 — lima-bean — 9 TP" [ref=f89e154] [cursor=pointer]: + - generic [ref=f89e155]: 🔬 + - generic [ref=f89e156]: e03 + - generic "e04 — Comma — 9 TP" [ref=f89e157] [cursor=pointer]: + - generic [ref=f89e158]: 🌙 + - generic [ref=f89e159]: e04 + - generic [ref=f89e160]: + - generic [ref=f89e161]: + - generic [ref=f89e162]: + - generic [ref=f89e163]: ● + - generic [ref=f89e164]: e01 + - generic [ref=f89e165]: 🔬 gastrula + - generic [ref=f89e166]: 5 transitions + - generic [ref=f89e167]: 10 evals + - generic [ref=f89e168]: 9 tp + - generic [ref=f89e169]: + - generic "Jump to 2-cell" [ref=f89e170] [cursor=pointer]: + - generic [ref=f89e171]: 🔬 + - text: 2-cell @ T0 + - generic "Jump to 4-cell" [ref=f89e172] [cursor=pointer]: + - generic [ref=f89e173]: 🔬 + - text: 4-cell @ T2 + - generic "Jump to 8-cell" [ref=f89e174] [cursor=pointer]: + - generic [ref=f89e175]: 🔬 + - text: 8-cell @ T4 + - generic "Jump to 26-cell" [ref=f89e176] [cursor=pointer]: + - generic [ref=f89e177]: 🔬 + - text: 26-cell @ T6 + - generic "Jump to gastrula" [ref=f89e178] [cursor=pointer]: + - generic [ref=f89e179]: 🔬 + - text: gastrula @ T8 + - generic [ref=f89e180]: + - generic [ref=f89e181]: + - generic [ref=f89e182]: Evaluations + - generic [ref=f89e183]: 10 checked, 5 stages + - generic [ref=f89e184]: + - 'generic "T0: 2-cell" [ref=f89e185] [cursor=pointer]': 🔬 + - 'generic "T1: 2-cell" [ref=f89e187] [cursor=pointer]': 🔬 + - 'generic "T2: 4-cell" [ref=f89e189] [cursor=pointer]': 🔬 + - 'generic "T3: 4-cell" [ref=f89e191] [cursor=pointer]': 🔬 + - 'generic "T4: 8-cell" [ref=f89e193] [cursor=pointer]': 🔬 + - 'generic "T5: 8-cell" [ref=f89e195] [cursor=pointer]': 🔬 + - 'generic "T6: 26-cell" [ref=f89e197] [cursor=pointer]': 🔬 + - 'generic "T7: 26-cell" [ref=f89e199] [cursor=pointer]': 🔬 + - 'generic "T8: gastrula" [ref=f89e201] [cursor=pointer]': 🔬 + - 'generic "T9: gastrula" [ref=f89e203] [cursor=pointer]': 🔬 + - generic [ref=f89e205]: + - generic [ref=f89e206]: + - button "Fold or open CALIBRATION" [expanded] [ref=f89e207] [cursor=pointer]: ▼ + - generic [ref=f89e208]: CALIBRATION + - generic [ref=f89e209]: no cal images + - generic [ref=f89e210]: + - button "profile" [pressed] [ref=f89e211] [cursor=pointer] + - button "gallery" [ref=f89e212] [cursor=pointer] + - generic [ref=f89e214]: + - heading "Calibration" [level=2] [ref=f89e216] + - generic [ref=f89e217]: + - generic [ref=f89e218]: + - generic [ref=f89e219]: Embryos + - generic [ref=f89e220]: No calibration images yet + - generic [ref=f89e223]: + - generic [ref=f89e224]: 📷 + - generic [ref=f89e225]: Select an embryo to view calibration images + - generic [ref=f89e226]: + - generic [ref=f89e227]: + - button "Fold or open EXPERIMENT" [expanded] [ref=f89e228] [cursor=pointer]: ▼ + - generic [ref=f89e229]: EXPERIMENT + - generic [ref=f89e230]: empty + - generic [ref=f89e231]: + - button "overview" [pressed] [ref=f89e232] [cursor=pointer] + - button "rules" [ref=f89e233] [cursor=pointer] + - generic [ref=f89e235]: + - heading "Operations" [level=2] [ref=f89e237] + - generic [ref=f89e240]: + - generic [ref=f89e241]: Operations + - heading "No operation running" [level=1] [ref=f89e242] + - generic [ref=f89e243]: Brief the agent — it will declare a tactic plan and the spine renders live. + - generic [ref=f89e244]: + - button "Brief the agent" [ref=f89e245] [cursor=pointer] + - generic [ref=f89e246]: — or start from a template + - generic [ref=f89e247]: + - button "Temperature-strain run" [ref=f89e248] [cursor=pointer] + - button "Standing timelapse" [ref=f89e249] [cursor=pointer] + - button "Watch for hatching" [ref=f89e250] [cursor=pointer] + - generic [ref=f89e251]: Loading linked plans… + - generic [ref=f89e254]: + - button "Fold or open EVENTS" [ref=f89e255] [cursor=pointer]: ▼ + - generic [ref=f89e256]: EVENTS + - generic [ref=f89e257]: no events + - generic [ref=f89e258]: + - generic [ref=f89e259]: + - button "Fold or open PLANS" [expanded] [ref=f89e260] [cursor=pointer]: ▼ + - generic [ref=f89e261]: PLANS + - generic [ref=f89e262]: empty + - generic [ref=f89e263]: + - button "document" [pressed] [ref=f89e264] [cursor=pointer] + - button "graph" [ref=f89e265] [cursor=pointer] + - button "board" [ref=f89e266] [cursor=pointer] + - button "decisions" [ref=f89e267] [cursor=pointer] + - button "matrix" [ref=f89e268] [cursor=pointer] + - button "timeline" [ref=f89e269] [cursor=pointer] + - generic [ref=f89e271]: + - generic [ref=f89e273]: + - generic [ref=f89e274]: Campaigns + - text: › + - generic [ref=f89e275]: + - navigation [ref=f89e276]: + - generic [ref=f89e277]: + - generic [ref=f89e278]: Campaigns + - generic [ref=f89e279] [cursor=pointer]: timing-variance + - main [ref=f89e282]: + - paragraph [ref=f89e285]: Loading plan... + - complementary [ref=f89e286]: + - generic [ref=f89e287]: + - button "Close" [ref=f89e288] [cursor=pointer] + - heading [level=2] + - generic [ref=f89e294]: + - button "Fold or open SESSIONS" [ref=f89e295] [cursor=pointer]: ▼ + - generic [ref=f89e296]: SESSIONS + - generic [ref=f89e297]: empty + - generic [ref=f89e299]: + - button "Fold or open NOTEBOOK" [ref=f89e300] [cursor=pointer]: ▼ + - generic [ref=f89e301]: NOTEBOOK + - generic [ref=f89e302]: 4 rows + - generic [ref=f89e304]: + - button "Fold or open GALLERY" [ref=f89e305] [cursor=pointer]: ▼ + - generic [ref=f89e306]: GALLERY + - generic [ref=f89e307]: no images \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-25T04-28-26-847Z.yml b/.playwright-mcp/page-2026-08-25T04-28-26-847Z.yml new file mode 100644 index 00000000..2af92331 --- /dev/null +++ b/.playwright-mcp/page-2026-08-25T04-28-26-847Z.yml @@ -0,0 +1,94 @@ +- generic [active] [ref=f92e1]: + - generic [ref=f92e2]: + - generic [ref=f92e3]: + - link "Gently Microscopy" [ref=f92e4] [cursor=pointer]: + - /url: / + - generic [ref=f92e5]: + - link "db03fcbc" [ref=f92e6] [cursor=pointer]: + - /url: /review?session=db03fcbc + - button "Copy session ID" [ref=f92e7] [cursor=pointer] + - generic [ref=f92e11]: + - generic [ref=f92e12]: P + - button "Open process console" [ref=f92e14] + - link "Dashboard settings" [ref=f92e18] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f92e22] [cursor=pointer] + - button "Scope offline" [ref=f92e26] [cursor=pointer] + - generic [ref=f92e31]: + - complementary [ref=f92e32]: + - navigation [ref=f92e33]: + - generic [ref=f92e34]: + - generic [ref=f92e35]: Now + - button "Home" [ref=f92e36] [cursor=pointer] + - button "Operations" [ref=f92e37] [cursor=pointer] + - button "Embryos" [ref=f92e38] [cursor=pointer] + - generic [ref=f92e39]: + - generic [ref=f92e40]: Library + - button "Plans" [ref=f92e41] [cursor=pointer] + - button "Sessions" [ref=f92e42] [cursor=pointer] + - button "Notebook" [ref=f92e43] [cursor=pointer] + - button "Gallery" [ref=f92e44] [cursor=pointer] + - generic [ref=f92e45]: + - generic [ref=f92e46]: System + - button "Devices" [ref=f92e47] [cursor=pointer] + - button "Calibration" [ref=f92e48] [cursor=pointer] + - button "Logs" [ref=f92e49] [cursor=pointer] + - button "Talk to Gently" [ref=f92e50] [cursor=pointer] + - generic [ref=f92e52]: + - generic [ref=f92e53]: + - generic [ref=f92e54]: LIVE + - generic [ref=f92e56]: 0 embryos · Online + - generic [ref=f92e59]: + - generic [ref=f92e60]: + - generic [ref=f92e61]: + - generic [ref=f92e62]: Recent sessions + - link "All" [ref=f92e63] [cursor=pointer]: + - /url: "#sessions" + - generic [ref=f92e64]: + - generic [ref=f92e66]: + - generic [ref=f92e67]: + - generic [ref=f92e68]: seeded demo + - generic [ref=f92e69]: live + - generic [ref=f92e70]: 10h ago · 4 embryos + - generic [ref=f92e71]: + - generic [ref=f92e72]: + - generic [ref=f92e73]: 4ebb40a7 + - generic [ref=f92e75]: 10h ago · 0 embryos + - button "Resume" [ref=f92e76] [cursor=pointer] + - generic [ref=f92e77]: + - generic [ref=f92e78]: + - generic [ref=f92e79]: ced24add + - generic [ref=f92e81]: 10h ago · 0 embryos + - button "Resume" [ref=f92e82] [cursor=pointer] + - generic [ref=f92e83]: + - generic [ref=f92e84]: + - generic [ref=f92e85]: 5aaf1f3c + - generic [ref=f92e87]: 10h ago · 0 embryos + - button "Resume" [ref=f92e88] [cursor=pointer] + - generic [ref=f92e89]: + - generic [ref=f92e90]: + - generic [ref=f92e91]: 7f12d51b + - generic [ref=f92e93]: 10h ago · 0 embryos + - button "Resume" [ref=f92e94] [cursor=pointer] + - generic [ref=f92e95]: + - generic [ref=f92e96]: + - generic [ref=f92e97]: Recent plans + - link "All" [ref=f92e98] [cursor=pointer]: + - /url: "#plans" + - generic [ref=f92e99]: Loading… + - generic [ref=f92e101]: + - generic [ref=f92e102]: + - generic [ref=f92e103]: Recent images + - link "All" [ref=f92e104] [cursor=pointer]: + - /url: "#embryos" + - generic [ref=f92e105]: No images yet — they appear once a session is active. + - text: › + - contentinfo [ref=f92e107] + - complementary "Agent chat" [ref=f92e108]: + - generic [ref=f92e110]: + - generic [ref=f92e111]: Agent + - generic [ref=f92e113]: Connecting… + - button "Collapse agent panel" [ref=f92e114] [cursor=pointer] + - generic [ref=f92e118]: + - textbox "Message Gently…" [ref=f92e119] + - button "Send message" [disabled] [ref=f92e120] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-25T04-31-18-916Z.yml b/.playwright-mcp/page-2026-08-25T04-31-18-916Z.yml new file mode 100644 index 00000000..9a44f950 --- /dev/null +++ b/.playwright-mcp/page-2026-08-25T04-31-18-916Z.yml @@ -0,0 +1,255 @@ +- generic [active] [ref=f95e1]: + - generic [ref=f95e2]: + - generic [ref=f95e3]: + - link "Gently Microscopy" [ref=f95e4] [cursor=pointer]: + - /url: / + - generic [ref=f95e5]: + - link "db03fcbc" [ref=f95e6] [cursor=pointer]: + - /url: /review?session=db03fcbc + - button "Copy session ID" [ref=f95e7] [cursor=pointer] + - generic [ref=f95e11]: + - generic [ref=f95e12]: P + - button "Open process console" [ref=f95e14] + - link "Dashboard settings" [ref=f95e18] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f95e22] [cursor=pointer] + - button "Scope offline" [ref=f95e26] [cursor=pointer] + - generic [ref=f95e31]: + - complementary [ref=f95e32]: + - navigation [ref=f95e33]: + - generic [ref=f95e34]: + - generic [ref=f95e35]: Now + - button "Home" [ref=f95e36] [cursor=pointer] + - button "Operations" [ref=f95e37] [cursor=pointer] + - button "Embryos" [ref=f95e38] [cursor=pointer] + - generic [ref=f95e39]: + - generic [ref=f95e40]: Library + - button "Plans" [ref=f95e41] [cursor=pointer] + - button "Sessions" [ref=f95e42] [cursor=pointer] + - button "Notebook" [ref=f95e43] [cursor=pointer] + - button "Gallery" [ref=f95e44] [cursor=pointer] + - generic [ref=f95e45]: + - generic [ref=f95e46]: System + - button "Devices" [ref=f95e47] [cursor=pointer] + - button "Calibration" [ref=f95e48] [cursor=pointer] + - button "Logs" [ref=f95e49] [cursor=pointer] + - button "Talk to Gently" [ref=f95e50] [cursor=pointer] + - generic [ref=f95e52]: + - generic [ref=f95e53]: + - generic [ref=f95e54]: LIVE + - generic [ref=f95e56]: 4 embryos · Online + - contentinfo [ref=f95e57]: + - generic [ref=f95e58]: 4 embryos · 40 images · 20 events + - generic [ref=f95e59]: No active timelapse + - complementary "Agent chat" [ref=f95e60]: + - generic [ref=f95e62]: + - generic [ref=f95e63]: Agent + - generic [ref=f95e65]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f95e66] [cursor=pointer] + - generic [ref=f95e70]: + - textbox "Message Gently… ( / commands · @ tools )" [ref=f95e71]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f95e72] + - generic: + - generic [ref=f95e76]: + - button "Fold or open DEVICES" [ref=f95e77] [cursor=pointer]: ▼ + - generic [ref=f95e78]: DEVICES + - generic [ref=f95e79]: scope offline + - generic: + - generic [ref=f95e80]: + - generic [ref=f95e81]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f95e82] [cursor=pointer]: + - /url: "#" + - generic [ref=f95e83]: + - button "←" [disabled] [ref=f95e84] + - button "⌂ start" [ref=f95e85] [cursor=pointer] + - button "all" [ref=f95e86] [cursor=pointer] + - button "home" [ref=f95e87] [cursor=pointer] + - button "embryos" [ref=f95e88] [cursor=pointer] + - button "devices" [ref=f95e89] [cursor=pointer] + - button "calibration" [ref=f95e90] [cursor=pointer] + - button "experiment" [ref=f95e91] [cursor=pointer] + - button "events" [ref=f95e92] [cursor=pointer] + - button "plans" [ref=f95e93] [cursor=pointer] + - button "sessions" [ref=f95e94] [cursor=pointer] + - button "notebook" [ref=f95e95] [cursor=pointer] + - button "gallery" [ref=f95e96] [cursor=pointer] + - generic [ref=f95e97]: + - generic [ref=f95e98]: 58% + - generic [ref=f95e99]: + - text: density + - slider "density 4" [ref=f95e100]: "4" + - generic [ref=f95e101]: "4" + - generic [ref=f95e103]: + - generic: + - generic [ref=f95e105]: + - button "Fold or open HOME" [ref=f95e106] [cursor=pointer]: ▼ + - generic [ref=f95e107]: HOME + - generic [ref=f95e108]: 3 rows + - generic [ref=f95e109]: + - generic [ref=f95e110]: + - button "Fold or open EMBRYOS" [expanded] [ref=f95e111] [cursor=pointer]: ▼ + - generic [ref=f95e112]: EMBRYOS + - generic [ref=f95e113]: no embryos + - generic [ref=f95e114]: + - button "default" [pressed] [ref=f95e115] [cursor=pointer] + - button "board" [ref=f95e116] [cursor=pointer] + - button "filmstrip" [ref=f95e117] [cursor=pointer] + - button "vitals" [ref=f95e118] [cursor=pointer] + - generic [ref=f95e122]: + - generic [ref=f95e124] [cursor=pointer]: + - generic [ref=f95e125]: + - heading "Embryo Monitoring" [level=2] [ref=f95e126] + - generic [ref=f95e127]: No active timelapse + - generic [ref=f95e130]: + - generic [ref=f95e131]: + - generic [ref=f95e132]: "40" + - generic [ref=f95e133]: TP + - generic [ref=f95e134]: + - generic [ref=f95e135]: "4" + - generic [ref=f95e136]: Active + - generic [ref=f95e137]: + - generic [ref=f95e138]: "0" + - generic [ref=f95e139]: Done + - generic [ref=f95e140]: + - generic [ref=f95e141]: 2:00 + - generic [ref=f95e142]: Next + - generic [ref=f95e144]: + - generic [ref=f95e145]: + - generic [ref=f95e146]: Embryos + - generic [ref=f95e147]: + - generic "e01 — gastrula — 9 TP" [ref=f95e148] [cursor=pointer]: + - generic [ref=f95e149]: 🔬 + - generic [ref=f95e150]: e01 + - generic "e02 — Comma — 9 TP" [ref=f95e151] [cursor=pointer]: + - generic [ref=f95e152]: 🌙 + - generic [ref=f95e153]: e02 + - generic "e03 — lima-bean — 9 TP" [ref=f95e154] [cursor=pointer]: + - generic [ref=f95e155]: 🔬 + - generic [ref=f95e156]: e03 + - generic "e04 — Comma — 9 TP" [ref=f95e157] [cursor=pointer]: + - generic [ref=f95e158]: 🌙 + - generic [ref=f95e159]: e04 + - generic [ref=f95e160]: + - generic [ref=f95e161]: + - generic [ref=f95e162]: + - generic [ref=f95e163]: ● + - generic [ref=f95e164]: e01 + - generic [ref=f95e165]: 🔬 gastrula + - generic [ref=f95e166]: 5 transitions + - generic [ref=f95e167]: 10 evals + - generic [ref=f95e168]: 9 tp + - generic [ref=f95e169]: + - generic "Jump to 2-cell" [ref=f95e170] [cursor=pointer]: + - generic [ref=f95e171]: 🔬 + - text: 2-cell @ T0 + - generic "Jump to 4-cell" [ref=f95e172] [cursor=pointer]: + - generic [ref=f95e173]: 🔬 + - text: 4-cell @ T2 + - generic "Jump to 8-cell" [ref=f95e174] [cursor=pointer]: + - generic [ref=f95e175]: 🔬 + - text: 8-cell @ T4 + - generic "Jump to 26-cell" [ref=f95e176] [cursor=pointer]: + - generic [ref=f95e177]: 🔬 + - text: 26-cell @ T6 + - generic "Jump to gastrula" [ref=f95e178] [cursor=pointer]: + - generic [ref=f95e179]: 🔬 + - text: gastrula @ T8 + - generic [ref=f95e180]: + - generic [ref=f95e181]: + - generic [ref=f95e182]: Evaluations + - generic [ref=f95e183]: 10 checked, 5 stages + - generic [ref=f95e184]: + - 'generic "T0: 2-cell" [ref=f95e185] [cursor=pointer]': 🔬 + - 'generic "T1: 2-cell" [ref=f95e187] [cursor=pointer]': 🔬 + - 'generic "T2: 4-cell" [ref=f95e189] [cursor=pointer]': 🔬 + - 'generic "T3: 4-cell" [ref=f95e191] [cursor=pointer]': 🔬 + - 'generic "T4: 8-cell" [ref=f95e193] [cursor=pointer]': 🔬 + - 'generic "T5: 8-cell" [ref=f95e195] [cursor=pointer]': 🔬 + - 'generic "T6: 26-cell" [ref=f95e197] [cursor=pointer]': 🔬 + - 'generic "T7: 26-cell" [ref=f95e199] [cursor=pointer]': 🔬 + - 'generic "T8: gastrula" [ref=f95e201] [cursor=pointer]': 🔬 + - 'generic "T9: gastrula" [ref=f95e203] [cursor=pointer]': 🔬 + - generic [ref=f95e205]: + - generic [ref=f95e206]: + - button "Fold or open CALIBRATION" [expanded] [ref=f95e207] [cursor=pointer]: ▼ + - generic [ref=f95e208]: CALIBRATION + - generic [ref=f95e209]: no cal images + - generic [ref=f95e210]: + - button "profile" [pressed] [ref=f95e211] [cursor=pointer] + - button "gallery" [ref=f95e212] [cursor=pointer] + - generic [ref=f95e214]: + - heading "Calibration" [level=2] [ref=f95e216] + - generic [ref=f95e217]: + - generic [ref=f95e218]: + - generic [ref=f95e219]: Embryos + - generic [ref=f95e220]: No calibration images yet + - generic [ref=f95e223]: + - generic [ref=f95e224]: 📷 + - generic [ref=f95e225]: Select an embryo to view calibration images + - generic [ref=f95e226]: + - generic [ref=f95e227]: + - button "Fold or open EXPERIMENT" [expanded] [ref=f95e228] [cursor=pointer]: ▼ + - generic [ref=f95e229]: EXPERIMENT + - generic [ref=f95e230]: empty + - generic [ref=f95e231]: + - button "overview" [pressed] [ref=f95e232] [cursor=pointer] + - button "rules" [ref=f95e233] [cursor=pointer] + - generic [ref=f95e235]: + - heading "Operations" [level=2] [ref=f95e237] + - generic [ref=f95e240]: + - generic [ref=f95e241]: Operations + - heading "No operation running" [level=1] [ref=f95e242] + - generic [ref=f95e243]: Brief the agent — it will declare a tactic plan and the spine renders live. + - generic [ref=f95e244]: + - button "Brief the agent" [ref=f95e245] [cursor=pointer] + - generic [ref=f95e246]: — or start from a template + - generic [ref=f95e247]: + - button "Temperature-strain run" [ref=f95e248] [cursor=pointer] + - button "Standing timelapse" [ref=f95e249] [cursor=pointer] + - button "Watch for hatching" [ref=f95e250] [cursor=pointer] + - generic [ref=f95e251]: Loading linked plans… + - generic [ref=f95e254]: + - button "Fold or open EVENTS" [ref=f95e255] [cursor=pointer]: ▼ + - generic [ref=f95e256]: EVENTS + - generic [ref=f95e257]: no events + - generic [ref=f95e258]: + - generic [ref=f95e259]: + - button "Fold or open PLANS" [expanded] [ref=f95e260] [cursor=pointer]: ▼ + - generic [ref=f95e261]: PLANS + - generic [ref=f95e262]: empty + - generic [ref=f95e263]: + - button "document" [pressed] [ref=f95e264] [cursor=pointer] + - button "graph" [ref=f95e265] [cursor=pointer] + - button "board" [ref=f95e266] [cursor=pointer] + - button "decisions" [ref=f95e267] [cursor=pointer] + - button "matrix" [ref=f95e268] [cursor=pointer] + - button "timeline" [ref=f95e269] [cursor=pointer] + - generic [ref=f95e271]: + - generic [ref=f95e273]: + - generic [ref=f95e274]: Campaigns + - text: › + - generic [ref=f95e275]: + - navigation [ref=f95e276]: + - generic [ref=f95e277]: + - generic [ref=f95e278]: Campaigns + - generic [ref=f95e279] [cursor=pointer]: timing-variance + - main [ref=f95e282]: + - paragraph [ref=f95e285]: Loading plan... + - complementary [ref=f95e286]: + - generic [ref=f95e287]: + - button "Close" [ref=f95e288] [cursor=pointer] + - heading [level=2] + - generic [ref=f95e294]: + - button "Fold or open SESSIONS" [ref=f95e295] [cursor=pointer]: ▼ + - generic [ref=f95e296]: SESSIONS + - generic [ref=f95e297]: empty + - generic [ref=f95e299]: + - button "Fold or open NOTEBOOK" [ref=f95e300] [cursor=pointer]: ▼ + - generic [ref=f95e301]: NOTEBOOK + - generic [ref=f95e302]: 4 rows + - generic [ref=f95e304]: + - button "Fold or open GALLERY" [ref=f95e305] [cursor=pointer]: ▼ + - generic [ref=f95e306]: GALLERY + - generic [ref=f95e307]: no images \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-25T04-32-46-743Z.yml b/.playwright-mcp/page-2026-08-25T04-32-46-743Z.yml new file mode 100644 index 00000000..e8ac0433 --- /dev/null +++ b/.playwright-mcp/page-2026-08-25T04-32-46-743Z.yml @@ -0,0 +1,237 @@ +- generic [active] [ref=f98e1]: + - generic [ref=f98e2]: + - generic [ref=f98e3]: + - link "Gently Microscopy" [ref=f98e4] [cursor=pointer]: + - /url: / + - generic [ref=f98e5]: + - link "db03fcbc" [ref=f98e6] [cursor=pointer]: + - /url: /review?session=db03fcbc + - button "Copy session ID" [ref=f98e7] [cursor=pointer] + - generic [ref=f98e11]: + - generic [ref=f98e12]: P + - button "Open process console" [ref=f98e14] + - link "Dashboard settings" [ref=f98e18] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f98e22] [cursor=pointer] + - button "Scope offline" [ref=f98e26] [cursor=pointer] + - generic [ref=f98e31]: + - complementary [ref=f98e32]: + - navigation [ref=f98e33]: + - generic [ref=f98e34]: + - generic [ref=f98e35]: Now + - button "Home" [ref=f98e36] [cursor=pointer] + - button "Operations" [ref=f98e37] [cursor=pointer] + - button "Embryos" [ref=f98e38] [cursor=pointer] + - generic [ref=f98e39]: + - generic [ref=f98e40]: Library + - button "Plans" [ref=f98e41] [cursor=pointer] + - button "Sessions" [ref=f98e42] [cursor=pointer] + - button "Notebook" [ref=f98e43] [cursor=pointer] + - button "Gallery" [ref=f98e44] [cursor=pointer] + - generic [ref=f98e45]: + - generic [ref=f98e46]: System + - button "Devices" [ref=f98e47] [cursor=pointer] + - button "Calibration" [ref=f98e48] [cursor=pointer] + - button "Logs" [ref=f98e49] [cursor=pointer] + - button "Talk to Gently" [ref=f98e50] [cursor=pointer] + - generic [ref=f98e52]: + - generic [ref=f98e53]: + - generic [ref=f98e54]: LIVE + - generic [ref=f98e56]: 0 embryos · Online + - contentinfo [ref=f98e57] + - complementary "Agent chat" [ref=f98e58]: + - generic [ref=f98e60]: + - generic [ref=f98e61]: Agent + - generic [ref=f98e63]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f98e64] [cursor=pointer] + - generic [ref=f98e68]: + - textbox "Message Gently… ( / commands · @ tools )" [ref=f98e69]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f98e70] + - generic: + - generic [ref=f98e74]: + - button "Fold or open DEVICES" [ref=f98e75] [cursor=pointer]: ▼ + - generic [ref=f98e76]: DEVICES + - generic [ref=f98e77]: scope offline + - generic: + - generic [ref=f98e78]: + - generic [ref=f98e79]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f98e80] [cursor=pointer]: + - /url: "#" + - generic [ref=f98e81]: + - button "←" [disabled] [ref=f98e82] + - button "⌂ start" [ref=f98e83] [cursor=pointer] + - button "all" [ref=f98e84] [cursor=pointer] + - button "home" [ref=f98e85] [cursor=pointer] + - button "embryos" [ref=f98e86] [cursor=pointer] + - button "devices" [ref=f98e87] [cursor=pointer] + - button "calibration" [ref=f98e88] [cursor=pointer] + - button "experiment" [ref=f98e89] [cursor=pointer] + - button "events" [ref=f98e90] [cursor=pointer] + - button "plans" [ref=f98e91] [cursor=pointer] + - button "sessions" [ref=f98e92] [cursor=pointer] + - button "notebook" [ref=f98e93] [cursor=pointer] + - button "gallery" [ref=f98e94] [cursor=pointer] + - generic [ref=f98e95]: + - generic [ref=f98e96]: 58% + - generic [ref=f98e97]: + - text: density + - slider "density 4" [ref=f98e98]: "4" + - generic [ref=f98e99]: "4" + - generic [ref=f98e101]: + - generic: + - generic [ref=f98e103]: + - button "Fold or open HOME" [ref=f98e104] [cursor=pointer]: ▼ + - generic [ref=f98e105]: HOME + - generic [ref=f98e106]: 3 rows + - generic [ref=f98e107]: + - generic [ref=f98e108]: + - button "Fold or open EMBRYOS" [expanded] [ref=f98e109] [cursor=pointer]: ▼ + - generic [ref=f98e110]: EMBRYOS + - generic [ref=f98e111]: no embryos + - generic [ref=f98e112]: + - button "default" [pressed] [ref=f98e113] [cursor=pointer] + - button "board" [ref=f98e114] [cursor=pointer] + - button "filmstrip" [ref=f98e115] [cursor=pointer] + - button "vitals" [ref=f98e116] [cursor=pointer] + - generic [ref=f98e120]: + - generic [ref=f98e122] [cursor=pointer]: + - generic [ref=f98e123]: + - heading "Embryo Monitoring" [level=2] [ref=f98e124] + - generic [ref=f98e125]: No active timelapse + - generic [ref=f98e128]: + - generic [ref=f98e129]: + - generic [ref=f98e130]: "40" + - generic [ref=f98e131]: TP + - generic [ref=f98e132]: + - generic [ref=f98e133]: "4" + - generic [ref=f98e134]: Active + - generic [ref=f98e135]: + - generic [ref=f98e136]: "0" + - generic [ref=f98e137]: Done + - generic [ref=f98e138]: + - generic [ref=f98e139]: 2:00 + - generic [ref=f98e140]: Next + - generic [ref=f98e142]: + - generic [ref=f98e143]: + - generic [ref=f98e144]: Embryos + - generic [ref=f98e145]: + - generic "e01 — gastrula — 9 TP" [ref=f98e146] [cursor=pointer]: + - generic [ref=f98e147]: 🔬 + - generic [ref=f98e148]: e01 + - generic "e02 — Comma — 9 TP" [ref=f98e149] [cursor=pointer]: + - generic [ref=f98e150]: 🌙 + - generic [ref=f98e151]: e02 + - generic "e03 — lima-bean — 9 TP" [ref=f98e152] [cursor=pointer]: + - generic [ref=f98e153]: 🔬 + - generic [ref=f98e154]: e03 + - generic "e04 — Comma — 9 TP" [ref=f98e155] [cursor=pointer]: + - generic [ref=f98e156]: 🌙 + - generic [ref=f98e157]: e04 + - generic [ref=f98e158]: + - generic [ref=f98e159]: + - generic [ref=f98e160]: + - generic [ref=f98e161]: ● + - generic [ref=f98e162]: e01 + - generic [ref=f98e163]: 🔬 gastrula + - generic [ref=f98e164]: 5 transitions + - generic [ref=f98e165]: 10 evals + - generic [ref=f98e166]: 9 tp + - generic [ref=f98e167]: + - generic "Jump to 2-cell" [ref=f98e168] [cursor=pointer]: + - generic [ref=f98e169]: 🔬 + - text: 2-cell @ T0 + - generic "Jump to 4-cell" [ref=f98e170] [cursor=pointer]: + - generic [ref=f98e171]: 🔬 + - text: 4-cell @ T2 + - generic "Jump to 8-cell" [ref=f98e172] [cursor=pointer]: + - generic [ref=f98e173]: 🔬 + - text: 8-cell @ T4 + - generic "Jump to 26-cell" [ref=f98e174] [cursor=pointer]: + - generic [ref=f98e175]: 🔬 + - text: 26-cell @ T6 + - generic "Jump to gastrula" [ref=f98e176] [cursor=pointer]: + - generic [ref=f98e177]: 🔬 + - text: gastrula @ T8 + - generic [ref=f98e178]: + - generic [ref=f98e179]: + - generic [ref=f98e180]: Evaluations + - generic [ref=f98e181]: 10 checked, 5 stages + - generic [ref=f98e182]: + - 'generic "T0: 2-cell" [ref=f98e183] [cursor=pointer]': 🔬 + - 'generic "T1: 2-cell" [ref=f98e185] [cursor=pointer]': 🔬 + - 'generic "T2: 4-cell" [ref=f98e187] [cursor=pointer]': 🔬 + - 'generic "T3: 4-cell" [ref=f98e189] [cursor=pointer]': 🔬 + - 'generic "T4: 8-cell" [ref=f98e191] [cursor=pointer]': 🔬 + - 'generic "T5: 8-cell" [ref=f98e193] [cursor=pointer]': 🔬 + - 'generic "T6: 26-cell" [ref=f98e195] [cursor=pointer]': 🔬 + - 'generic "T7: 26-cell" [ref=f98e197] [cursor=pointer]': 🔬 + - 'generic "T8: gastrula" [ref=f98e199] [cursor=pointer]': 🔬 + - 'generic "T9: gastrula" [ref=f98e201] [cursor=pointer]': 🔬 + - generic [ref=f98e203]: + - generic [ref=f98e204]: + - button "Fold or open CALIBRATION" [expanded] [ref=f98e205] [cursor=pointer]: ▼ + - generic [ref=f98e206]: CALIBRATION + - generic [ref=f98e207]: no cal images + - generic [ref=f98e208]: + - button "profile" [pressed] [ref=f98e209] [cursor=pointer] + - button "gallery" [ref=f98e210] [cursor=pointer] + - generic [ref=f98e212]: + - heading "Calibration" [level=2] [ref=f98e214] + - generic [ref=f98e215]: + - generic [ref=f98e216]: + - generic [ref=f98e217]: Embryos + - generic [ref=f98e218]: No calibration images yet + - generic [ref=f98e221]: + - generic [ref=f98e222]: 📷 + - generic [ref=f98e223]: Select an embryo to view calibration images + - generic [ref=f98e224]: + - generic [ref=f98e225]: + - button "Fold or open EXPERIMENT" [expanded] [ref=f98e226] [cursor=pointer]: ▼ + - generic [ref=f98e227]: EXPERIMENT + - generic [ref=f98e228]: empty + - generic [ref=f98e229]: + - button "overview" [pressed] [ref=f98e230] [cursor=pointer] + - button "rules" [ref=f98e231] [cursor=pointer] + - heading "Operations" [level=2] [ref=f98e235] + - generic [ref=f98e238]: + - button "Fold or open EVENTS" [ref=f98e239] [cursor=pointer]: ▼ + - generic [ref=f98e240]: EVENTS + - generic [ref=f98e241]: no events + - generic [ref=f98e242]: + - generic [ref=f98e243]: + - button "Fold or open PLANS" [expanded] [ref=f98e244] [cursor=pointer]: ▼ + - generic [ref=f98e245]: PLANS + - generic [ref=f98e246]: empty + - generic [ref=f98e247]: + - button "document" [pressed] [ref=f98e248] [cursor=pointer] + - button "graph" [ref=f98e249] [cursor=pointer] + - button "board" [ref=f98e250] [cursor=pointer] + - button "decisions" [ref=f98e251] [cursor=pointer] + - button "matrix" [ref=f98e252] [cursor=pointer] + - button "timeline" [ref=f98e253] [cursor=pointer] + - generic [ref=f98e255]: + - generic [ref=f98e257]: + - generic [ref=f98e258]: Campaigns + - text: › + - generic [ref=f98e259]: + - navigation [ref=f98e260] + - main [ref=f98e262]: + - paragraph [ref=f98e265]: Loading campaigns... + - complementary [ref=f98e266]: + - generic [ref=f98e267]: + - button "Close" [ref=f98e268] [cursor=pointer] + - heading [level=2] + - generic [ref=f98e274]: + - button "Fold or open SESSIONS" [ref=f98e275] [cursor=pointer]: ▼ + - generic [ref=f98e276]: SESSIONS + - generic [ref=f98e277]: empty + - generic [ref=f98e279]: + - button "Fold or open NOTEBOOK" [ref=f98e280] [cursor=pointer]: ▼ + - generic [ref=f98e281]: NOTEBOOK + - generic [ref=f98e282]: 4 rows + - generic [ref=f98e284]: + - button "Fold or open GALLERY" [ref=f98e285] [cursor=pointer]: ▼ + - generic [ref=f98e286]: GALLERY + - generic [ref=f98e287]: no images \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-25T04-46-45-503Z.yml b/.playwright-mcp/page-2026-08-25T04-46-45-503Z.yml new file mode 100644 index 00000000..a973f2c9 --- /dev/null +++ b/.playwright-mcp/page-2026-08-25T04-46-45-503Z.yml @@ -0,0 +1,342 @@ +- generic [active] [ref=f101e1]: + - generic [ref=f101e2]: + - generic [ref=f101e3]: + - link "Gently Microscopy" [ref=f101e4] [cursor=pointer]: + - /url: / + - generic [ref=f101e5]: + - link "db03fcbc" [ref=f101e6] [cursor=pointer]: + - /url: /review?session=db03fcbc + - button "Copy session ID" [ref=f101e7] [cursor=pointer] + - generic [ref=f101e11]: + - generic [ref=f101e12]: P + - button "Open process console" [ref=f101e14] + - link "Dashboard settings" [ref=f101e18] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f101e22] [cursor=pointer] + - button "Scope offline" [ref=f101e26] [cursor=pointer] + - generic [ref=f101e31]: + - complementary [ref=f101e32]: + - navigation [ref=f101e33]: + - generic [ref=f101e34]: + - generic [ref=f101e35]: Now + - button "Home" [ref=f101e36] [cursor=pointer] + - button "Operations" [ref=f101e37] [cursor=pointer] + - button "Embryos" [ref=f101e38] [cursor=pointer] + - generic [ref=f101e39]: + - generic [ref=f101e40]: Library + - button "Plans" [ref=f101e41] [cursor=pointer] + - button "Sessions" [ref=f101e42] [cursor=pointer] + - button "Notebook" [ref=f101e43] [cursor=pointer] + - button "Gallery" [ref=f101e44] [cursor=pointer] + - generic [ref=f101e45]: + - generic [ref=f101e46]: System + - button "Devices" [ref=f101e47] [cursor=pointer] + - button "Calibration" [ref=f101e48] [cursor=pointer] + - button "Logs" [ref=f101e49] [cursor=pointer] + - button "Talk to Gently" [ref=f101e50] [cursor=pointer] + - generic [ref=f101e52]: + - generic [ref=f101e53]: + - generic [ref=f101e54]: LIVE + - generic [ref=f101e56]: 4 embryos · Online + - contentinfo [ref=f101e57]: + - generic [ref=f101e58]: 4 embryos · 40 images · 16 events + - generic [ref=f101e59]: No active timelapse + - complementary "Agent chat" [ref=f101e60]: + - generic [ref=f101e62]: + - generic [ref=f101e63]: Agent + - generic [ref=f101e65]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f101e66] [cursor=pointer] + - generic [ref=f101e70]: + - textbox "Message Gently… ( / commands · @ tools )" [ref=f101e71]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f101e72] + - generic: + - generic [ref=f101e76]: + - button "Fold or open DEVICES" [ref=f101e77] [cursor=pointer]: ▼ + - generic [ref=f101e78]: DEVICES + - generic [ref=f101e79]: scope offline + - generic: + - generic [ref=f101e80]: + - generic [ref=f101e81]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f101e82] [cursor=pointer]: + - /url: "#" + - generic [ref=f101e83]: + - button "←" [disabled] [ref=f101e84] + - button "⌂ start" [ref=f101e85] [cursor=pointer] + - button "all" [ref=f101e86] [cursor=pointer] + - button "home" [ref=f101e87] [cursor=pointer] + - button "embryos" [ref=f101e88] [cursor=pointer] + - button "devices" [ref=f101e89] [cursor=pointer] + - button "calibration" [ref=f101e90] [cursor=pointer] + - button "experiment" [ref=f101e91] [cursor=pointer] + - button "events" [ref=f101e92] [cursor=pointer] + - button "plans" [ref=f101e93] [cursor=pointer] + - button "sessions" [ref=f101e94] [cursor=pointer] + - button "notebook" [ref=f101e95] [cursor=pointer] + - button "gallery" [ref=f101e96] [cursor=pointer] + - generic [ref=f101e97]: + - generic [ref=f101e98]: 58% + - generic [ref=f101e99]: + - text: density + - slider "density 4" [ref=f101e100]: "4" + - generic [ref=f101e101]: "4" + - generic [ref=f101e103]: + - generic: + - generic [ref=f101e105]: + - button "Fold or open HOME" [ref=f101e106] [cursor=pointer]: ▼ + - generic [ref=f101e107]: HOME + - generic [ref=f101e108]: 3 rows + - generic [ref=f101e109]: + - generic [ref=f101e110]: + - button "Fold or open EMBRYOS" [expanded] [ref=f101e111] [cursor=pointer]: ▼ + - generic [ref=f101e112]: EMBRYOS + - generic [ref=f101e113]: no embryos + - generic [ref=f101e114]: + - button "default" [pressed] [ref=f101e115] [cursor=pointer] + - button "board" [ref=f101e116] [cursor=pointer] + - button "filmstrip" [ref=f101e117] [cursor=pointer] + - button "vitals" [ref=f101e118] [cursor=pointer] + - generic [ref=f101e122]: + - generic [ref=f101e124] [cursor=pointer]: + - generic [ref=f101e125]: + - heading "Embryo Monitoring" [level=2] [ref=f101e126] + - generic [ref=f101e127]: No active timelapse + - generic [ref=f101e130]: + - generic [ref=f101e131]: + - generic [ref=f101e132]: "40" + - generic [ref=f101e133]: TP + - generic [ref=f101e134]: + - generic [ref=f101e135]: "4" + - generic [ref=f101e136]: Active + - generic [ref=f101e137]: + - generic [ref=f101e138]: "0" + - generic [ref=f101e139]: Done + - generic [ref=f101e140]: + - generic [ref=f101e141]: 2:00 + - generic [ref=f101e142]: Next + - generic [ref=f101e144]: + - generic [ref=f101e145]: + - generic [ref=f101e146]: Embryos + - generic [ref=f101e147]: + - generic "e01 — gastrula — 9 TP" [ref=f101e148] [cursor=pointer]: + - generic [ref=f101e149]: 🔬 + - generic [ref=f101e150]: e01 + - generic "e02 — Comma — 9 TP" [ref=f101e151] [cursor=pointer]: + - generic [ref=f101e152]: 🌙 + - generic [ref=f101e153]: e02 + - generic "e03 — lima-bean — 9 TP" [ref=f101e154] [cursor=pointer]: + - generic [ref=f101e155]: 🔬 + - generic [ref=f101e156]: e03 + - generic "e04 — Comma — 9 TP" [ref=f101e157] [cursor=pointer]: + - generic [ref=f101e158]: 🌙 + - generic [ref=f101e159]: e04 + - generic [ref=f101e160]: + - generic [ref=f101e161]: + - generic [ref=f101e162]: + - generic [ref=f101e163]: ● + - generic [ref=f101e164]: e01 + - generic [ref=f101e165]: 🔬 gastrula + - generic [ref=f101e166]: 5 transitions + - generic [ref=f101e167]: 10 evals + - generic [ref=f101e168]: 9 tp + - generic [ref=f101e169]: + - generic "Jump to 2-cell" [ref=f101e170] [cursor=pointer]: + - generic [ref=f101e171]: 🔬 + - text: 2-cell @ T0 + - generic "Jump to 4-cell" [ref=f101e172] [cursor=pointer]: + - generic [ref=f101e173]: 🔬 + - text: 4-cell @ T2 + - generic "Jump to 8-cell" [ref=f101e174] [cursor=pointer]: + - generic [ref=f101e175]: 🔬 + - text: 8-cell @ T4 + - generic "Jump to 26-cell" [ref=f101e176] [cursor=pointer]: + - generic [ref=f101e177]: 🔬 + - text: 26-cell @ T6 + - generic "Jump to gastrula" [ref=f101e178] [cursor=pointer]: + - generic [ref=f101e179]: 🔬 + - text: gastrula @ T8 + - generic [ref=f101e180]: + - generic [ref=f101e181]: + - generic [ref=f101e182]: Evaluations + - generic [ref=f101e183]: 10 checked, 5 stages + - generic [ref=f101e184]: + - 'generic "T0: 2-cell" [ref=f101e185] [cursor=pointer]': 🔬 + - 'generic "T1: 2-cell" [ref=f101e187] [cursor=pointer]': 🔬 + - 'generic "T2: 4-cell" [ref=f101e189] [cursor=pointer]': 🔬 + - 'generic "T3: 4-cell" [ref=f101e191] [cursor=pointer]': 🔬 + - 'generic "T4: 8-cell" [ref=f101e193] [cursor=pointer]': 🔬 + - 'generic "T5: 8-cell" [ref=f101e195] [cursor=pointer]': 🔬 + - 'generic "T6: 26-cell" [ref=f101e197] [cursor=pointer]': 🔬 + - 'generic "T7: 26-cell" [ref=f101e199] [cursor=pointer]': 🔬 + - 'generic "T8: gastrula" [ref=f101e201] [cursor=pointer]': 🔬 + - 'generic "T9: gastrula" [ref=f101e203] [cursor=pointer]': 🔬 + - generic [ref=f101e205]: + - generic [ref=f101e206]: + - button "Fold or open CALIBRATION" [expanded] [ref=f101e207] [cursor=pointer]: ▼ + - generic [ref=f101e208]: CALIBRATION + - generic [ref=f101e209]: no cal images + - generic [ref=f101e210]: + - button "profile" [pressed] [ref=f101e211] [cursor=pointer] + - button "gallery" [ref=f101e212] [cursor=pointer] + - generic [ref=f101e214]: + - heading "Calibration" [level=2] [ref=f101e216] + - generic [ref=f101e217]: + - generic [ref=f101e218]: + - generic [ref=f101e219]: Embryos + - generic [ref=f101e220]: + - generic [ref=f101e221] [cursor=pointer]: + - generic [ref=f101e222]: e01 + - generic [ref=f101e223]: 4 images + - generic [ref=f101e224]: + - generic [ref=f101e225]: edge:1 + - generic [ref=f101e226]: sweep:1 + - generic [ref=f101e227]: cal done + - generic [ref=f101e228] [cursor=pointer]: + - generic [ref=f101e229]: e02 + - generic [ref=f101e230]: 4 images + - generic [ref=f101e231]: + - generic [ref=f101e232]: edge:1 + - generic [ref=f101e233]: sweep:1 + - generic [ref=f101e234]: cal done + - generic [ref=f101e235] [cursor=pointer]: + - generic [ref=f101e236]: e03 + - generic [ref=f101e237]: 4 images + - generic [ref=f101e238]: + - generic [ref=f101e239]: edge:1 + - generic [ref=f101e240]: sweep:1 + - generic [ref=f101e241]: cal done + - generic [ref=f101e242] [cursor=pointer]: + - generic [ref=f101e243]: e04 + - generic [ref=f101e244]: 4 images + - generic [ref=f101e245]: + - generic [ref=f101e246]: edge:1 + - generic [ref=f101e247]: sweep:1 + - generic [ref=f101e248]: cal done + - generic [ref=f101e249]: + - generic [ref=f101e250]: e01 + - generic [ref=f101e252]: + - generic [ref=f101e253]: + - generic [ref=f101e254]: + - generic [ref=f101e255]: Slope + - generic [ref=f101e256]: — + - generic [ref=f101e257]: + - generic [ref=f101e258]: Offset + - generic [ref=f101e259]: — + - generic [ref=f101e260]: + - generic [ref=f101e261]: R² top + - generic [ref=f101e262]: — + - generic [ref=f101e263]: + - generic [ref=f101e264]: R² bot + - generic [ref=f101e265]: — + - generic [ref=f101e266]: + - generic [ref=f101e267]: Coverage + - generic [ref=f101e268]: 0.00deg + - generic [ref=f101e269]: + - generic [ref=f101e270]: Scan range + - generic [ref=f101e271]: "-0.40…0.00deg" + - generic [ref=f101e272]: + - generic [ref=f101e273]: Padding + - generic [ref=f101e274]: 0.20deg + - generic [ref=f101e275]: + - generic [ref=f101e277]: SPIM + - generic [ref=f101e278]: — + - generic [ref=f101e279]: + - generic [ref=f101e280]: + - generic [ref=f101e281]: Galvo Profile + - img [ref=f101e283]: + - generic [ref=f101e284]: Galvo (deg) + - generic [ref=f101e285]: "-0.50" + - generic [ref=f101e286]: "-0.40" + - generic [ref=f101e287]: "-0.30" + - generic [ref=f101e288]: "-0.20" + - generic [ref=f101e289]: "-0.10" + - generic [ref=f101e290]: "-0.00" + - generic [ref=f101e291]: "0.10" + - generic [ref=f101e292]: "0.20" + - generic [ref=f101e293]: "0.30" + - generic [ref=f101e294]: "0.40" + - generic [ref=f101e295]: "0.50" + - generic [ref=f101e297]: padding + - generic [ref=f101e299]: padding + - generic [ref=f101e301]: scan top + - generic [ref=f101e303]: scan bot + - generic [ref=f101e304]: edge top + - generic [ref=f101e305]: edge bot + - generic [ref=f101e306]: 0.681/10 + - generic [ref=f101e307]: + - generic [ref=f101e308]: Calibration Summary + - img "calibration summary" [ref=f101e310] + - generic [ref=f101e311]: + - generic [ref=f101e312]: Focus Curve — TOP + - generic [ref=f101e313]: No sweep data + - generic [ref=f101e315]: + - generic [ref=f101e316]: Focus Curve — BOTTOM + - generic [ref=f101e317]: No sweep data + - generic [ref=f101e319]: + - generic [ref=f101e320]: + - button "Fold or open EXPERIMENT" [expanded] [ref=f101e321] [cursor=pointer]: ▼ + - generic [ref=f101e322]: EXPERIMENT + - generic [ref=f101e323]: empty + - generic [ref=f101e324]: + - button "overview" [pressed] [ref=f101e325] [cursor=pointer] + - button "rules" [ref=f101e326] [cursor=pointer] + - generic [ref=f101e328]: + - heading "Operations" [level=2] [ref=f101e330] + - generic [ref=f101e333]: + - generic [ref=f101e334]: Operations + - heading "No operation running" [level=1] [ref=f101e335] + - generic [ref=f101e336]: Brief the agent — it will declare a tactic plan and the spine renders live. + - generic [ref=f101e337]: + - button "Brief the agent" [ref=f101e338] [cursor=pointer] + - generic [ref=f101e339]: — or start from a template + - generic [ref=f101e340]: + - button "Temperature-strain run" [ref=f101e341] [cursor=pointer] + - button "Standing timelapse" [ref=f101e342] [cursor=pointer] + - button "Watch for hatching" [ref=f101e343] [cursor=pointer] + - generic [ref=f101e344]: Loading linked plans… + - generic [ref=f101e347]: + - button "Fold or open EVENTS" [ref=f101e348] [cursor=pointer]: ▼ + - generic [ref=f101e349]: EVENTS + - generic [ref=f101e350]: no events + - generic [ref=f101e351]: + - generic [ref=f101e352]: + - button "Fold or open PLANS" [expanded] [ref=f101e353] [cursor=pointer]: ▼ + - generic [ref=f101e354]: PLANS + - generic [ref=f101e355]: empty + - generic [ref=f101e356]: + - button "document" [pressed] [ref=f101e357] [cursor=pointer] + - button "graph" [ref=f101e358] [cursor=pointer] + - button "board" [ref=f101e359] [cursor=pointer] + - button "decisions" [ref=f101e360] [cursor=pointer] + - button "matrix" [ref=f101e361] [cursor=pointer] + - button "timeline" [ref=f101e362] [cursor=pointer] + - generic [ref=f101e364]: + - generic [ref=f101e366]: + - generic [ref=f101e367]: Campaigns + - text: › + - generic [ref=f101e368]: + - navigation [ref=f101e369]: + - generic [ref=f101e370]: + - generic [ref=f101e371]: Campaigns + - generic [ref=f101e372] [cursor=pointer]: timing-variance + - generic [ref=f101e375] [cursor=pointer]: timing-variance + - generic [ref=f101e378] [cursor=pointer]: timing-variance + - main [ref=f101e381]: + - paragraph [ref=f101e384]: Loading plan... + - complementary [ref=f101e385]: + - generic [ref=f101e386]: + - button "Close" [ref=f101e387] [cursor=pointer] + - heading [level=2] + - generic [ref=f101e393]: + - button "Fold or open SESSIONS" [ref=f101e394] [cursor=pointer]: ▼ + - generic [ref=f101e395]: SESSIONS + - generic [ref=f101e396]: empty + - generic [ref=f101e398]: + - button "Fold or open NOTEBOOK" [ref=f101e399] [cursor=pointer]: ▼ + - generic [ref=f101e400]: NOTEBOOK + - generic [ref=f101e401]: 4 rows + - generic [ref=f101e403]: + - button "Fold or open GALLERY" [ref=f101e404] [cursor=pointer]: ▼ + - generic [ref=f101e405]: GALLERY + - generic [ref=f101e406]: no images \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-27T02-47-38-186Z.yml b/.playwright-mcp/page-2026-08-27T02-47-38-186Z.yml new file mode 100644 index 00000000..4ac2c12f --- /dev/null +++ b/.playwright-mcp/page-2026-08-27T02-47-38-186Z.yml @@ -0,0 +1,19 @@ +- generic [ref=e3]: + - generic [ref=e4]: + - generic [ref=e5]: Sample at objective · XY locked · 1970 µm to floor + - button "Back off 100 µm" [ref=e6] [cursor=pointer] + - generic [ref=e8]: + - generic [ref=e9]: + - generic [ref=e10]: Sample → objective + - generic [ref=e11]: 2000.0µm + - generic [ref=e12]: + - generic [ref=e14]: + - generic [ref=e15]: "100" + - generic [ref=e16]: "1000" + - generic [ref=e17]: "10000" + - generic [ref=e19]: + - generic [ref=e20]: "25000" + - generic [ref=e21]: "30" + - generic [ref=e22]: + - generic [ref=e23]: approach + - generic [ref=e24]: 1970 µm left · log scale \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-27T02-50-48-468Z.yml b/.playwright-mcp/page-2026-08-27T02-50-48-468Z.yml new file mode 100644 index 00000000..91bf06e0 --- /dev/null +++ b/.playwright-mcp/page-2026-08-27T02-50-48-468Z.yml @@ -0,0 +1,219 @@ +- generic [active] [ref=f1e1]: + - generic [ref=f1e2]: + - generic [ref=f1e3]: + - link "Gently Microscopy" [ref=f1e4] [cursor=pointer]: + - /url: / + - generic [ref=f1e5]: + - link "690c69e1" [ref=f1e6] [cursor=pointer]: + - /url: /review?session=690c69e1 + - button "Copy session ID" [ref=f1e7] [cursor=pointer] + - generic [ref=f1e11]: + - generic [ref=f1e12]: P + - button "Open process console" [ref=f1e14] + - link "Dashboard settings" [ref=f1e18] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f1e22] [cursor=pointer] + - button "Scope offline" [ref=f1e26] [cursor=pointer] + - generic [ref=f1e31]: + - complementary [ref=f1e32]: + - navigation [ref=f1e33]: + - generic [ref=f1e34]: + - generic [ref=f1e35]: Now + - button "Home" [ref=f1e36] [cursor=pointer] + - button "Operations" [ref=f1e37] [cursor=pointer] + - button "Embryos" [ref=f1e38] [cursor=pointer] + - generic [ref=f1e39]: + - generic [ref=f1e40]: Library + - button "Plans" [ref=f1e41] [cursor=pointer] + - button "Sessions" [ref=f1e42] [cursor=pointer] + - button "Notebook" [ref=f1e43] [cursor=pointer] + - button "Gallery" [ref=f1e44] [cursor=pointer] + - generic [ref=f1e45]: + - generic [ref=f1e46]: System + - button "Devices" [ref=f1e47] [cursor=pointer] + - button "Calibration" [ref=f1e48] [cursor=pointer] + - button "Logs" [ref=f1e49] [cursor=pointer] + - button "Talk to Gently" [ref=f1e50] [cursor=pointer] + - generic [ref=f1e52]: + - generic [ref=f1e53]: + - generic [ref=f1e54]: LIVE + - generic [ref=f1e56]: 2 embryos · Online + - contentinfo [ref=f1e57]: + - generic [ref=f1e58]: 2 embryos · 0 images · 12 events + - generic [ref=f1e59]: No active timelapse + - complementary "Agent chat" [ref=f1e60]: + - generic [ref=f1e62]: + - generic [ref=f1e63]: Agent + - generic [ref=f1e65]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f1e66] [cursor=pointer] + - generic [ref=f1e70]: + - textbox "Message Gently… ( / commands · @ tools )" [ref=f1e71]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f1e72] + - generic: + - generic [ref=f1e76]: + - button "Fold or open DEVICES" [ref=f1e77] [cursor=pointer]: ▼ + - generic [ref=f1e78]: DEVICES + - generic [ref=f1e79]: scope offline + - generic: + - generic [ref=f1e80]: + - generic [ref=f1e81]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f1e82] [cursor=pointer]: + - /url: "#" + - generic [ref=f1e83]: + - button "←" [disabled] [ref=f1e84] + - button "⌂ start" [ref=f1e85] [cursor=pointer] + - button "all" [ref=f1e86] [cursor=pointer] + - button "home" [ref=f1e87] [cursor=pointer] + - button "embryos" [ref=f1e88] [cursor=pointer] + - button "devices" [ref=f1e89] [cursor=pointer] + - button "calibration" [ref=f1e90] [cursor=pointer] + - button "experiment" [ref=f1e91] [cursor=pointer] + - button "events" [ref=f1e92] [cursor=pointer] + - button "plans" [ref=f1e93] [cursor=pointer] + - button "sessions" [ref=f1e94] [cursor=pointer] + - button "notebook" [ref=f1e95] [cursor=pointer] + - button "gallery" [ref=f1e96] [cursor=pointer] + - generic [ref=f1e97]: + - generic [ref=f1e98]: 58% + - generic [ref=f1e99]: + - text: density + - slider "density 4" [ref=f1e100]: "4" + - generic [ref=f1e101]: "4" + - generic [ref=f1e103]: + - generic: + - generic [ref=f1e105]: + - button "Fold or open HOME" [ref=f1e106] [cursor=pointer]: ▼ + - generic [ref=f1e107]: HOME + - generic [ref=f1e108]: 3 rows + - generic [ref=f1e109]: + - generic [ref=f1e110]: + - button "Fold or open EMBRYOS" [expanded] [ref=f1e111] [cursor=pointer]: ▼ + - generic [ref=f1e112]: EMBRYOS + - generic [ref=f1e113]: no embryos + - generic [ref=f1e114]: + - button "default" [pressed] [ref=f1e115] [cursor=pointer] + - button "board" [ref=f1e116] [cursor=pointer] + - button "filmstrip" [ref=f1e117] [cursor=pointer] + - button "vitals" [ref=f1e118] [cursor=pointer] + - generic [ref=f1e122]: + - generic [ref=f1e124] [cursor=pointer]: + - generic [ref=f1e125]: + - heading "Embryo Monitoring" [level=2] [ref=f1e126] + - generic [ref=f1e127]: No active timelapse + - generic [ref=f1e130]: + - generic [ref=f1e131]: + - generic [ref=f1e132]: "0" + - generic [ref=f1e133]: TP + - generic [ref=f1e134]: + - generic [ref=f1e135]: "2" + - generic [ref=f1e136]: Active + - generic [ref=f1e137]: + - generic [ref=f1e138]: "0" + - generic [ref=f1e139]: Done + - generic [ref=f1e140]: + - generic [ref=f1e141]: 2:00 + - generic [ref=f1e142]: Next + - generic [ref=f1e144]: + - generic [ref=f1e145]: + - generic [ref=f1e146]: Embryos + - generic [ref=f1e147]: + - generic "embryo_1 — Acquiring — 0 TP" [ref=f1e148] [cursor=pointer]: + - generic [ref=f1e149]: 🔬 + - generic [ref=f1e150]: E1 + - generic "embryo_2 — Acquiring — 0 TP" [ref=f1e151] [cursor=pointer]: + - generic [ref=f1e152]: 🔬 + - generic [ref=f1e153]: E2 + - generic [ref=f1e155]: + - generic [ref=f1e156]: + - generic [ref=f1e157]: ● + - generic [ref=f1e158]: embryo_1 + - generic [ref=f1e159]: 0 detections + - generic [ref=f1e160]: 0 evals + - generic [ref=f1e161]: 0 tp + - generic [ref=f1e162]: No stage transitions yet + - generic [ref=f1e164]: + - generic [ref=f1e165]: + - button "Fold or open CALIBRATION" [expanded] [ref=f1e166] [cursor=pointer]: ▼ + - generic [ref=f1e167]: CALIBRATION + - generic [ref=f1e168]: no cal images + - generic [ref=f1e169]: + - button "profile" [pressed] [ref=f1e170] [cursor=pointer] + - button "gallery" [ref=f1e171] [cursor=pointer] + - generic [ref=f1e173]: + - heading "Calibration" [level=2] [ref=f1e175] + - generic [ref=f1e176]: + - generic [ref=f1e177]: + - generic [ref=f1e178]: Embryos + - generic [ref=f1e179]: No calibration images yet + - generic [ref=f1e182]: + - generic [ref=f1e183]: 📷 + - generic [ref=f1e184]: Select an embryo to view calibration images + - generic [ref=f1e185]: + - generic [ref=f1e186]: + - button "Fold or open EXPERIMENT" [expanded] [ref=f1e187] [cursor=pointer]: ▼ + - generic [ref=f1e188]: EXPERIMENT + - generic [ref=f1e189]: empty + - generic [ref=f1e190]: + - button "overview" [pressed] [ref=f1e191] [cursor=pointer] + - button "rules" [ref=f1e192] [cursor=pointer] + - generic [ref=f1e194]: + - heading "Operations" [level=2] [ref=f1e196] + - generic [ref=f1e199]: + - generic [ref=f1e200]: Operations + - heading "No operation running" [level=1] [ref=f1e201] + - generic [ref=f1e202]: Brief the agent — it will declare a tactic plan and the spine renders live. + - generic [ref=f1e203]: + - button "Brief the agent" [ref=f1e204] [cursor=pointer] + - generic [ref=f1e205]: — or start from a template + - generic [ref=f1e206]: + - button "Temperature-strain run" [ref=f1e207] [cursor=pointer] + - button "Standing timelapse" [ref=f1e208] [cursor=pointer] + - button "Watch for hatching" [ref=f1e209] [cursor=pointer] + - generic [ref=f1e210]: Loading linked plans… + - generic [ref=f1e213]: + - button "Fold or open EVENTS" [ref=f1e214] [cursor=pointer]: ▼ + - generic [ref=f1e215]: EVENTS + - generic [ref=f1e216]: no events + - generic [ref=f1e217]: + - generic [ref=f1e218]: + - button "Fold or open PLANS" [expanded] [ref=f1e219] [cursor=pointer]: ▼ + - generic [ref=f1e220]: PLANS + - generic [ref=f1e221]: empty + - generic [ref=f1e222]: + - button "document" [pressed] [ref=f1e223] [cursor=pointer] + - button "graph" [ref=f1e224] [cursor=pointer] + - button "board" [ref=f1e225] [cursor=pointer] + - button "decisions" [ref=f1e226] [cursor=pointer] + - button "matrix" [ref=f1e227] [cursor=pointer] + - button "timeline" [ref=f1e228] [cursor=pointer] + - generic [ref=f1e230]: + - generic [ref=f1e232]: + - generic [ref=f1e233]: Campaigns + - text: › + - generic [ref=f1e234]: + - navigation [ref=f1e235]: + - generic [ref=f1e236]: + - generic [ref=f1e237]: Campaigns + - generic [ref=f1e238]: No campaigns + - main [ref=f1e239]: + - generic [ref=f1e241]: + - paragraph [ref=f1e242]: No campaigns yet + - generic [ref=f1e243]: Create a campaign plan to get started + - complementary [ref=f1e244]: + - generic [ref=f1e245]: + - button "Close" [ref=f1e246] [cursor=pointer] + - heading [level=2] + - generic [ref=f1e252]: + - button "Fold or open SESSIONS" [ref=f1e253] [cursor=pointer]: ▼ + - generic [ref=f1e254]: SESSIONS + - generic [ref=f1e255]: empty + - generic [ref=f1e257]: + - button "Fold or open NOTEBOOK" [ref=f1e258] [cursor=pointer]: ▼ + - generic [ref=f1e259]: NOTEBOOK + - generic [ref=f1e260]: 4 rows + - generic [ref=f1e262]: + - button "Fold or open GALLERY" [ref=f1e263] [cursor=pointer]: ▼ + - generic [ref=f1e264]: GALLERY + - generic [ref=f1e265]: no images \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-27T02-51-02-914Z.yml b/.playwright-mcp/page-2026-08-27T02-51-02-914Z.yml new file mode 100644 index 00000000..04f27a51 --- /dev/null +++ b/.playwright-mcp/page-2026-08-27T02-51-02-914Z.yml @@ -0,0 +1,306 @@ +- generic [active] [ref=f1e1]: + - generic [ref=f1e2]: + - generic [ref=f1e3]: + - link "Gently Microscopy" [ref=f1e4] [cursor=pointer]: + - /url: / + - generic [ref=f1e5]: + - link "690c69e1" [ref=f1e6] [cursor=pointer]: + - /url: /review?session=690c69e1 + - button "Copy session ID" [ref=f1e7] [cursor=pointer] + - generic [ref=f1e11]: + - generic [ref=f1e12]: P + - button "Open process console" [ref=f1e14] + - link "Dashboard settings" [ref=f1e18] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f1e22] [cursor=pointer] + - button "Scope offline" [ref=f1e26] [cursor=pointer] + - generic [ref=f1e31]: + - complementary [ref=f1e32]: + - navigation [ref=f1e33]: + - generic [ref=f1e34]: + - generic [ref=f1e35]: Now + - button "Home" [ref=f1e36] [cursor=pointer] + - button "Operations" [ref=f1e37] [cursor=pointer] + - button "Embryos" [ref=f1e38] [cursor=pointer] + - generic [ref=f1e39]: + - generic [ref=f1e40]: Library + - button "Plans" [ref=f1e41] [cursor=pointer] + - button "Sessions" [ref=f1e42] [cursor=pointer] + - button "Notebook" [ref=f1e43] [cursor=pointer] + - button "Gallery" [ref=f1e44] [cursor=pointer] + - generic [ref=f1e45]: + - generic [ref=f1e46]: System + - button "Devices" [ref=f1e47] [cursor=pointer] + - button "Calibration" [ref=f1e48] [cursor=pointer] + - button "Logs" [ref=f1e49] [cursor=pointer] + - button "Talk to Gently" [ref=f1e50] [cursor=pointer] + - generic [ref=f1e52]: + - generic [ref=f1e53]: + - generic [ref=f1e54]: LIVE + - generic [ref=f1e56]: 2 embryos · Online + - contentinfo [ref=f1e57]: + - generic [ref=f1e58]: 2 embryos · 0 images · 12 events + - generic [ref=f1e59]: No active timelapse + - complementary "Agent chat" [ref=f1e60]: + - generic [ref=f1e62]: + - generic [ref=f1e63]: Agent + - generic [ref=f1e65]: Connected · v1.0.0.dev0 + - button "Collapse agent panel" [ref=f1e66] [cursor=pointer] + - generic [ref=f1e70]: + - textbox "Message Gently… ( / commands · @ tools )" [ref=f1e71]: + - /placeholder: Message Gently… ( / commands · @ tools ) + - button "Send message" [disabled] [ref=f1e72] + - generic: + - generic: + - generic [ref=f1e80]: + - generic [ref=f1e81]: + - text: Atrium · drag to pan · wheel to zoom · Backspace back + - link "exit" [ref=f1e82] [cursor=pointer]: + - /url: "#" + - generic [ref=f1e83]: + - button "←" [disabled] [ref=f1e84] + - button "⌂ start" [ref=f1e85] [cursor=pointer] + - button "all" [ref=f1e86] [cursor=pointer] + - button "home" [ref=f1e87] [cursor=pointer] + - button "embryos" [ref=f1e88] [cursor=pointer] + - button "devices" [ref=f1e89] [cursor=pointer] + - button "calibration" [ref=f1e90] [cursor=pointer] + - button "experiment" [ref=f1e91] [cursor=pointer] + - button "events" [ref=f1e92] [cursor=pointer] + - button "plans" [ref=f1e93] [cursor=pointer] + - button "sessions" [ref=f1e94] [cursor=pointer] + - button "notebook" [ref=f1e95] [cursor=pointer] + - button "gallery" [ref=f1e96] [cursor=pointer] + - generic [ref=f1e97]: + - generic [ref=f1e98]: 114% + - generic [ref=f1e99]: + - text: density + - slider "density 4" [ref=f1e100]: "4" + - generic [ref=f1e101]: "4" + - generic [ref=f1e103]: + - generic: + - generic [ref=f1e105]: + - button "Fold or open HOME" [ref=f1e106] [cursor=pointer]: ▼ + - generic [ref=f1e107]: HOME + - generic [ref=f1e108]: empty + - generic [ref=f1e109]: + - generic [ref=f1e110]: + - button "Fold or open EMBRYOS" [expanded] [ref=f1e111] [cursor=pointer]: ▼ + - generic [ref=f1e112]: EMBRYOS + - generic [ref=f1e113]: 2 embryos · embryo_1 + - generic [ref=f1e114]: + - button "default" [pressed] [ref=f1e115] [cursor=pointer] + - button "board" [ref=f1e116] [cursor=pointer] + - button "filmstrip" [ref=f1e117] [cursor=pointer] + - button "vitals" [ref=f1e118] [cursor=pointer] + - generic [ref=f1e122]: + - generic [ref=f1e124] [cursor=pointer]: + - generic [ref=f1e125]: + - heading "Embryo Monitoring" [level=2] [ref=f1e126] + - generic [ref=f1e127]: No active timelapse + - generic [ref=f1e130]: + - generic [ref=f1e131]: + - generic [ref=f1e132]: "0" + - generic [ref=f1e133]: TP + - generic [ref=f1e134]: + - generic [ref=f1e135]: "2" + - generic [ref=f1e136]: Active + - generic [ref=f1e137]: + - generic [ref=f1e138]: "0" + - generic [ref=f1e139]: Done + - generic [ref=f1e140]: + - generic [ref=f1e141]: 2:00 + - generic [ref=f1e142]: Next + - generic [ref=f1e144]: + - generic [ref=f1e145]: + - generic [ref=f1e146]: Embryos + - generic [ref=f1e147]: + - generic "embryo_1 — Acquiring — 0 TP" [ref=f1e148] [cursor=pointer]: + - generic [ref=f1e149]: 🔬 + - generic [ref=f1e150]: E1 + - generic "embryo_2 — Acquiring — 0 TP" [ref=f1e151] [cursor=pointer]: + - generic [ref=f1e152]: 🔬 + - generic [ref=f1e153]: E2 + - generic [ref=f1e155]: + - generic [ref=f1e156]: + - generic [ref=f1e157]: ● + - generic [ref=f1e158]: embryo_1 + - generic [ref=f1e159]: 0 detections + - generic [ref=f1e160]: 0 evals + - generic [ref=f1e161]: 0 tp + - generic [ref=f1e162]: No stage transitions yet + - generic [ref=f1e164]: + - generic [ref=f1e165]: + - button "Fold or open CALIBRATION" [expanded] [ref=f1e166] [cursor=pointer]: ▼ + - generic [ref=f1e167]: CALIBRATION + - generic [ref=f1e168]: no cal images + - generic [ref=f1e169]: + - button "profile" [pressed] [ref=f1e170] [cursor=pointer] + - button "gallery" [ref=f1e171] [cursor=pointer] + - generic [ref=f1e173]: + - heading "Calibration" [level=2] [ref=f1e175] + - generic [ref=f1e176]: + - generic [ref=f1e177]: + - generic [ref=f1e178]: Embryos + - generic [ref=f1e179]: No calibration images yet + - generic [ref=f1e182]: + - generic [ref=f1e183]: 📷 + - generic [ref=f1e184]: Select an embryo to view calibration images + - generic [ref=f1e185]: + - generic [ref=f1e186]: + - button "Fold or open EXPERIMENT" [expanded] [ref=f1e187] [cursor=pointer]: ▼ + - generic [ref=f1e188]: EXPERIMENT + - generic [ref=f1e189]: 3 rows + - generic [ref=f1e190]: + - button "overview" [pressed] [ref=f1e191] [cursor=pointer] + - button "rules" [ref=f1e192] [cursor=pointer] + - generic [ref=f1e194]: + - heading "Operations" [level=2] [ref=f1e196] + - generic [ref=f1e199]: + - generic [ref=f1e200]: Operations + - heading "No operation running" [level=1] [ref=f1e201] + - generic [ref=f1e202]: Brief the agent — it will declare a tactic plan and the spine renders live. + - generic [ref=f1e203]: + - button "Brief the agent" [ref=f1e204] [cursor=pointer] + - generic [ref=f1e205]: — or start from a template + - generic [ref=f1e206]: + - button "Temperature-strain run" [ref=f1e207] [cursor=pointer] + - button "Standing timelapse" [ref=f1e208] [cursor=pointer] + - button "Watch for hatching" [ref=f1e209] [cursor=pointer] + - generic [ref=f1e210]: + - generic [ref=f1e266]: + - generic [ref=f1e267]: Linked plans + - button "+ link to a plan" [ref=f1e268] [cursor=pointer] + - generic [ref=f1e269]: Not linked to any plan + - generic [ref=f1e213]: + - button "Fold or open EVENTS" [ref=f1e214] [cursor=pointer]: ▼ + - generic [ref=f1e215]: EVENTS + - generic [ref=f1e216]: 12 events + - generic [ref=f1e217]: + - generic [ref=f1e218]: + - button "Fold or open PLANS" [expanded] [ref=f1e219] [cursor=pointer]: ▼ + - generic [ref=f1e220]: PLANS + - generic [ref=f1e221]: empty + - generic [ref=f1e222]: + - button "document" [pressed] [ref=f1e223] [cursor=pointer] + - button "graph" [ref=f1e224] [cursor=pointer] + - button "board" [ref=f1e225] [cursor=pointer] + - button "decisions" [ref=f1e226] [cursor=pointer] + - button "matrix" [ref=f1e227] [cursor=pointer] + - button "timeline" [ref=f1e228] [cursor=pointer] + - generic [ref=f1e230]: + - generic [ref=f1e232]: + - generic [ref=f1e233]: Campaigns + - text: › + - generic [ref=f1e234]: + - navigation [ref=f1e235]: + - generic [ref=f1e236]: + - generic [ref=f1e237]: Campaigns + - generic [ref=f1e238]: No campaigns + - main [ref=f1e239]: + - generic [ref=f1e241]: + - paragraph [ref=f1e242]: No campaigns yet + - generic [ref=f1e243]: Create a campaign plan to get started + - complementary [ref=f1e244]: + - generic [ref=f1e245]: + - button "Close" [ref=f1e246] [cursor=pointer] + - heading [level=2] + - generic [ref=f1e252]: + - button "Fold or open SESSIONS" [ref=f1e253] [cursor=pointer]: ▼ + - generic [ref=f1e254]: SESSIONS + - generic [ref=f1e255]: empty + - generic [ref=f1e257]: + - button "Fold or open NOTEBOOK" [ref=f1e258] [cursor=pointer]: ▼ + - generic [ref=f1e259]: NOTEBOOK + - generic [ref=f1e260]: empty + - generic [ref=f1e262]: + - button "Fold or open GALLERY" [ref=f1e263] [cursor=pointer]: ▼ + - generic [ref=f1e264]: GALLERY + - generic [ref=f1e265]: no images + - generic [ref=f1e75]: + - generic [ref=f1e76]: + - button "Fold or open DEVICES" [expanded] [ref=f1e77] [cursor=pointer]: ▼ + - generic [ref=f1e78]: DEVICES + - generic [ref=f1e79]: scope offline + - generic [ref=f1e272]: + - generic [ref=f1e273]: + - generic [ref=f1e274]: + - heading [level=2] [ref=f1e275]: + - text: Device + - emphasis [ref=f1e276]: state + - generic [ref=f1e277]: + - button "Operate" [ref=f1e278] [cursor=pointer] + - button "Map" [ref=f1e279] [cursor=pointer] + - button "Details" [ref=f1e280] [cursor=pointer] + - button "3D" [ref=f1e281] [cursor=pointer] + - button "Manual" [ref=f1e282] [cursor=pointer] + - generic [ref=f1e283]: + - generic [ref=f1e284]: waiting + - generic [ref=f1e285]: no payload yet + - generic [ref=f1e286]: + - generic [ref=f1e287]: + - generic [ref=f1e288]: Device Layer + - generic [ref=f1e289]: stopped + - generic [ref=f1e290]: "SAM: GPU" + - generic [ref=f1e291]: + - button "Start" [ref=f1e292] [cursor=pointer] + - button "Stop" [disabled] [ref=f1e293] + - button "Log" [ref=f1e294] [cursor=pointer] + - generic [ref=f1e296]: + - navigation "Operate surfaces" [ref=f1e297]: + - generic [ref=f1e298]: + - button "Bottom cam" [ref=f1e299] [cursor=pointer] + - button "SPIM head" [ref=f1e300] [cursor=pointer] + - button "Acquisition" [ref=f1e301] [cursor=pointer] + - generic [ref=f1e302]: + - complementary "Embryos" [ref=f1e303]: + - generic [ref=f1e304]: + - generic [ref=f1e305]: Embryos + - generic [ref=f1e306]: "2" + - generic [ref=f1e307]: + - generic [ref=f1e308] [cursor=pointer]: + - generic [ref=f1e309]: + - generic [ref=f1e310]: Embryo 1 + - generic [ref=f1e311]: 100, 200 + - button "×" [ref=f1e312] + - generic [ref=f1e313] [cursor=pointer]: + - generic [ref=f1e314]: + - generic [ref=f1e315]: Embryo 2 + - generic [ref=f1e316]: 300, 400 + - button "×" [ref=f1e317] + - generic [ref=f1e319]: + - generic [ref=f1e320]: + - generic [ref=f1e321]: Camera off + - generic [ref=f1e325]: + - generic [ref=f1e326]: Click to mark · click a marker to remove · click a registered embryo to centre on it + - generic [ref=f1e327]: + - generic [ref=f1e328]: Marked + - generic [ref=f1e329]: "0" + - button "Detect automatically" [ref=f1e330] [cursor=pointer] + - button "Register" [disabled] [ref=f1e331] + - button "Clear" [disabled] [ref=f1e332] + - paragraph + - complementary [ref=f1e333]: + - generic [ref=f1e334]: + - generic [ref=f1e335]: Camera + - button "Start camera" [ref=f1e336] [cursor=pointer] + - generic [ref=f1e337]: + - generic [ref=f1e338]: Focus score + - generic [ref=f1e339]: — + - generic [ref=f1e340]: + - generic [ref=f1e341]: + - generic [ref=f1e342]: Bottom focus + - generic [ref=f1e343]: —µm + - generic [ref=f1e344]: + - slider "Bottom focus Z position" [ref=f1e345] + - generic [ref=f1e346]: + - generic [ref=f1e347]: — + - generic [ref=f1e348]: — + - generic [ref=f1e349]: + - button "▲ 10" [ref=f1e350] [cursor=pointer] + - button "▲ 1" [ref=f1e351] [cursor=pointer] + - button "▼ 10" [ref=f1e352] [cursor=pointer] + - button "▼ 1" [ref=f1e353] [cursor=pointer] + - generic [ref=f1e354]: position unavailable + - region "Temperature trajectory" [ref=f1e355]: + - generic [ref=f1e356]: No temperature data yet \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-27T03-02-49-100Z.yml b/.playwright-mcp/page-2026-08-27T03-02-49-100Z.yml new file mode 100644 index 00000000..f8b8e5f0 --- /dev/null +++ b/.playwright-mcp/page-2026-08-27T03-02-49-100Z.yml @@ -0,0 +1,15 @@ +- generic [ref=f4e2]: + - generic [ref=f4e3]: Gently + - paragraph [ref=f4e6]: What are we doing today? + - switch "Microscope" [ref=f4e7] [cursor=pointer]: + - generic [ref=f4e12]: + - generic [ref=f4e13]: Microscope + - generic [ref=f4e14]: Not this session — saved data only. + - switch "Assistant" [checked] [ref=f4e16] [cursor=pointer]: + - generic [ref=f4e20]: + - generic [ref=f4e21]: Assistant + - generic [ref=f4e22]: Help find embryos and watch the timelapse. + - button "Open →" [ref=f4e24] [cursor=pointer]: + - text: Open + - generic [ref=f4e25]: → + - generic [ref=f4e27]: Remembers your last choice \ No newline at end of file diff --git a/.playwright-mcp/page-2026-08-27T03-02-58-399Z.yml b/.playwright-mcp/page-2026-08-27T03-02-58-399Z.yml new file mode 100644 index 00000000..2b7a0076 --- /dev/null +++ b/.playwright-mcp/page-2026-08-27T03-02-58-399Z.yml @@ -0,0 +1,74 @@ +- generic [active] [ref=f7e1]: + - generic "Welcome to Gently" [ref=f7e2]: + - button "Toggle theme" [ref=f7e3] [cursor=pointer] + - generic [ref=f7e11]: + - generic [ref=f7e12]: Hello.What are we doing today? + - generic [ref=f7e15]: + - button "guided Plan an experiment Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. Start planning" [ref=f7e16] [cursor=pointer]: + - generic [ref=f7e17]: guided + - heading "Plan an experiment" [level=3] [ref=f7e21] + - paragraph [ref=f7e22]: Design a run with me — targets, cadence, and when to adapt. I'll handle the rest and keep watch. + - generic [ref=f7e23]: Start planning + - button "standalone Take a quick look Straight to the scope to see what's there — no plan, no commitment. Open the scope" [ref=f7e26] [cursor=pointer]: + - generic [ref=f7e27]: standalone + - heading "Take a quick look" [level=3] [ref=f7e32] + - paragraph [ref=f7e33]: Straight to the scope to see what's there — no plan, no commitment. + - generic [ref=f7e34]: Open the scope + - generic [ref=f7e37]: + - button "or just tell me what you need" [ref=f7e38] [cursor=pointer] + - generic: + - textbox "e.g. watch these embryos overnight and ping me if one stalls" [ref=f7e44] + - button "Send" [ref=f7e45] [cursor=pointer] + - button "Skip to workspace ›" [ref=f7e48] [cursor=pointer] + - generic [ref=f7e49]: + - link "Gently Microscopy" [ref=f7e51] [cursor=pointer]: + - /url: / + - generic [ref=f7e52]: + - button "Open process console" [ref=f7e53] + - link "Dashboard settings" [ref=f7e57] [cursor=pointer]: + - /url: /settings + - button "Toggle theme" [ref=f7e61] [cursor=pointer] + - button "Connecting" [ref=f7e69] [cursor=pointer] + - generic [ref=f7e74]: + - complementary [ref=f7e75]: + - navigation [ref=f7e76]: + - generic [ref=f7e77]: + - generic [ref=f7e78]: Now + - button "Home" [ref=f7e79] [cursor=pointer] + - button "Operations" [ref=f7e80] [cursor=pointer] + - button "Embryos" [ref=f7e81] [cursor=pointer] + - generic [ref=f7e82]: + - generic [ref=f7e83]: Library + - button "Plans" [ref=f7e84] [cursor=pointer] + - button "Sessions" [ref=f7e85] [cursor=pointer] + - button "Notebook" [ref=f7e86] [cursor=pointer] + - button "Gallery" [ref=f7e87] [cursor=pointer] + - generic [ref=f7e88]: + - generic [ref=f7e89]: System + - button "Devices" [ref=f7e90] [cursor=pointer] + - button "Calibration" [ref=f7e91] [cursor=pointer] + - button "Logs" [ref=f7e92] [cursor=pointer] + - button "Talk to Gently" [ref=f7e93] [cursor=pointer] + - generic [ref=f7e95]: + - generic [ref=f7e96]: LIVE + - generic [ref=f7e101]: + - generic [ref=f7e102]: + - generic [ref=f7e103]: + - generic [ref=f7e104]: Recent sessions + - link "All" [ref=f7e105] [cursor=pointer]: + - /url: "#sessions" + - generic [ref=f7e106]: Loading… + - generic [ref=f7e108]: + - generic [ref=f7e109]: + - generic [ref=f7e110]: Recent plans + - link "All" [ref=f7e111] [cursor=pointer]: + - /url: "#plans" + - generic [ref=f7e112]: Loading… + - generic [ref=f7e114]: + - generic [ref=f7e115]: + - generic [ref=f7e116]: Recent images + - link "All" [ref=f7e117] [cursor=pointer]: + - /url: "#embryos" + - generic [ref=f7e118]: No images yet — they appear once a session is active. + - text: › + - contentinfo [ref=f7e120] \ No newline at end of file diff --git a/canvas-surface-fit.png b/canvas-surface-fit.png new file mode 100644 index 0000000000000000000000000000000000000000..94a35676d6f04f4ad0a96e9b6908ff2f95ed6d87 GIT binary patch literal 104128 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

qtdi|yLwPj0OYLPq{UbQjN*0jq~8V6OWewWh~ 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 BSz7=A literal 0 HcmV?d00001 diff --git a/docs/superpowers/mockups/direction-a-instrument-dark.html b/docs/superpowers/mockups/direction-a-instrument-dark.html new file mode 100644 index 00000000..724c60c5 --- /dev/null +++ b/docs/superpowers/mockups/direction-a-instrument-dark.html @@ -0,0 +1,701 @@ + + + + + +Gently — Instrument Dark + + + + + + + + + +

+
+ + + gently.
+ diSPIM · light-sheet · C. elegans +
+
+
+ scope ready + + 488 nm · 561 nm + + stage idle +
+
+ + +
+ + + + + +
+
+
+ 488 GFP + 561 mCherry + ACQ · ready · t0000 +
+

Good evening.

+
What are we doing today?
+
+ +
+ + + +
+
+ +
+ +
+ scope ready + · + 36.9 °C + · + stage idle +
+
+ + + workspace + + +
+ + +
+
+ + +
+ LIVE + + developmental time-lapse + · every 2 min · 6 h · GFP+mCherry + 0h 12m elapsed · next 1:43 +
+ +
+ +
+
Embryos · 3 tracked
+
+ +
+ +
+
EMBRYO · 01
+
on track
+
4-cell · GFP nuclei resolved
+
+
+ +
+ +
+
EMBRYO · 02
+
dividing
+
cadence sped to 30 s
+
+
+ +
+ +
+
EMBRYO · 03
+
stalled
+
40 min quiet · flagged
+
+
+ +
+
+ + +
+
Agent telemetry
+
+
+ Agent's View + updated 4 s ago +
+
+ Expectation +
Embryo 01 should reach the 8-cell stage within the next ~12 min at current cadence.
+
+
+ Watchpoint +
Embryo 02 is dividing fast — holding 30 s cadence and watching 561 for photobleaching.
+
+
+ Open question +
Is Embryo 03 arrested, or just out of focus? Queueing a calibration sweep to decide.
+
+
+
+
+ +
— the agent keeps watch · you don't have to —
+
+
+ + + + + diff --git a/docs/superpowers/mockups/direction-b-optical-blueprint.html b/docs/superpowers/mockups/direction-b-optical-blueprint.html new file mode 100644 index 00000000..de9e46a2 --- /dev/null +++ b/docs/superpowers/mockups/direction-b-optical-blueprint.html @@ -0,0 +1,520 @@ + + + + + + +Gently — Optical Bench + + + + + + + +
+ + +
+
+ Gently + diSPIM · light-sheet +
+
+ + scope ready · 36.9 °C · stage idle +
+
+ + +
+
+ +
+
Good evening.
+
What are we doing today?
+

I'm watching the bench. The objective is parked, the sample chamber is at temperature, and the light sheet is aligned and dark. Point me at something and I'll take it from here.

+
+ + +
+
+ Fig. 1 — Beam path, illumination → sample → detection + scale 1 : ⌀ 0.8 NA · λ 488 / 561 nm +
+ + +
+ + + + + + + + + + + + + + + + + + + + + OBJECTIVE + 40× / W + + + + + + LIGHT SHEET + + + + + + + + + + + C. ELEGANS EMBRYO · n=3 + + + + + + + + sCMOS CAMERA + 2048² + + + + + + +
+ + + + + +
+ + + +
+
+
+
+
+ + +
+
+
+ LIVE + developmental time-lapse · every 2 min · 6 h · GFP+mCherry + + 0h 12m elapsed · next 1:43 +
+ +
+ +
+
Embryo 1uid 0x1a
+ +
On track
+
4-cell · cadence nominal
+
last vol t0006 · 488/561
+
+ + +
+
Embryo 2uid 0x2c
+ +
Dividing
+
sped to 30 s · catching the cleavage
+
cadence ↑ 4× · auto
+
+ + +
+
Embryo 3uid 0x3f
+ +
Stalled
+
40 min quiet · no morphology change
+
watching · cadence held
+
+ + +
+
+ + Agent's view +
+
+ Expectation + Embryo 1 reaches 8-cell within ~18 min on current cadence. +
+
+ Watchpoint + Embryo 2 photobleach risk after speed-up — capping exposure. +
+
+ Open question + Is Embryo 3 arrested, or simply between divisions? +
+
+
+ + +
+ Gently · autonomous diSPIM · plate B + + ink on paper · Fig. drawn to schematic, not to scale +
+
+
+ + + + diff --git a/docs/superpowers/mockups/direction-c-living-specimen.html b/docs/superpowers/mockups/direction-c-living-specimen.html new file mode 100644 index 00000000..2d43f7db --- /dev/null +++ b/docs/superpowers/mockups/direction-c-living-specimen.html @@ -0,0 +1,896 @@ + + + + + +Gently — The Living Specimen + + + + + + + + + + + +
+ + +
+
+ Gently + Caenorhabditis elegans · diSPIM +
+
+ scope ready + · + 36.9 °C + · + stage idle +
+
+ + +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + perceiving +
+
+ + +
+
+ Developmental sequence + now — 4-cell · 0h 12m elapsed +
+
+ + +
+
+ +
+ 1-cell +
+ + +
+
+ +
+ 2-cell +
+ + +
+
+ +
+ 4-cell +
+ + +
+
+ +
+ 8-cell +
+ + +
+
+ +
+ morula +
+ + +
+
+ +
+ comma +
+ + +
+
+ +
+ hatch +
+ +
+
+ + +
+ + +
+ Live + developmental time-lapse + · + every 2 min + · + 6 h + · + GFP + mCherry + 0h 12m elapsed  ·  next 1:43 +
+ +
+ + +
+ +
+
+ Embryo 1 + on track +
+
+ +
+

4-cell

+

dividing on schedule

+
+ +
+
+ Embryo 2 + dividing +
+
+ +
+

sped to 30 s

+

cadence raised mid-mitosis

+
+ +
+
+ Embryo 3 + stalled +
+
+ +
+

40 min quiet

+

no division — watching

+
+ +
+ + + + +
+
+ + +
+ Gently · autonomous light-sheet microscopy + session 20260616_1812 · keeping watch +
+ +
+ + + diff --git a/docs/superpowers/mockups/direction-calm-instrument.html b/docs/superpowers/mockups/direction-calm-instrument.html new file mode 100644 index 00000000..a957f902 --- /dev/null +++ b/docs/superpowers/mockups/direction-calm-instrument.html @@ -0,0 +1,134 @@ + + + + + +Gently — calm instrument re-skin + + + + + + + +
+
Gently
+
scope ready · 36.9 °C · stage idle
+
+ +
+
+

Good evening.What are we doing today?

+ +
+ + +
+ + +
+ + + + + + diff --git a/gently/hardware/dispim/device_layer.py b/gently/hardware/dispim/device_layer.py index 94db4c5f..bcde8c3e 100644 --- a/gently/hardware/dispim/device_layer.py +++ b/gently/hardware/dispim/device_layer.py @@ -2684,7 +2684,10 @@ async def handle_set_laser_config(self, request): ) async def handle_get_laser_configs(self, request): - """GET /api/laser/configs — list available Laser config-group presets.""" + """GET /api/laser/configs — available Laser presets and the current one. + + Returns ``{"configs": [...], "current": ""}``. + """ try: light_source = self.devices.get("light_source") or self.devices.get("laser_control") if light_source is None: @@ -2693,7 +2696,14 @@ async def handle_get_laser_configs(self, request): status=503, ) configs = light_source._get_available_configs() - return web.json_response({"configs": configs}) + # The preset that is actually set, not the one last commanded. The + # UI had no way to ask, so its config readout was an echo of its own + # last write -- and a write that returned 200 is not a state (#106). + try: + current = light_source.read().get(light_source.name, {}).get("value") + except Exception: + current = None + return web.json_response({"configs": configs, "current": current}) except Exception as e: import traceback diff --git a/gently/ui/web/static/css/operate.css b/gently/ui/web/static/css/operate.css index 9839be70..30c3ec43 100644 --- a/gently/ui/web/static/css/operate.css +++ b/gently/ui/web/static/css/operate.css @@ -730,6 +730,7 @@ .lp-btn { font-size: 0.72rem; padding: 2px 8px; + white-space: nowrap; /* "Set No" wrapped to two lines in a narrow panel */ border: 1px solid var(--border); border-radius: 4px; background: var(--bg-card); @@ -1178,3 +1179,44 @@ line-height: 1.35; color: var(--op-ink-dim); } + +/* ── Light panel: mode as the root of the control ───────────────────────── + LED and laser are two independent Micro-Manager config groups, so their + exclusivity is a policy this panel asserts, not an interlock the hardware + enforces. `is-on` is read back from the device; `is-open` is only which + branch is on screen. They are different things and look different: a mode + that is actually engaged is filled, a branch merely being viewed is outlined. + Both light up together when both sources are open, which is the #106 fault + and gets its own .lp-warn line. */ +.lp-seg { + display: inline-flex; + flex: 0 0 auto; + border: 1px solid var(--border); + border-radius: 4px; + overflow: hidden; +} + +.lp-mbtn { + font-size: 0.72rem; + padding: 2px 10px; + border: 0; + border-left: 1px solid var(--border); + background: var(--bg-card); + color: var(--text-muted); + cursor: pointer; +} + +.lp-mbtn:first-child { border-left: 0; } + +/* Engaged: the device says this source is open. */ +.lp-mbtn.is-on { + background: var(--accent); + color: #fff; + font-weight: 600; +} + +/* Disclosed but not engaged — viewing the branch to configure it. */ +.lp-mbtn.is-open:not(.is-on) { + color: var(--text); + box-shadow: inset 0 -2px 0 var(--accent); +} diff --git a/gently/ui/web/static/js/panels/light.js b/gently/ui/web/static/js/panels/light.js index 77a01aee..0fd8e9d5 100644 --- a/gently/ui/web/static/js/panels/light.js +++ b/gently/ui/web/static/js/panels/light.js @@ -36,6 +36,19 @@ * Any of the three can be wrong on its own, so the panel shows all three and * computes "emitting" from them rather than believing a flag. * + * MODE IS THE ROOT + * + * Above those three sits one question: LED or laser. They are not settings that + * happen to be adjacent — they are the two ways this instrument illuminates a + * sample, and the workflow alternates between them (LED to find embryos, laser + * to calibrate and acquire). So the panel opens with a mode, and each mode's + * own controls are disclosed beneath it. + * + * Nothing in the hardware enforces the choice: they are two independent + * Micro-Manager config groups and both can be open at once. `mode()` therefore + * reports `both` rather than the panel making it unrepresentable — see #106, + * which is that exact state going unnoticed. + * * Everything rendered here is read back from hardware. A value that was sent is * not a value that is true; a value not yet read is an em dash, never a * plausible default. @@ -58,6 +71,12 @@ const LightPanel = (() => { const POLL_MS = 10000; let timer = null; + // Which branch is disclosed. UI scope, not device state: the operator can + // open the laser branch on a dark rig in order to configure it. The mode + // READOUT is always derived from hardware — this only decides what is on + // screen, and the derived mode wins whenever it is unambiguous. + let branch = null; + const state = () => SharedState.get('light') || {}; /* ── reading ─────────────────────────────────────────────────────────── */ @@ -76,6 +95,13 @@ const LightPanel = (() => { await Promise.all([ get('/api/devices/beam', 'beam', d => (d && d.beam) || null), get('/api/devices/led/status', 'led', d => (d && d.current_state) || null), + // The config is read, not remembered. It used to be whatever this + // panel last wrote, which made the whole laser branch an echo. + // `read()` yields the string "unknown" when the group cannot be + // queried, and that must stay an em dash rather than become a + // preset name. + get('/api/devices/laser/configs', 'config', + d => (d && d.current && d.current !== 'unknown') ? d.current : null), ]); // Power is per wavelength, and only the routed lines are interesting. @@ -120,6 +146,30 @@ const LightPanel = (() => { return powers.some(p => p > 0); } + /** + * Which illumination mode the rig is actually in. + * + * LED and Laser are two independent Micro-Manager config groups, so + * "either LED or laser" is a POLICY, not a hardware interlock — nothing + * stops both being open, and #106 is precisely that: `calibrateSelected` + * never closed the LED, so every vision frame was LED brightfield with a + * 50 ms laser gate on top, and the detector was hunting nuclei in a + * DIC-like image. + * + * So `both` is a state this returns, not a state the panel makes + * unreachable. A mode selector that could not express the fault would hide + * the only bug it was built for. + */ + function mode(s) { + const ledOn = s.led == null ? null : s.led === 'Open'; + const routed = s.config == null ? null : routedLines(s).length > 0; + if (ledOn === null || routed === null) return null; + if (ledOn && routed) return 'both'; + if (ledOn) return 'led'; + if (routed) return 'laser'; + return 'off'; + } + /* ── writing ─────────────────────────────────────────────────────────── */ async function send(url, body) { @@ -147,6 +197,28 @@ const LightPanel = (() => { await readAll(); } + /** + * Switch modes. Closing the OTHER source is the point — that is what makes + * this a mode selector rather than two switches side by side. + * + * Entering laser mode deliberately does NOT route a line. Picking a + * wavelength is an emission decision and stays an explicit act; all this + * does is close the LED and open the branch. `ALL OFF` gates outputs 5-8 at + * the PLogic, which is the documented brightfield-safe state (spec §2.7), + * so it is what "off" and "led" both assert. + * + * BeamEnabled is left alone throughout. Setting it No here would recreate + * the #106 state that nothing sets back. + */ + async function enter(to) { + const s = state(); + const routed = routedLines(s).length > 0; + if (to === 'led' || to === 'off') { + if (routed) await send('/api/devices/laser/config', { config: 'ALL OFF' }); + } + await send('/api/devices/led/set', { state: to === 'led' ? 'Open' : 'Closed' }); + } + /* ── rendering ───────────────────────────────────────────────────────── */ const dash = v => (v == null ? '—' : v); @@ -193,10 +265,36 @@ const LightPanel = (() => { return s.config ? wavelengthsOf(s.config) : []; } + /** The three modes, plus the fault, as a segmented control. */ + function modeRow(m, show) { + const label = { led: 'LED', laser: 'Laser', off: 'Off' }; + const btns = ['led', 'laser', 'off'].map(k => { + const on = m === k || (m === 'both' && k !== 'off'); + const open = show === k; + return ``; + }).join(''); + // No text readout: the buttons ARE the readout, filled when the device + // says that source is open. A word beside them had nowhere to go in a + // 246 px panel and got clipped, and the two states words would have + // added — both open, and nothing read — each say so on their own line. + return ` +
+ Mode + ${btns} +
+ ${m == null ? '

Nothing read from the light path yet.

' : ''}`; + } + function markup(s, em) { const armed = s.beam ? Object.values(s.beam).some(v => v === true) : null; const age = s.readAt ? `${Math.round((Date.now() - s.readAt) / 1000)}s ago` : 'never'; const lines = routedLines(s); + const m = mode(s); + // The fault outranks the cursor: if both sources are open, the laser + // branch is shown whatever the operator last clicked, because that is + // where the contradiction can be resolved. + const show = m === 'both' ? 'laser' : (branch || m); return `
@@ -205,31 +303,62 @@ const LightPanel = (() => { read ${age}
+ ${modeRow(m, show)} + ${m === 'both' ? bothWarn(s) : ''} + ${idleBeamNote(s, armed, lines)} + + ${show === 'led' ? ledDetail(s) : ''} + ${show === 'laser' ? laserBranch(s, armed, lines) : ''} + + ${em === true + ? `
EMITTING · ${s.config || 'lines unknown'}
` + : em === null + ? '
Emission state unknown
' + : ''} + `; + } + + /** + * LED mode has one fact worth stating and no settings: the ASI Tiger LED is + * a shutter, Open or Closed, with no intensity control on this rig. + */ + function ledDetail(s) { + return ` +
LED - ${dash(s.led)} + shutter — no intensity control
+

Brightfield. Good for finding embryos; nuclei are + not visible, so calibration and acquisition need the laser.

+
`; + } + /** The config select, then the laser's own settings once a line is routed. */ + function laserBranch(s, armed, lines) { + return ` +
- Laser + Config
- ${idleBeamNote(s, armed, lines)} - ${lines.length ? laserDetail(s, armed, lines) : ''} - - ${em === true - ? `
EMITTING · ${s.config || 'lines unknown'}
` - : em === null - ? '
Emission state unknown
' - : ''}
`; } + /** + * Both sources open. Safe, and the reason vision-guided calibration was + * looking for nuclei in a DIC-like image for weeks (#106). + */ + function bothWarn(s) { + return `

The LED is open and the laser is routing + ${routedLines(s).join(', ')} nm — fluorescence sits on top of + brightfield. Pick a mode.

`; + } + /** * The laser's own settings, revealed once a line is routed. * @@ -277,8 +406,13 @@ const LightPanel = (() => { /** * An armed beam with nothing routed is safe but surprising, and it is the - * state the rig is left in. Say it on the Laser row so hiding the detail - * never hides the fact. + * state the rig is left in. + * + * At the PANEL ROOT, not inside the laser branch — `mode()` calls this + * state `off`, so the laser branch is closed and a note living inside it + * would be invisible in the one state it is about. Hiding the detail must + * never hide the fact, or the disclosure would have made the panel less + * honest than the flat version it replaced. */ function idleBeamNote(s, armed, lines) { if (lines.length || armed !== true) return ''; @@ -296,18 +430,17 @@ const LightPanel = (() => { } function wire(el) { - const led = el.querySelector('[data-led]'); - if (led) led.onclick = () => act(() => - send('/api/devices/led/set', { state: led.dataset.led })); - const beam = el.querySelector('[data-beam]'); if (beam) beam.onclick = () => act(() => send('/api/devices/beam', { enabled: beam.dataset.beam === 'on' })); const cfg = el.querySelector('[data-config]'); if (cfg) cfg.onchange = () => act(() => - send('/api/devices/laser/config', { config: cfg.value }) - .then(() => SharedState.set('light', { ...state(), config: cfg.value }))); + send('/api/devices/laser/config', { config: cfg.value })); + + el.querySelectorAll('[data-mode]').forEach(b => { + b.onclick = () => { branch = b.dataset.mode; act(() => enter(b.dataset.mode)); }; + }); el.querySelectorAll('[data-power]').forEach(r => { // On release, not on drag: every input event would be a hardware write. @@ -358,7 +491,7 @@ const LightPanel = (() => { if (!hosts.size && timer) { clearInterval(timer); timer = null; } } - return { mount, unmount, refresh: readAll, emitting, wavelengthsOf, _state: state }; + return { mount, unmount, refresh: readAll, emitting, mode, wavelengthsOf, _state: state }; })(); if (typeof module !== 'undefined' && module.exports) module.exports = LightPanel; diff --git a/screenshots/atrium-alarm-dimmed.png b/screenshots/atrium-alarm-dimmed.png new file mode 100644 index 0000000000000000000000000000000000000000..3c11ccbc53c931feed913c0ff1b91f2d5964dee7 GIT binary patch literal 137946 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%0A>k>|B!4s*74sw=~~S$L+Pf0F)*$cNMiy26out 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�@=pTnMj|J?0~mFx$5 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