Tommaso Bianchi and Claude Opus 5
f6f2edb906
CAD: the Plane card refuses a method it cannot build, instead of quietly building another one
...
Every method in CadDocument's plane dispatch falls back to offset_angle_plane()
when its references are missing. Picking Tangent and confirming with nothing
selected therefore produced an OFFSET plane, announced as "Plane added — pick it
as a sketch plane". The user asked for one construction and silently received a
different one, with nothing on screen to reveal the substitution.
Validate at the GUI boundary instead: Angle needs an edge, Midplane two faces
(and not the same face twice — that yields a plane coincident with the face,
which is well-defined and useless), Tangent a face, Two-edges two edges. Offset
and Coincident are unchanged: both are meaningful with no reference, since they
fall back to the base plane by design.
on_add_plane() now returns false when it refuses, and confirm_tool() skips
close_tool() in that case — a refusal that also threw away the picks the user
had already made would be worse than the bug.
The kernel keeps fallback_offset(): it must return something. It should just
never be reachable from a user gesture without a warning.
Verified on the Xvfb rig: Tangent with no pick refuses and creates no feature
(it created one before), the card stays open with the type preserved, Midplane
with no faces refuses with its own message, and Offset with no picks still
creates a plane as it always did.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-14 12:18:13 +02:00
..
2026-08-12 18:50:49 +08:00
2026-08-05 21:41:04 +08:00
2026-08-13 15:22:08 +08:00
2026-08-09 13:24:04 +08:00
2026-07-22 16:30:43 -03:00
2026-04-26 18:44:59 +08:00
2026-08-01 11:28:07 +08:00
2026-03-05 11:33:07 -03:00
2026-04-13 19:45:39 +08:00
2026-06-30 00:24:39 +02:00
2026-07-31 20:51:48 -03: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-08-11 14:51:25 +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
2026-06-18 09:13:51 -03: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
2026-03-24 20:50:44 +08:00
2025-12-18 12:14:56 +00: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
2026-07-28 14:32:55 +08:00
2026-01-03 23:06:57 +08:00
2026-04-13 19:45:39 +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-27 20:11:44 -03:00
2026-07-27 20:11:44 -03:00
2026-07-28 14:32:55 +08:00
2026-05-01 18:01:29 +08:00
2026-06-18 09:13:51 -03:00
2026-06-18 09:13:51 -03: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-28 14:32:55 +08:00
2026-07-09 01:16:26 +08:00
2026-04-13 19:45:39 +08:00
2026-07-17 06:48:15 +08:00
2026-07-28 14:32:55 +08:00
2026-08-07 13:31:04 -03:00
2026-08-07 13:31:04 -03:00
2026-07-16 17:37:09 -03:00
2026-08-12 18:50:49 +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
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-08-14 09:15:51 +02:00
2026-08-14 09:15:51 +02:00
2026-08-02 09:57:53 +02:00
2026-08-14 12:18:13 +02:00
2026-08-14 12:18:13 +02:00
2026-08-14 09:15:51 +02:00
2026-08-14 09:15:51 +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-08-12 18:50:49 +08:00
2026-08-12 18:50:49 +08:00
2026-03-24 20:34:32 +08:00
2026-07-28 14:32: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
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-28 14:32:55 +08:00
2025-12-18 12:14:56 +00:00
2026-08-04 18:12:10 +08:00
2026-08-04 18:12:10 +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-07-28 14:32:55 +08:00
2025-12-18 12:14:56 +00:00
2026-07-08 20:24:55 +08:00
2026-07-29 16:27:15 -03:00
2026-07-29 16:27:15 -03:00
2026-08-13 16:28:28 +08:00
2026-08-13 15:22:08 +08: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
2026-04-13 19:45:39 +08:00
2026-07-12 21:44:30 -03:00
2026-05-19 01:38:37 +08:00
2026-08-12 18:50:49 +08:00
2026-08-04 18:12:11 +08:00
2026-08-01 17:58:04 -03:00
2026-04-24 16:28:28 +08:00
2026-06-18 09:13:51 -03:00
2025-11-17 10:29:44 +08:00
2026-08-05 21:41:04 +08:00
2026-05-17 02:29:39 -05:00
2026-08-07 13:31:04 -03:00
2026-08-07 13:31:04 -03:00
2026-06-30 08:55:09 +08:00
2026-06-30 08:55:09 +08:00
2026-08-07 13:31:04 -03:00
2026-08-07 13:31:04 -03:00
2025-11-15 11:11:20 -05:00
2026-08-01 11:28:07 +08:00
2026-08-04 08:45:31 +08:00
2026-08-04 22:01:45 +08:00
2026-08-04 22:01:45 +08:00
2026-06-18 09:13:51 -03:00
2026-07-17 12:46:45 +08:00
2026-07-19 20:16:17 +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-08-11 16:25:09 -03:00
2026-06-25 22:31:33 +08:00
2026-08-05 21:41:04 +08: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
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-08-13 15:22:08 +08:00
2026-08-13 15:22:08 +08:00
2026-08-12 23:27:11 +02:00
2026-06-30 15:32:51 +02:00
2026-07-24 09:41:24 -03: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
2026-07-24 09:41:24 -03:00
2026-07-17 08:30:22 +08:00
2026-07-15 15:06:17 +08:00
2026-08-04 22:01:45 +08:00
2026-08-04 22:01:45 +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
2026-02-04 11:40:02 +00:00
2026-01-03 16:30:14 +08:00
2026-02-04 11:40:02 +00:00
2026-07-28 14:32:55 +08:00
2026-07-21 01:21:40 +03:00
2026-07-28 14:32:55 +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-08-04 18:12:10 +08:00
2026-08-02 10:54:16 +08:00
2026-05-10 15:14:35 +08:00
2026-06-14 18:55:40 +08:00
2026-04-25 18:14:51 +08:00
2026-08-13 15:22:08 +08:00
2026-08-13 15:22:08 +08:00
2026-07-28 14:32:55 +08:00
2026-05-21 13:18:52 +03:00
2026-08-04 18:12:11 +08:00
2026-08-04 18:12:10 +08:00
2026-08-14 00:15:46 +02:00
2026-07-25 12:28:33 +02:00
2026-07-24 09:41:24 -03: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-31 14:15:51 +08:00
2026-07-31 14:15:51 +08:00
2026-07-06 18:14:26 +08:00
2026-07-31 14:15:22 +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-08-13 15:22:08 +08:00
2026-07-29 16:27:15 -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-08-01 11:28:07 +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-28 14:32:55 +08: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
2026-07-28 14:32:55 +08: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-12-18 12:14:56 +00:00
2025-12-18 12:14:56 +00:00
2026-08-12 18:50:49 +08:00
2026-02-11 16:00:04 +08:00
2026-03-03 17:36:42 -03:00
2026-08-09 02:08:54 +03:00
2026-08-06 22:58:39 +08:00
2026-05-22 10:46:29 +08:00
2026-05-21 09:04:26 +08:00
2026-08-06 15:48:40 +08:00
2026-06-18 09:13:51 -03:00
2026-08-05 21:41:04 +08:00
2026-07-22 19:09:57 -03:00
2026-08-12 18:50:49 +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
2026-08-13 23:43:36 +02:00
2026-08-13 23:43:36 +02:00
2026-04-13 19:45:39 +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-28 14:32:55 +08:00
2026-07-03 17:19:24 -03: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-08-07 13:31:04 -03:00
2026-08-04 18:12:11 +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
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
2026-07-28 14:32:55 +08:00
2026-07-28 14:32:55 +08:00
2026-07-28 14:32:55 +08:00
2026-05-21 09:04:26 +08:00
2026-07-28 14:32:55 +08: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
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
2026-08-01 11:28:07 +08:00
2026-04-25 18:14:51 +08:00
2026-03-24 20:44:32 +08:00
2026-07-26 22:15:53 +08:00
2026-05-13 00:01:10 +08:00