Add revisioned decisions and scoped consultation lifecycle

This commit is contained in:
aiagent
2026-10-19 22:28:53 -07:00
parent 0fcfe1c024
commit 6e4178dc79
27 changed files with 1431 additions and 192 deletions
+4 -2
View File
@@ -42,11 +42,13 @@ class QueueTests(unittest.TestCase):
self.store.task(dict(id='task',name='Task',session_id='worker',
eta_min_minutes=1,eta_max_minutes=2,eta_basis='Measured'))
self.store.decision(dict(id='decision',title='Choose',question='Which approach?'))
for notice in self.store.decision_notifications()['notifications']:
self.store.decision_ack(dict(notification_id=notice['notification_id']))
self.store.eta_tick(70)
with patch('agent_control.store.time.time',return_value=80):
self.store.hook(firing(event_id='recent',severity='critical'))
self.store.hook_ack(dict(notification_id=first['notifications'][0]['notification_id']))
self.store.decision_respond('decision',dict(option_id=None,comment='Selected',idempotency_key='choice'))
self.store.decision_respond('decision',dict(option_id=None,comment='Selected',idempotency_key='choice',expected_revision=1))
self.store.task_report(dict(report_id='receipt',task_id='task',session_id='worker',
stage='progress',current_progress='Verified',summary='Progress',evidence=[]))
health=self.store.queue_health(100)
@@ -101,7 +103,7 @@ class QueueTests(unittest.TestCase):
def test_coalesce_does_not_touch_user_decision_or_message(self):
self.store.session(dict(id='s',name='Synthetic'))
self.store.decision(dict(id='d',title='Choose',question='Which approach?'))
self.store.decision_respond('d',dict(option_id=None,comment='User choice',idempotency_key='choice'))
self.store.decision_respond('d',dict(option_id=None,comment='User choice',idempotency_key='choice',expected_revision=1))
before=self.store.decision_notifications()
self.store.send(dict(session_id='s',text='Real user request',idempotency_key='user-message'))
messages=self.store.messages('s')