feat(library): content-addressed packages and editable nesting settings

Schema v5 stores each distinct drawing package once in drawing_packages,
keyed by SHA-256; revisions point at it, so details, settings, archive and
restore revisions add no blob. The v4 drawing tables are replaced outright
(no production library existed); nest tables are untouched.

Nesting settings (cut first, priority, rotation constraints, color) become
structured record fields (DrawingLibraryRecord.Settings), returned on every
read, filterable by cutFirst, editable through the metadata endpoint and
applied by LibraryDrawingInsert. Canonical packages now leave every
record-owned field at its default, so renaming or changing settings never
changes the package hash. Saving a nest drawing to the library carries its
settings into the record.

The desktop library browser gains a Cut first column and an Edit Settings
dialog that saves notes and settings as a new revision with the same package.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ajandClaude Opus 5.5 committed 2026-10-17 22:47:18 -04:00
1 parent 42d99f296c
commit 5a374aa3f4
32 files changed
+1502 -118

No files matched your search

+3
View File
@@ -32,6 +32,9 @@ public sealed class DrawingLibraryQuery
public CutType? CutType { get; init; }
/// <summary>Only drawings whose Cut first setting equals this; null means any.</summary>
public bool? CutFirst { get; init; }
public bool IncludeArchived { get; init; }
/// <summary>Column to order by; ties are broken by id in the same direction.</summary>