Tommaso Bianchi and Claude Opus 5
33275f2c74
Design tab: sheet pickers targeted the wrong body; guard Delete Face's face list
...
The sheet-only pickers filtered correctly and then threw the filtering away. Their
rows are the SHEET bodies, but GetSelection() was passed straight through as an
index into m_doc.bodies. With a solid at 0 and a sheet at 1 — the normal order,
since you extrude a solid before making a surface — the single row is row 0 but
body 1, so Surface Offset and Thicken Surface targeted the SOLID. The kernel then
refused with "target is not a sheet", which reads as a kernel bug rather than a
picker bug, and the row's own label ("Body 2") disagreed with what was targeted.
Four sites per tool were wrong, including the re-edit path, which compared a body
index against the sheet-only row count and so restored the wrong row.
populate_sheet_body_choices() now carries the real body index in client data, and
two helpers make the row/body distinction hard to get wrong again:
sheet_choice_body() reads it back, select_sheet_choice() finds the row holding a
given body. No caller touches GetSelection()/SetSelection() on these pickers.
This is the third instance of the same index-space confusion in this file, after
the 0-based body labels in the interference report and the Rib sketch picker. The
kernel suite cannot catch any of them: the kernel receives whatever index the GUI
computed, and its own tests pass correct ones.
Delete Face was structurally right — its picker uses the all-bodies populate, so
its indices genuinely match, and accumulation appends with a running list. Two
gaps closed: clicking "Add picked face" with nothing picked was a silent no-op,
indistinguishable from a broken button, and the same face could be added twice,
putting a duplicate id into delete_faces that the defeaturing has no reason to
cope with. Re-adding is now a no-op with a message, not an error.
Both confirmed working on hardware. Kernel untouched: 139 cases / 1960 assertions.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-25 23:46:14 +02:00
..
2026-07-23 23:24:29 +08:00
2026-07-24 09:41:24 -03:00
2026-07-25 12:28:33 +02:00
2026-07-18 02:08:13 +08:00
2026-07-22 16:30:43 -03:00
2026-04-26 18:44:59 +08:00
2026-07-24 09:41:24 -03:00
2026-03-05 11:33:07 -03:00
2025-05-05 17:59:00 +08:00
2026-04-13 19:45:39 +08:00
2026-06-30 00:24:39 +02:00
2026-07-20 09:05:21 +08:00
2026-07-09 01:16:26 +08:00
2026-07-11 20:24:03 +03:00
2026-07-17 19:32:44 +08:00
2026-07-16 13:08:48 +08:00
2026-07-24 09:41:24 -03:00
2026-07-17 05:06:09 +08:00
2026-07-24 09:41:24 -03:00
2026-07-18 01:46:23 +08:00
2026-07-18 01:46:10 +08:00
2026-07-17 06:48:15 +08:00
2026-07-18 01:46:23 +08:00
2026-07-17 13:20:41 +08:00
2026-07-17 06:48:15 +08:00
2025-10-28 15:29:47 +08:00
2026-06-18 09:13:51 -03:00
2025-06-01 18:35:48 +08:00
2026-03-25 11:28:00 +08:00
2026-07-15 17:18:46 +08:00
2026-06-18 12:45:26 +08:00
2026-07-11 20:24:03 +03:00
2025-09-18 17:04:10 +08:00
2026-03-24 20:50:44 +08:00
2025-10-05 16:02:17 +08:00
2025-09-16 20:11:02 +08:00
2025-12-18 12:14:56 +00:00
2025-10-28 15:29:51 +08:00
2026-06-11 02:47:33 +08:00
2026-04-20 19:27:38 -03:00
2026-06-18 09:13:51 -03:00
2025-05-16 23:49:07 +08:00
2026-07-16 00:17:01 +08:00
2026-01-03 23:06:57 +08:00
2026-04-13 19:45:39 +08:00
2025-08-24 23:18:04 +08:00
2026-03-25 11:26:32 +08:00
2026-03-25 11:26:32 +08:00
2026-07-11 20:24:03 +03:00
2026-07-11 20:24:03 +03:00
2026-04-24 21:39:32 +08:00
2025-12-18 12:14:56 +00:00
2025-10-28 15:30:00 +08:00
2026-05-01 18:01:29 +08:00
2025-05-26 17:41:58 +08:00
2026-06-18 09:13:51 -03:00
2025-10-28 15:29:59 +08:00
2026-06-18 09:13:51 -03:00
2025-09-17 14:17:13 +08:00
2026-06-18 09:13:51 -03:00
2026-01-03 23:06:57 +08:00
2026-07-09 01:16:26 +08:00
2026-05-16 19:13:40 +08:00
2026-07-09 01:16:26 +08:00
2026-07-09 01:16:26 +08:00
2026-06-18 09:13:51 -03:00
2026-07-09 01:16:26 +08:00
2026-07-09 01:16:26 +08:00
2026-04-13 19:45:39 +08:00
2025-09-09 09:39:43 +08:00
2026-07-17 06:48:15 +08:00
2025-03-27 21:56:09 +08:00
2025-03-27 21:56:09 +08:00
2025-11-08 20:44:37 +08:00
2025-09-09 15:40:26 +08:00
2026-04-24 16:29:29 +08:00
2025-07-06 11:34:47 +08:00
2026-07-14 15:34:13 -03:00
2026-06-28 22:30:40 +08:00
2026-07-16 17:37:09 -03:00
2026-06-18 09:13:51 -03:00
2025-10-02 17:07:21 +08:00
2026-06-07 13:12:51 +08:00
2026-05-19 20:03:54 +00:00
2026-06-28 13:07:09 +08:00
2025-09-18 17:13:09 +08:00
2026-06-18 09:13:51 -03:00
2026-05-19 17:13:07 +08:00
2026-05-19 17:13:07 +08:00
2026-07-25 18:33:33 +02:00
2026-07-25 18:33:33 +02:00
2026-07-25 23:46:14 +02:00
2026-07-25 23:46:14 +02:00
2026-07-22 19:06:05 +02:00
2026-07-20 07:48:36 +02:00
2026-06-18 09:13:51 -03:00
2026-04-13 17:21:05 +08:00
2026-07-18 01:46:10 +08:00
2026-07-18 03:15:11 +08:00
2026-07-18 01:46:10 +08:00
2026-07-18 01:46:23 +08:00
2026-03-24 20:34:32 +08:00
2024-06-15 14:56:44 +08:00
2025-03-29 20:14:10 +08:00
2024-06-15 14:56:44 +08:00
2026-06-18 09:13:51 -03:00
2025-07-17 15:26:55 +08:00
2025-07-17 15:26:55 +08:00
2026-07-11 16:37:50 +08:00
2026-07-11 16:37:50 +08:00
2026-01-09 21:25:48 +08:00
2025-06-04 09:30:36 +08:00
2025-09-30 14:31:54 +08:00
2025-10-01 15:47:44 +08:00
2026-07-05 10:39:25 +08:00
2026-07-05 10:39:25 +08:00
2026-05-19 01:01:53 +08:00
2026-05-17 02:29:39 -05:00
2026-07-24 09:41:24 -03:00
2025-12-18 12:14:56 +00:00
2026-07-21 15:17:22 -03:00
2026-07-14 13:10:42 +08:00
2026-07-17 05:06:09 +08:00
2026-07-17 05:06:09 +08:00
2026-07-09 18:57:05 +08:00
2026-07-09 18:57:05 +08:00
2026-07-11 16:37:50 +08:00
2026-07-11 16:37:50 +08:00
2026-07-24 09:41:24 -03:00
2026-07-11 16:37:50 +08:00
2026-05-16 01:12:30 +08:00
2025-12-18 12:14:56 +00:00
2026-07-08 20:24:55 +08:00
2024-06-15 14:56:44 +08:00
2025-04-20 16:09:31 +08:00
2026-07-24 09:41:24 -03:00
2026-07-20 18:14:01 -03:00
2026-07-25 18:33:33 +02:00
2026-07-25 18:33:33 +02:00
2026-07-12 13:30:55 -03:00
2026-02-10 13:08:22 +08:00
2026-04-13 19:45:39 +08:00
2024-06-15 14:56:44 +08:00
2026-04-13 19:45:39 +08:00
2026-07-12 21:44:30 -03:00
2026-05-19 01:38:37 +08:00
2025-10-31 16:53:08 +08:00
2024-11-12 00:09:15 +08:00
2024-06-15 14:56:44 +08:00
2026-07-23 23:24:29 +08:00
2026-07-21 15:40:40 -03:00
2024-08-12 00:00:20 +08:00
2026-07-24 09:41:24 -03:00
2026-04-24 16:28:28 +08:00
2024-06-15 14:56:44 +08:00
2025-04-04 23:07:00 +08:00
2026-06-18 09:13:51 -03:00
2025-09-24 22:49:14 -04:00
2025-11-17 10:29:44 +08:00
2025-08-22 20:02:26 +08:00
2026-07-14 02:54:20 +08:00
2026-05-17 02:29:39 -05:00
2026-05-21 09:04:27 +08:00
2026-06-30 08:55:09 +08:00
2026-06-30 08:55:09 +08:00
2026-05-21 09:04:27 +08:00
2025-11-15 11:11:20 -05:00
2025-09-24 22:49:14 -04:00
2026-06-11 23:56:16 +08:00
2026-06-11 23:56:16 +08:00
2025-06-14 09:52:33 +08:00
2026-07-02 17:49:36 +08:00
2026-05-01 18:01:29 +08:00
2025-09-07 23:58:51 +08:00
2025-09-07 23:58:51 +08:00
2026-06-18 09:13:51 -03:00
2026-07-17 12:46:45 +08:00
2025-09-21 13:47:51 +08:00
2026-07-19 20:16:17 +08:00
2025-10-02 09:30:48 +08:00
2026-05-01 18:01:29 +08:00
2026-05-01 18:01:29 +08:00
2026-07-24 09:41:24 -03:00
2026-04-13 19:45:39 +08:00
2025-12-23 01:30:03 +08:00
2025-11-17 15:30:35 +00:00
2026-07-24 09:41:24 -03:00
2026-07-16 11:02:55 +08:00
2026-06-25 22:31:33 +08:00
2026-06-18 09:13:51 -03:00
2026-05-15 00:46:05 +08:00
2026-07-16 11:02:55 +08:00
2026-07-16 11:02:55 +08:00
2026-05-15 00:57:52 +08:00
2024-05-22 15:26:52 +08:00
2026-07-24 09:41:24 -03:00
2026-04-13 19:45:39 +08:00
2026-04-13 19:45:39 +08:00
2026-07-25 12:28:33 +02:00
2026-07-10 18:12:53 +02:00
2026-07-25 12:15:30 +02:00
2026-06-30 15:32:51 +02:00
2026-07-24 09:41:24 -03:00
2025-10-02 09:30:48 +08:00
2026-07-17 08:30:22 +08:00
2026-03-11 14:59:29 +08:00
2026-04-13 19:45:39 +08:00
2024-06-15 14:56:44 +08:00
2025-10-28 15:29:56 +08:00
2026-07-24 09:41:24 -03:00
2026-07-17 08:30:22 +08:00
2025-10-28 15:29:56 +08:00
2026-07-15 15:06:17 +08:00
2026-07-24 09:41:24 -03:00
2026-07-09 01:16:26 +08:00
2026-05-18 19:46:47 +08:00
2026-05-18 19:46:47 +08:00
2026-02-27 11:19:22 -03:00
2025-08-24 23:18:24 +08:00
2026-02-04 11:40:02 +00:00
2025-09-21 23:01:08 +08:00
2026-01-03 16:30:14 +08:00
2024-08-12 00:00:20 +08:00
2025-10-02 09:30:48 +08:00
2025-09-25 20:33:50 +08:00
2026-02-04 11:40:02 +00:00
2024-08-12 00:00:20 +08:00
2026-07-21 01:21:40 +03:00
2026-07-21 01:21:40 +03:00
2025-11-17 11:17:54 +08:00
2026-04-25 18:14:51 +08:00
2026-04-25 18:14:51 +08:00
2026-07-22 09:48:28 -03:00
2026-07-02 17:49:36 +08:00
2025-12-18 12:14:56 +00:00
2025-12-18 12:14:56 +00:00
2026-06-21 18:20:58 +08:00
2026-06-21 18:20:58 +08:00
2026-06-18 09:13:51 -03:00
2026-04-15 22:36:25 +08:00
2026-07-24 09:41:24 -03:00
2026-05-21 09:04:27 +08:00
2026-07-16 11:02:55 +08:00
2026-03-24 20:39:45 +08:00
2026-07-24 09:41:24 -03:00
2026-07-02 17:49:36 +08:00
2026-05-10 15:14:35 +08:00
2024-09-09 22:42:27 +08:00
2026-06-14 18:55:40 +08:00
2026-04-25 18:14:51 +08:00
2026-07-25 12:28:33 +02:00
2026-07-25 12:28:33 +02:00
2025-09-26 10:55:19 +08:00
2026-06-11 17:10:31 -03:00
2026-05-21 13:18:52 +03:00
2026-07-24 09:41:24 -03:00
2026-01-23 17:05:56 +08:00
2026-07-25 12:28:33 +02:00
2026-07-25 12:28:33 +02:00
2026-07-24 09:41:24 -03:00
2025-09-23 16:50:33 +08:00
2026-07-02 17:49:36 +08:00
2026-07-15 20:12:51 +08:00
2026-07-04 22:14:55 +08:00
2026-07-04 22:14:55 +08:00
2026-07-17 16:09:19 +08:00
2026-07-17 16:09:19 +08:00
2026-07-20 14:47:26 +08:00
2026-07-20 14:47:26 +08:00
2026-07-06 18:14:26 +08:00
2026-07-06 12:31:34 +08:00
2026-07-06 12:31:34 +08:00
2026-07-20 12:48:17 +08:00
2026-07-17 21:12:55 +08:00
2026-07-17 16:09:19 +08:00
2026-07-10 19:57:35 +08:00
2026-07-25 12:28:33 +02:00
2026-07-03 17:19:24 -03:00
2026-07-22 19:09:57 -03:00
2026-07-22 19:09:57 -03:00
2026-07-05 10:39:25 +08:00
2026-07-05 10:39:25 +08:00
2026-07-14 02:54:20 +08:00
2025-09-28 14:19:02 +08:00
2026-06-05 20:45:43 +08:00
2026-07-13 12:19:33 -03:00
2026-07-22 15:14:49 -03:00
2026-05-16 15:22:31 +08:00
2026-05-28 19:45:03 +08:00
2026-05-16 15:22:31 +08:00
2026-07-24 09:41:24 -03:00
2026-05-28 08:10:21 +00:00
2026-07-24 09:41:24 -03:00
2026-07-16 19:28:50 +08:00
2025-12-18 12:14:56 +00:00
2025-12-18 12:14:56 +00:00
2026-07-02 17:49:36 +08:00
2026-07-02 17:49:36 +08:00
2025-06-01 18:35:48 +08:00
2024-07-23 18:00:21 +08:00
2024-06-29 22:13:57 +08:00
2026-06-18 09:13:51 -03:00
2026-07-10 15:41:57 +08:00
2026-07-10 15:41:57 +08:00
2025-11-17 10:29:44 +08:00
2025-07-13 20:10:42 +08:00
2025-12-18 12:14:56 +00:00
2025-12-18 12:14:56 +00:00
2026-07-17 16:25:10 +08:00
2026-02-11 16:00:04 +08:00
2025-01-07 23:25:32 +08:00
2026-03-03 17:36:42 -03:00
2025-10-28 15:29:54 +08:00
2026-07-24 09:41:24 -03:00
2026-02-06 23:02:48 +08:00
2025-10-14 08:56:18 +08:00
2025-10-14 08:56:18 +08:00
2026-05-22 10:46:29 +08:00
2026-05-21 09:04:26 +08:00
2026-07-13 14:54:42 +08:00
2026-06-18 09:13:51 -03:00
2026-07-24 09:41:24 -03:00
2026-07-22 19:09:57 -03:00
2026-07-17 10:20:24 +08:00
2026-01-03 23:06:57 +08:00
2026-06-18 09:13:51 -03:00
2026-01-23 17:05:56 +08:00
2026-04-13 19:45:39 +08:00
2026-07-18 01:46:23 +08:00
2026-01-03 23:06:57 +08:00
2025-06-14 10:27:10 +08:00
2025-06-14 10:27:10 +08:00
2026-07-20 10:14:02 +02:00
2026-07-01 19:19:23 +02:00
2026-04-13 19:45:39 +08:00
2025-09-26 14:35:06 +08:00
2025-08-24 23:18:24 +08:00
2026-06-18 09:13:51 -03:00
2026-07-17 22:37:56 +08:00
2026-07-17 22:37:56 +08:00
2026-07-24 09:41:24 -03:00
2026-07-17 09:41:01 +08:00
2026-07-11 20:24:03 +03:00
2026-07-03 17:19:24 -03:00
2025-02-26 23:07:23 +08:00
2026-07-24 09:41:24 -03:00
2026-07-17 06:48:15 +08:00
2026-03-24 20:50:44 +08:00
2026-07-24 09:41:24 -03:00
2026-07-15 17:18:46 +08:00
2026-02-04 11:40:02 +00:00
2025-12-14 14:26:16 +01:00
2026-03-25 15:58:39 +08:00
2025-09-16 21:21:40 +08:00
2026-01-23 17:05:56 +08:00
2026-01-23 17:05:56 +08:00
2026-07-02 17:49:36 +08:00
2026-07-02 17:49:36 +08:00
2026-04-13 19:45:39 +08:00
2025-10-28 15:30:06 +08:00
2025-10-28 15:30:06 +08:00
2026-07-21 15:16:07 -03:00
2026-06-06 23:44:39 +08:00
2026-07-13 12:19:33 -03:00
2026-05-21 09:04:26 +08:00
2025-12-18 12:14:56 +00:00
2026-07-19 20:16:17 +08:00
2026-07-17 09:41:01 +08:00
2026-05-01 18:01:29 +08:00
2025-10-28 15:29:56 +08:00
2026-06-26 18:37:33 +08:00
2026-04-24 13:54:09 +08:00
2026-07-13 12:19:33 -03:00
2026-05-01 18:01:29 +08:00
2026-07-24 09:41:24 -03:00
2026-05-01 18:01:29 +08:00
2026-05-21 11:42:18 +08:00
2025-10-28 15:29:58 +08:00
2026-07-06 11:28:03 +08:00
2026-04-25 18:14:51 +08:00
2026-03-24 20:44:32 +08:00
2026-05-13 00:01:10 +08:00
2026-05-13 00:01:10 +08:00
2025-05-26 14:43:32 +08:00