@prmichaelsen/remember-mcp 2.2.1 → 2.3.0
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.
- package/AGENT.md +4 -4
- package/CHANGELOG.md +45 -0
- package/README.md +43 -3
- package/agent/commands/acp.init.md +376 -0
- package/agent/commands/acp.proceed.md +311 -0
- package/agent/commands/acp.status.md +280 -0
- package/agent/commands/acp.version-check-for-updates.md +275 -0
- package/agent/commands/acp.version-check.md +190 -0
- package/agent/commands/acp.version-update.md +288 -0
- package/agent/commands/command.template.md +273 -0
- package/agent/design/core-memory-user-profile.md +1253 -0
- package/agent/design/ghost-profiles-pseudonymous-identity.md +194 -0
- package/agent/design/publish-tools-confirmation-flow.md +922 -0
- package/agent/milestones/milestone-10-shared-spaces.md +169 -0
- package/agent/progress.yaml +90 -4
- package/agent/scripts/install.sh +118 -0
- package/agent/scripts/update.sh +22 -10
- package/agent/scripts/version.sh +35 -0
- package/agent/tasks/task-27-implement-llm-provider-interface.md +51 -0
- package/agent/tasks/task-28-implement-llm-provider-factory.md +64 -0
- package/agent/tasks/task-29-update-config-for-llm.md +71 -0
- package/agent/tasks/task-30-implement-bedrock-provider.md +147 -0
- package/agent/tasks/task-31-implement-background-job-service.md +120 -0
- package/agent/tasks/task-32-test-llm-provider-integration.md +152 -0
- package/agent/tasks/task-34-create-confirmation-token-service.md +191 -0
- package/agent/tasks/task-35-create-space-memory-types-schema.md +183 -0
- package/agent/tasks/task-36-implement-remember-publish.md +227 -0
- package/agent/tasks/task-37-implement-remember-confirm.md +225 -0
- package/agent/tasks/task-38-implement-remember-deny.md +161 -0
- package/agent/tasks/task-39-implement-remember-search-space.md +188 -0
- package/agent/tasks/task-40-implement-remember-query-space.md +193 -0
- package/agent/tasks/task-41-configure-firestore-ttl.md +188 -0
- package/agent/tasks/task-42-create-tests-shared-spaces.md +216 -0
- package/agent/tasks/task-43-update-documentation.md +255 -0
- package/dist/llm/types.d.ts +1 -0
- package/dist/server-factory.js +914 -1
- package/dist/server.js +916 -3
- package/dist/services/confirmation-token.service.d.ts +99 -0
- package/dist/services/confirmation-token.service.spec.d.ts +5 -0
- package/dist/tools/confirm.d.ts +20 -0
- package/dist/tools/deny.d.ts +19 -0
- package/dist/tools/publish.d.ts +22 -0
- package/dist/tools/query-space.d.ts +28 -0
- package/dist/tools/search-space.d.ts +29 -0
- package/dist/types/space-memory.d.ts +80 -0
- package/dist/weaviate/space-schema.d.ts +59 -0
- package/dist/weaviate/space-schema.spec.d.ts +5 -0
- package/package.json +1 -1
- package/src/llm/types.ts +0 -0
- package/src/server-factory.ts +33 -0
- package/src/server.ts +33 -0
- package/src/services/confirmation-token.service.spec.ts +254 -0
- package/src/services/confirmation-token.service.ts +232 -0
- package/src/tools/confirm.ts +176 -0
- package/src/tools/deny.ts +70 -0
- package/src/tools/publish.ts +167 -0
- package/src/tools/query-space.ts +197 -0
- package/src/tools/search-space.ts +189 -0
- package/src/types/space-memory.ts +94 -0
- package/src/weaviate/space-schema.spec.ts +131 -0
- package/src/weaviate/space-schema.ts +275 -0
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# Task 41: Configure Firestore TTL Policy
|
|
2
|
+
|
|
3
|
+
**Milestone**: M10 - Shared Spaces & Confirmation Flow
|
|
4
|
+
**Estimated Time**: 1 hour
|
|
5
|
+
**Dependencies**: Task 34 (Token Service)
|
|
6
|
+
**Status**: Not Started
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Objective
|
|
11
|
+
|
|
12
|
+
Configure Firestore Time-to-Live (TTL) policy to automatically delete expired confirmation tokens. This prevents accumulation of stale data and ensures cleanup without manual intervention.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Steps
|
|
17
|
+
|
|
18
|
+
### 1. Understand Firestore TTL
|
|
19
|
+
|
|
20
|
+
Research Firestore TTL configuration.
|
|
21
|
+
|
|
22
|
+
**Actions**:
|
|
23
|
+
- Read Firestore TTL documentation
|
|
24
|
+
- Understand collection group policies
|
|
25
|
+
- Learn about TTL field requirements
|
|
26
|
+
- Note deletion timing (within 24 hours of expiry)
|
|
27
|
+
|
|
28
|
+
**Expected Outcome**: TTL concept understood
|
|
29
|
+
|
|
30
|
+
### 2. Access GCP Console
|
|
31
|
+
|
|
32
|
+
Navigate to Firestore TTL configuration.
|
|
33
|
+
|
|
34
|
+
**Actions**:
|
|
35
|
+
- Open Google Cloud Console
|
|
36
|
+
- Navigate to Firestore
|
|
37
|
+
- Find "Time-to-live" section
|
|
38
|
+
- Verify project access
|
|
39
|
+
|
|
40
|
+
**Expected Outcome**: TTL configuration page accessed
|
|
41
|
+
|
|
42
|
+
### 3. Create TTL Policy
|
|
43
|
+
|
|
44
|
+
Configure automatic deletion for confirmation tokens.
|
|
45
|
+
|
|
46
|
+
**Actions**:
|
|
47
|
+
- Click "Create Policy"
|
|
48
|
+
- Select collection group: `requests`
|
|
49
|
+
- Set TTL field: `expires_at`
|
|
50
|
+
- Confirm policy creation
|
|
51
|
+
- Wait for policy to activate
|
|
52
|
+
|
|
53
|
+
**Expected Outcome**: TTL policy created
|
|
54
|
+
|
|
55
|
+
### 4. Verify Policy Configuration
|
|
56
|
+
|
|
57
|
+
Ensure policy is active and correct.
|
|
58
|
+
|
|
59
|
+
**Actions**:
|
|
60
|
+
- Check policy status (should be "Active")
|
|
61
|
+
- Verify collection group: `requests`
|
|
62
|
+
- Verify TTL field: `expires_at`
|
|
63
|
+
- Note policy ID for documentation
|
|
64
|
+
|
|
65
|
+
**Expected Outcome**: Policy verified
|
|
66
|
+
|
|
67
|
+
### 5. Test Token Expiry
|
|
68
|
+
|
|
69
|
+
Create test token and verify automatic deletion.
|
|
70
|
+
|
|
71
|
+
**Actions**:
|
|
72
|
+
- Create test confirmation request with short expiry (1 minute)
|
|
73
|
+
- Wait for expiry time to pass
|
|
74
|
+
- Wait up to 24 hours for deletion
|
|
75
|
+
- Verify token document is deleted
|
|
76
|
+
- Document deletion timing
|
|
77
|
+
|
|
78
|
+
**Expected Outcome**: Automatic deletion confirmed
|
|
79
|
+
|
|
80
|
+
### 6. Document Configuration
|
|
81
|
+
|
|
82
|
+
Create documentation for TTL setup.
|
|
83
|
+
|
|
84
|
+
**Actions**:
|
|
85
|
+
- Document steps in README or setup guide
|
|
86
|
+
- Include screenshots if helpful
|
|
87
|
+
- Note timing expectations (within 24 hours)
|
|
88
|
+
- Add troubleshooting tips
|
|
89
|
+
- Document policy ID
|
|
90
|
+
|
|
91
|
+
**Expected Outcome**: Configuration documented
|
|
92
|
+
|
|
93
|
+
### 7. Update Code Comments
|
|
94
|
+
|
|
95
|
+
Add comments about TTL in token service.
|
|
96
|
+
|
|
97
|
+
**Actions**:
|
|
98
|
+
- Update `confirmation-token.service.ts` comments
|
|
99
|
+
- Note that Firestore TTL handles deletion
|
|
100
|
+
- Explain `cleanupExpired()` is optional
|
|
101
|
+
- Document timing expectations
|
|
102
|
+
|
|
103
|
+
**Expected Outcome**: Code comments updated
|
|
104
|
+
|
|
105
|
+
### 8. Create Monitoring Alert (Optional)
|
|
106
|
+
|
|
107
|
+
Set up alert for TTL policy issues.
|
|
108
|
+
|
|
109
|
+
**Actions**:
|
|
110
|
+
- Create Cloud Monitoring alert
|
|
111
|
+
- Monitor for TTL policy errors
|
|
112
|
+
- Set notification channels
|
|
113
|
+
- Document alert configuration
|
|
114
|
+
|
|
115
|
+
**Expected Outcome**: Monitoring in place
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Verification
|
|
120
|
+
|
|
121
|
+
- [ ] Firestore TTL policy created
|
|
122
|
+
- [ ] Collection group set to `requests`
|
|
123
|
+
- [ ] TTL field set to `expires_at`
|
|
124
|
+
- [ ] Policy status is "Active"
|
|
125
|
+
- [ ] Test token automatically deleted
|
|
126
|
+
- [ ] Configuration documented
|
|
127
|
+
- [ ] Code comments updated
|
|
128
|
+
- [ ] Optional: Monitoring alert created
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Configuration Details
|
|
133
|
+
|
|
134
|
+
**Policy Settings**:
|
|
135
|
+
- **Collection Group**: `requests`
|
|
136
|
+
- **TTL Field**: `expires_at`
|
|
137
|
+
- **Deletion Timing**: Within 24 hours after expiry
|
|
138
|
+
- **Scope**: All documents in `pending_confirmations/{user_id}/requests/` collections
|
|
139
|
+
|
|
140
|
+
**Important Notes**:
|
|
141
|
+
- Deletion is not immediate (up to 24 hours)
|
|
142
|
+
- TTL field must be a Timestamp type
|
|
143
|
+
- Policy applies to collection group (all matching collections)
|
|
144
|
+
- No cost for TTL deletions
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Documentation Template
|
|
149
|
+
|
|
150
|
+
```markdown
|
|
151
|
+
## Firestore TTL Configuration
|
|
152
|
+
|
|
153
|
+
Confirmation tokens are automatically deleted after expiry using Firestore TTL.
|
|
154
|
+
|
|
155
|
+
### Setup
|
|
156
|
+
|
|
157
|
+
1. Go to [Firestore Console](https://console.cloud.google.com/firestore)
|
|
158
|
+
2. Navigate to "Time-to-live" section
|
|
159
|
+
3. Click "Create Policy"
|
|
160
|
+
4. Configure:
|
|
161
|
+
- Collection Group: `requests`
|
|
162
|
+
- TTL Field: `expires_at`
|
|
163
|
+
5. Save and wait for activation
|
|
164
|
+
|
|
165
|
+
### Behavior
|
|
166
|
+
|
|
167
|
+
- Tokens expire after 5 minutes
|
|
168
|
+
- Firestore deletes expired tokens within 24 hours
|
|
169
|
+
- No manual cleanup required
|
|
170
|
+
- Optional: Use `cleanupExpired()` for immediate cleanup
|
|
171
|
+
|
|
172
|
+
### Troubleshooting
|
|
173
|
+
|
|
174
|
+
- **Policy not active**: Wait a few minutes after creation
|
|
175
|
+
- **Tokens not deleted**: Check TTL field is Timestamp type
|
|
176
|
+
- **Errors**: Verify collection group name is correct
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Related Files
|
|
182
|
+
|
|
183
|
+
- Design: [`agent/design/publish-tools-confirmation-flow.md`](../design/publish-tools-confirmation-flow.md)
|
|
184
|
+
- Token Service: [`src/services/confirmation-token.service.ts`](../../src/services/confirmation-token.service.ts)
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
**Next Task**: Task 42 - Create Tests for Shared Spaces
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
# Task 42: Create Tests for Shared Spaces
|
|
2
|
+
|
|
3
|
+
**Milestone**: M10 - Shared Spaces & Confirmation Flow
|
|
4
|
+
**Estimated Time**: 4 hours
|
|
5
|
+
**Dependencies**: Tasks 34-40 (All implementation tasks)
|
|
6
|
+
**Status**: Not Started
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Objective
|
|
11
|
+
|
|
12
|
+
Create comprehensive test suite for shared spaces functionality, including unit tests, integration tests, and end-to-end workflow tests.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Steps
|
|
17
|
+
|
|
18
|
+
### 1. Review Existing Tests
|
|
19
|
+
|
|
20
|
+
Understand current test patterns.
|
|
21
|
+
|
|
22
|
+
**Actions**:
|
|
23
|
+
- Review existing unit tests in `tests/unit/`
|
|
24
|
+
- Review test utilities and mocks
|
|
25
|
+
- Understand Jest configuration
|
|
26
|
+
- Note testing patterns used
|
|
27
|
+
|
|
28
|
+
**Expected Outcome**: Test patterns understood
|
|
29
|
+
|
|
30
|
+
### 2. Create Integration Test File
|
|
31
|
+
|
|
32
|
+
Create end-to-end test for publish workflow.
|
|
33
|
+
|
|
34
|
+
**Actions**:
|
|
35
|
+
- Create `tests/integration/publish-workflow.test.ts`
|
|
36
|
+
- Test complete flow: publish → confirm → verify
|
|
37
|
+
- Test complete flow: publish → deny → verify
|
|
38
|
+
- Use actual Weaviate and Firestore (or emulators)
|
|
39
|
+
- Clean up test data after each test
|
|
40
|
+
|
|
41
|
+
**Expected Outcome**: Integration tests created
|
|
42
|
+
|
|
43
|
+
### 3. Test Token Service
|
|
44
|
+
|
|
45
|
+
Comprehensive tests for confirmation tokens.
|
|
46
|
+
|
|
47
|
+
**Actions**:
|
|
48
|
+
- Verify `tests/unit/confirmation-token.service.test.ts` exists
|
|
49
|
+
- Test token creation
|
|
50
|
+
- Test token validation
|
|
51
|
+
- Test token expiry
|
|
52
|
+
- Test confirm/deny/retract flows
|
|
53
|
+
- Test cleanup function
|
|
54
|
+
- Mock Firestore calls
|
|
55
|
+
|
|
56
|
+
**Expected Outcome**: Token service fully tested
|
|
57
|
+
|
|
58
|
+
### 4. Test Space Schema
|
|
59
|
+
|
|
60
|
+
Test space collection management.
|
|
61
|
+
|
|
62
|
+
**Actions**:
|
|
63
|
+
- Verify `tests/unit/space-schema.test.ts` exists
|
|
64
|
+
- Test `ensureSpaceCollection()`
|
|
65
|
+
- Test collection name generation
|
|
66
|
+
- Test space ID sanitization
|
|
67
|
+
- Test display name mapping
|
|
68
|
+
- Mock Weaviate client
|
|
69
|
+
|
|
70
|
+
**Expected Outcome**: Space schema fully tested
|
|
71
|
+
|
|
72
|
+
### 5. Test All Tools
|
|
73
|
+
|
|
74
|
+
Verify all 5 new tools have tests.
|
|
75
|
+
|
|
76
|
+
**Actions**:
|
|
77
|
+
- Verify `tests/unit/publish.test.ts` exists
|
|
78
|
+
- Verify `tests/unit/confirm.test.ts` exists
|
|
79
|
+
- Verify `tests/unit/deny.test.ts` exists
|
|
80
|
+
- Verify `tests/unit/search-space.test.ts` exists
|
|
81
|
+
- Verify `tests/unit/query-space.test.ts` exists
|
|
82
|
+
- Ensure comprehensive coverage
|
|
83
|
+
- Test success and error cases
|
|
84
|
+
|
|
85
|
+
**Expected Outcome**: All tools fully tested
|
|
86
|
+
|
|
87
|
+
### 6. Test Multi-User Scenarios
|
|
88
|
+
|
|
89
|
+
Test discovery across users.
|
|
90
|
+
|
|
91
|
+
**Actions**:
|
|
92
|
+
- User A publishes memory
|
|
93
|
+
- User B searches space and finds it
|
|
94
|
+
- User B queries space about it
|
|
95
|
+
- Verify attribution (author_id)
|
|
96
|
+
- Verify original memory unchanged
|
|
97
|
+
|
|
98
|
+
**Expected Outcome**: Multi-user discovery working
|
|
99
|
+
|
|
100
|
+
### 7. Test Security
|
|
101
|
+
|
|
102
|
+
Verify security constraints.
|
|
103
|
+
|
|
104
|
+
**Actions**:
|
|
105
|
+
- Test user can only publish own memories
|
|
106
|
+
- Test tokens are one-time use
|
|
107
|
+
- Test tokens expire correctly
|
|
108
|
+
- Test permission denied errors
|
|
109
|
+
- Test token replay attacks fail
|
|
110
|
+
|
|
111
|
+
**Expected Outcome**: Security verified
|
|
112
|
+
|
|
113
|
+
### 8. Run All Tests
|
|
114
|
+
|
|
115
|
+
Execute complete test suite.
|
|
116
|
+
|
|
117
|
+
**Actions**:
|
|
118
|
+
- Run `npm test` (unit tests)
|
|
119
|
+
- Run `npm run test:e2e` (integration tests)
|
|
120
|
+
- Verify all tests passing
|
|
121
|
+
- Check test coverage
|
|
122
|
+
- Fix any failing tests
|
|
123
|
+
|
|
124
|
+
**Expected Outcome**: All tests passing
|
|
125
|
+
|
|
126
|
+
### 9. Update Test Documentation
|
|
127
|
+
|
|
128
|
+
Document test coverage and patterns.
|
|
129
|
+
|
|
130
|
+
**Actions**:
|
|
131
|
+
- Update README with test instructions
|
|
132
|
+
- Document test data setup
|
|
133
|
+
- Document emulator usage (if applicable)
|
|
134
|
+
- Note coverage goals
|
|
135
|
+
|
|
136
|
+
**Expected Outcome**: Test documentation complete
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Verification
|
|
141
|
+
|
|
142
|
+
- [ ] Integration test file created
|
|
143
|
+
- [ ] Token service tests complete
|
|
144
|
+
- [ ] Space schema tests complete
|
|
145
|
+
- [ ] All 5 tool tests complete
|
|
146
|
+
- [ ] Multi-user scenarios tested
|
|
147
|
+
- [ ] Security tests complete
|
|
148
|
+
- [ ] All unit tests passing
|
|
149
|
+
- [ ] All integration tests passing
|
|
150
|
+
- [ ] Test coverage adequate (>70%)
|
|
151
|
+
- [ ] Test documentation updated
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Test Structure
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
tests/
|
|
159
|
+
├── unit/
|
|
160
|
+
│ ├── confirmation-token.service.test.ts
|
|
161
|
+
│ ├── space-schema.test.ts
|
|
162
|
+
│ ├── publish.test.ts
|
|
163
|
+
│ ├── confirm.test.ts
|
|
164
|
+
│ ├── deny.test.ts
|
|
165
|
+
│ ├── search-space.test.ts
|
|
166
|
+
│ └── query-space.test.ts
|
|
167
|
+
└── integration/
|
|
168
|
+
└── publish-workflow.test.ts
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Example Integration Test
|
|
174
|
+
|
|
175
|
+
```typescript
|
|
176
|
+
describe('Publish Workflow', () => {
|
|
177
|
+
it('should publish memory to space with confirmation', async () => {
|
|
178
|
+
// 1. Create test memory
|
|
179
|
+
const memory = await createTestMemory(userId);
|
|
180
|
+
|
|
181
|
+
// 2. Request publish
|
|
182
|
+
const publishResult = await handlePublish({
|
|
183
|
+
memory_id: memory.id,
|
|
184
|
+
target: 'the_void'
|
|
185
|
+
}, userId);
|
|
186
|
+
|
|
187
|
+
const { token } = JSON.parse(publishResult);
|
|
188
|
+
expect(token).toBeDefined();
|
|
189
|
+
|
|
190
|
+
// 3. Confirm publish
|
|
191
|
+
const confirmResult = await handleConfirm({ token }, userId);
|
|
192
|
+
const { space_memory_id } = JSON.parse(confirmResult).payload;
|
|
193
|
+
|
|
194
|
+
// 4. Verify in space
|
|
195
|
+
const spaceMemory = await getSpaceMemory('the_void', space_memory_id);
|
|
196
|
+
expect(spaceMemory).toBeDefined();
|
|
197
|
+
expect(spaceMemory.author_id).toBe(userId);
|
|
198
|
+
|
|
199
|
+
// 5. Verify original unchanged
|
|
200
|
+
const originalMemory = await getUserMemory(userId, memory.id);
|
|
201
|
+
expect(originalMemory).toBeDefined();
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## Related Files
|
|
209
|
+
|
|
210
|
+
- Design: [`agent/design/publish-tools-confirmation-flow.md`](../design/publish-tools-confirmation-flow.md)
|
|
211
|
+
- Jest Config: [`jest.config.js`](../../jest.config.js)
|
|
212
|
+
- E2E Config: [`jest.e2e.config.js`](../../jest.e2e.config.js)
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
**Next Task**: Task 43 - Update Documentation
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
# Task 43: Update Documentation
|
|
2
|
+
|
|
3
|
+
**Milestone**: M10 - Shared Spaces & Confirmation Flow
|
|
4
|
+
**Estimated Time**: 2 hours
|
|
5
|
+
**Dependencies**: Tasks 34-42 (All implementation and testing)
|
|
6
|
+
**Status**: Not Started
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Objective
|
|
11
|
+
|
|
12
|
+
Update all project documentation to reflect the new shared spaces functionality, including README, CHANGELOG, and any relevant design documents.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Steps
|
|
17
|
+
|
|
18
|
+
### 1. Update README.md
|
|
19
|
+
|
|
20
|
+
Add shared spaces section to README.
|
|
21
|
+
|
|
22
|
+
**Actions**:
|
|
23
|
+
- Add "Shared Spaces" section
|
|
24
|
+
- Document 5 new tools (publish, confirm, deny, search_space, query_space)
|
|
25
|
+
- Update tool count (17 total: 12 existing + 5 new)
|
|
26
|
+
- Add usage examples for publish workflow
|
|
27
|
+
- Document "The Void" space
|
|
28
|
+
- Add configuration notes (Firestore TTL)
|
|
29
|
+
|
|
30
|
+
**Expected Outcome**: README updated
|
|
31
|
+
|
|
32
|
+
### 2. Update CHANGELOG.md
|
|
33
|
+
|
|
34
|
+
Document new features in changelog.
|
|
35
|
+
|
|
36
|
+
**Actions**:
|
|
37
|
+
- Create new version entry (e.g., v2.3.0)
|
|
38
|
+
- Add "Added" section with 5 new tools
|
|
39
|
+
- Add "Added" section with token-based confirmation pattern
|
|
40
|
+
- Add "Added" section with shared spaces support
|
|
41
|
+
- Note breaking changes (if any)
|
|
42
|
+
- Document Firestore TTL requirement
|
|
43
|
+
|
|
44
|
+
**Expected Outcome**: CHANGELOG updated
|
|
45
|
+
|
|
46
|
+
### 3. Update Tool Documentation
|
|
47
|
+
|
|
48
|
+
Document each new tool.
|
|
49
|
+
|
|
50
|
+
**Actions**:
|
|
51
|
+
- Create or update tool reference documentation
|
|
52
|
+
- Include tool schemas
|
|
53
|
+
- Add usage examples
|
|
54
|
+
- Document parameters and responses
|
|
55
|
+
- Add error codes and messages
|
|
56
|
+
|
|
57
|
+
**Expected Outcome**: Tool docs complete
|
|
58
|
+
|
|
59
|
+
### 4. Update Architecture Documentation
|
|
60
|
+
|
|
61
|
+
Document new architecture components.
|
|
62
|
+
|
|
63
|
+
**Actions**:
|
|
64
|
+
- Update architecture diagrams (if any)
|
|
65
|
+
- Document token-based confirmation pattern
|
|
66
|
+
- Document space collections
|
|
67
|
+
- Document naming conventions (snake_case)
|
|
68
|
+
- Add security considerations
|
|
69
|
+
|
|
70
|
+
**Expected Outcome**: Architecture docs updated
|
|
71
|
+
|
|
72
|
+
### 5. Create Migration Guide
|
|
73
|
+
|
|
74
|
+
Help users adopt new features.
|
|
75
|
+
|
|
76
|
+
**Actions**:
|
|
77
|
+
- Document how to enable shared spaces
|
|
78
|
+
- Explain Firestore TTL setup
|
|
79
|
+
- Provide migration examples
|
|
80
|
+
- Note any configuration changes
|
|
81
|
+
- Add troubleshooting section
|
|
82
|
+
|
|
83
|
+
**Expected Outcome**: Migration guide created
|
|
84
|
+
|
|
85
|
+
### 6. Update API Reference
|
|
86
|
+
|
|
87
|
+
Update API documentation.
|
|
88
|
+
|
|
89
|
+
**Actions**:
|
|
90
|
+
- Add new tools to API reference
|
|
91
|
+
- Document request/response formats
|
|
92
|
+
- Add code examples
|
|
93
|
+
- Update tool count
|
|
94
|
+
- Note version requirements
|
|
95
|
+
|
|
96
|
+
**Expected Outcome**: API reference updated
|
|
97
|
+
|
|
98
|
+
### 7. Update Design Documents
|
|
99
|
+
|
|
100
|
+
Mark design as implemented.
|
|
101
|
+
|
|
102
|
+
**Actions**:
|
|
103
|
+
- Update [`agent/design/publish-tools-confirmation-flow.md`](../design/publish-tools-confirmation-flow.md)
|
|
104
|
+
- Change status from "Design Specification" to "Implemented"
|
|
105
|
+
- Add implementation notes
|
|
106
|
+
- Link to relevant code files
|
|
107
|
+
- Document any deviations from design
|
|
108
|
+
|
|
109
|
+
**Expected Outcome**: Design docs updated
|
|
110
|
+
|
|
111
|
+
### 8. Update Progress Tracking
|
|
112
|
+
|
|
113
|
+
Update progress.yaml with M10 completion.
|
|
114
|
+
|
|
115
|
+
**Actions**:
|
|
116
|
+
- Mark M10 tasks as completed
|
|
117
|
+
- Update milestone status
|
|
118
|
+
- Add completion notes
|
|
119
|
+
- Update overall progress percentage
|
|
120
|
+
- Document next steps
|
|
121
|
+
|
|
122
|
+
**Expected Outcome**: Progress tracking current
|
|
123
|
+
|
|
124
|
+
### 9. Create Usage Examples
|
|
125
|
+
|
|
126
|
+
Add practical examples.
|
|
127
|
+
|
|
128
|
+
**Actions**:
|
|
129
|
+
- Create example: Publishing a memory
|
|
130
|
+
- Create example: Searching "The Void"
|
|
131
|
+
- Create example: Querying shared spaces
|
|
132
|
+
- Add to README or examples directory
|
|
133
|
+
- Include error handling
|
|
134
|
+
|
|
135
|
+
**Expected Outcome**: Examples available
|
|
136
|
+
|
|
137
|
+
### 10. Review and Proofread
|
|
138
|
+
|
|
139
|
+
Ensure documentation quality.
|
|
140
|
+
|
|
141
|
+
**Actions**:
|
|
142
|
+
- Review all updated documentation
|
|
143
|
+
- Check for typos and errors
|
|
144
|
+
- Verify links work
|
|
145
|
+
- Ensure consistency
|
|
146
|
+
- Get feedback if possible
|
|
147
|
+
|
|
148
|
+
**Expected Outcome**: Documentation polished
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Verification
|
|
153
|
+
|
|
154
|
+
- [ ] README.md updated with shared spaces section
|
|
155
|
+
- [ ] CHANGELOG.md updated with new version
|
|
156
|
+
- [ ] Tool documentation complete
|
|
157
|
+
- [ ] Architecture documentation updated
|
|
158
|
+
- [ ] Migration guide created
|
|
159
|
+
- [ ] API reference updated
|
|
160
|
+
- [ ] Design documents marked as implemented
|
|
161
|
+
- [ ] Progress.yaml updated
|
|
162
|
+
- [ ] Usage examples created
|
|
163
|
+
- [ ] Documentation reviewed and proofread
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## README.md Addition
|
|
168
|
+
|
|
169
|
+
```markdown
|
|
170
|
+
## Shared Spaces
|
|
171
|
+
|
|
172
|
+
Publish memories to shared discovery spaces where other users can find them.
|
|
173
|
+
|
|
174
|
+
### The Void
|
|
175
|
+
|
|
176
|
+
"The Void" is a shared space for discovering thoughts and ideas from other users.
|
|
177
|
+
|
|
178
|
+
### Publishing Workflow
|
|
179
|
+
|
|
180
|
+
1. **Request Publication**: Generate confirmation token
|
|
181
|
+
```bash
|
|
182
|
+
remember_publish(memory_id="abc123", target="the_void")
|
|
183
|
+
# Returns: { token: "xyz789", ... }
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
2. **User Confirms**: Execute the publication
|
|
187
|
+
```bash
|
|
188
|
+
remember_confirm(token="xyz789")
|
|
189
|
+
# Memory now in The Void
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
3. **Discover**: Search shared spaces
|
|
193
|
+
```bash
|
|
194
|
+
remember_search_space(query="interesting ideas", space="the_void")
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Tools
|
|
198
|
+
|
|
199
|
+
- `remember_publish` - Request to publish memory (generates token)
|
|
200
|
+
- `remember_confirm` - Confirm any pending action
|
|
201
|
+
- `remember_deny` - Cancel any pending action
|
|
202
|
+
- `remember_search_space` - Search shared spaces
|
|
203
|
+
- `remember_query_space` - Ask questions about shared memories
|
|
204
|
+
|
|
205
|
+
### Configuration
|
|
206
|
+
|
|
207
|
+
**Firestore TTL**: Configure automatic cleanup of expired tokens
|
|
208
|
+
- Collection Group: `requests`
|
|
209
|
+
- TTL Field: `expires_at`
|
|
210
|
+
- See [Firestore TTL Guide](docs/firestore-ttl.md)
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## CHANGELOG.md Entry
|
|
216
|
+
|
|
217
|
+
```markdown
|
|
218
|
+
## [2.3.0] - 2026-02-16
|
|
219
|
+
|
|
220
|
+
### Added
|
|
221
|
+
- **Shared Spaces**: Publish memories to shared discovery spaces
|
|
222
|
+
- **The Void**: First shared space for discovering thoughts and ideas
|
|
223
|
+
- **Token-Based Confirmation**: Secure two-phase workflow for sensitive operations
|
|
224
|
+
- **5 New Tools**:
|
|
225
|
+
- `remember_publish` - Request to publish memory to shared space
|
|
226
|
+
- `remember_confirm` - Confirm and execute pending actions
|
|
227
|
+
- `remember_deny` - Cancel pending actions
|
|
228
|
+
- `remember_search_space` - Search shared spaces
|
|
229
|
+
- `remember_query_space` - Query shared spaces with natural language
|
|
230
|
+
- **Confirmation Token Service**: Manages one-time tokens with 5-minute expiry
|
|
231
|
+
- **Space Collections**: `Memory_the_void` for shared memories
|
|
232
|
+
- **Firestore TTL Support**: Automatic cleanup of expired tokens
|
|
233
|
+
|
|
234
|
+
### Changed
|
|
235
|
+
- Tool count increased from 12 to 17
|
|
236
|
+
- Collection naming uses snake_case for spaces
|
|
237
|
+
|
|
238
|
+
### Security
|
|
239
|
+
- One-time use tokens prevent replay attacks
|
|
240
|
+
- User ownership verification before publishing
|
|
241
|
+
- Fresh data fetch during confirmation
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## Related Files
|
|
247
|
+
|
|
248
|
+
- README: [`README.md`](../../README.md)
|
|
249
|
+
- CHANGELOG: [`CHANGELOG.md`](../../CHANGELOG.md)
|
|
250
|
+
- Design: [`agent/design/publish-tools-confirmation-flow.md`](../design/publish-tools-confirmation-flow.md)
|
|
251
|
+
- Progress: [`agent/progress.yaml`](../progress.yaml)
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
**Next Task**: None - M10 Complete!
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.d.ts.map
|