Release v1.4.0
Changes since v1.3.6:
- Fix: Update @modelcontextprotocol/sdk peerDependency to ~1.24.0 #1063 (117bbb2)
- Fix: Exclude failing CI tests from offline test suite #1061 (d53d18f)
- Fix: Skip status-field-validation test in CI until core package build added (ebcb64c)
- Release: v1.4.0 (eff5c6d)
- Refactor: Tool alias system simplification #1041 (#1057) (a0f5ba2)
- Fix: Preserve line breaks in note content #1052 (12481e1)
- Refactor: Rename transformation type 'select_title_to_id' to 'select_title_to_array' (#1055) (a6b5149)
- chore: Daily changelog for 2025-12-25 (#1049) (a424266)
- Fix: People search results show 'Unnamed' instead of full name #1051 (#1054) (10dbfe1)
- Refactor: Strategy Pattern for CRUD error handlers #1001 (#1050) (917fb8c)
- chore: Daily changelog for 2025-12-24 (#1047) (d6ea9b5)
- chore: Daily changelog for 2025-12-17 (#1042) (7fbbd47)
- Fix: Select field type mismatch - array expected #1045 (#1046) (82e240f)
- Fix: Deal stage/UTM validation #1043 (#1044) (c064dac)
- Refactor: MCP-compliant tool naming (snake_case, verb-first) #1039 (#1040) (69389ac)
- Chore: Deprecate legacy tools in favor of universal tools #1022 (#1038) (3ba77e5)
- Test: Fix 4 flaky tests causing pre-push hook failures #1036 (#1037) (5879af7)
- Enhancement: Fetch custom object display names from Attio API #1017 (#1035) (37e245b)
- Merge pull request #1034 from kesslerio/refactor/issue-1030-select-formatattributevalue (34fb937)
- Refactor: Remove unused normalizeLocation #1030 (b5e21ec)
- Refactor: Normalize select arrays #1030 (c01987e)
- Merge pull request #1033 from kesslerio/chore/daily-changelog-2025-12-16 (6ac6019)
- Merge branch 'main' into chore/daily-changelog-2025-12-16 (5b4fd39)
- Merge pull request #1032 from kesslerio/feature/issue-1023-split-integration-patterns (0aa5d30)
- Docs: Make patterns executable via MCP tool calls #1023 (5a27a73)
- Docs: Convert pattern files to MCP tool call format #1023 (2bad341)
- chore: Daily changelog for 2025-12-16 (8567559)
- Fix: Address PR review feedback #1023 (e48b226)
- Enhancement: Split integration patterns by use case for progressive discovery #1023 (5ebc3c1)
- Feature: Configurable option fetch delay (d1dbde7)
- Feature: Implement select-field transformer for human-readable option values #1019 (#1029) (ac1e6e4)
- Docs: Add skills documentation and streamline README (#1028) (1fcc367)
- Feature: Create attio-skill-generator meta-skill #1020 (#1024) (ac7a037)
- Fix: Pin @modelcontextprotocol/sdk to ~1.24.0 #1025 (#1026) (409fa62)
- Enhancement: Create attio-mcp-usage skill for workflow guidance and error prevention (#1021) (bdee6db)
- chore: Daily changelog for 2025-12-13 (#1016) (a39ca9d)
- Feature: Generate workspace schema skills #983 (#1014) (4c92591)
- Refactor: De-duplicate offline tests #1009 (#1013) (12d2ed5)
- Fix: Field persistence false warnings for status fields #995 (#1011) (4f63269)
- Chore: Prevent false positives in automated Claude PR reviews (#1012) (e9ced1b)
- Test: Add comprehensive unit tests for MetadataResolver error paths (#1010) (7fb257b)
- chore: Daily changelog for 2025-12-12 (#1007) (bd9385b)
- Refactor: Consolidate metadata fetching + Modularize UniversalUpdateService #984 (#1006) (f93d3c6)
- Fix: Daily changelog workflow missing approvals (#1005) (0a05275)
- Fix: Claude PR Review false positives from missing dynamic import detection #1002 (#1003) (c9a5a5e)
- Fix: Enhance uniqueness constraint violation errors #990 (#1000) (15f0d1f)
- Merge pull request #999 from kesslerio/feature/issue-991-complex-attr-validation (737c764)
- Fix: changelog and personal-name clears #991 (a270a98)
- Fix: allow null clears in array complex fields #991 (04bc9c5)
- Fix: robust complex error parsing #991 (084bdc9)
- Fix: enhance complex error messaging #991 (149ca90)
- Fix: tighten complex validation types #991 (6546b0d)
- Fix: validate complex attributes #991 (5e74bac)
- Fix: Record-reference auto-transformation for people.company #997 (#998) (d89c746)
- Fix: Multi-select array auto-transformation for custom attributes #992 (#996) (f794766)
- Fix: MCP attribute aliasing & errors (967f7cd)
- Fix: AttributeOptionsService empty select fallback to status #987 (#989) (b981a91)
- Fix: Handle status UUID strings (#988) (7166061)
- Fix: UX improvements for attribute options tool #980 (#981) (a0e8b9e)
- Fix: Tighten daily changelog criteria #900 (#979) (d3a12a4)
- Feature: Add records_get_attribute_options tool + fix unknown types #975 (#976) (eed63ac)
- Fix: Add path alias import detection to PR review scope generator #977 (#978) (848567d)
- Refactor: Extract search services from UniversalSearchService #935 (#974) (8021d54)
- Fix: MCP E2E Test Suite Stabilization - Phase 2 (#971) (079e709)
- Merge pull request #967 from kesslerio/fix/issue-857-e2e-drift (3d03721)
- Refactor: reuse record parsing helper in tasks #857 (4799d8c)
- Fix: Offline tests fail without ATTIO_API_KEY (dynamic import) #969 (#970) (0dc0239)
- Fix: Offline tests fail without ATTIO_API_KEY (dynamic import) #969 (#970) (b5cd5e7)
- Refactor: Use shared parseRecordResult in task-crud update tests #857 (514aa2c)
- Refactor: add shared task result parsing #857 (2de6822)
- Fix: Stabilize task E2E assertions #857 (e2ba4f6)
- Fix: Extract only final Claude response, not intermediate tool chatter (#965) (fb9c80a)
- Feature: Add phone validation to @attio-mcp/core #951 (#964) (a82c723)
What's Changed
- Feature: Add phone validation to @attio-mcp/core #951 by @kesslerio in #964
- Fix: Extract only final Claude response, not intermediate tool chatter by @kesslerio in #965
- Fix: Offline tests fail without ATTIO_API_KEY (dynamic import) #969 by @kesslerio in #970
- Fix: Stabilize task E2E assertions #857 by @kesslerio in #967
- Fix: MCP E2E Test Suite Stabilization - Phase 2 by @kesslerio in #971
- Refactor: Extract search services from UniversalSearchService #935 by @kesslerio in #974
- Fix: Add path alias import detection to PR review scope #977 by @kesslerio in #978
- Feature: Add records_get_attribute_options tool + fix unknown types #975 by @kesslerio in #976
- Fix: Tighten daily changelog criteria #900 by @kesslerio in #979
- Fix: UX improvements for attribute options tool #980 by @kesslerio in #981
- Fix: Handle status UUID strings by @kesslerio in #988
- Fix: AttributeOptionsService empty select fallback to status #987 by @kesslerio in #989
- Fix: MCP attribute aliasing & errors by @kesslerio in #993
- Fix: Multi-select array auto-transformation for custom attributes #992 by @kesslerio in #996
- Fix: Record-reference auto-transformation for people.company #997 by @kesslerio in #998
- Fix: Complex attribute validation by @kesslerio in #999
- Fix: Enhance uniqueness constraint violation errors #990 by @kesslerio in #1000
- Fix: Claude PR Review false positives from missing dynamic import detection #1002 by @kesslerio in #1003
- Fix: Daily changelog workflow missing approvals #1004 by @kesslerio in #1005
- Refactor: Consolidate metadata fetching + Modularize UniversalUpdateService #984 by @kesslerio in #1006
- chore: Daily changelog for 2025-12-12 by @github-actions[bot] in #1007
- Test: Add comprehensive unit tests for MetadataResolver error paths by @kesslerio in #1010
- Chore: Prevent false positives in automated Claude PR reviews by @kesslerio in #1012
- Fix: Field persistence false warnings for status fields #995 by @kesslerio in #1011
- Refactor: De-duplicate offline tests by @kesslerio in #1013
- Feature: Generate workspace schema skills #983 by @kesslerio in #1014
- chore: Daily changelog for 2025-12-13 by @github-actions[bot] in #1016
- Enhancement: Create attio-mcp-usage skill for workflow guidance and error prevention by @kesslerio in #1021
- Fix: Pin @modelcontextprotocol/sdk to ~1.24.0 #1025 by @kesslerio in #1026
- Feature: Create attio-skill-generator meta-skill #1020 by @kesslerio in #1024
- Docs: Add skills documentation and streamline README #1027 by @kesslerio in #1028
- Feature: Implement select-field transformer for human-readable option values #1019 by @kesslerio in #1029
- Feature: Configurable option fetch delay by @kesslerio in #1031
- Enhancement: Split integration patterns by use case for progressive discovery #1023 by @kesslerio in #1032
- chore: Daily changelog for 2025-12-16 by @github-actions[bot] in #1033
- Refactor: Normalize select arrays by @kesslerio in #1034
- Enhancement: Fetch custom object display names from Attio API #1017 by @kesslerio in #1035
- Test: Fix 4 flaky tests causing pre-push hook failures by @kesslerio in #1037
- Chore: Deprecate legacy tools in favor of universal tools #1022 by @kesslerio in #1038
- Refactor: MCP-compliant tool naming (snake_case, verb-first) #1039 by @kesslerio in #1040
- Fix: Deal stage/UTM validation #1043 by @kesslerio in #1044
- Fix: Select field type mismatch - array expected #1045 by @kesslerio in #1046
- chore: Daily changelog for 2025-12-17 by @github-actions[bot] in #1042
- chore: Daily changelog for 2025-12-24 by @claude[bot] in #1047
- Refactor: Strategy Pattern for CRUD error handlers #1001 by @kesslerio in #1050
- Fix: People search results show 'Unnamed' instead of full name #1051 by @kesslerio in #1054
- chore: Daily changelog for 2025-12-25 by @claude[bot] in #1049
- Refactor: Rename transformation type 'select_title_to_id' to 'select_title_to_array' by @kesslerio in #1055
- Fix: Preserve line breaks in note content during sanitization #1052 by @kesslerio in #1056
- Refactor: Tool alias system simplification #1041 by @kesslerio in #1057
- Release: v1.4.0 by @kesslerio in #1058
- Fix: Skip status-field-validation test in CI until core package build added #1060 by @kesslerio in #1060
- Fix: Exclude failing CI tests from offline test suite #1061 by @kesslerio in #1062
- Fix: Update @modelcontextprotocol/sdk peerDependency to ~1.24.0 #1063 by @kesslerio in #1064
New Contributors
- @github-actions[bot] made their first contribution in #1007
- @claude[bot] made their first contribution in #1047
Full Changelog: v1.3.6...v1.4.0