From 0f2b3a414678cc4fe12b7a143119df17cec509e4 Mon Sep 17 00:00:00 2001 From: donkey-ai Date: Sun, 28 Jun 2026 23:02:33 -0400 Subject: [PATCH] docs: add DUST section to inheritance-options (v0.4.7) and translate agent memory to English - inheritance-options.md/.html: new section 4.8 explaining the dust limit (some-dust continues vs all-dust blocks), dust quick-reference row, golden rule #5, and footer bumped to v0.4.7 referencing core/heirs.py. - .agent_memory_tasks.md: translated remaining Italian user-quote lines to English (Point B2 = replace, English only, no Italian originals kept). - Verified: no Italian text remains in any repo doc; md/html mirrors in sync. --- .agent_memory_tasks.md | 212 +++++++++++++++++----------------- docs/inheritance-options.html | 30 ++++- docs/inheritance-options.md | 49 +++++++- 3 files changed, 181 insertions(+), 110 deletions(-) diff --git a/.agent_memory_tasks.md b/.agent_memory_tasks.md index 591ded5..5272f54 100644 --- a/.agent_memory_tasks.md +++ b/.agent_memory_tasks.md @@ -1,129 +1,129 @@ -## TASK A (proposto, NON ancora avviato) — Migliorare il messaggio "WILL EXPIRED" +## TASK A (proposed, NOT yet started) — Improve the "WILL EXPIRED" message -**Origine:** osservato dall'utente negli screenshot del 23/06/2026 (will scaduto -> percorso invalidate + re-sign). La LOGICA è corretta; si migliora solo la UX/chiarezza del messaggio. +**Origin:** observed by the user in the screenshots of 2026-06-23 (expired will -> invalidate + re-sign path). The LOGIC is correct; only the UX/clarity of the message is improved. -**3 miglioramenti approvati dall'utente (da implementare poi, in inglese, regole R1-R4 + zip-first):** -1. Tradurre il timestamp Unix grezzo (es. 1782118800) in data leggibile. - Esempio: invece di "Will Expired 9f1b0a75...: 1782118800" - mostrare "Will expired (locktime 2026-06-22 11:00 UTC) - too late to anticipate, will invalidate and re-sign". -2. Rendere il messaggio INFORMATIVO e non un ERRORE: il rosso sembra un errore, - ma e' un flusso normale. Usare colore di avviso (arancione) o aggiungere frase - tipo "This is expected: the will is past its locktime, switching to invalidate + re-sign." -3. Accorciare l'hash del will per leggibilita' (es. primi 8 + ultimi 4 caratteri). +**3 improvements approved by the user (to implement later, in English, rules R1-R4 + zip-first):** +1. Translate the raw Unix timestamp (e.g. 1782118800) into a readable date. + Example: instead of "Will Expired 9f1b0a75...: 1782118800" + show "Will expired (locktime 2026-06-22 11:00 UTC) - too late to anticipate, will invalidate and re-sign". +2. Make the message INFORMATIVE and not an ERROR: red looks like an error, + but it is a normal flow. Use a warning colour (orange) or add a sentence + like "This is expected: the will is past its locktime, switching to invalidate + re-sign." +3. Shorten the will hash for readability (e.g. first 8 + last 4 characters). -**Note tecniche da fare in DISCOVER quando si avvia:** -- Trovare il punto del codice che genera la stringa "Will Expired ... " (probabilmente nel wizard "Building Will"). -- Verificare se il colore rosso e' impostato li' (rich text / stylesheet). -- Seguire METHOD: DISCOVER -> PLAN (attendere OK) -> EXECUTE -> VERIFY -> ZIP-first -> commit/PR/release solo dopo conferma. +**Technical notes to handle in DISCOVER when starting:** +- Find the code point that builds the "Will Expired ... " string (probably in the "Building Will" wizard). +- Check whether the red colour is set there (rich text / stylesheet). +- Follow METHOD: DISCOVER -> PLAN (wait for OK) -> EXECUTE -> VERIFY -> ZIP-first -> commit/PR/release only after confirmation. -## TASK B (proposto, NON ancora avviato) — Etichette descrizione transazioni in Cronologia +## TASK B (proposed, NOT yet started) — Transaction description labels in History -**Origine:** osservato dall'utente nello screenshot Cronologia del 23/06/2026. -Nella tab "Cronologia" di Electrum (transazioni on-chain), il plugin BAL scrive -una descrizione colorata nella colonna "Descrizione". +**Origin:** observed by the user in the History screenshot of 2026-06-23. +In Electrum's "History" tab (on-chain transactions) the BAL plugin writes +a coloured description in the "Description" column. -**Stato attuale:** -- La transazione di EREDITA' e' etichettata "BAL Transaction" (colore rosso). -- La transazione di INVALIDATE NON ha alcuna descrizione. +**Current state:** +- The INHERITANCE transaction is labelled "BAL Transaction" (red colour). +- The INVALIDATE transaction has NO description. -**Modifiche richieste (approvate dall'utente):** -1. RINOMINARE l'etichetta dell'eredita': "BAL Transaction" -> "BAL Inheritance transaction". -2. CAMBIARE il colore dell'etichetta eredita' da ROSSO a VERDE. -3. AGGIUNGERE una nuova etichetta per le transazioni di invalidate: - "BAL Invalidate transaction" in colore ARANCIONE (oggi compaiono senza descrizione). +**Requested changes (approved by the user):** +1. RENAME the inheritance label: "BAL Transaction" -> "BAL Inheritance transaction". +2. CHANGE the inheritance label colour from RED to GREEN. +3. ADD a new label for the invalidate transactions: + "BAL Invalidate transaction" in ORANGE (today they appear with no description). -**Riepilogo finale desiderato:** -| Transazione | Etichetta desiderata | Colore | -|-------------|-----------------------------|-----------| -| Eredita' | BAL Inheritance transaction | VERDE | -| Invalidate | BAL Invalidate transaction | ARANCIONE | +**Desired final summary:** +| Transaction | Desired label | Colour | +|-------------|-----------------------------|--------| +| Inheritance | BAL Inheritance transaction | GREEN | +| Invalidate | BAL Invalidate transaction | ORANGE | -**Note tecniche da fare in DISCOVER quando si avvia:** -- Trovare nel codice dove viene impostata l'etichetta "BAL Transaction" - (probabilmente wallet.set_label(txid, ...) o simile) e dove/come e' impostato il colore. -- Capire come il plugin distingue una tx di eredita' da una di invalidate, per - applicare l'etichetta corretta a ciascuna. La tx di invalidate oggi NON riceve - label -> trovare il punto dove viene creata/broadcastata e aggiungere lì set_label. -- Verificare se il colore (rosso) e' gestito da Electrum o dal plugin, e come - impostare il verde per l'eredita'. -- Seguire METHOD: DISCOVER -> PLAN (attendere OK) -> EXECUTE -> VERIFY -> ZIP-first -> commit/PR/release solo dopo conferma. +**Technical notes to handle in DISCOVER when starting:** +- Find in the code where the "BAL Transaction" label is set + (probably wallet.set_label(txid, ...) or similar) and where/how the colour is set. +- Understand how the plugin distinguishes an inheritance tx from an invalidate tx, so + the correct label is applied to each. The invalidate tx today gets NO + label -> find where it is created/broadcast and add set_label there. +- Check whether the (red) colour is handled by Electrum or by the plugin, and how + to set green for the inheritance. +- Follow METHOD: DISCOVER -> PLAN (wait for OK) -> EXECUTE -> VERIFY -> ZIP-first -> commit/PR/release only after confirmation. -## TASK C (proposto, NON ancora avviato) — Checkbox "no will-executor" anche in Plugin Settings +## TASK C (proposed, NOT yet started) — "no will-executor" checkbox also in Plugin Settings -**Origine:** richiesta utore del 23/06/2026. -Nel wizard "Create your WILL", finestra di download will-executor, esiste il checkbox -"Add transactions without willexecutor". L'utente vuole lo STESSO checkbox anche nella -finestra "Plugin settings" (stesso stile delle altre righe), default ON, con un -HelpButton che spiega la funzione. +**Origin:** user request of 2026-06-23. +In the "Create your WILL" wizard, will-executor download window, there is the checkbox +"Add transactions without willexecutor". The user wants the SAME checkbox also in the +"Plugin settings" window (same style as the other rows), default ON, with a +HelpButton explaining the function. -**Testo del tastino di aiuto (fornito dall'utente, da usare verbatim):** +**Help-button text (provided by the user, to be used verbatim):** "Create a will that does not require a Will-executor; it can be saved, for example, on a USB stick, and a copy can be given to the heirs." -**SCOPERTA IMPORTANTE (DISCOVER gia' fatto):** -- La config ESISTE GIA': `self.NO_WILLEXECUTOR = BalConfig(config, "bal_no_willexecutor", True)` - in `bal/core/plugin_base.py:193` (default True = ON). Quindi NON va creata. -- Il checkbox del wizard e' in `bal/gui/qt/lists.py:916-918`: +**IMPORTANT FINDING (DISCOVER already done):** +- The config ALREADY EXISTS: `self.NO_WILLEXECUTOR = BalConfig(config, "bal_no_willexecutor", True)` + in `bal/core/plugin_base.py:193` (default True = ON). So it must NOT be created. +- The wizard checkbox is in `bal/gui/qt/lists.py:916-918`: hbox.addWidget(QLabel(_("Add transactions without willexecutor"))) heir_no_willexecutor = BalCheckBox(self.bal_plugin.NO_WILLEXECUTOR) - -> usa BalCheckBox legato alla stessa config. Aggiungendo lo stesso checkbox nelle - settings, i due rimangono sincronizzati automaticamente (stessa BalConfig). -- La finestra Settings e' `settings_dialog()` in `bal/gui/qt/plugin.py:372`. - Usa una griglia con la helper `add_widget(grid, label, widget, row, help_)` - (definita in `bal/gui/qt/common.py:98`) che mette: QLabel(col0), widget(col1), - HelpButton(col2). Le righe attuali vanno 1..8 (8 = bottone Rebroadcast). -- Esiste gia' codice COMMENTATO che faceva esattamente questo (plugin.py:382 e - 536-542): `# heir_no_willexecutor = BalCheckBox(self.NO_WILLEXECUTOR)` e un - add_widget "Backup Transaction" -> si puo' riattivare/adattare. -- C'e' anche un blocco "Reset setting" (on_reset_defaults, plugin.py:560-596) con - una lista `resets = [...]`: per coerenza la nuova checkbox va AGGIUNTA a quella - lista cosi' il Reset la riporta al default (ON). + -> uses BalCheckBox bound to the same config. Adding the same checkbox in the + settings keeps the two automatically in sync (same BalConfig). +- The Settings window is `settings_dialog()` in `bal/gui/qt/plugin.py:372`. + It uses a grid with the helper `add_widget(grid, label, widget, row, help_)` + (defined in `bal/gui/qt/common.py:98`) which places: QLabel(col0), widget(col1), + HelpButton(col2). Current rows go 1..8 (8 = Rebroadcast button). +- There is ALREADY COMMENTED-OUT code that did exactly this (plugin.py:382 and + 536-542): `# heir_no_willexecutor = BalCheckBox(self.NO_WILLEXECUTOR)` and an + add_widget "Backup Transaction" -> it can be re-enabled/adapted. +- There is also a "Reset setting" block (on_reset_defaults, plugin.py:560-596) with + a `resets = [...]` list: for consistency the new checkbox must be ADDED to that + list so Reset returns it to the default (ON). -**PLAN bozza (da rifinire e far approvare quando si avvia):** -1. In `settings_dialog()`: creare `heir_no_willexecutor = BalCheckBox(self.NO_WILLEXECUTOR)`. -2. Aggiungere una riga con `add_widget(grid, "