39e6e2f9e4
docs(settings): track E shipped — CLAUDE.md sections 18-20, README, changelog with the live COM smoke record
Umut CANandClaude Opus 52026-09-22 13:38:14 +03:00
18c7c69da6
fix(task-25): page_setup_truth and settings_pdf_mediabox_a3 move the sheet to ANSI B before proving A3
Umut CANandClaude Opus 52026-09-22 13:27:17 +03:00
c2942d3c94
bench: matrix v4 adds page_setup_truth; correctness suite grows to 32 with three settings checks (A/B vs v1.5.1: 26 -> 32 / 32)
Umut CANandClaude Opus 52026-09-22 13:07:31 +03:00
02dbb133b5
feat(settings): live COM smoke on AutoCAD 2026 builds the five .dwt twins and records the run
Umut CANandClaude Opus 52026-09-22 13:07:31 +03:00
b54271f4ac
fix(com): four live defects the settings smoke measured on AutoCAD 2026 — rejected calls after a document switch, typelib spelling of color/Lineweight, narrowed layer-state dictionary, layer 0 Freeze put
Umut CANandClaude Opus 52026-09-22 13:07:31 +03:00
0514f8f15d
chore(templates): rebuild the five bundled DXFs on the merged tree (styles via dimstyle_create/textstyle_create, iso_a1_arch annotation scale 1:50)
Umut CANandClaude Opus 52026-09-22 12:40:47 +03:00
d072df9fd4
fix(task-24a): apply_standard decides each unit write on a read taken after the dimension style switch
Umut CANandClaude Opus 52026-09-22 12:37:33 +03:00
f7528b2fa5
fix(com): every system variable is read and written on the ActiveX document, not the Application
Umut CANandClaude Opus 52026-09-22 12:25:11 +03:00
70afd57831
feat(server): settings pack — 22 environment tools behind TOOL_PACKS, lean grows to 55, three groups, golden set +10
Umut CANandClaude Opus 52026-09-22 11:35:00 +03:00
d313da783a
docs(analysis): Track A review backlog — every minor finding with a disposition
Umut CANandClaude Opus 52026-09-22 11:08:04 +03:00
efcc8bbba1
fix(task-7): crossings test the exact arc, so a line through a jump's apex counts
Umut CANandClaude Opus 52026-09-22 11:06:04 +03:00
d3ef7b45a2
feat(discovery): style golden queries; dimstyle/textstyle set_current and drawing_apply_standard join the lean profile
Umut CANandClaude Opus 52026-09-22 10:51:21 +03:00
9cb4bee587
fix(pid): existing line payloads are read tolerantly and crossings follow arcs, not chords
Umut CANandClaude Opus 52026-09-21 23:05:54 +03:00
a5d166f365
feat(styles): drawing_apply_standard — ISO or ANSI styles, units and layers in one idempotent call
Umut CANandClaude Opus 52026-09-21 22:49:12 +03:00
b458923e19
feat(templates): drawing_template_save on both engines — dwt_write is a declared capability
Umut CANandClaude Opus 52026-09-21 22:48:31 +03:00
cfb5d5082c
fix(task-6): the reader no longer hands a signal line the neighbouring pipe's label
Umut CANandClaude Opus 52026-09-21 22:44:35 +03:00
021a4eb43d
fix(task-11): dimensions_using_style is one filtered selection set, not a per-entity COM walk
Umut CANandClaude Opus 52026-09-21 22:39:08 +03:00
17f7228fd6
fix(task-19): a .dxf template really reaches the live seat; the fallback dimvars land on Standard
Umut CANandClaude Opus 52026-09-21 22:31:44 +03:00
3c0babfef1
fix(pid): signal lines carry no fabricated number; a bubble exits towards the first waypoint
Umut CANandClaude Opus 52026-09-21 22:24:03 +03:00
03a5067d83
fix(task-11): live text styles write TrueType by typeface, refuse missing fonts and arrowhead blocks before any write, un-narrow the dimension walker
Umut CANandClaude Opus 52026-09-21 22:17:30 +03:00
dda11755cf
fix(task-16): custom keys follow AutoCAD's simple case compare, and on COM AutoCAD routes the write
Umut CANandClaude Opus 52026-09-21 22:04:22 +03:00
a76d9e08a3
feat(templates): five bundled templates built by the server's own tools; drawing_new(template=name)
Umut CANandClaude Opus 52026-09-21 22:03:41 +03:00
86c5d6ad65
fix(task-18): the headless Model plot is doc.modelspace(), not the current tab
Umut CANandClaude Opus 52026-09-21 21:47:05 +03:00
2e101b95e2
fix(task-5): a rollback that fails after a cancellation no longer kills the session, and the COM rollback goes back to an UNDO Mark instead of prompting
Umut CANandClaude Opus 52026-09-21 21:46:08 +03:00
a60f801205
feat(server): SECTION 18 styles — dimstyle/textstyle/mleaderstyle tools with DIMSTYLE/STYLE/MLEADERSTYLE aliases
Umut CANandClaude Opus 52026-09-21 21:44:02 +03:00
4fe2d963c0
fix(task-16): custom keys mirror AutoCAD's full AddCustomInfo rule, deletes are exempt, keys match case-insensitively
Umut CANandClaude Opus 52026-09-21 21:37:44 +03:00
f6951e2597
fix(task-18): the COM plot is foreground, by layout name, and confirmed on disk; plot_style_list reads PrinterStyleSheetPath
Umut CANandClaude Opus 52026-09-21 21:36:07 +03:00
2052915f34
fix(task-23): user_select reports the picked point in WCS — GetEntity answers in the current UCS, so translate acUCS→acWorld before returning
Umut CANandClaude Opus 52026-09-21 21:34:26 +03:00
266b6fb838
fix(task-10): un-narrow the ACAD_MLEADERSTYLE dictionary route so mleaderstyle_list/create work on the live engine
Umut CANandClaude Opus 52026-09-21 18:54:43 +03:00
2b9791fbcd
fix(task-16): custom properties refuse pre-R2004 headlessly, line breaks, and AutoCAD's invalid keys before any write
Umut CANandClaude Opus 52026-09-21 18:45:02 +03:00
f25421709f
feat(pagesetup): SECTION 19 — page_setup_list/apply, plot_style_list, batch_plot with /MediaBox read-back
Umut CANandClaude Opus 52026-09-21 18:39:34 +03:00
b83a74e969
feat(environment): system_launch, preference whitelist and operator prompts on COM; declared refusals headlessly
Umut CANandClaude Opus 52026-09-21 18:34:09 +03:00
32821c6410
fix(task-5): pid_from_spec shields its rollback so a real client cancellation rolls the sheet back on both engines
Umut CANandClaude Opus 52026-09-21 17:01:17 +03:00
10a7372ce7
feat(settings): drawing_properties_get/set — SummaryInfo on COM, custom properties on both engines
Umut CANandClaude Opus 52026-09-21 16:59:19 +03:00
54bbf72312
fix(task-17): an inch sheet's fit reports paper units per drawing unit, not the mm ratio times 25.4
Umut CANandClaude Opus 52026-09-21 16:55:05 +03:00
e204f227b4
fix(task-10): $DIMBLK header carries the canonical arrowhead name; MLeaderStyle is authored on COM through the ACAD_MLEADERSTYLE dictionary
Umut CANandClaude Opus 52026-09-21 16:48:20 +03:00
c7dd72410a
fix(task-22): live named views read and restore the display (VIEWCTR/VIEWSIZE, ZOOM Window), UCS sysvars come from the document, and a frozen current layer is thawed before restore makes it current
Umut CANandClaude Opus 52026-09-21 16:48:19 +03:00
ac1fba80b7
fix(pid): pid_from_spec refuses non-finite numbers by path and rolls back on any interruption
Umut CANandClaude Opus 52026-09-18 10:51:45 +03:00
a51c1b6e14
fix(task-2): a moved multi-line attribute keeps one placement and its whole value on the headless engine
Umut CANandClaude Opus 52026-09-18 10:12:56 +03:00
bbc9aeeb63
fix(task-21): registry identity is the file (st_dev/st_ino), not its spelling — a hard link, junction or case variant reloads instead of registering twice
Umut CANandClaude Opus 52026-09-18 10:08:12 +03:00
b464bcdaf5
fix(task-4): block_define dedupes requested layers case-insensitively so one layer in two spellings is created and reported once
Umut CANandClaude Opus 52026-09-18 00:23:16 +03:00
375c9f4c70
fix(blocks): block_define refuses a non-finite base point and a missing layer unless create_layers
Umut CANandClaude Opus 52026-09-18 00:11:38 +03:00
7f79497928
fix(blocks): attribute values are validated before any write; null/bool/objects refused by tag
Umut CANandClaude Opus 52026-09-17 23:59:17 +03:00
31daac022f
fix(task-21): layout_create, layout_set_current and viewport_create mark the headless document dirty — the close refusal and the saved row now see them, and each gets an undo step
Umut CANandClaude Opus 52026-09-17 23:37:21 +03:00
b753a12bb6
fix(task-2): find_replace rewrites every surface of a multi-line attribute; COM explode propagates a failing read and undoes a failed burst
Umut CANandClaude Opus 52026-09-17 23:32:56 +03:00
b1c93cdd2a
fix(task-21): the applied ISO layer set is per document — it follows document_activate on ezdxf and is cleared on every document switch on both engines
Umut CANandClaude Opus 52026-09-17 23:17:39 +03:00
aeb27c252b
fix(task-17): the headless page setup writes the scale AutoCAD plots by, and reads the code 75 AutoCAD writes
Umut CANandClaude Opus 52026-09-17 15:29:47 +03:00
5f33613460
fix(task-2): COM burst MTEXT anchors after the attachment; headless multi-line attribute values persist below R2018
Umut CANandClaude Opus 52026-09-17 15:24:44 +03:00
75c13196b9
fix(task-15): angle sysvars are radians on both engines; OSMODE is registry-saved and refused headlessly
Umut CANandClaude Opus 52026-09-17 15:20:02 +03:00
64cec37cc7
fix(task-22): ucs_list decides "world" from the frame, not the empty name — an unnamed UCS is its own current row
Umut CANandClaude Opus 52026-09-17 15:10:00 +03:00
e7dafb85ab
fix(task-2): headless block_set_attributes rewrites the embedded MTEXT; block_explode refuses members ezdxf would silently drop
Umut CANandClaude Opus 52026-09-17 15:02:44 +03:00
f2386a9fdd
fix(task-17): a rotated sheet's margins turn with it, and a paper-units move is named in changed and warnings
Umut CANandClaude Opus 52026-09-17 14:58:17 +03:00
4d246b17b8
fix(task-9): DIMDSEP refuses control characters and code points above the 16-bit DXF group
Umut CANandClaude Opus 52026-09-17 14:52:57 +03:00
6cb7a13c66
fix(task-2): block_explode bursts multi-line attributes as MTEXT and refuses xrefs and MINSERTs on both engines
Umut CANandClaude Opus 52026-09-17 10:16:26 +03:00
f3ff703144
fix(task-14): refuse CANNOSCALE on an R12 file headlessly instead of losing it at save
Umut CANandClaude Opus 52026-09-17 10:14:05 +03:00
4bf686e943
fix(task-22): headless named views are written as plan views and restore carries the orientation
Umut CANandClaude Opus 52026-09-17 10:09:14 +03:00
4a6591843f
fix(task-17): the headless sheet export plots at the layout's scale and plot area, and reports both
Umut CANandClaude Opus 52026-09-17 10:01:49 +03:00
2ee18727cd
fix(task-10): user dimstyles survive DXF round trips, purge keeps style references, Restore writes every DIM* variable
Umut CANandClaude Opus 52026-09-17 10:00:17 +03:00
b12fa854c1
fix(task-2): block_explode writes Normal as a VARIANT and keeps constant attributes as TEXT
Umut CANandClaude Opus 52026-09-17 09:52:58 +03:00
909bc47e5e
fix(task-14): seed AutoCAD's default scale list before adding an annotation scale headlessly
Umut CANandClaude Opus 52026-09-17 09:49:38 +03:00
33604c4408
fix(task-14): read and write system variables on the ActiveX document, not the Application
Umut CANandClaude Opus 52026-09-17 09:49:25 +03:00
dcc8f07bf4
feat(environment): portable layer states, named views and UCS on both engines
Umut CANandClaude Opus 52026-09-17 09:47:39 +03:00
376dc812a5
fix(task-17): COM page setup reads mm as mm, 1:5 takes the custom route, and a refused apply puts the media back
Umut CANandClaude Opus 52026-09-17 09:42:13 +03:00
cc3bd4876b
feat(styles): dimension, text and multileader styles on both engines; $DIMSTYLE/$TEXTSTYLE reach new entities headlessly
Umut CANandClaude Opus 52026-09-17 09:39:16 +03:00
415de73137
fix(task-2): COM block_explode carries the ATTRIB frame and style onto the TEXT
Umut CANandClaude Opus 52026-09-16 22:01:08 +03:00
20ca39d28a
fix(task-17): a layout plot never writes CenterPlot, and a refused COM write unwinds every landed one
Umut CANandClaude Opus 52026-09-16 21:55:14 +03:00
2e2cd2773d
fix(task-9): signed DIMTP/DIMTM, read-side arrowhead spelling, and the Task 10 handshake
Umut CANandClaude Opus 52026-09-16 21:52:01 +03:00
2805697d16
fix(task-21): registry identity is normcase(abspath) everywhere — a case variant reloads instead of registering twice, resolves instead of being refused, and drawing_close(save) checks the file it writes
Umut CANandClaude Opus 52026-09-16 21:51:16 +03:00
df2ab91900
fix(task-14): return the plain point list from COM system_set_variable, not the VARIANT
Umut CANandClaude Opus 52026-09-16 21:48:09 +03:00
13851a3d20
fix(task-2): block_explode keeps the ATTRIB frame and writes into the owner layout
Umut CANandClaude Opus 52026-09-16 21:43:08 +03:00
aeab950d2d
fix(task-21): one registry entry per file — save/save_as refuse a path another document holds; resolver refuses a shared path instead of guessing
Umut CANandClaude Opus 52026-09-16 21:36:44 +03:00
827719fdd0
fix(task-9): finite text-style numbers, one symbol-name rule, canonical DIMBLK arrowheads
Umut CANandClaude Opus 52026-09-16 21:33:05 +03:00
e8e7e3c524
fix(task-14): match ACAD_SCALELIST entries by their group-300 name, not the dictionary key
Umut CANandClaude Opus 52026-09-16 21:31:13 +03:00
70f18efb4b
fix(task-17): rotated sheets (plot_rotation 1/3) render the whole page instead of a 0.707-scaled, clipped window
Umut CANandClaude Opus 52026-09-16 21:30:52 +03:00
19610b8f05
fix(blocks): block_explode keeps attribute text as TEXT (BURST rule) on both engines
Umut CANandClaude Opus 52026-09-16 21:26:27 +03:00
174fb8010c
feat(environment): multi-document on both engines — ezdxf document registry, document_list/activate/close, drawing_close folded in
Umut CANandClaude Opus 52026-09-16 21:20:21 +03:00
df39b21f2e
feat(settings): drawing_settings gains limits, grid/snap, ortho/polar, psltscale, annotation scale, unit formats and current styles
Umut CANandClaude Opus 52026-09-16 21:14:31 +03:00
f46fda10cb
feat(pagesetup): page_setup_list/apply on both engines — the PDF's own /MediaBox is the evidence
Umut CANandClaude Opus 52026-09-16 21:13:48 +03:00
b9510bf377
fix(blocks): entity_create_block_ref refuses an undefined or layout block before writing, on both engines
Umut CANandClaude Opus 52026-09-16 21:13:44 +03:00
54fac471a9
feat(standards): ISO-25 and ANSI dimension, text and leader style presets as pinned data
Umut CANandClaude Opus 52026-09-16 21:11:26 +03:00
49fc6ac6a5
docs(plan): demote the embedded Track A backlog headings so task lookup by '### Task N:' is unambiguous
Umut CANandClaude Opus 52026-09-16 21:07:42 +03:00
4bd651b159
docs: Track E (settings and environment) implementation plan — 26 TDD tasks in five worktree groups
Umut CANandClaude Opus 52026-09-16 21:07:26 +03:00
2be5e4180d
docs(pid): track A shipped — CLAUDE.md, README, changelog with the live COM smoke record
Umut CANandClaude Opus 52026-09-16 13:34:06 +03:00
8d9c444b76
bench: matrix v4 adds pid_roundtrip; correctness suite grows to 29 with three P&ID checks
Umut CANandClaude Opus 52026-09-16 13:06:52 +03:00
e911a3a8fb
feat(server): TOOL_PACKS — advertise only the vertical packs a client uses
Umut CANandClaude Opus 52026-09-16 12:55:38 +03:00
42154e025b
fix(task-19): the contact-sheet test fails when the symbols are missing
Umut CANandClaude Opus 52026-09-16 12:42:54 +03:00
c441609254
feat(pid): pid_tag_parse, catalogue and ISA-5.1 resources, prompt rewritten onto the tools
Umut CANandClaude Opus 52026-09-16 12:29:04 +03:00
d80ae17411
feat(pid): pid_from_spec — a whole P&ID in one transaction, graph and critique returned
Umut CANandClaude Opus 52026-09-16 12:10:14 +03:00
6aded6bbf0
fix(task-16): hints only name ports pid_line_draw accepts; signal_unknown is judged as a signal line
Umut CANandClaude Opus 52026-09-16 12:01:37 +03:00
3c4fbf6c42
fix(task-16): a P&ID line ending on an unknown_block is dangling — a 0.3 guess suppresses no finding either
Umut CANandClaude Opus 52026-09-16 11:51:22 +03:00
715c8efca4
fix(task-16): P&ID focuses score evidence, never a 0.3 touch guess or an inferred port kind
Umut CANandClaude Opus 52026-09-16 11:35:35 +03:00
b4c1423c8e
feat(pid): six P&ID critique focuses join drawing_finalize; plan/preflight flag a P&ID intent on the wrong layer set
Umut CANandClaude Opus 52026-09-16 11:17:55 +03:00
346eac4ac6
fix(task-15): instrument connected_to follows junction ends and never names its own wire
Umut CANandClaude Opus 52026-09-16 11:02:11 +03:00