feat(pid): pid_line_draw — port-to-port orthogonal lines with class, number, markers

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FKFStjEFzpGyLq5bMpWxTd
This commit is contained in:
Umut CAN
2026-09-15 23:26:09 +03:00
co-authored by Claude Opus 5
parent 4b6abf7b92
commit e8f1a666f8
7 changed files with 523 additions and 11 deletions
+7 -7
View File
@@ -495,7 +495,7 @@ async def test_tool_groups_is_byte_identical_to_the_source_declared_grouping():
async def test_tool_group_sizes_are_unchanged():
"""Frozen snapshot of the surface (159 tools, 20 groups).
"""Frozen snapshot of the surface (160 tools, 20 groups).
Taken before @cad_tool landed at 131 tools; `batch` moved 2 -> 3 when
v1.5.0's `cad_batch` joined `entity_batch_create`/`entity_batch_modify`, and
@@ -509,10 +509,10 @@ async def test_tool_group_sizes_are_unchanged():
`entity_set_xdata` joined SECTION 5 (the getter is tagged `query`, the
setter `modify`, so the pair splits across two groups). `pid` appeared
(0 -> 2) when v1.6's SECTION 17 opened with `pid_symbol_list` /
`pid_symbol_insert`; the `pid` tag is ranked first in
`_GROUP_TAG_PRIORITY` so those tools file under `pid` rather than under
their secondary `query` / `create` tags. Every other number here has been
unchanged since the snapshot was taken.
`pid_symbol_insert`, then 2 -> 3 when `pid_line_draw` joined; the `pid`
tag is ranked first in `_GROUP_TAG_PRIORITY` so those tools file under
`pid` rather than under their secondary `query` / `create` tags. Every
other number here has been unchanged since the snapshot was taken.
"""
sizes = {label: len(names) for label, names in (await server._tool_groups()).items()}
assert sizes == {
@@ -528,7 +528,7 @@ async def test_tool_group_sizes_are_unchanged():
"entity_query": 9,
"layers": 14,
"layouts": 12,
"pid": 2,
"pid": 3,
"premium": 12,
"solids": 5,
"system": 7,
@@ -537,4 +537,4 @@ async def test_tool_group_sizes_are_unchanged():
"validation": 1,
"view": 4,
}
assert sum(sizes.values()) == 159
assert sum(sizes.values()) == 160