Guilhem Lemouel and Claude Opus 5
5d37527024
fix: address review — history, workspace restore, SVG styles
...
Two blockers and the findings around them.
- The wizard pushed history entries for navigations the user did not ask for.
`folder` initialises to the project slug while the plan holds none, so the
mirroring effect fired on mount and pushed a URL differing only by `&folder=`;
pressing Back returned to the entry without it, which re-fired and re-pushed.
Back could never leave step 3. `go` now takes `{ replace: true }`, used by that
effect and by the step guard — the two navigations the page decides on its own.
The comment claiming `go` replaced was written without checking that `goto`
forwards to SvelteKit, which defaults `replaceState` to false.
- Undoing a run left the app pointing at the workspace it had just deleted:
`#ensureWorkspace` switches in, `deleteCreatedWorkspace` deleted without
switching out. The dead id was persisted on the next navigation, `getUserExt`
then returned undefined, and the following reload logged the user out. The
executor now remembers where the app pointed before it started and puts it back.
- `FORBID_TAGS: ['style', 'image']` on the hub SVGs. The profile allows both; an
inline `<svg><style>` is document-scoped, so a hostile hub could restyle this
page — including moving the wizard's own Import and Delete controls — and
`<image href>` is a beacon. The doc comment asserted a guarantee the config did
not deliver.
- The existing-workspace id is validated like the new one and encoded where it is
interpolated into `/api/w/<ws>/...`; it arrives from the URL exactly as the new
one does and ends up in `workspaceStore`.
- `AppConnectInner`'s two RadioCards get a `role="radiogroup"` wrapper, since they
now carry `role="radio"` and a screen reader cannot place a radio without one.
- `FolderPicker` records a created folder against the membership it is reading, and
before reloading, so a non-admin can re-pick the folder they just made in another
workspace instead of finding it `(read-only)`.
- Step 3 shows trigger and data table migration counts once the export is fetched.
The page this replaced showed them, and the warning underneath talks about
triggers the user was never told about.
- First tests for the two pure modules: the workspace-id contract the wizard and
the create form must not drift on, and the plan/URL round trip the whole wizard
rests on.
- Doc fixes: the retry claim (the granularity is the task, not the item), the bench
header, a fractional `?step=`, an empty name in the destination card, and the
three copies of one rationale AGENTS.md asks to state once.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-19 15:08:57 +02:00
..
2026-08-10 20:48:19 +02:00
2026-08-06 17:37:03 +02:00
2026-08-06 17:18:29 +02:00
2026-03-05 18:11:40 +01:00
2026-07-16 11:17:20 +02:00
2026-08-19 13:13:47 +02:00
2026-08-13 11:12:52 +00:00
2026-08-03 03:32:08 +02:00
2026-08-05 13:46:36 +02:00
2026-04-13 17:10:37 +00:00
2026-08-01 22:58:00 +02:00
2026-08-12 08:41:30 +02:00
2026-08-06 18:32:19 +00:00
2026-08-06 17:18:29 +02:00
2026-08-12 09:33:22 +02:00
2026-08-05 00:34:26 +02:00
2026-08-13 11:03:42 +00:00
2026-08-02 13:29:07 +02:00
2026-08-04 18:37:28 +02:00
2026-08-05 14:21:14 +02:00
2026-07-21 07:34:44 +02:00
2026-04-29 15:53:34 +00:00
2026-05-22 14:27:49 +00:00
2026-08-11 12:30:40 +02:00
2026-08-06 17:22:13 +02:00
2026-05-04 15:01:06 +00:00
2026-08-05 12:25:25 +02:00
2026-04-03 17:39:32 +00:00
2026-08-05 12:25:25 +02:00
2026-08-12 09:33:22 +02:00
2026-06-15 10:23:16 +02:00
2026-07-21 15:10:29 +00:00
2026-07-30 23:40:03 +02:00
2026-08-13 11:12:52 +00:00
2026-08-10 21:32:18 +02:00
2026-08-05 19:07:12 +00:00
2026-03-05 18:11:40 +01:00
2026-07-24 13:37:21 +02:00
2026-05-25 15:25:11 +00:00
2026-08-13 11:12:52 +00:00
2026-07-22 11:49:08 +02:00
2026-04-03 17:39:32 +00:00
2026-03-05 18:11:40 +01:00
2026-08-11 13:01:24 +00:00
2026-08-19 13:13:47 +02:00
2026-08-04 18:27:48 +02:00
2026-07-28 01:38:16 +02:00
2026-07-04 17:16:07 +02:00
2026-07-04 17:16:07 +02:00
2026-07-04 17:16:07 +02:00
2026-08-05 00:34:26 +02:00
2026-03-24 19:18:36 +00:00
2026-08-19 15:08:57 +02:00
2026-03-05 18:11:40 +01:00
2025-12-08 16:42:35 +00:00
2026-06-17 17:22:42 +00:00
2025-10-30 06:47:26 +00:00
2026-03-31 15:13:23 +00:00
2026-08-05 12:25:25 +02:00
2025-12-23 15:26:23 +00:00
2025-10-28 17:52:04 +00:00
2026-08-04 23:57:35 +02:00
2026-05-11 22:30:15 +00:00
2026-05-11 22:30:15 +00:00
2026-05-11 22:30:15 +00:00
2026-06-17 16:32:01 +00:00
2026-07-11 16:00:53 +02:00
2026-05-17 14:41:10 +00:00
2025-12-04 22:09:25 +00:00
2026-03-07 19:51:38 +01:00
2026-03-05 18:11:40 +01:00
2026-02-05 13:48:32 +00:00
2026-07-07 14:27:00 +02:00
2026-08-17 18:36:55 +02:00
2026-02-02 10:09:40 +00:00
2026-07-27 14:54:23 +02:00
2026-03-05 18:11:40 +01:00
2026-07-17 19:48:08 +02:00
2026-04-09 17:21:36 +00:00
2025-12-19 20:33:03 +00:00
2026-08-10 19:30:24 +02:00
2026-07-30 23:46:59 +02:00
2026-07-30 23:46:59 +02:00
2026-08-10 19:30:24 +02:00
2026-02-23 17:53:09 +00:00
2026-02-12 09:50:01 +00:00
2026-08-04 17:07:56 +02:00
2025-10-28 11:36:05 +00:00
2026-03-05 18:11:40 +01:00
2026-07-02 07:37:53 +02:00
2026-08-05 12:25:25 +02:00
2026-06-17 16:32:01 +00:00
2026-03-05 18:11:40 +01:00
2026-03-07 19:51:38 +01:00
2026-04-07 21:03:06 +00:00
2026-08-10 19:30:24 +02:00
2026-07-23 13:47:28 +02:00
2026-07-04 19:10:52 +02:00
2026-03-05 18:11:40 +01:00
2026-03-05 18:11:40 +01:00
2026-07-07 08:25:16 +00:00
2026-08-04 19:25:41 +02:00
2026-08-04 19:25:41 +02:00
2026-07-09 01:53:43 +02:00
2026-08-04 19:25:41 +02:00
2026-08-04 19:25:41 +02:00
2026-02-28 09:11:00 +00:00
2026-08-02 13:29:07 +02:00
2026-07-07 08:25:16 +00:00
2026-06-17 17:23:14 +00:00
2026-08-04 19:25:41 +02:00
2026-08-04 19:25:41 +02:00
2026-07-07 08:25:16 +00:00
2026-02-11 19:29:44 +00:00
2026-04-10 14:35:13 +00:00
2026-03-05 18:11:40 +01:00
2026-08-03 03:32:08 +02:00
2026-04-16 15:56:41 +00:00
2025-12-01 11:18:37 +00:00
2026-07-08 14:35:57 +00:00
2026-07-28 01:38:16 +02:00
2026-07-28 01:38:16 +02:00
2026-07-30 14:20:27 +00:00
2026-08-01 20:37:21 +02:00
2026-04-10 16:40:23 +00:00
2026-03-05 18:11:40 +01:00
2026-08-01 20:37:21 +02:00
2026-08-06 18:32:19 +00:00
2026-06-15 10:23:16 +02:00
2026-06-16 00:46:53 +02:00
2026-07-07 14:27:00 +02:00
2026-07-07 14:27:00 +02:00
2026-08-01 11:58:05 +00:00
2026-06-02 22:10:16 +00:00
2026-07-28 09:03:11 +02:00
2026-06-16 14:12:08 +02:00
2026-07-21 14:01:44 +00:00
2026-06-08 11:52:41 +00:00
2026-07-21 14:01:44 +00:00
2026-02-23 17:53:09 +00:00
2026-03-05 18:11:40 +01:00
2026-08-03 18:51:46 +00:00
2026-06-22 09:21:14 +02:00
2025-11-21 13:01:33 +00:00
2026-03-04 10:46:34 +00:00
2026-03-05 18:11:40 +01:00
2026-07-09 01:53:43 +02:00
2026-08-05 12:25:25 +02:00
2026-08-06 09:49:20 +02:00
2026-08-04 12:11:07 +00:00
2026-07-09 01:53:43 +02:00
2026-07-28 18:34:41 +02:00
2026-02-12 18:20:22 +00:00
2026-06-15 10:23:16 +02:00
2026-07-24 09:58:27 +02:00
2026-03-05 18:11:40 +01:00
2026-07-24 18:41:09 +02:00
2026-06-08 18:24:23 +00:00
2026-06-01 23:29:19 +00:00
2026-03-05 18:11:40 +01:00
2026-02-24 06:37:55 +00:00
2026-03-05 06:19:51 +00:00
2026-05-06 10:25:50 +00:00
2026-03-24 16:47:33 +00:00
2026-07-08 14:35:57 +00:00
2026-08-10 12:29:31 +02:00
2026-07-07 14:27:00 +02:00
2026-06-01 10:22:50 +02:00
2026-07-28 01:38:16 +02:00
2026-07-28 01:38:16 +02:00
2026-03-10 10:13:26 +00:00
2026-03-05 18:11:40 +01:00
2026-02-03 17:20:35 +00:00
2026-02-03 17:20:35 +00:00
2026-08-06 17:22:13 +02:00
2026-03-05 18:11:40 +01:00
2026-08-13 11:03:55 +00:00
2026-03-31 18:26:56 +00:00
2026-08-05 12:25:25 +02:00
2026-08-06 17:22:13 +02:00
2026-05-01 18:03:40 +00:00
2026-04-28 20:00:03 +00:00
2026-08-06 17:22:13 +02:00
2026-08-05 12:25:25 +02:00
2026-06-24 13:37:33 +00:00
2025-12-08 16:42:35 +00:00
2026-03-26 18:52:15 +00:00
2025-12-04 22:09:25 +00:00
2026-08-05 12:25:25 +02:00
2026-07-22 13:00:01 +02:00
2026-08-19 15:08:57 +02:00
2026-03-05 18:11:40 +01:00
2026-05-01 20:55:24 +00:00
2026-08-10 19:30:24 +02:00
2026-07-26 11:51:59 +02:00
2026-05-22 21:01:15 +00:00
2026-07-10 13:51:16 +00:00
2026-08-04 01:41:06 +02:00
2026-07-01 14:42:02 +00:00
2026-06-01 23:29:19 +00:00
2026-03-20 16:28:38 +00:00
2026-08-01 11:58:05 +00:00
2026-07-09 01:53:43 +02:00
2026-03-18 12:50:50 +00:00
2025-12-04 22:09:25 +00:00
2026-08-05 12:25:25 +02:00
2026-07-30 23:40:03 +02:00
2026-03-05 18:11:40 +01:00
2026-08-19 13:13:47 +02:00
2026-08-19 15:08:57 +02:00
2026-08-19 13:13:47 +02:00
2026-01-21 19:38:28 +00:00
2026-06-11 07:49:02 +00:00
2026-05-12 14:33:21 +00:00
2026-08-06 12:45:09 +02:00
2026-04-30 14:02:54 +00:00
2026-03-05 18:11:40 +01:00
2026-03-17 01:19:46 +00:00
2026-07-27 14:54:23 +02:00
2026-07-30 23:27:12 +02:00
2026-08-13 11:03:42 +00:00
2026-08-13 11:03:42 +00:00
2026-08-04 17:07:56 +02:00
2026-07-30 23:27:12 +02:00
2026-02-12 09:50:01 +00:00
2026-03-05 18:11:40 +01:00
2026-01-08 06:24:23 +00:00
2026-07-01 11:41:36 +02:00
2026-08-06 17:22:13 +02:00
2026-01-20 13:38:02 +00:00
2026-07-26 09:36:27 +02:00
2026-08-13 11:12:52 +00:00
2025-12-26 23:21:42 +00:00
2026-05-11 22:30:15 +00:00
2026-05-11 22:30:15 +00:00
2025-12-04 22:09:25 +00:00
2026-05-12 14:33:21 +00:00
2026-07-28 01:38:16 +02:00
2026-07-02 11:58:31 +02:00
2026-03-05 18:11:40 +01:00
2026-08-19 15:08:57 +02:00
2026-03-05 18:11:40 +01:00
2026-08-12 09:33:22 +02:00
2025-12-04 22:09:25 +00:00
2026-03-05 18:11:40 +01:00
2026-03-05 18:11:40 +01:00
2026-07-08 12:01:05 +00:00
2026-07-08 12:01:05 +00:00
2026-07-16 11:17:20 +02:00
2026-07-16 15:49:20 +02:00
2026-03-05 18:11:40 +01:00
2026-01-13 15:20:06 +00:00
2025-11-04 19:13:09 +00:00
2026-07-28 01:38:16 +02:00
2026-03-05 18:11:40 +01:00
2026-08-06 02:17:34 +00:00
2026-07-28 01:38:16 +02:00
2026-06-03 17:27:24 +00:00
2026-07-21 15:10:29 +00:00
2026-05-20 13:26:34 +00:00
2026-05-11 22:30:15 +00:00
2026-08-06 17:40:01 +02:00
2026-04-09 17:21:36 +00:00
2026-02-11 06:27:21 +00:00
2026-03-07 19:51:38 +01:00
2026-03-07 19:51:38 +01:00
2026-05-11 22:30:15 +00:00
2026-07-09 01:53:43 +02:00
2026-07-03 18:05:50 +02:00
2025-12-04 22:09:25 +00:00
2026-07-21 15:10:29 +00:00
2026-04-09 17:31:36 +00:00
2026-04-09 17:31:36 +00:00
2026-04-09 17:31:36 +00:00
2026-05-11 22:30:15 +00:00
2026-08-05 14:21:14 +02:00
2026-06-18 08:44:46 +02:00
2026-06-18 08:44:46 +02:00
2026-07-07 14:27:00 +02:00
2026-07-30 23:46:59 +02:00
2026-07-15 21:18:15 +02:00
2026-08-12 14:45:12 +00:00
2026-03-31 09:33:26 +00:00
2026-07-21 15:10:29 +00:00
2026-07-09 01:53:43 +02:00
2026-08-13 11:12:52 +00:00
2026-08-13 11:12:52 +00:00
2026-03-05 18:11:40 +01:00
2026-03-05 18:11:40 +01:00
2026-05-11 22:30:15 +00:00
2026-03-05 18:11:40 +01:00
2026-04-03 13:03:22 +00:00
2026-07-07 14:27:00 +02:00
2026-08-17 18:36:55 +02:00
2026-08-05 12:25:25 +02:00
2026-04-08 15:54:44 +00:00
2026-05-26 04:51:53 +00:00
2026-03-05 18:11:40 +01:00
2026-06-18 18:09:02 +02:00
2026-03-05 18:11:40 +01:00
2026-04-01 05:25:22 +02:00
2026-03-05 18:11:40 +01:00
2026-03-05 18:11:40 +01:00
2026-08-05 00:34:26 +02:00
2026-08-13 11:12:52 +00:00
2026-08-13 11:12:52 +00:00
2026-07-30 23:40:03 +02:00
2026-08-10 21:32:18 +02:00
2026-07-10 15:23:09 +00:00
2026-07-10 15:23:09 +00:00
2026-02-23 17:53:09 +00:00
2026-01-20 18:30:52 +00:00
2026-02-23 17:53:09 +00:00
2026-07-08 14:35:33 +00:00
2026-03-05 18:11:40 +01:00
2025-12-08 16:42:35 +00:00
2026-08-13 11:12:52 +00:00
2026-08-04 01:41:06 +02:00
2026-08-04 01:41:06 +02:00
2026-07-24 18:41:09 +02:00
2026-07-09 01:53:43 +02:00
2026-03-03 12:37:37 +00:00
2026-07-09 01:53:43 +02:00
2026-03-05 18:11:40 +01:00
2026-02-03 17:20:35 +00:00
2026-07-09 01:53:43 +02:00
2025-11-29 01:23:47 +00:00
2026-03-05 18:11:40 +01:00
2026-07-09 01:53:43 +02:00
2026-08-05 12:25:25 +02:00
2026-02-03 17:20:35 +00:00
2026-07-14 15:52:20 +02:00
2026-08-05 12:25:25 +02:00
2026-08-05 14:21:14 +02:00
2026-08-12 09:33:22 +02:00
2025-11-24 21:41:05 +00:00
2026-08-01 14:59:55 +02:00
2026-08-01 14:59:55 +02:00
2026-07-17 19:48:08 +02:00
2026-03-31 15:13:23 +00:00
2026-07-23 23:21:24 +02:00
2026-07-23 23:21:24 +02:00
2026-07-23 23:21:24 +02:00
2026-08-10 21:32:18 +02:00
2026-08-04 09:38:12 +02:00
2026-03-05 18:11:40 +01:00
2026-08-04 17:07:56 +02:00
2026-07-09 01:53:43 +02:00
2026-07-02 11:58:31 +02:00
2026-05-19 16:37:08 +00:00
2026-07-22 13:00:01 +02:00
2026-08-13 11:12:52 +00:00
2026-03-05 18:11:40 +01:00
2026-07-21 07:34:44 +02:00
2026-07-21 07:34:44 +02:00
2026-08-04 19:25:41 +02:00
2026-02-28 07:01:23 +00:00
2026-02-04 18:48:51 +00:00
2026-03-31 09:33:26 +00:00
2026-03-05 18:11:40 +01:00
2026-03-05 18:11:40 +01:00
2026-06-11 07:49:02 +00:00
2026-03-05 18:11:40 +01:00
2026-03-24 19:18:36 +00:00
2026-06-23 14:31:41 +00:00
2026-07-23 00:09:24 +02:00
2026-03-05 18:11:40 +01:00
2026-05-06 10:25:50 +00:00
2025-12-04 22:09:25 +00:00
2025-12-04 22:09:25 +00:00
2026-03-10 18:25:09 +00:00
2026-08-05 13:49:35 +02:00
2026-07-21 20:02:34 +02:00
2026-08-10 19:51:29 +02:00
2026-06-24 13:37:33 +00:00
2026-05-20 14:58:26 +00:00
2026-05-25 16:13:28 +00:00
2026-08-05 12:25:25 +02:00
2025-10-29 21:03:12 +00:00
2026-02-28 08:52:10 +00:00
2026-02-28 08:52:10 +00:00
2026-07-21 15:10:29 +00:00
2026-08-05 14:21:14 +02:00
2026-03-05 18:11:40 +01:00
2026-03-05 18:11:40 +01:00
2026-07-17 19:48:08 +02:00
2026-07-10 15:23:09 +00:00
2026-06-17 17:22:42 +00:00
2026-07-01 14:42:02 +00:00
2026-07-28 18:34:41 +02:00
2026-08-13 11:12:52 +00:00
2026-08-12 13:13:41 +02:00
2026-03-05 18:11:40 +01:00
2026-08-10 21:32:18 +02:00
2026-08-05 13:49:35 +02:00
2026-02-09 00:23:42 +00:00
2026-03-05 18:11:40 +01:00
2026-08-01 11:58:05 +00:00
2026-06-10 08:28:53 +00:00
2026-08-02 13:29:07 +02:00
2026-07-07 14:27:00 +02:00
2026-07-08 14:35:57 +00:00
2026-03-24 21:22:35 +00:00
2026-03-16 15:37:28 +00:00
2025-11-28 16:00:11 +00:00
2026-06-08 18:24:23 +00:00
2026-08-03 18:14:41 +00:00
2026-08-03 19:13:12 +02:00
2026-05-26 04:51:53 +00:00
2026-07-09 01:54:58 +02:00
2026-07-22 12:39:35 +02:00
2026-06-29 20:33:50 +00:00
2026-07-16 14:56:57 +02:00
2026-07-16 14:56:57 +02:00
2026-07-09 14:40:46 +00:00
2026-07-16 14:56:57 +02:00
2026-07-16 14:56:57 +02:00
2025-12-23 18:19:30 +00:00
2026-05-07 13:35:54 +00:00
2026-05-11 22:30:15 +00:00