Mohamed Boudra
4bda2dfea9
Edit workspace files directly on web ( #2270 )
...
* feat(files): edit workspace files on web
Keep source buffers synchronized with host file changes and require an explicit overwrite or reload when revisions diverge.
* feat(panels): surface and protect modified tabs
Expose tooltip and modification state through the generic panel boundary so tabs can show stable metadata and guard every close route consistently.
* fix(tests): use portable fake timeout handle
* fix(files): harden editor conflict handling
Preserve modified panel state across tab eviction, use precise revisions for optimistic writes, coalesce concurrent file watchers, and localize the editor interface.
* fix(files): close editor concurrency gaps
Coalesce clean reloads, preserve subscriber identities and file permissions, suspend pending saves during close confirmation, and carry precise revisions through file reads.
* test(files): expect read revision metadata
2026-07-21 04:41:19 +08:00
..
2026-02-06 10:38:38 +07:00
2026-07-21 04:41:19 +08:00
2026-05-29 09:46:15 +08:00
2026-06-09 10:44:37 +08:00
2026-07-15 23:13:55 +02:00
2026-07-15 23:13:55 +02:00
2026-07-13 04:30:02 +08:00
2026-06-03 22:32:12 +07:00
2026-07-16 17:22:37 +02:00
2026-07-15 16:30:42 +02:00
2026-05-31 08:38:46 +07:00
2026-06-15 14:23:02 +08:00
2026-05-29 09:46:15 +08:00
2026-05-29 09:46:15 +08:00
2026-07-15 20:40:24 +02:00
2026-07-15 20:40:24 +02:00
2026-07-17 04:15:04 +08:00
2026-06-27 09:03:04 +08:00
2026-07-01 21:55:17 +02:00
2026-06-30 08:12:15 +02:00
2026-07-08 21:20:51 +00:00
2026-07-17 17:03:34 +02:00
2026-07-17 19:30:17 +02:00
2026-07-21 04:41:19 +08:00
2026-05-29 09:46:15 +08:00
2026-07-16 21:04:31 +08:00
2026-07-17 19:30:17 +02:00
2026-06-20 11:56:28 +07:00
2026-06-16 17:35:16 +07:00
2026-07-07 22:13:42 +02:00
2026-07-13 15:36:48 +02:00
2026-07-02 21:15:10 +08:00
2026-07-07 22:13:42 +02:00
2026-06-29 20:44:18 +02:00
2026-07-15 21:16:10 +02:00
2026-05-29 09:46:15 +08:00
2026-07-15 23:13:55 +02:00
2026-07-17 19:30:17 +02:00
2026-07-16 16:11:51 +02:00
2026-07-16 23:20:59 +02:00
2026-07-15 11:58:31 +02:00
2026-06-20 12:19:50 +08:00
2026-06-20 12:19:50 +08:00
2026-06-11 03:45:32 +00:00
2026-05-25 17:11:34 +08:00
2026-05-25 17:11:34 +08:00
2026-05-25 17:11:34 +08:00
2026-05-25 17:11:34 +08:00
2026-05-25 17:11:34 +08:00
2026-06-17 15:30:32 +08:00
2026-06-15 22:02:18 +07:00
2026-07-07 22:13:42 +02:00
2026-07-07 22:13:42 +02:00
2026-07-16 21:04:31 +08:00
2026-06-11 13:48:06 +07:00
2026-06-26 12:16:49 +08:00
2026-06-10 17:02:58 +07:00
2026-06-20 08:59:21 +00:00
2026-07-18 11:54:49 +02:00
2026-06-30 09:40:24 +02:00
2026-07-02 21:15:10 +08:00
2026-07-17 13:00:47 +02:00
2026-07-17 12:27:15 +02:00
2026-06-15 14:23:02 +08:00
2026-07-18 22:26:31 +02:00
2026-06-26 12:16:49 +08:00
2026-04-24 12:26:10 +08:00
2026-06-19 17:19:05 +08:00
2026-06-15 21:07:07 +07:00
2026-04-26 23:51:02 +07:00
2026-06-16 18:57:00 +07:00
2026-05-29 09:46:15 +08:00
2026-05-26 09:32:15 +07:00
2026-05-31 15:42:39 +08:00
2026-07-18 16:30:59 +02:00
2026-05-29 09:46:15 +08:00
2026-07-18 16:30:59 +02:00
2026-06-20 08:59:21 +00:00
2026-06-16 13:37:58 +07:00
2026-07-11 18:22:31 +02:00
2026-06-16 13:37:58 +07:00
2026-07-16 23:46:24 +02:00
2026-05-05 19:58:55 +07:00
2026-07-14 14:22:14 +02:00
2026-07-17 17:03:34 +02:00
2026-06-17 09:53:22 +07:00
2026-07-17 17:03:34 +02:00
2026-07-16 14:39:55 +02:00
2026-06-20 08:59:21 +00:00
2026-06-16 14:12:18 +07:00
2026-05-31 19:40:15 +07:00
2026-05-29 09:46:15 +08:00
2026-05-05 19:58:55 +07:00
2026-06-16 13:37:58 +07:00
2026-07-11 18:22:31 +02:00
2026-07-11 18:22:31 +02:00
2026-07-17 19:30:17 +02:00
2026-07-17 19:30:17 +02:00