You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: TASKS.md
+21-9Lines changed: 21 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -776,33 +776,41 @@ notes_next: 2
776
776
## TASK-TCAD-VAL-9 · CLI command entrypoints mostly untested — cmd_build (primary user path: parse->export->stats), cmd_watch, cmd_info, cmd_check, cmd_validate/cmd_validate_geometry have no direct tests
777
777
778
778
```yaml
779
-
status: backlog
779
+
status: done
780
780
priority: high
781
781
tags: [testing, cli]
782
782
created: '2026-07-19T20:39:51Z'
783
-
updated: '2026-07-19T20:39:51Z'
783
+
updated: '2026-07-19T22:11:36Z'
784
784
session: astral-sun-0719
785
+
links:
786
+
commits:
787
+
- 4b4d28b38f37184ec9bbe5611bc9493e1fc51bdc
788
+
notes_next: 2
785
789
```
786
790
787
791
<!-- notes: append-only log; each has a stable #id (see CLI §5) -->
788
792
### Notes
789
-
_(no notes yet)_
793
+
- [#1 2026-07-19T22:11:36Z session:astral-sun-0719] Added test_cli_build/info/check/validate/validate_geometry/watch.py (29 tests). cmd_watch tested via mocked FileWatcher since the real loop blocks on a filesystem observer; test_dag/test_watcher.py already covers FileWatcher/IncrementalBuilder directly.
790
794
791
795
792
796
## TASK-TCAD-VAL-10 · Confidence-ladder validation corpus covers only flush constraint — no oracle-backed Tier example for offset/coaxial/tangent; tangent is highest-risk since it bypasses CadQuery's solver with hand-rolled geometry
793
797
794
798
```yaml
795
-
status: backlog
799
+
status: done
796
800
priority: high
797
801
tags: [testing, constraints]
798
802
created: '2026-07-19T20:39:51Z'
799
-
updated: '2026-07-19T20:39:51Z'
803
+
updated: '2026-07-19T21:57:39Z'
800
804
session: astral-sun-0719
805
+
links:
806
+
commits:
807
+
- c1c28a26fc1aa1eb89740f78c4634c6539623afe
808
+
notes_next: 2
801
809
```
802
810
803
811
<!-- notes: append-only log; each has a stable #id (see CLI §5) -->
804
812
### Notes
805
-
_(no notes yet)_
813
+
- [#1 2026-07-19T21:57:39Z session:astral-sun-0719] Added T4_constraint_offset/coaxial/tangent.tiacad to examples/validation/, all with expect: oracle contracts, discovered by test_embedded_contracts.py's auto-discovery. Golden hashes regenerated. Also surfaced and filed TCAD-CON-10 (flush/offset arbitrary in-plane rotation for some size ratios).
806
814
807
815
808
816
## TASK-TCAD-VAL-11 · No integration test for constraints -> DAG incremental build -> export in the normal (non-watch) cmd_build pipeline — only watch mode is covered, and build/watch use separately-patched code paths (root cause of a prior watch-mode constraint bug)
@@ -828,17 +836,21 @@ notes_next: 2
828
836
## TASK-TCAD-VAL-12 · Tier-5 negative-input corpus has no malformed/contradictory constraint case, despite TCAD-CON-4's contradiction detector being unit-tested only in isolation
829
837
830
838
```yaml
831
-
status: backlog
839
+
status: done
832
840
priority: medium
833
841
tags: [testing, constraints]
834
842
created: '2026-07-19T20:39:51Z'
835
-
updated: '2026-07-19T20:39:51Z'
843
+
updated: '2026-07-19T22:05:21Z'
836
844
session: astral-sun-0719
845
+
links:
846
+
commits:
847
+
- 41b84acf55e1d1ccf3c3031d66a06993780a750b
848
+
notes_next: 2
837
849
```
838
850
839
851
<!-- notes: append-only log; each has a stable #id (see CLI §5) -->
840
852
### Notes
841
-
_(no notes yet)_
853
+
- [#1 2026-07-19T22:05:21Z session:astral-sun-0719] Added N7_contradictory_constraints.tiacad + TestContradictoryConstraints, folded into cross-cutting typed-error sweep. Also found and fixed a real bug while doing this: ConstraintBuilderError subclassed bare Exception instead of TiaCADError like every sibling builder error — fixed.
842
854
843
855
844
856
## TASK-TCAD-CON-10 · flush/offset constraint solve can converge to an arbitrary in-plane rotation for certain moving-part/reference-size combinations (e.g. 20x20x2 surface + 4x4x4 mount), inflating the AABB and misaligning non-square parts, even though the physical position/gap is still correct — CadQuery's Plane constraint kind leaves rotation-about-normal unconstrained and IPOPT doesn't reliably land on zero. Discovered building the TCAD-VAL-10 offset validation example (20/4 size ratio triggered it; 10/5 and 12/4 did not).
0 commit comments