31f84a7ab0
Closes #33 ## Breaking Changes ### 1. get() signature - schema required - **Before:** `get(name, schema?)` with polymorphic return `Variable | Variable[] | null` - **After:** `get(name, schema)` with required schema, returns `Variable | null` - **Migration:** Use `list({ exactName })` to query all schema variants ### 2. delete() method removed - **Removed:** `delete(name, schema)` method - **Use:** `remove(name, schema?)` as the sole deletion API ## New Features ### 3. list() enhanced with exactName parameter - **Added:** `exactName` parameter for exact name matching - **Use case:** Query all schema variants of an exact name - **Example:** `list({ exactName: "config" })` returns all schemas for "config" - **Validation:** `exactName` and `namePrefix` are mutually exclusive ### 4. Additional verification tests - Added tests confirming set() schema extraction behavior - Added comprehensive validateName() error message tests - Verified detailed error messages for all validation violations ## Implementation Details ### Changes in variable-store.ts - Simplified get() to single signature with required schema - Removed deprecated delete() method - Enhanced list() with exactName parameter and validation - Updated remove() to use list({ exactName }) for multi-variant queries - Fixed tag() method to remove redundant Array.isArray check ### Changes in tests - Replaced get() without schema tests with new required-schema tests - Added 8 comprehensive tests for list({ exactName }) functionality - Added 5 validateName() error message verification tests - Added 2 set() schema extraction verification tests - Updated integration test to use list({ exactName }) instead of get(name) - Updated gc.test.ts to use remove() instead of delete() ## Verification - ✅ 190 tests pass (1 unrelated CLI test fails) - ✅ TypeScript build passes with no errors - ✅ Biome lint and format pass - ✅ All Variable model tests pass - ✅ GC integration tests pass Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>