fix(session): retry recoverable memory extraction failures - #4437
fix(session): retry recoverable memory extraction failures#4437CryoThrust wants to merge 1 commit into
Conversation
34eea51 to
cf9e2bc
Compare
linhongyu510
left a comment
There was a problem hiding this comment.
The new retry branch is not reachable through the real queue lifecycle after the original extraction failure. _run_memory_extraction() records .failed.json and returns normally; resume_queued_commit() therefore returns True, SessionCommitProcessor.on_dequeue() completes normally, and QueueManager.process_one() unconditionally calls ack(), deleting the persistent message. Nothing invokes resume_queued_commit() a second time for that archive, and a later empty user commit creates no replacement work. The new test fabricates the failed marker and directly calls resume_queued_commit(), so it proves that a hypothetical replay would work but not that any replay is scheduled. Please add a processor/queue-level regression that fails extraction once, observes the first message lifecycle, then proves the same archive is actually re-enqueued/retried and reaches .done without a process restart. The implementation likely needs an explicit recoverable retry signal/re-enqueue before ack, with bounded retry/backoff semantics, rather than only handling a marker on an otherwise unreachable second invocation.
Summary
Fixes #4419
Validation
python -m py_compile openviking/session/session.py tests/unit/session/test_session_commit_resume.pygit diff --checkapschedulerdependency