From 983b53ef2f523c3cc32b54bf2d618c825fc59dac Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 20 Aug 2026 18:48:36 +0000 Subject: [PATCH 1/3] =?UTF-8?q?feat(=E6=8E=A7=E5=88=B6=E5=8F=B0):=20Consol?= =?UTF-8?q?e=20v2=20P3=20=E4=BA=A7=E7=89=A9=E6=A0=8F=E4=B8=8E=20P2=20fail-?= =?UTF-8?q?closed=20=E6=94=B6=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Overlay artifacts live under .dyro/families//artifacts.jsonl and a jailed artifacts/ path. Console GET list/metadata/image bytes stay read-only; video is a card. Pairing readers no longer hide CHANNEL_LOG_INCONSISTENT as unread 0. Version stays 0.7.7. Co-authored-by: Dandre Yang --- CHANGELOG.md | 10 + .../designs/console-v2-live-family-signals.md | 10 +- src/dyro/cli.py | 2 + src/dyro/console/_inspect_worker.py | 7 + src/dyro/console/assets.py | 8 +- src/dyro/console/assets/app.js | 255 +++++++++- src/dyro/console/assets/styles.css | 25 + src/dyro/console/families.py | 124 ++++- src/dyro/console/inspection.py | 24 +- src/dyro/console/overview.py | 57 +++ src/dyro/console/server.py | 59 ++- src/dyro/families.py | 467 +++++++++++++++++- tests/test_cli.py | 2 + tests/test_console_artifacts.py | 276 +++++++++++ tests/test_console_assets.py | 9 + tests/test_console_inspection.py | 39 ++ tests/test_console_server.py | 86 +++- tests/test_families.py | 226 ++++++++- 18 files changed, 1632 insertions(+), 54 deletions(-) create mode 100644 tests/test_console_artifacts.py diff --git a/CHANGELOG.md b/CHANGELOG.md index fb3797c..9588af4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,16 @@ (`parent` or sender), not `F(sender)`. Channel pairing and ack treat `msg_N` as per-family; HTTP ack is bound to the URL family, and CLI `line ack` fail-closes when the same id exists in more than one family. +- Console P3: overlay artifact rail on the existing workspace-detail + channel/event panes. Authority is + `.dyro/families//artifacts.jsonl` plus jailed + `artifacts/` bytes. Images are same-origin bearer `fetch` then + `blob:` URLs (`img-src 'self' blob:`). Video is a card with a + copyable `--dry-run` open command; no `