erplibre/script/todo
Mathieu Benoit 8533690e0e [FIX] proxmox : porter la décision du miroir apt au journal de la VM
Les décisions que l'hôte prend avant de lancer sont gardées pour le journal
de la VM, celui qu'on rouvre le lendemain quand l'installation a échoué.
Celle du miroir apt restait sur la console, qui a défilé depuis.
C'est pourtant là qu'on la cherche : le magasin range ses index sous l'HÔTE
demandé, et une VM qui en réclame un autre ne retrouve rien de ce qui est
gardé — hors ligne, l'installation échoue plus bas sur des dépendances
introuvables, un message qui accuse le dépôt et jamais le miroir. Le nom du
miroir posé, ou le code de l'échec, rejoignent donc les autres notes.

--- EN ---

The decisions the host takes before launching are kept for the VM's log, the
one reopened the next day when the install has failed. The apt mirror's
stayed on the console, which has scrolled away since.
Yet that is where it is looked for: the store files its indexes under the
HOST asked for, and a VM asking for another finds nothing of what is kept —
offline, the install fails further down on unresolvable dependencies, a
message that blames the repository and never the mirror. The pinned mirror's
name, or the failure's code, therefore join the other notes.

Assisted-by: Claude Opus 5
2026-09-17 03:48:09 -04:00
..
assistant [FIX] execute : caviarder les clés d'API et les jetons Bearer 2026-09-09 07:35:15 -04:00
mail [ADD] mail: read and send email from the TODO CLI 2026-08-16 03:56:34 -04:00
assistant_menu.py [FIX] todo : une invite n'écrit plus son deux-points deux fois 2026-09-09 07:35:15 -04:00
auto_ask.py [UPD] invites : 15 secondes pour décider, et le fichier nomme la base 2026-08-29 02:11:04 -04:00
database_manager.py [ADD] database: dupliquer une base, et la neutraliser pour de bon 2026-08-29 02:11:04 -04:00
deploy_form_extras.py [IMP] qemu deploy : pré-configurer la VM, et dire ce qui s'y installe 2026-09-04 02:03:52 -04:00
deploy_form_lib.py [ADD] cache qemu : miroir des téléchargements des VM, hors ligne compris 2026-09-14 16:46:15 -04:00
deploy_form_plan.py [IMP] qemu deploy : pré-configurer la VM, et dire ce qui s'y installe 2026-09-04 02:03:52 -04:00
dev_tools.py [FIX] qemu install : poser mise, pyenv et starship, verdict par outil 2026-09-14 16:46:15 -04:00
kdbx_manager.py [ADD] vpn openconnect : groupe d'URL, SSO délégué, mot de passe borné 2026-09-04 06:26:34 -04:00
logo_ascii.txt [IMP] bot assistant TODO 2025-04-27 02:40:20 -04:00
longtest_menu.py [ADD] long_test : ERPLibre installé sur NixOS, de bout en bout 2026-09-16 21:31:03 -04:00
migration_form.py [ADD] migration: offer « go back to a step » on the resume screen 2026-08-22 07:23:59 -04:00
migration_stats.py [ADD] migration: see and repair the website COW views 2026-08-10 03:10:50 -04:00
migration_status.py [FIX] verdicts de migration : distinguer trouvaille et échec d'outil 2026-08-29 02:11:04 -04:00
migration_status_tui.py [FIX] migration state: open the quality screen in its own process 2026-08-22 07:23:59 -04:00
proxmox_deploy_form.py [ADD] proxmox deploy : accélération 3D, bibliothèques sondées et posées 2026-09-14 16:46:15 -04:00
proxmox_menu.py [FIX] proxmox : porter la décision du miroir apt au journal de la VM 2026-09-17 03:48:09 -04:00
qemu_access.py [ADD] long_test : ERPLibre installé sur NixOS, de bout en bout 2026-09-16 21:31:03 -04:00
qemu_cache_menu.py [FIX] qemu images : vérifier les sommes publiées, partout et par défaut 2026-09-16 21:32:03 -04:00
qemu_deploy.py [ADD] guide de connexion : les outils posés, et ce que NixOS change 2026-09-16 21:32:22 -04:00
qemu_deploy_form.py [ADD] cache qemu : miroir des téléchargements des VM, hors ligne compris 2026-09-14 16:46:15 -04:00
qemu_hardware.py [FIX] qemu 3D : voir l'ABI figée qui annule l'accélération demandée 2026-09-03 05:00:55 -04:00
qemu_install.py [ADD] cache qemu : NixOS apprend l'autorité, et le hors ligne s'ouvre 2026-09-16 21:33:10 -04:00
qemu_install_monitor.py [FIX] cache et journal : hôte imbriqué soustrait, décision écrite 2026-09-16 21:32:03 -04:00
qemu_manage.py [ADD] cache qemu : miroir des téléchargements des VM, hors ligne compris 2026-09-14 16:46:15 -04:00
qemu_menu.py [ADD] qemu : NixOS déployable, de son image à ses dépendances 2026-09-16 21:31:03 -04:00
qemu_network.py [ADD] qemu réseau : voir et recréer le sous-réseau des VM 2026-09-04 03:31:22 -04:00
qemu_privilege.py [ADD] qemu diagnostic : un relevé à transmettre, Gérer scindé en trois 2026-09-03 05:00:55 -04:00
qemu_recover.py [ADD] qemu diagnostic : un relevé à transmettre, Gérer scindé en trois 2026-09-03 05:00:55 -04:00
README.base.md [ADD] proxmox : un écran pour déployer sur un hôte distant 2026-08-25 03:17:13 -04:00
README.fr.md [ADD] proxmox : un écran pour déployer sur un hôte distant 2026-08-25 03:17:13 -04:00
README.md [ADD] proxmox : un écran pour déployer sur un hôte distant 2026-08-25 03:17:13 -04:00
source_todo.sh [ADD] install: mise as Python provider, pyenv as fallback 2026-08-16 23:33:49 -04:00
ssh_config.py [FIX] ssh config : une seule décision sur ce qu'est un nom de machine 2026-09-09 07:35:15 -04:00
textual_setup.py [ADD] todo: install Textual on demand 2026-08-07 03:22:26 -04:00
todo.json [ADD] menu vpn : créer un profil, déposer les secrets, monter le tunnel 2026-09-04 03:43:02 +00:00
todo.py [ADD] cache qemu : nettoyage par âge et plafond de taille 2026-09-16 05:36:13 -04:00
todo_example.json [ADD] menu vpn : créer un profil, déposer les secrets, monter le tunnel 2026-09-04 03:43:02 +00:00
todo_file_browser.py [FIX] todo: test menu, file browser and KeePass refusals 2026-08-16 03:56:34 -04:00
todo_i18n.py [FIX] qemu images : vérifier les sommes publiées, partout et par défaut 2026-09-16 21:32:03 -04:00
todo_install.py [ADD] long_test : ERPLibre installé sur NixOS, de bout en bout 2026-09-16 21:31:03 -04:00
todo_prefs.py [ADD] assistant : serveur LLM reconnu, catalogue gpt, sessions locales 2026-09-09 07:35:15 -04:00
todo_telemetry.py [ADD] script todo : installer les outils manquants, les quatre familles 2026-08-31 07:18:13 -04:00
todo_upgrade.py [ADD] commentaires : un relevé non bloquant, sa règle, le code nettoyé 2026-08-30 06:08:30 -04:00
transform_form.py [ADD] transform data : anonymiser un fichier externe ou une base Odoo 2026-09-11 00:06:39 -04:00
transform_menu.py [FIX] requirement erplibre : déclarer openpyxl, sauter sans lui 2026-09-16 05:36:13 -04:00
transform_setup.py [FIX] requirement erplibre : déclarer openpyxl, sauter sans lui 2026-09-16 05:36:13 -04:00
version_manager.py [IMP] script: update copyright year to 2026 2026-03-11 23:16:05 -04:00
vpn_menu.py [FIX] vpn : ne plus demander la route par défaut à qui ne la pose pas 2026-09-08 09:41:17 -04:00

TODO is an assistant robot to use ERPLibre Execute it with ./script/todo/todo.py or make todo.

For a new project, copy todo_example.json to private/todo/todo_override.json | private/todo/todo_override_private.json and edit it.

The mail/ package is the mail client reachable from Assistant > Mail: several IMAP/SMTP accounts, a local cache, and a Textual TUI. See ../../doc/EMAIL.md.

Where the code lives

todo.py carries the menus and the general helpers. Everything around a single subject sits in its own file, and the whole thing is assembled by mixins on the TODO class — one file, one subject, its header states its boundary.

File What it owns
todo.py the menus, the configuration, the general helpers
qemu_menu.py the QEMU/KVM menu, the image catalogue, the statistics
qemu_deploy.py deciding then running a deployment
qemu_install.py the recipes run inside a VM
qemu_manage.py lifecycle, disks, hardware, cleanup, addresses
qemu_access.py SSH, tunnels, consoles, Android emulator
proxmox_menu.py the same, on a REMOTE Proxmox VE host

The two deployment forms — libvirt here, Proxmox over there — ask the same questions, so they share a foundation rather than each holding a copy:

File What it owns
deploy_form_lib.py pure logic (sizes, plan, totals, spec), the shared CSS, the resource-row factory, the progress view
deploy_form_plan.py the plan's gestures: overrides, locks, copies, renaming, free values
qemu_deploy_form.py what QEMU/KVM adds: desktops, tools, branches, install profiles
proxmox_deploy_form.py what Proxmox adds: host, storage, bridge, VMID, address

A form inherits PlanMixin and provides three hooks: which presets each resource offers, the name a VM would fall back to, and what a lock freezes. test_todo_deploy_form_lib.py fails if a form redefines a gesture the foundation already carries — that is what keeps the architecture from drifting back into two copies.