feat(v2/approvals): per-card titles and structured options
Approval cards now carry a required title (Add MCP Request, Install Packages Request, Rebuild Request, Credentials Request) and structured options with distinct pre-click label, post-click selectedLabel (e.g. "✅ Approved" / "❌ Rejected"), and value used for click routing. The title and normalized options are persisted in pending_questions so the post-click card edit can render the correct per-type title and selected label on both chat-sdk channels and Discord interactions. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -375,11 +375,15 @@ describe('pending questions', () => {
|
||||
platform_id: 'chan-1',
|
||||
channel_type: 'discord',
|
||||
thread_id: null,
|
||||
title: 'Test',
|
||||
options: [{ label: 'Yes', selectedLabel: 'Yes', value: 'yes' }],
|
||||
created_at: now(),
|
||||
});
|
||||
const result = getPendingQuestion('q-1');
|
||||
expect(result).toBeDefined();
|
||||
expect(result!.session_id).toBe('sess-1');
|
||||
expect(result!.title).toBe('Test');
|
||||
expect(result!.options[0].value).toBe('yes');
|
||||
});
|
||||
|
||||
it('should delete', () => {
|
||||
@@ -390,6 +394,8 @@ describe('pending questions', () => {
|
||||
platform_id: null,
|
||||
channel_type: null,
|
||||
thread_id: null,
|
||||
title: 'Test',
|
||||
options: [{ label: 'Yes', selectedLabel: 'Yes', value: 'yes' }],
|
||||
created_at: now(),
|
||||
});
|
||||
deletePendingQuestion('q-1');
|
||||
|
||||
Reference in New Issue
Block a user