0660727faf975154dacf6f9c6cfc4fac4bbe2e25
This commit introduces a significant refactor to the auto-trigger and recovery mechanisms for the analysis pipeline. The core change is the introduction of a more granular `CaseAnalysisState` enum, replacing the simpler `AutoDecision`. The `evaluate_state` function now computes the full lifecycle state of a case, considering factors like the presence of recordings, pending transcripts, queued jobs, failure markers, document staleness, and an idle threshold. This provides a richer understanding of the case's status. The `evaluate_case` function is retained as a backwards-compatible adapter for existing callsites and tests. It maps the new `CaseAnalysisState` to the old `AutoDecision` enum, simplifying the decision to "enqueue" or "skip." The `recovery` module is also refactored. The `scan_and_enqueue` function is replaced by `boot_scan_state`, which is now purely observational. It aggregates statistics about cases in different states at boot time and logs them, but it no longer attempts to re-enqueue jobs. The responsibility for triggering analysis now lies with the per-render `try_enqueue_all_for_user` logic, which utilizes the new typed state machine. This refactoring aims to provide more clarity and control over the analysis pipeline's state management, particularly in handling cases that have previously failed or are waiting for further input.
Description
No description provided
Languages
Rust
74%
Kotlin
12.7%
HTML
4.9%
Python
4.1%
Shell
3.8%
Other
0.5%