bruno
011ec84f23
feat: outils IA de lecture et d'edition des classeurs existants #153
A6 : list_xlsx_sheets (noms + dimensions + truncated), xlsx_to_markdown
(table bornee 100x20 pour le contexte LLM), update_xlsx_cells et
append_xlsx_rows (WRITE + confirmation, via edit_xlsx_cells : verrou,
ecriture atomique, neutralisation des formules, 409 lossy). Les lignes
ajoutees sont coercees comme dans le viewer (A10). Labels de step
ai.step.xlsx_* FR/EN ; update_xlsx_cells/append_xlsx_rows branches sur
MUTATING_TOOLS et FILE_WRITE_TOOLS (refresh viewer via obsigate:file-written).
Tests : test_spreadsheet_tools.py 17 (risque, confirmation, persistance,
garde formule heritee, coercion) + contre-preuve (cells vide -> 2 echecs).
ruff 0, mypy 0, i18n parity, validate-imports.
🤖 Generated with Codebuff
Co-Authored-By: Codebuff <[email protected]>
2026-09-28 12:05:16 -04:00
..
2026-09-28 11:52:42 -04:00
2026-09-28 11:52:42 -04:00
2026-09-23 09:14:34 -04:00
2026-09-07 20:29:33 -04:00
2026-09-24 10:05:32 -04:00
2026-09-11 17:06:40 -04:00
2026-09-11 21:56:50 -04:00
2026-09-26 14:33:40 -04:00
2026-09-12 11:38:46 -04:00
2026-09-26 16:59:25 -04:00
2026-09-22 14:48:51 -04:00
2026-09-27 12:43:31 -04:00
2026-09-17 20:05:08 -04:00
2026-09-14 15:31:12 -04:00
2026-09-24 10:05:32 -04:00
2026-09-27 12:43:31 -04:00
2026-09-17 20:05:08 -04:00
2026-09-17 11:52:03 -04:00
2026-09-17 11:52:03 -04:00
2026-09-26 22:44:12 -04:00
2026-09-17 13:55:36 -04:00
2026-09-27 11:28:35 -04:00
2026-09-09 23:18:29 -04:00
2026-09-06 18:42:26 -04:00
2026-09-18 15:01:14 -04:00
2026-09-26 18:34:06 -04:00
2026-09-27 12:43:31 -04:00
2026-09-23 07:47:04 -04:00
2026-09-23 07:47:04 -04:00
2026-09-23 07:47:04 -04:00
2026-09-23 07:47:04 -04:00
2026-09-11 21:28:05 -04:00
2026-09-23 09:14:34 -04:00
2026-09-23 09:14:34 -04:00
2026-09-27 10:35:33 -04:00
2026-09-15 09:26:31 -04:00
2026-09-13 10:51:42 -04:00
2026-09-11 01:40:21 -04:00
2026-08-25 09:13:06 -04:00
2026-09-09 13:04:40 -04:00
2026-09-17 20:05:08 -04:00
2026-09-22 19:04:26 -04:00
2026-09-10 09:01:38 -04:00
2026-09-15 09:26:31 -04:00
2026-09-09 23:18:29 -04:00
2026-09-26 18:10:10 -04:00
2026-09-27 20:39:12 -04:00
2026-06-04 23:32:47 -04:00
2026-09-18 08:59:54 -04:00
2026-09-27 12:43:31 -04:00
2026-09-12 00:12:20 -04:00
2026-09-11 17:06:40 -04:00
2026-09-16 22:13:42 -04:00
2026-09-28 12:05:16 -04:00
2026-09-26 18:10:10 -04:00
2026-09-06 18:42:20 -04:00
2026-09-17 13:59:26 -04:00
2026-09-15 17:46:51 -04:00
2026-09-16 21:10:38 -04:00
2026-09-11 20:52:02 -04:00
2026-09-12 10:01:56 -04:00
2026-09-16 11:02:47 -04:00
2026-09-02 08:16:21 -04:00
2026-09-17 11:52:03 -04:00
2026-09-17 11:52:03 -04:00
2026-09-16 23:13:44 -04:00
2026-09-22 20:54:01 -04:00
2026-09-17 11:52:03 -04:00
2026-09-28 10:38:24 -04:00