## TASK A (proposed, NOT yet started) — Improve the "WILL EXPIRED" message **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 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). **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 (proposed, NOT yet started) — Transaction description labels in History **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. **Current state:** - The INHERITANCE transaction is labelled "BAL Transaction" (red colour). - The INVALIDATE transaction has NO description. **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). **Desired final summary:** | Transaction | Desired label | Colour | |-------------|-----------------------------|--------| | Inheritance | BAL Inheritance transaction | GREEN | | Invalidate | BAL Invalidate transaction | ORANGE | **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 (proposed, NOT yet started) — "no will-executor" checkbox also in Plugin Settings **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. **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." **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) -> 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). **Draft PLAN (to refine and get approved when starting):** 1. In `settings_dialog()`: create `heir_no_willexecutor = BalCheckBox(self.NO_WILLEXECUTOR)`. 2. Add a row with `add_widget(grid, "