40ca3e522f
feat(domain,infra,app): rotation/rétention log.jsonl + lecture paginée (LS6)
...
Backend uniquement (UI React repoussée à LS7) :
- domain : port ConversationArchive + structs SegmentStats/PageCursor/PageDirection/
TurnSlice/RotationDecision/RotationThresholds, fn pures rotation_plan/clamp_page_limit
+ consts ; re-exports lib.
- infrastructure : impl ConversationArchive pour FsConversationLog (stats/rotate/page
+ helpers), archive segmentée hors chemin chaud.
- application : ReadConversationPage + DTO + ConversationArchiveProvider (conversation/paginate),
RotateConversationLog (conversation/rotate), exports mod/lib.
- app-tauri : AppConversationArchiveProvider + wiring (state), rotation détachée dans
launch_agent + commande read_conversation_page (commands), DTOs (dto),
commande enregistrée (generate_handler!).
- tests (QA, verts) : conversation_log, conversation_rotate_paginate (nouveau),
dto (module test). Pivots INV-LS6 et cohérence fold-après-rotation verts.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-22 12:58:40 +02:00
13a953cb05
feat(domain,infra,app): borne summary_md du handoff + durcissement seam LLM (LS5)
...
Clôt le must-have perf du handoff :
- domain : HANDOFF_SUMMARY_MAX_CHARS + bound_handoff_summary (helpers privés), re-export lib.
- infrastructure : TURN_LINE_MAX_CHARS + élision dans render_turn (summarizer), re-exports.
- application : borne entre fold et save (conversation/record), borne défensive
dans resolve_handoff (agent/lifecycle) + module test.
- seam LLM prêt mais NON activé (aucun LLM câblé).
- tests (QA, verts) : conversation_log, conversation_record, agent_lifecycle.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-22 12:29:44 +02:00
2a5873dcf0
feat(persistence): P6a — use case RecordTurn (checkpoint fin de tour, isolé)
...
Logique du checkpoint conversationnel isolée et testable, sans câblage live :
append du tour au log canonique → load handoff → fold incrémental (tour neuf
seul) → save. Mapping StoreError→AppError via From existant. Debounce repoussé.
- application/src/conversation/{mod,record}.rs : RecordTurn::record
- tests : 6 cas (incrémentalité prouvée via summarizer-espion, propagation
d'erreur sans effet de bord, isolation par conversation) ; suite verte
Câblage sur les seams réels (reply/ask) + composition root = P6b.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-12 13:20:05 +02:00