feat(session-limits): LS5 — détecteur niveau 2 déclaratif + parsing temps partagé
Ajoute un détecteur niveau 2 (RateLimitParser, regex confiné à l'infra) qui repère les mentions de limite de session dans la sortie textuelle, et factorise le parsing d'heures dans un module pur (timeparse) partagé entre les niveaux 1 et 2. Le détecteur Claude niveau 1 est refactoré vers timeparse (~-121 lignes). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -250,12 +250,11 @@ mod tests {
|
||||
.await
|
||||
.expect("chaque réveil doit tirer")
|
||||
.expect("canal ouvert");
|
||||
if let ScheduledTask::ResumeAgent {
|
||||
// `ScheduledTask` est mono-variante : déstructuration directe (pas de `if let`).
|
||||
let ScheduledTask::ResumeAgent {
|
||||
conversation_id, ..
|
||||
} = task
|
||||
{
|
||||
got.push(conversation_id.expect("conv présent"));
|
||||
}
|
||||
} = task;
|
||||
got.push(conversation_id.expect("conv présent"));
|
||||
}
|
||||
got.sort();
|
||||
assert_eq!(got, vec!["a".to_owned(), "b".to_owned(), "c".to_owned()]);
|
||||
@ -282,12 +281,10 @@ mod tests {
|
||||
.await
|
||||
.expect("les survivants doivent tirer")
|
||||
.expect("canal ouvert");
|
||||
if let ScheduledTask::ResumeAgent {
|
||||
let ScheduledTask::ResumeAgent {
|
||||
conversation_id, ..
|
||||
} = task
|
||||
{
|
||||
got.push(conversation_id.expect("conv présent"));
|
||||
}
|
||||
} = task;
|
||||
got.push(conversation_id.expect("conv présent"));
|
||||
}
|
||||
got.sort();
|
||||
assert_eq!(got, vec!["keep-1".to_owned(), "keep-2".to_owned()]);
|
||||
|
||||
Reference in New Issue
Block a user