Jinwoo Hong
cb848647e5
fix(browser-preview): require explicit preview capabilities (STA-5758) ( #16921 )
...
* fix(browser-preview): require explicit preview capabilities (STA-5758)
Scope document reads to approved directories, confirm external links before opening them, revoke grants with tab lifecycle, and keep document-preview session state rollback-safe across mixed client/runtime versions.
* Harden document preview lifecycle and permissions
* Document preview DNS prefetch residual
* Make preview E2E guest focus explicit
* fix(browser-preview): entry-file-only authority for root-level docs, contained chip layout, re-issued gate paths (STA-5758)
A grant whose document directory is its own request base — a doc at the
workspace root, or outside any workspace — now reads nothing but the entry
file until the reader approves a directory, at both the lexical and the
canonical containment pass. The DNS-prefetch residual can only beacon what
the page can read, and a root-level document could previously read the
whole worktree silently.
The identity chip's host badge overflowed the chip's layout box under
squeeze (Linux CI): every row member can now shrink and truncate, verified
by a width sweep in isolated Chromium down to ~120px chips.
The Allow banner says what it grants: 'Allow folder', reading files in the
named directory, for the life of the preview.
The reliability-gate manifest command, testFiles entry, assertion refs and
dated evidence naming the deleted doc-preview-external-link-bridge.test.ts
are re-issued at doc-preview-external-link-confirmation.test.ts with a
fresh 189/189 run; the focus-gate assertion text follows the shipped gate.
* fix(browser-preview): hide the chip identity row below 24rem instead of clipping it, ellipsize the host badge, catalog the new i18n keys (STA-5758)
CI's preview pane leaves the chip ~40px: no truncation shows anything
there, so the Workspace-file label and host badge now hide whole below a
24rem container threshold sized so that visible implies contained. The
badge text gains an inner text box — text directly inside the flex pill
clipped both ends with no ellipsis. The e2e geometry oracle asserts
containment when the row shows and the threshold when it does not.
verify:localization-catalog: the hardening's new preview keys (and the
renamed allowDirectory) join en.json via sync:localization-catalog.
* feat(browser-preview): batch blocked folders into one access decision (STA-5758)
Sequential per-folder banners trained the allow reflex without adding
judgment — a reader cannot weigh assets/ against data/. The banner now
accumulates every folder a load surfaces, names them (three, then a
count, full list in the title), and grants exactly that set with one
Allow-N-folders click and one reload. Dismiss fences the whole named
set. The map lives behind a ref with a version tick so a dismissal
fences an offer landing in the same event batch.
2026-08-28 00:42:07 -04:00
..
2026-08-27 13:05:12 -07:00
2026-08-27 13:05:12 -07:00
2026-08-27 15:33:26 -07:00
2026-08-15 18:25:37 -07:00
2026-08-26 23:17:34 -07:00
2026-08-11 12:13:16 -07:00
2026-08-27 16:38:26 -07:00
2026-08-13 22:48:24 -07:00
2026-08-22 22:30:11 -07:00
2026-08-28 00:42:07 -04:00
2026-08-27 12:32:29 -07:00
2026-08-25 03:58:48 -07:00
2026-08-27 20:13:14 -07:00
2026-08-27 16:10:51 -07:00
2026-08-27 13:05:12 -07:00
2026-08-26 22:42:37 -07:00
2026-08-24 22:30:04 -07:00
2026-08-15 18:33:33 -07:00
2026-08-27 10:48:53 -07:00
2026-08-22 21:34:39 -07:00
2026-08-26 23:17:34 -07:00
2026-08-26 22:31:39 -07:00
2026-08-27 10:48:53 -07:00
2026-08-27 17:39:04 -07:00
2026-08-26 23:17:34 -07:00
2026-08-26 15:44:11 -07:00
2026-08-27 10:48:53 -07:00
2026-08-21 21:05:24 -07:00
2026-08-27 10:48:53 -07:00
2026-08-20 09:57:55 -07:00
2026-08-26 15:44:11 -07:00
2026-08-13 22:48:24 -07:00
2026-08-25 18:23:57 -07:00
2026-08-25 21:28:21 -07:00
2026-08-27 10:48:53 -07:00
2026-07-30 19:33:05 -07:00
2026-08-15 18:25:37 -07:00
2026-08-23 15:42:37 -07:00
2026-07-29 17:44:41 -07:00
2026-08-28 00:42:07 -04:00
2026-08-24 19:51:57 -07:00
2026-08-27 16:10:51 -07:00
2026-08-26 23:17:34 -07:00
2026-07-23 18:35:31 -07:00
2026-08-27 17:04:48 -07:00
2026-07-27 16:36:39 -07:00
2026-08-27 16:10:51 -07:00
2026-08-13 22:48:24 -07:00
2026-08-23 15:24:25 -07:00
2026-08-11 18:19:43 -07:00
2026-08-26 17:00:21 -07:00
2026-08-22 21:34:39 -07:00
2026-08-27 00:18:51 -07:00
2026-08-24 23:15:01 -07:00
2026-08-18 16:57:35 -07:00
2026-08-28 00:42:07 -04:00
2026-08-27 00:18:51 -07:00
2026-08-28 00:42:07 -04:00
2026-08-22 21:12:23 -07:00
2026-08-22 21:34:39 -07:00
2026-08-27 16:29:05 -07:00
2026-08-22 21:34:39 -07:00
2026-08-27 16:10:51 -07:00
2026-08-27 19:49:00 -07:00
2026-08-27 13:05:12 -07:00
2026-08-27 16:10:51 -07:00
2026-08-27 20:10:17 -07:00
2026-08-27 00:18:51 -07:00
2026-08-27 16:09:43 -07:00
2026-08-13 22:48:24 -07:00
2026-08-27 16:49:35 -07:00
2026-08-26 23:37:16 -07:00
2026-08-27 19:45:49 -07:00
2026-08-15 00:54:20 -07:00
2026-08-26 15:09:22 -07:00
2026-08-18 00:35:50 -07:00
2026-08-22 21:12:23 -07:00
2026-08-26 16:44:55 -07:00
2026-07-24 19:54:25 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-28 00:27:01 -04:00
2026-08-27 10:52:14 -07:00
2026-08-26 22:42:37 -07:00
2026-08-01 19:22:39 -07:00
2026-07-23 18:35:31 -07:00
2026-08-13 22:48:24 -07:00
2026-08-26 22:42:37 -07:00
2026-08-26 22:42:37 -07:00
2026-08-09 22:52:11 -07:00
2026-08-09 22:52:11 -07:00
2026-08-26 16:44:55 -07:00
2026-08-26 16:44:55 -07:00
2026-08-24 19:45:47 -07:00
2026-08-24 19:45:47 -07:00
2026-07-24 19:54:25 -07:00
2026-07-24 19:54:25 -07:00
2026-08-16 12:48:53 -07:00
2026-07-29 21:43:45 -07:00
2026-07-29 21:43:45 -07:00
2026-07-26 00:13:48 -07:00
2026-07-26 00:13:48 -07:00
2026-08-25 15:36:51 -07:00
2026-08-01 13:38:45 -07:00
2026-08-15 18:25:37 -07:00
2026-08-14 19:04:54 -04:00
2026-08-14 19:04:55 -04:00
2026-08-13 22:48:24 -07:00
2026-08-14 19:04:55 -04:00
2026-08-14 19:04:55 -04:00
2026-08-13 16:23:22 -07:00
2026-08-14 19:04:55 -04:00
2026-08-14 19:04:54 -04:00
2026-08-14 19:04:55 -04:00
2026-08-14 19:04:55 -04:00
2026-08-13 16:23:21 -07:00
2026-08-13 16:23:21 -07:00
2026-08-25 02:32:21 -07:00
2026-08-01 13:38:45 -07:00
2026-08-01 13:38:45 -07:00
2026-08-16 23:51:53 -07:00
2026-08-17 20:43:29 -07:00
2026-08-13 22:48:24 -07:00
2026-08-02 17:40:58 -07:00
2026-08-02 17:40:58 -07:00
2026-08-25 15:36:51 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 00:54:20 -07:00
2026-08-22 21:24:18 -07:00
2026-08-22 21:24:18 -07:00
2026-07-29 18:21:26 -07:00
2026-08-28 00:27:01 -04:00
2026-08-22 16:38:00 -07:00
2026-08-15 18:25:37 -07:00
2026-08-01 13:38:45 -07:00
2026-08-12 14:31:42 -07:00
2026-08-12 14:31:42 -07:00
2026-08-02 20:46:49 -07:00
2026-08-13 22:48:24 -07:00
2026-08-02 20:46:49 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-02 20:46:49 -07:00
2026-08-13 22:48:24 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-08-13 22:48:24 -07:00
2026-08-19 17:12:17 -07:00
2026-08-21 21:05:24 -07:00
2026-08-21 21:05:24 -07:00
2026-08-13 22:48:24 -07:00
2026-07-31 00:51:39 -07:00
2026-07-31 00:51:39 -07:00
2026-08-27 13:44:03 -07:00
2026-08-27 13:44:03 -07:00
2026-08-27 13:44:03 -07:00
2026-07-31 00:51:39 -07:00
2026-07-31 00:51:39 -07:00
2026-07-28 15:34:52 -07:00
2026-07-28 15:34:52 -07:00
2026-08-22 21:47:46 -07:00
2026-08-27 20:10:17 -07:00
2026-08-15 00:54:20 -07:00
2026-08-28 00:42:07 -04:00
2026-08-17 15:25:25 -07:00
2026-08-22 21:47:46 -07:00
2026-08-13 22:48:24 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-21 17:11:17 -07:00
2026-08-17 15:57:07 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-17 15:25:25 -07:00
2026-08-24 20:45:53 -07:00
2026-08-24 20:45:53 -07:00
2026-08-17 23:28:38 -07:00
2026-08-15 00:54:20 -07:00
2026-08-22 22:30:11 -07:00
2026-08-22 22:30:11 -07:00
2026-08-22 22:30:11 -07:00
2026-08-15 00:54:20 -07:00
2026-08-27 15:08:40 -07:00
2026-07-27 01:14:33 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-16 13:45:54 -07:00
2026-08-22 22:30:11 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-26 09:50:12 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-24 20:45:53 -07:00
2026-08-22 22:30:11 -07:00
2026-08-15 00:54:20 -07:00
2026-08-26 09:50:12 -07:00
2026-08-26 09:50:12 -07:00
2026-08-24 20:45:53 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-17 15:25:25 -07:00
2026-08-22 21:47:46 -07:00
2026-08-15 21:41:01 -07:00
2026-08-15 21:41:01 -07:00
2026-07-31 11:58:46 -07:00
2026-08-13 17:02:28 -07:00
2026-08-13 17:02:28 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-22 22:30:11 -07:00
2026-08-22 16:38:00 -07:00
2026-08-14 19:04:55 -04:00
2026-08-27 15:08:40 -07:00
2026-08-21 23:58:48 -07:00
2026-08-21 22:31:36 -07:00
2026-08-21 22:31:36 -07:00
2026-08-21 21:05:24 -07:00
2026-08-21 21:05:24 -07:00
2026-08-26 12:48:52 -07:00
2026-08-26 16:49:31 -07:00
2026-07-23 18:03:43 -07:00
2026-08-26 15:09:22 -07:00
2026-08-01 19:22:39 -07:00
2026-08-04 01:37:25 -07:00
2026-08-22 21:34:39 -07:00
2026-08-22 21:34:39 -07:00
2026-08-16 23:51:53 -07:00
2026-08-16 23:51:53 -07:00
2026-08-17 20:43:06 -07:00
2026-08-17 20:43:06 -07:00
2026-08-17 20:43:06 -07:00
2026-08-17 20:43:06 -07:00
2026-08-17 15:25:25 -07:00
2026-08-17 15:25:25 -07:00
2026-08-16 22:05:46 -07:00
2026-08-16 22:05:46 -07:00
2026-08-16 22:05:46 -07:00
2026-08-16 22:05:46 -07:00
2026-08-13 22:48:24 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 18:25:37 -07:00
2026-08-12 14:31:42 -07:00
2026-08-12 14:31:42 -07:00
2026-08-12 20:55:29 -07:00
2026-08-19 22:37:42 -07:00
2026-08-18 03:12:47 -07:00
2026-08-12 14:31:42 -07:00
2026-08-12 14:31:42 -07:00
2026-08-18 03:12:47 -07:00
2026-08-12 20:55:29 -07:00
2026-08-12 20:55:29 -07:00
2026-08-19 22:37:42 -07:00
2026-08-18 15:59:17 -07:00
2026-08-18 15:59:17 -07:00
2026-08-18 03:12:47 -07:00
2026-08-19 22:37:42 -07:00
2026-08-13 23:47:20 -07:00
2026-08-27 19:45:49 -07:00
2026-08-13 22:48:24 -07:00
2026-08-21 21:05:24 -07:00
2026-08-21 21:05:24 -07:00
2026-08-05 01:13:13 -07:00
2026-08-05 01:13:13 -07:00
2026-08-05 01:13:13 -07:00
2026-08-05 01:13:13 -07:00
2026-08-22 21:12:23 -07:00
2026-08-16 23:51:53 -07:00
2026-08-16 23:51:53 -07:00
2026-08-16 23:51:53 -07:00
2026-08-16 23:51:53 -07:00
2026-08-22 21:12:23 -07:00
2026-08-22 21:12:23 -07:00
2026-08-22 21:12:23 -07:00
2026-08-18 03:12:47 -07:00
2026-08-13 22:48:24 -07:00
2026-08-22 21:12:23 -07:00
2026-07-23 18:35:31 -07:00
2026-08-13 22:48:24 -07:00
2026-08-02 20:46:49 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-07-23 18:35:31 -07:00
2026-07-28 19:58:58 -07:00
2026-07-28 19:58:58 -07:00
2026-07-28 19:58:58 -07:00
2026-07-28 19:58:58 -07:00
2026-08-19 17:34:27 -07:00
2026-08-19 17:34:27 -07:00
2026-08-15 00:54:20 -07:00
2026-08-19 17:34:27 -07:00
2026-07-28 19:58:58 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-13 22:48:24 -07:00
2026-08-04 02:02:53 -07:00
2026-08-23 13:55:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-15 00:54:20 -07:00
2026-08-24 19:45:47 -07:00
2026-08-27 00:26:55 -07:00
2026-08-24 19:45:47 -07:00
2026-07-29 18:21:26 -07:00
2026-08-15 00:38:13 -07:00
2026-08-15 00:38:13 -07:00
2026-08-24 18:12:42 -07:00
2026-08-24 18:12:42 -07:00
2026-08-10 19:55:29 -07:00
2026-07-24 00:27:40 -07:00
2026-07-24 00:27:40 -07:00
2026-08-21 22:31:36 -07:00
2026-07-25 22:28:07 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-24 22:44:08 -07:00
2026-08-24 22:44:08 -07:00
2026-08-24 22:44:08 -07:00
2026-08-27 15:08:40 -07:00
2026-08-24 22:44:08 -07:00
2026-08-24 22:44:08 -07:00
2026-08-24 22:44:08 -07:00
2026-08-13 22:48:24 -07:00
2026-08-14 22:18:36 -07:00
2026-08-14 22:18:36 -07:00
2026-08-13 22:48:24 -07:00
2026-08-18 03:12:47 -07:00
2026-08-27 15:08:40 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-27 15:08:40 -07:00
2026-08-17 15:57:07 -07:00
2026-08-20 01:45:17 -07:00
2026-08-20 01:45:17 -07:00
2026-07-23 18:35:31 -07:00
2026-08-13 22:48:24 -07:00
2026-08-17 15:57:07 -07:00
2026-08-17 15:57:07 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-20 01:45:17 -07:00
2026-08-20 01:45:17 -07:00
2026-08-20 01:45:17 -07:00
2026-08-20 01:45:17 -07:00
2026-08-20 01:45:17 -07:00
2026-08-20 01:45:17 -07:00
2026-08-17 12:23:50 -07:00
2026-08-17 12:23:50 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-15 18:25:37 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-07 20:35:22 -07:00
2026-08-07 21:59:24 -07:00
2026-08-22 05:45:21 -07:00
2026-08-07 20:35:22 -07:00
2026-07-30 17:49:32 -07:00
2026-07-30 17:49:32 -07:00
2026-07-30 17:49:32 -07:00
2026-08-22 20:35:59 -07:00
2026-08-22 20:35:59 -07:00
2026-08-07 20:35:22 -07:00
2026-08-07 20:35:22 -07:00
2026-08-07 20:35:22 -07:00
2026-08-07 20:35:22 -07:00
2026-08-18 02:12:21 -07:00
2026-08-18 02:12:21 -07:00
2026-08-19 22:37:42 -07:00
2026-08-19 22:37:42 -07:00
2026-08-19 22:37:42 -07:00
2026-08-19 22:37:42 -07:00
2026-08-18 03:12:47 -07:00
2026-08-19 22:37:42 -07:00
2026-08-19 22:37:42 -07:00