@prmichaelsen/remember-mcp 3.15.4 → 3.15.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/AGENT.md +363 -5
  2. package/CHANGELOG.md +7 -0
  3. package/agent/commands/acp.clarification-capture.md +386 -0
  4. package/agent/commands/acp.clarification-create.md +50 -0
  5. package/agent/commands/acp.command-create.md +60 -0
  6. package/agent/commands/acp.design-create.md +62 -0
  7. package/agent/commands/acp.design-reference.md +355 -0
  8. package/agent/commands/acp.index.md +423 -0
  9. package/agent/commands/acp.init.md +48 -0
  10. package/agent/commands/acp.package-create.md +1 -0
  11. package/agent/commands/acp.package-info.md +1 -0
  12. package/agent/commands/acp.package-install.md +19 -0
  13. package/agent/commands/acp.package-list.md +1 -0
  14. package/agent/commands/acp.package-publish.md +1 -0
  15. package/agent/commands/acp.package-remove.md +1 -0
  16. package/agent/commands/acp.package-search.md +1 -0
  17. package/agent/commands/acp.package-update.md +1 -0
  18. package/agent/commands/acp.package-validate.md +1 -0
  19. package/agent/commands/acp.pattern-create.md +60 -0
  20. package/agent/commands/acp.plan.md +25 -0
  21. package/agent/commands/acp.proceed.md +621 -75
  22. package/agent/commands/acp.project-create.md +3 -0
  23. package/agent/commands/acp.project-info.md +3 -0
  24. package/agent/commands/acp.project-list.md +3 -1
  25. package/agent/commands/acp.project-set.md +1 -0
  26. package/agent/commands/acp.project-update.md +14 -3
  27. package/agent/commands/acp.projects-restore.md +228 -0
  28. package/agent/commands/acp.projects-sync.md +347 -0
  29. package/agent/commands/acp.report.md +13 -0
  30. package/agent/commands/acp.resume.md +3 -1
  31. package/agent/commands/acp.sessions.md +301 -0
  32. package/agent/commands/acp.status.md +13 -0
  33. package/agent/commands/acp.sync.md +1 -0
  34. package/agent/commands/acp.task-create.md +105 -3
  35. package/agent/commands/acp.update.md +1 -0
  36. package/agent/commands/acp.validate.md +32 -2
  37. package/agent/commands/acp.version-check-for-updates.md +1 -0
  38. package/agent/commands/acp.version-check.md +1 -0
  39. package/agent/commands/acp.version-update.md +1 -0
  40. package/agent/commands/command.template.md +23 -0
  41. package/agent/commands/git.commit.md +1 -0
  42. package/agent/commands/git.init.md +1 -0
  43. package/agent/design/complete-tool-set.md +157 -233
  44. package/agent/design/design.template.md +18 -0
  45. package/agent/design/user-preferences.md +11 -7
  46. package/agent/milestones/milestone-19-new-search-ghost-tools.md +46 -0
  47. package/agent/package.template.yaml +50 -0
  48. package/agent/patterns/pattern.template.md +18 -0
  49. package/agent/progress.yaml +162 -6
  50. package/agent/scripts/acp.common.sh +258 -15
  51. package/agent/scripts/acp.install.sh +91 -4
  52. package/agent/scripts/acp.package-create.sh +0 -1
  53. package/agent/scripts/acp.package-info.sh +19 -1
  54. package/agent/scripts/acp.package-install-optimized.sh +1 -1
  55. package/agent/scripts/acp.package-install.sh +388 -38
  56. package/agent/scripts/acp.package-list.sh +52 -4
  57. package/agent/scripts/acp.package-remove.sh +77 -1
  58. package/agent/scripts/acp.package-search.sh +2 -2
  59. package/agent/scripts/acp.package-update.sh +91 -12
  60. package/agent/scripts/acp.package-validate.sh +136 -1
  61. package/agent/scripts/acp.project-info.sh +34 -11
  62. package/agent/scripts/acp.project-list.sh +4 -0
  63. package/agent/scripts/acp.project-update.sh +66 -19
  64. package/agent/scripts/acp.projects-restore.sh +170 -0
  65. package/agent/scripts/acp.projects-sync.sh +155 -0
  66. package/agent/scripts/acp.sessions.sh +725 -0
  67. package/agent/scripts/acp.version-update.sh +21 -3
  68. package/agent/scripts/acp.yaml-parser.sh +20 -6
  69. package/agent/tasks/milestone-19-new-search-ghost-tools/task-203-create-search-by-tool.md +143 -0
  70. package/agent/tasks/milestone-19-new-search-ghost-tools/task-204-add-new-filters-existing-tools.md +77 -0
  71. package/agent/tasks/milestone-19-new-search-ghost-tools/task-205-add-feel-fields-create-update.md +137 -0
  72. package/agent/tasks/milestone-19-new-search-ghost-tools/task-206-add-byproperty-bysignificance-modes.md +135 -0
  73. package/agent/tasks/milestone-19-new-search-ghost-tools/task-207-add-emotional-composites-search-results.md +88 -0
  74. package/agent/tasks/milestone-19-new-search-ghost-tools/task-208-add-bybroad-byrandom-modes.md +115 -0
  75. package/agent/tasks/milestone-19-new-search-ghost-tools/task-209-create-ghost-memory-tools.md +192 -0
  76. package/agent/tasks/milestone-19-new-search-ghost-tools/task-210-create-get-core-tool.md +203 -0
  77. package/agent/tasks/milestone-19-new-search-ghost-tools/task-211-create-search-space-by-tool.md +182 -0
  78. package/agent/tasks/task-1-{title}.template.md +19 -0
  79. package/agent/tasks/unassigned/bug-report-remember-core-e2e-findings.md +99 -0
  80. package/dist/e2e-helpers.d.ts +26 -0
  81. package/dist/ghost-persona.e2e.d.ts +8 -0
  82. package/dist/memory-crud.e2e.d.ts +8 -0
  83. package/dist/preferences.e2e.d.ts +8 -0
  84. package/dist/relationships.e2e.d.ts +8 -0
  85. package/dist/search-modes.e2e.d.ts +8 -0
  86. package/dist/server-factory.js +1977 -100
  87. package/dist/server.js +1174 -51
  88. package/dist/shared-spaces.e2e.d.ts +8 -0
  89. package/dist/tools/create-ghost-memory.d.ts +70 -0
  90. package/dist/tools/create-memory.d.ts +175 -0
  91. package/dist/tools/get-core.d.ts +28 -0
  92. package/dist/tools/get-core.spec.d.ts +2 -0
  93. package/dist/tools/ghost-tools.spec.d.ts +2 -0
  94. package/dist/tools/query-ghost-memory.d.ts +34 -0
  95. package/dist/tools/query-memory.d.ts +4 -0
  96. package/dist/tools/search-by.d.ts +147 -0
  97. package/dist/tools/search-by.spec.d.ts +2 -0
  98. package/dist/tools/search-ghost-memory-by.d.ts +54 -0
  99. package/dist/tools/search-ghost-memory.d.ts +53 -0
  100. package/dist/tools/search-memory.d.ts +19 -0
  101. package/dist/tools/search-space-by.d.ts +78 -0
  102. package/dist/tools/search-space-by.spec.d.ts +2 -0
  103. package/dist/tools/search-space.d.ts +2 -0
  104. package/dist/tools/update-ghost-memory.d.ts +51 -0
  105. package/dist/tools/update-memory.d.ts +175 -0
  106. package/jest.e2e.config.js +11 -0
  107. package/package.json +2 -2
  108. package/src/e2e-helpers.ts +86 -0
  109. package/src/ghost-persona.e2e.ts +215 -0
  110. package/src/memory-crud.e2e.ts +203 -0
  111. package/src/preferences.e2e.ts +88 -0
  112. package/src/relationships.e2e.ts +156 -0
  113. package/src/search-modes.e2e.ts +184 -0
  114. package/src/server-factory.ts +56 -0
  115. package/src/shared-spaces.e2e.ts +204 -0
  116. package/src/tools/create-ghost-memory.ts +103 -0
  117. package/src/tools/create-memory.ts +45 -1
  118. package/src/tools/get-core.spec.ts +223 -0
  119. package/src/tools/get-core.ts +109 -0
  120. package/src/tools/ghost-tools.spec.ts +361 -0
  121. package/src/tools/query-ghost-memory.ts +63 -0
  122. package/src/tools/query-memory.ts +4 -0
  123. package/src/tools/search-by.spec.ts +325 -0
  124. package/src/tools/search-by.ts +298 -0
  125. package/src/tools/search-ghost-memory-by.ts +80 -0
  126. package/src/tools/search-ghost-memory.ts +73 -0
  127. package/src/tools/search-memory.ts +23 -0
  128. package/src/tools/search-space-by.spec.ts +289 -0
  129. package/src/tools/search-space-by.ts +173 -0
  130. package/src/tools/search-space.ts +20 -1
  131. package/src/tools/update-ghost-memory.ts +86 -0
  132. package/src/tools/update-memory.ts +45 -1
@@ -0,0 +1,46 @@
1
+ # Milestone 19: New Search Modes, Ghost Tools & Emotional Exposure
2
+
3
+ **Status**: Not Started
4
+ **Created**: 2026-03-07
5
+ **Estimated Duration**: 2-3 weeks
6
+ **Tasks**: 9
7
+ **Depends On**: remember-core service implementations
8
+
9
+ ---
10
+
11
+ ## Goal
12
+
13
+ Expand remember-mcp's MCP tool layer with new search modes, a dedicated ghost memory tool suite, emotional dimension exposure, and core mood introspection. All underlying service logic is built in remember-core; this milestone focuses on MCP tool definitions (descriptions, input schemas) and thin handler adapters.
14
+
15
+ ## Key Deliverables
16
+
17
+ - `remember_search_by` tool with 8 modes (byTime, byDensity, byRating, byDiscovery, byProperty, bySignificance, byBroad, byRandom)
18
+ - 5 ghost memory tools (create, update, search, query, search_by) with hardcoded content_type and tags
19
+ - `remember_get_core` tool for mood + perception introspection
20
+ - `remember_search_space_by` tool for space-specific search modes
21
+ - Schema enhancements: 31 `feel_*` fields on create/update, new filters on search tools, emotional composites in results
22
+ - Tool count: 21 -> 29 tools
23
+
24
+ ## Success Criteria
25
+
26
+ - [ ] All 8 new tools registered in server-factory.ts
27
+ - [ ] All tool handlers delegate to remember-core services (thin adapters, 10-20 lines each)
28
+ - [ ] Ghost tools hardcode content_type: 'ghost' and ghost-specific tags
29
+ - [ ] `feel_*` fields accepted on create_memory and update_memory
30
+ - [ ] Search results include emotional composites when available
31
+ - [ ] Existing tool schemas updated with new filters
32
+ - [ ] Unit tests for all new tools
33
+ - [ ] Build passing, TypeScript clean
34
+
35
+ ## Design Document
36
+
37
+ - remember-core: `agent/design/local.new-search-tools.md` (authoritative source)
38
+
39
+ ## Phases
40
+
41
+ 1. **Phase 1**: `remember_search_by` + filter updates (tasks 203-204)
42
+ 2. **Phase 2**: Emotional dimension exposure (tasks 205-207)
43
+ 3. **Phase 3**: New core modes — byBroad, byRandom (task 208)
44
+ 4. **Phase 4**: Ghost memory tool suite (task 209)
45
+ 5. **Phase 5**: Core mood/perception introspection (task 210)
46
+ 6. **Phase 6**: Space variant (task 211)
@@ -19,12 +19,62 @@ release:
19
19
  contents:
20
20
  patterns:
21
21
  - name: namespace.pattern-name.md
22
+ description: Pattern description
22
23
 
23
24
  commands:
24
25
  - name: namespace.command-name.md
26
+ description: Command description
27
+ scripts: # REQUIRED: Must match command frontmatter **Scripts**: field
28
+ - namespace.command-name.sh
29
+ - acp.common.sh
30
+ - acp.yaml-parser.sh
25
31
 
26
32
  designs:
27
33
  - name: namespace.design-name.md
34
+ description: Design description
35
+
36
+ scripts:
37
+ - name: namespace.command-name.sh
38
+ description: Main command script
39
+ - name: acp.common.sh
40
+ description: Shared utility functions
41
+ type: utility
42
+ - name: acp.yaml-parser.sh
43
+ description: YAML parsing utilities
44
+ type: utility
45
+
46
+ # Template source files (code, configs, project scaffolding)
47
+ # Installed to agent/files/ - users copy to project as needed
48
+ # Variable substitution: {{VARIABLE_NAME}} placeholders replaced at install time
49
+ files:
50
+ # Required configuration template
51
+ - name: config/tsconfig.json
52
+ description: TypeScript configuration for core libraries
53
+ target: ./
54
+ required: true
55
+
56
+ # Template with variable substitution
57
+ - name: config/package.json.template
58
+ description: npm package.json with subpath exports
59
+ target: ./
60
+ required: true
61
+ variables:
62
+ - PACKAGE_NAME
63
+ - PACKAGE_DESCRIPTION
64
+ - AUTHOR_NAME
65
+
66
+ # Optional source code template
67
+ - name: src/schemas/example.schema.ts
68
+ description: Example Zod schema structure for data validation
69
+ target: src/schemas/
70
+ required: false
71
+
72
+ # Experimental template
73
+ - name: src/experimental/feature.ts
74
+ description: Experimental feature template for early testing
75
+ target: src/experimental/
76
+ required: false
77
+ experimental: true
28
78
 
29
79
  # Compatibility requirements
30
80
  requires:
@@ -262,6 +262,24 @@ class PaymentService {
262
262
 
263
263
  ---
264
264
 
265
+ ## Key Design Decisions (Optional)
266
+
267
+ <!-- This section is populated by @acp.clarification-capture when
268
+ create commands are invoked with --from-clar, --from-chat, or
269
+ --from-context. It can also be manually authored.
270
+ Omit this section entirely if no decisions to capture.
271
+
272
+ Group decisions by agent-inferred category using tables:
273
+
274
+ ### {Category}
275
+
276
+ | Decision | Choice | Rationale |
277
+ |---|---|---|
278
+ | {decision} | {choice} | {rationale} |
279
+ -->
280
+
281
+ ---
282
+
265
283
  ## Testing Strategy
266
284
 
267
285
  [Describe how to test code that uses this pattern:]
@@ -2,11 +2,11 @@
2
2
 
3
3
  project:
4
4
  name: remember-mcp
5
- version: 3.12.0
5
+ version: 3.15.4
6
6
  started: 2026-02-11
7
7
  status: in_progress
8
- current_milestone: M17
9
- last_updated: 2026-02-28
8
+ current_milestone: M18
9
+ last_updated: 2026-03-07
10
10
 
11
11
  milestones:
12
12
  - id: M1
@@ -301,7 +301,7 @@ milestones:
301
301
 
302
302
  - id: M16
303
303
  name: Ghost System
304
- status: in_progress
304
+ status: completed
305
305
  progress: 100%
306
306
  estimated_weeks: 2
307
307
  started: 2026-02-27
@@ -352,6 +352,20 @@ milestones:
352
352
  Optimize server performance: parallel queries, caching, memoization.
353
353
  See: agent/milestones/milestone-18-performance-tuning.md
354
354
 
355
+ - id: M19
356
+ name: New Search Modes, Ghost Tools & Emotional Exposure
357
+ status: completed
358
+ progress: 100%
359
+ estimated_weeks: 2-3
360
+ tasks_completed: 9
361
+ tasks_total: 9
362
+ completed: 2026-03-07
363
+ notes: |
364
+ Expand from 21 to 29 MCP tools. Unified search_by modes, ghost memory suite,
365
+ emotional dimension exposure, core mood introspection, space search_by.
366
+ See: agent/milestones/milestone-19-new-search-ghost-tools.md
367
+ Design: remember-core/agent/design/local.new-search-tools.md (authoritative)
368
+
355
369
  tasks:
356
370
  milestone_1:
357
371
  - id: task-1
@@ -1083,6 +1097,126 @@ tasks:
1083
1097
  notes: |
1084
1098
  Static imports for ghost-config and access-control
1085
1099
 
1100
+ milestone_19:
1101
+ - id: task-203
1102
+ name: Create remember_search_by Tool
1103
+ status: completed
1104
+ completed_date: 2026-03-07
1105
+ file: agent/tasks/milestone-19-new-search-ghost-tools/task-203-create-search-by-tool.md
1106
+ estimated_hours: 3-4
1107
+ notes: |
1108
+ ✅ Created src/tools/search-by.ts with 4 modes: byTime, byDensity, byRating, byDiscovery
1109
+ ✅ Full input schema with filters, sort_order, pagination
1110
+ ✅ Ghost mode support (searches owner collection, passes ghost_context)
1111
+ ✅ Registered in server-factory.ts (22 tools)
1112
+ ✅ 23 unit tests passing
1113
+ ✅ TypeScript clean, build passing, 352 total tests
1114
+
1115
+ - id: task-204
1116
+ name: Add New Filters to Existing Tool Schemas
1117
+ status: completed
1118
+ completed_date: 2026-03-07
1119
+ file: agent/tasks/milestone-19-new-search-ghost-tools/task-204-add-new-filters-existing-tools.md
1120
+ estimated_hours: 2-3
1121
+ notes: |
1122
+ ✅ search_memory: added exclude_types, rating_min, relationship_count_min, relationship_count_max
1123
+ ✅ query_memory: added rating_min
1124
+ ✅ search_space: added exclude_types, rating_min (passed through via cast)
1125
+ ⏳ find_similar: skipped — core FindSimilarInput has no filters support yet
1126
+ ✅ All filters pass through to core buildCombinedSearchFilters/buildMemoryOnlyFilters
1127
+ ✅ TypeScript clean, build passing, 352 tests
1128
+
1129
+ - id: task-205
1130
+ name: Add feel_* Fields to create_memory and update_memory
1131
+ status: completed
1132
+ completed_date: 2026-03-07
1133
+ file: agent/tasks/milestone-19-new-search-ghost-tools/task-205-add-feel-fields-create-update.md
1134
+ estimated_hours: 2-3
1135
+ dependencies: []
1136
+ notes: |
1137
+ ✅ 29 feel_* fields added to create_memory schema (21 discrete + 8 functional)
1138
+ ✅ 29 feel_* fields added to update_memory schema
1139
+ ✅ feel_valence correctly uses -1 to 1 range, all others 0 to 1
1140
+ ✅ feel_* fields extracted and passed through to core via spread + cast
1141
+ ✅ TypeScript clean, build passing, 352 tests
1142
+
1143
+ - id: task-206
1144
+ name: Add byProperty and bySignificance Modes
1145
+ status: completed
1146
+ completed_date: 2026-03-07
1147
+ file: agent/tasks/milestone-19-new-search-ghost-tools/task-206-add-byproperty-bysignificance-modes.md
1148
+ estimated_hours: 2-3
1149
+ dependencies: [task-203]
1150
+ notes: |
1151
+ ✅ byProperty and bySignificance added to mode enum and schema
1152
+ ✅ sort_field parameter added to schema
1153
+ ✅ Tool description updated with byProperty examples
1154
+ ✅ byProperty validates sort_field is required (returns error if missing)
1155
+ ⏳ Handler returns "not yet available" — blocked on core byProperty() impl
1156
+ ✅ 27 search-by tests passing, TypeScript clean, build passing
1157
+
1158
+ - id: task-207
1159
+ name: Add Emotional Composites to Search Results
1160
+ status: completed
1161
+ completed_date: 2026-03-07
1162
+ file: agent/tasks/milestone-19-new-search-ghost-tools/task-207-add-emotional-composites-search-results.md
1163
+ estimated_hours: 2-3
1164
+ notes: |
1165
+ ✅ No code changes needed — existing pass-through pattern handles this
1166
+ ✅ search-memory/query-memory: ...obj.properties spreads ALL Weaviate props
1167
+ ✅ find-similar/search-by/search-space: core returns all props in results
1168
+ ✅ Composites (total_significance, feel_significance, functional_significance)
1169
+ and REM metadata (rem_touched_at, rem_visits) auto-included when present
1170
+ ✅ Null/missing fields naturally omitted (Weaviate doesn't return null props)
1171
+
1172
+ - id: task-208
1173
+ name: Add byBroad and byRandom Modes
1174
+ status: completed
1175
+ completed_date: 2026-03-07
1176
+ file: agent/tasks/milestone-19-new-search-ghost-tools/task-208-add-bybroad-byrandom-modes.md
1177
+ estimated_hours: 3-4
1178
+ dependencies: [task-203]
1179
+ notes: |
1180
+ ✅ byBroad and byRandom added to mode enum and schema
1181
+ ✅ Tool description updated with byBroad truncated content docs
1182
+ ⏳ Handlers return "not yet available" — blocked on core impl
1183
+ ✅ 29 search-by tests passing, TypeScript clean, build passing
1184
+
1185
+ - id: task-209
1186
+ name: Create Ghost Memory Tool Suite (5 Tools)
1187
+ status: completed
1188
+ file: agent/tasks/milestone-19-new-search-ghost-tools/task-209-create-ghost-memory-tools.md
1189
+ estimated_hours: 4-6
1190
+ dependencies: [task-203]
1191
+ notes: |
1192
+ 5 thin wrappers: create, update, search, query, search_by
1193
+ Hardcode content_type: 'ghost' and ghost-specific tags
1194
+ ✅ All 5 tools created and registered in server-factory.ts
1195
+ ✅ 33 ghost tool tests passing, TypeScript clean, build passing
1196
+
1197
+ - id: task-210
1198
+ name: Create remember_get_core Tool
1199
+ status: completed
1200
+ file: agent/tasks/milestone-19-new-search-ghost-tools/task-210-create-get-core-tool.md
1201
+ estimated_hours: 2-3
1202
+ notes: |
1203
+ Consolidated mood + perception in single tool
1204
+ 6 mood dimensions, pressures, threshold flags, user perception
1205
+ Firestore: users/{user_id}/core/mood + perceptions subcollection
1206
+ ✅ Tool created, registered, 18 tests passing, TypeScript clean
1207
+
1208
+ - id: task-211
1209
+ name: Create remember_search_space_by Tool
1210
+ status: completed
1211
+ file: agent/tasks/milestone-19-new-search-ghost-tools/task-211-create-search-space-by-tool.md
1212
+ estimated_hours: 3-4
1213
+ notes: |
1214
+ Space variant of search_by (no byDensity mode)
1215
+ Rating is primary here (social feature)
1216
+ Requires spaces or groups param, moderation_filter, include_comments
1217
+ ✅ byDiscovery dispatches to core, 5 stub modes, 23 tests passing
1218
+ ✅ TypeScript clean, build passing
1219
+
1086
1220
  unassigned:
1087
1221
  - id: task-201
1088
1222
  name: Auto-bump remember-core via GitHub Actions
@@ -1095,9 +1229,9 @@ tasks:
1095
1229
 
1096
1230
  documentation:
1097
1231
  design_documents: 31
1098
- milestone_documents: 14
1232
+ milestone_documents: 15
1099
1233
  pattern_documents: 7
1100
- task_documents: 92
1234
+ task_documents: 101
1101
1235
 
1102
1236
  progress:
1103
1237
  planning: 100%
@@ -1105,6 +1239,28 @@ progress:
1105
1239
  overall: 85%
1106
1240
 
1107
1241
  recent_work:
1242
+ - date: 2026-03-07
1243
+ description: M19 Complete — New Search Modes, Ghost Tools & Emotional Exposure
1244
+ items:
1245
+ - Implemented all 9 tasks (task-203 through task-211)
1246
+ - 8 new MCP tools (22 → 30 total): search_by, 5 ghost tools, get_core, search_space_by
1247
+ - 29 feel_* emotional dimensions on create/update memory
1248
+ - New filters (exclude_types, rating_min) on search/query/space tools
1249
+ - 432 tests passing (431 passed, 1 skipped), TypeScript clean, build passing
1250
+ - Tool count 21 → 29 (8 new tools + schema enhancements to 3 existing)
1251
+ - Authoritative design doc in remember-core/agent/design/local.new-search-tools.md
1252
+ - Consolidated get_mood + get_perception → get_core, removed get_classifications (REST API)
1253
+
1254
+ - date: 2026-03-07
1255
+ description: Documentation Sync (@acp.sync)
1256
+ items:
1257
+ - Updated progress.yaml version 3.12.0 → 3.15.4
1258
+ - Updated progress.yaml current_milestone M17 → M18
1259
+ - Fixed M16 status in_progress → completed
1260
+ - Rewrote complete-tool-set.md to reflect actual 21-tool implementation
1261
+ - Updated user-preferences.md status and tool name (remember_update_preferences → remember_set_preference)
1262
+ - All 21 tools verified against server-factory.ts implementation
1263
+
1108
1264
  - date: 2026-02-28
1109
1265
  description: M17 remember-core Migration COMPLETED
1110
1266
  items: