Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package hledger-ui for openSUSE:Factory 
checked in at 2025-11-27 15:20:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/hledger-ui (Old)
 and      /work/SRC/openSUSE:Factory/.hledger-ui.new.14147 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "hledger-ui"

Thu Nov 27 15:20:05 2025 rev:44 rq:1320211 version:1.50.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/hledger-ui/hledger-ui.changes    2025-10-10 
17:12:53.446185053 +0200
+++ /work/SRC/openSUSE:Factory/.hledger-ui.new.14147/hledger-ui.changes 
2025-11-27 15:20:08.601392531 +0100
@@ -1,0 +2,9 @@
+Tue Nov 18 23:42:44 UTC 2025 - Peter Simons <[email protected]>
+
+- Update hledger-ui to version 1.50.3.
+  Upstream's change log file format is strange (too much unmodified
+  text at at the top). The automatic updater cannot extract the
+  relevant additions. You can find the file at:
+  http://hackage.haskell.org/package/hledger-ui-1.50.3/src/CHANGES.md
+
+-------------------------------------------------------------------

Old:
----
  hledger-ui-1.50.2.tar.gz
  hledger-ui.cabal

New:
----
  hledger-ui-1.50.3.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ hledger-ui.spec ++++++
--- /var/tmp/diff_new_pack.8Sp7LP/_old  2025-11-27 15:20:09.281421208 +0100
+++ /var/tmp/diff_new_pack.8Sp7LP/_new  2025-11-27 15:20:09.285421377 +0100
@@ -19,13 +19,12 @@
 %global pkg_name hledger-ui
 %global pkgver %{pkg_name}-%{version}
 Name:           %{pkg_name}
-Version:        1.50.2
+Version:        1.50.3
 Release:        0
 Summary:        Terminal interface for the hledger accounting system
 License:        GPL-3.0-or-later
 URL:            https://hackage.haskell.org/package/%{name}
 Source0:        
https://hackage.haskell.org/package/%{name}-%{version}/%{name}-%{version}.tar.gz
-Source1:        
https://hackage.haskell.org/package/%{name}-%{version}/revision/1.cabal#/%{name}.cabal
 BuildRequires:  chrpath
 BuildRequires:  ghc-Cabal-devel
 BuildRequires:  ghc-ansi-terminal-devel
@@ -137,7 +136,6 @@
 
 %prep
 %autosetup
-cp -p %{SOURCE1} %{name}.cabal
 
 %build
 %ghc_lib_build

++++++ hledger-ui-1.50.2.tar.gz -> hledger-ui-1.50.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hledger-ui-1.50.2/CHANGES.md 
new/hledger-ui-1.50.3/CHANGES.md
--- old/hledger-ui-1.50.2/CHANGES.md    2025-09-27 03:27:53.000000000 +0200
+++ new/hledger-ui-1.50.3/CHANGES.md    2025-11-18 23:54:26.000000000 +0100
@@ -23,6 +23,23 @@
 See also the hledger changelog.
 
 
+# 1.50.3 2025-11-18
+
+- `--watch` mode now also detects changes from apps which overwrite the file, 
such as VS Code.
+  (Caleb Maclennan)
+
+- When hledger-ui is started with --pivot, re-enabling balance assertions
+  with the I key now does a full journal reload, to check assertions more 
accurately.
+  [#2451]
+
+- The old "threaded" build flag, which cabal could turn off, has been dropped.
+  [#2495]
+
+- Allow brick 2.10, vty 6.5.
+
+- Uses hledger 1.50.3.
+
+
 # 1.50.2 2025-09-26
 
 - Uses hledger 1.50.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hledger-ui-1.50.2/Hledger/UI/AccountsScreen.hs 
new/hledger-ui-1.50.3/Hledger/UI/AccountsScreen.hs
--- old/hledger-ui-1.50.2/Hledger/UI/AccountsScreen.hs  2025-09-24 
22:49:10.000000000 +0200
+++ new/hledger-ui-1.50.3/Hledger/UI/AccountsScreen.hs  2025-11-18 
19:43:45.000000000 +0100
@@ -30,9 +30,9 @@
 import Data.List hiding (reverse)
 #endif
 import Data.Maybe
-import qualified Data.Text as T
+import Data.Text qualified as T
 import Data.Time.Calendar (Day)
-import qualified Data.Vector as V
+import Data.Vector qualified as V
 import Data.Vector ((!?))
 import Graphics.Vty (Event(..),Key(..),Modifier(..), Button (BLeft, 
BScrollDown, BScrollUp))
 import Lens.Micro.Platform
@@ -48,7 +48,7 @@
 import Hledger.UI.UIUtils
 import Hledger.UI.UIScreens
 import Hledger.UI.Editor
-import Hledger.UI.ErrorScreen (uiCheckBalanceAssertions, uiReload, 
uiReloadIfFileChanged)
+import Hledger.UI.ErrorScreen (uiReload, uiReloadIfFileChanged, 
uiToggleBalanceAssertions)
 import Hledger.UI.RegisterScreen (rsCenterSelection)
 import Data.Either (fromRight)
 import Control.Arrow ((>>>))
@@ -257,7 +257,7 @@
     VtyEvent (EvKey (KLeft)     [MShift]) -> modify' (previousReportPeriod 
journalspan >>> regenerateScreens j d)
 
     -- various toggles and settings:
-    VtyEvent (EvKey (KChar 'I') []) -> modify' (toggleIgnoreBalanceAssertions 
>>> uiCheckBalanceAssertions d)
+    VtyEvent (EvKey (KChar 'I') []) -> get' >>= uiToggleBalanceAssertions d
     VtyEvent (EvKey (KChar 'F') []) -> modify' (toggleForecast d   >>> 
regenerateScreens j d)
     VtyEvent (EvKey (KChar 'B') []) -> modify' (toggleConversionOp >>> 
regenerateScreens j d)
     VtyEvent (EvKey (KChar 'V') []) -> modify' (toggleValue        >>> 
regenerateScreens j d)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hledger-ui-1.50.2/Hledger/UI/ErrorScreen.hs 
new/hledger-ui-1.50.3/Hledger/UI/ErrorScreen.hs
--- old/hledger-ui-1.50.2/Hledger/UI/ErrorScreen.hs     2025-09-27 
03:27:53.000000000 +0200
+++ new/hledger-ui-1.50.3/Hledger/UI/ErrorScreen.hs     2025-11-18 
23:54:26.000000000 +0100
@@ -15,6 +15,7 @@
  ,uiReloadIfFileChanged
  ,uiReloadJournal
  ,uiReloadJournalIfChanged
+ ,uiToggleBalanceAssertions
  )
 where
 
@@ -108,7 +109,7 @@
                 runEditor pos f
               esReloadIfFileChanged copts d j ui
 
-            VtyEvent (EvKey (KChar 'I') []) -> put' $ uiCheckBalanceAssertions 
d (popScreen $ toggleIgnoreBalanceAssertions ui)
+            VtyEvent (EvKey (KChar 'I') []) -> uiToggleBalanceAssertions d 
(popScreen ui)
             VtyEvent (EvKey (KChar 'l') [MCtrl]) -> redraw
             VtyEvent (EvKey (KChar 'z') [MCtrl]) -> suspend ui
             _ -> return ()
@@ -156,6 +157,10 @@
 
 -- Defined here so it can reference the error screen:
 
+-- | Modify some input options for hledger-ui (enable --forecast).
+uiAdjustOpts :: UIOpts -> CliOpts -> CliOpts
+uiAdjustOpts uopts = enableForecast uopts
+
 -- | Reload the journal from its input files, then update the ui app state 
accordingly.
 -- This means regenerate the entire screen stack from top level down to the 
current screen, using the provided today-date.
 -- As a convenience (usually), if journal reloading fails, this enters the 
error screen, or if already there, updates its message.
@@ -169,8 +174,8 @@
 uiReload :: CliOpts -> Day -> UIState -> EventM Name UIState UIState
 uiReload copts d ui = liftIO $ do
   ej <-
-    let copts' = enableForecast (astartupopts ui) copts
-    in runExceptT $ journalTransform copts' <$> journalReload copts'
+    let copts1 = uiAdjustOpts (astartupopts ui) copts
+    in runExceptT $ journalTransform copts1 <$> journalReload copts1
   -- dbg1IO "uiReload before reload" (map tdescription $ jtxns $ ajournal ui)
   return $ case ej of
     Right j  ->
@@ -194,20 +199,24 @@
 -- Also, this one runs in IO, suitable for suspendAndResume.
 uiReloadIfFileChanged :: CliOpts -> Day -> Journal -> UIState -> IO UIState
 uiReloadIfFileChanged copts d j ui = do
-  let copts' = enableForecast (astartupopts ui) copts
-  ej <- runExceptT $ journalReloadIfChanged copts' d j
+  ej <-
+    let copts1 = uiAdjustOpts (astartupopts ui) copts
+    in runExceptT $ journalReloadIfChanged copts1 d j
   return $ case ej of
     Right (j', _) -> regenerateScreens j' d ui
     Left err -> case aScreen ui of
         ES _ -> ui{aScreen=esNew err}
         _    -> pushScreen (esNew err) ui
 
--- Re-check any balance assertions in the current journal, and if any
--- fail, enter (or update) the error screen. Or if balance assertions
--- are disabled, do nothing.
+-- Re-check any balance assertions in the current journal,
+-- and if any fail, enter (or update) the error screen.
+-- Or if balance assertions are disabled or pivot is active, do nothing.
+-- (When pivot is active, assertions have already been checked on the 
pre-pivot journal,
+-- and the current post-pivot journal's account names don't match the original 
assertions.)
 uiCheckBalanceAssertions :: Day -> UIState -> UIState
-uiCheckBalanceAssertions _d ui@UIState{ajournal=j}
-  | ui^.ignore_assertions = ui
+uiCheckBalanceAssertions _d ui@UIState{ajournal=j, 
aopts=UIOpts{uoCliOpts=CliOpts{inputopts_=InputOpts{pivot_=pval}}}}
+  | ui^.ignore_assertions = ui        -- user disabled checks
+  | not (null pval) = ui              -- post-pivot journal, assertions 
already checked pre-pivot
   | otherwise =
     case journalCheckBalanceAssertions j of
       Right () -> ui
@@ -215,3 +224,16 @@
         case ui of
           UIState{aScreen=ES sst} -> ui{aScreen=ES sst{_essError=err}}
           _                        -> pushScreen (esNew err) ui
+
+-- | Toggle ignoring balance assertions (when user presses I), and if no 
longer ignoring, recheck them.
+-- Normally the recheck is done quickly on the in-memory journal.
+-- But if --pivot is active, a full journal reload is done instead
+-- (because we can't check balance assertions after pivoting has occurred).
+-- In that case, this operation could be slower and could reveal other data 
changes (not just balance assertion failures).
+uiToggleBalanceAssertions :: Day -> UIState -> EventM Name UIState ()
+uiToggleBalanceAssertions d 
ui@UIState{aopts=UIOpts{uoCliOpts=copts@CliOpts{inputopts_=InputOpts{pivot_=pivotval}}}}
 =
+  let ui' = toggleIgnoreBalanceAssertions ui
+  in case (ui'^.ignore_assertions, null pivotval) of
+    (True, _)      -> put' ui'                                -- ignoring 
enabled, no check needed
+    (False, True)  -> put' $ uiCheckBalanceAssertions d ui'   -- unpivoted 
journal, can check in memory
+    (False, False) -> uiReload copts d ui' >>= put'           -- pivoted 
journal, must reload to check it
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hledger-ui-1.50.2/Hledger/UI/Main.hs 
new/hledger-ui-1.50.3/Hledger/UI/Main.hs
--- old/hledger-ui-1.50.2/Hledger/UI/Main.hs    2025-09-24 22:49:10.000000000 
+0200
+++ new/hledger-ui-1.50.3/Hledger/UI/Main.hs    2025-11-18 19:43:45.000000000 
+0100
@@ -37,16 +37,16 @@
 import Data.List (find)
 import Data.List.Extra (nubSort)
 import Data.Maybe (fromMaybe)
-import qualified Data.Text as T
+import Data.Text qualified as T
 import Graphics.Vty (Mode (Mouse), Vty (outputIface), Output (setMode))
 import Graphics.Vty.CrossPlatform (mkVty)
 import Lens.Micro ((^.))
 import System.Directory (canonicalizePath)
 import System.Environment (withProgName)
 import System.FilePath (takeDirectory)
-import System.FSNotify (Event(Modified), watchDir, withManager, 
EventIsDirectory (IsFile))
+import System.FSNotify (Event(Added, Modified), watchDir, withManager, 
EventIsDirectory (IsFile))
 import Brick hiding (bsDraw)
-import qualified Brick.BChan as BC
+import Brick.BChan qualified as BC
 
 import Hledger
 import Hledger.Cli hiding (progname,prognameandversion)
@@ -305,9 +305,8 @@
           d
           -- predicate: ignore changes not involving our files
           (\case
-            Modified f _ IsFile -> f `elem` files
-            -- Added    f _ -> f `elem` files
-            -- Removed  f _ -> f `elem` files
+            Added f _ IsFile -> f `elem` files -- for editors which write the 
whole file from scratch on saves
+            Modified f _ IsFile -> f `elem` files -- for editors which modify 
existing files in place
             -- we don't handle adding/removing journal files right now
             -- and there might be some of those events from tmp files
             -- clogging things up so let's ignore them
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hledger-ui-1.50.2/Hledger/UI/MenuScreen.hs 
new/hledger-ui-1.50.3/Hledger/UI/MenuScreen.hs
--- old/hledger-ui-1.50.2/Hledger/UI/MenuScreen.hs      2025-09-24 
22:49:10.000000000 +0200
+++ new/hledger-ui-1.50.3/Hledger/UI/MenuScreen.hs      2025-11-18 
19:43:45.000000000 +0100
@@ -17,9 +17,9 @@
 import Control.Monad
 import Control.Monad.IO.Class (liftIO)
 import Data.Maybe
-import qualified Data.Text as T
+import Data.Text qualified as T
 import Data.Time.Calendar (Day)
-import qualified Data.Vector as V
+import Data.Vector qualified as V
 import Data.Vector ((!?))
 import Graphics.Vty (Event(..),Key(..),Modifier(..), Button (BLeft, 
BScrollDown, BScrollUp))
 import Lens.Micro.Platform
@@ -33,7 +33,7 @@
 import Hledger.UI.UIState
 import Hledger.UI.UIUtils
 import Hledger.UI.UIScreens
-import Hledger.UI.ErrorScreen (uiCheckBalanceAssertions, uiReload, 
uiReloadIfFileChanged)
+import Hledger.UI.ErrorScreen (uiReload, uiReloadIfFileChanged, 
uiToggleBalanceAssertions)
 import Hledger.UI.Editor (runIadd, runEditor, endPosition)
 import Brick.Widgets.Edit (getEditContents, handleEditorEvent)
 import Control.Arrow ((>>>))
@@ -156,7 +156,7 @@
               where
                 p = reportPeriod ui
             e | e `elem` [VtyEvent (EvKey (KChar 'g') []), AppEvent 
FileChange] -> uiReload copts d ui >>= put'
-            VtyEvent (EvKey (KChar 'I') []) -> put' $ uiCheckBalanceAssertions 
d (toggleIgnoreBalanceAssertions ui)
+            VtyEvent (EvKey (KChar 'I') []) -> uiToggleBalanceAssertions d ui
             VtyEvent (EvKey (KChar 'a') []) -> suspendAndResume $ clearScreen 
>> setCursorPosition 0 0 >> add (cliOptsDropArgs copts) j >> 
uiReloadIfFileChanged copts d j ui
             VtyEvent (EvKey (KChar 'A') []) -> suspendAndResume $ void 
(runIadd (journalFilePath j)) >> uiReloadIfFileChanged copts d j ui
             VtyEvent (EvKey (KChar 'E') []) -> suspendAndResume $ void 
(runEditor endPosition (journalFilePath j)) >> uiReloadIfFileChanged copts d j 
ui
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hledger-ui-1.50.2/Hledger/UI/RegisterScreen.hs 
new/hledger-ui-1.50.3/Hledger/UI/RegisterScreen.hs
--- old/hledger-ui-1.50.2/Hledger/UI/RegisterScreen.hs  2025-09-24 
22:49:10.000000000 +0200
+++ new/hledger-ui-1.50.3/Hledger/UI/RegisterScreen.hs  2025-11-18 
19:43:45.000000000 +0100
@@ -25,8 +25,8 @@
 import Data.List
 #endif
 import Data.Maybe
-import qualified Data.Text as T
-import qualified Data.Vector as V
+import Data.Text qualified as T
+import Data.Vector qualified as V
 import Data.Vector ((!?))
 import Graphics.Vty (Event(..),Key(..),Modifier(..), Button (BLeft, 
BScrollDown, BScrollUp))
 import Brick
@@ -43,7 +43,7 @@
 import Hledger.UI.UIUtils
 import Hledger.UI.UIScreens
 import Hledger.UI.Editor
-import Hledger.UI.ErrorScreen (uiCheckBalanceAssertions, uiReload, 
uiReloadIfFileChanged)
+import Hledger.UI.ErrorScreen (uiReload, uiReloadIfFileChanged, 
uiToggleBalanceAssertions)
 
 rsDraw :: UIState -> [Widget Name]
 rsDraw UIState{aopts=_uopts@UIOpts{uoCliOpts=copts@CliOpts{reportspec_=rspec}}
@@ -247,7 +247,7 @@
 
             e | e `elem` [AppEvent FileChange, VtyEvent (EvKey (KChar 'g') 
[])] -> uiReload copts d ui >>= put'
 
-            VtyEvent (EvKey (KChar 'I') []) -> put' $ uiCheckBalanceAssertions 
d (toggleIgnoreBalanceAssertions ui)
+            VtyEvent (EvKey (KChar 'I') []) -> uiToggleBalanceAssertions d ui
             VtyEvent (EvKey (KChar 'a') []) -> suspendAndResume $ clearScreen 
>> setCursorPosition 0 0 >> add (cliOptsDropArgs copts) j >> 
uiReloadIfFileChanged copts d j ui
             VtyEvent (EvKey (KChar 'A') []) -> suspendAndResume $ void 
(runIadd (journalFilePath j)) >> uiReloadIfFileChanged copts d j ui
             VtyEvent (EvKey (KChar 'T') []) -> put' $ regenerateScreens j d $ 
setReportPeriod (DayPeriod d) ui
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hledger-ui-1.50.2/Hledger/UI/Theme.hs 
new/hledger-ui-1.50.3/Hledger/UI/Theme.hs
--- old/hledger-ui-1.50.2/Hledger/UI/Theme.hs   2025-08-28 16:06:09.000000000 
+0200
+++ new/hledger-ui-1.50.3/Hledger/UI/Theme.hs   2025-11-18 19:43:45.000000000 
+0100
@@ -17,7 +17,7 @@
 )
 where
 
-import qualified Data.Map as M
+import Data.Map qualified as M
 import Data.Maybe
 import Graphics.Vty
 import Brick
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hledger-ui-1.50.2/Hledger/UI/TransactionScreen.hs 
new/hledger-ui-1.50.3/Hledger/UI/TransactionScreen.hs
--- old/hledger-ui-1.50.2/Hledger/UI/TransactionScreen.hs       2025-09-24 
22:49:10.000000000 +0200
+++ new/hledger-ui-1.50.3/Hledger/UI/TransactionScreen.hs       2025-11-18 
19:43:45.000000000 +0100
@@ -18,7 +18,7 @@
 import Control.Monad.IO.Class (liftIO)
 import Data.List
 import Data.Maybe
-import qualified Data.Text as T
+import Data.Text qualified as T
 import Graphics.Vty (Event(..),Key(..),Modifier(..), Button (BLeft))
 import System.Exit (ExitCode (..))
 
@@ -30,7 +30,7 @@
 import Hledger.UI.UIUtils
 import Hledger.UI.UIScreens
 import Hledger.UI.Editor
-import Hledger.UI.ErrorScreen (uiCheckBalanceAssertions, uiReload, 
uiReloadIfFileChanged)
+import Hledger.UI.ErrorScreen (uiCheckBalanceAssertions, uiReload, 
uiReloadIfFileChanged, uiToggleBalanceAssertions)
 import Hledger.UI.RegisterScreen (rsHandle)
 
 tsDraw :: UIState -> [Widget Name]
@@ -162,7 +162,7 @@
               where
                 p = reportPeriod ui
 
-            VtyEvent (EvKey (KChar 'I') []) -> put' $ uiCheckBalanceAssertions 
d (toggleIgnoreBalanceAssertions ui)
+            VtyEvent (EvKey (KChar 'I') []) -> uiToggleBalanceAssertions d ui
 
             -- for toggles that may change the current/prev/next transactions,
             -- we must regenerate the transaction list, like the g handler 
above ? with regenerateTransactions ? TODO WIP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hledger-ui-1.50.2/Hledger/UI/UIOptions.hs 
new/hledger-ui-1.50.3/Hledger/UI/UIOptions.hs
--- old/hledger-ui-1.50.2/Hledger/UI/UIOptions.hs       2025-09-16 
02:35:06.000000000 +0200
+++ new/hledger-ui-1.50.3/Hledger/UI/UIOptions.hs       2025-11-18 
19:43:45.000000000 +0100
@@ -6,7 +6,7 @@
 import Data.Default (def)
 import Data.Either (fromRight)
 import Data.List (intercalate)
-import qualified Data.Map as M
+import Data.Map qualified as M
 import Data.Maybe (fromMaybe)
 import GitHash (tGitInfoCwdTry)
 import Lens.Micro (set)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hledger-ui-1.50.2/Hledger/UI/UIScreens.hs 
new/hledger-ui-1.50.3/Hledger/UI/UIScreens.hs
--- old/hledger-ui-1.50.2/Hledger/UI/UIScreens.hs       2025-09-24 
22:49:10.000000000 +0200
+++ new/hledger-ui-1.50.3/Hledger/UI/UIScreens.hs       2025-11-18 
19:43:45.000000000 +0100
@@ -42,10 +42,10 @@
 import Brick.Widgets.List (listMoveTo, listSelectedElement, list)
 import Data.List
 import Data.Maybe
-import qualified Data.Text as T
+import Data.Text qualified as T
 import Data.Time.Calendar (Day, diffDays)
 import Safe
-import qualified Data.Vector as V
+import Data.Vector qualified as V
 
 import Hledger.Cli hiding (mode, progname,prognameandversion)
 import Hledger.UI.UIOptions
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hledger-ui-1.50.2/Hledger/UI/UIState.hs 
new/hledger-ui-1.50.3/Hledger/UI/UIState.hs
--- old/hledger-ui-1.50.2/Hledger/UI/UIState.hs 2025-09-24 22:49:10.000000000 
+0200
+++ new/hledger-ui-1.50.3/Hledger/UI/UIState.hs 2025-11-18 19:43:45.000000000 
+0100
@@ -49,7 +49,7 @@
 import Data.List ((\\), sort)
 import Data.Maybe (fromMaybe)
 import Data.Semigroup (Max(..))
-import qualified Data.Text as T
+import Data.Text qualified as T
 import Data.Text.Zipper (gotoEOL)
 import Data.Time.Calendar (Day)
 import Lens.Micro ((^.), over, set)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hledger-ui-1.50.2/Hledger/UI/UIUtils.hs 
new/hledger-ui-1.50.3/Hledger/UI/UIUtils.hs
--- old/hledger-ui-1.50.2/Hledger/UI/UIUtils.hs 2025-09-24 22:49:10.000000000 
+0200
+++ new/hledger-ui-1.50.3/Hledger/UI/UIUtils.hs 2025-11-18 19:43:45.000000000 
+0100
@@ -56,7 +56,7 @@
 import Control.Monad.IO.Class
 import Data.Bifunctor (second)
 import Data.List
-import qualified Data.Text as T
+import Data.Text qualified as T
 import Data.Time (addDays)
 import Graphics.Vty
   (Event(..),Key(..),Modifier(..),Vty(..),Color,Attr,currentAttr,refresh, 
displayBounds
@@ -72,7 +72,7 @@
 import Hledger.UI.UITypes
 
 import Data.Vector (Vector)
-import qualified Data.Vector as V
+import Data.Vector qualified as V
 
 -- | On posix platforms, send the system STOP signal to suspend the
 -- current program. On windows, does nothing.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hledger-ui-1.50.2/hledger-ui.1 
new/hledger-ui-1.50.3/hledger-ui.1
--- old/hledger-ui-1.50.2/hledger-ui.1  2025-09-27 03:27:53.000000000 +0200
+++ new/hledger-ui-1.50.3/hledger-ui.1  2025-11-18 23:54:26.000000000 +0100
@@ -1,5 +1,5 @@
 
-.TH "HLEDGER\-UI" "1" "September 2025" "hledger-ui-1.50.2 " "hledger User 
Manuals"
+.TH "HLEDGER\-UI" "1" "November 2025" "hledger-ui-1.50.3 " "hledger User 
Manuals"
 
 
 
@@ -17,7 +17,7 @@
 .PD
 \f[CR]hledger ui [OPTS] [QUERYARGS]\f[R]
 .SH DESCRIPTION
-This manual is for hledger\[aq]s terminal interface, version 1.50.2.
+This manual is for hledger\[aq]s terminal interface, version 1.50.3.
 See also the hledger manual for common concepts and file formats.
 .PP
 hledger is a robust, user\-friendly, cross\-platform set of programs for
@@ -250,6 +250,9 @@
 \f[CR]I\f[R] toggles balance assertion checking.
 Disabling balance assertions temporarily can be useful for
 troubleshooting.
+(If hledger\-ui was started with a \f[CR]\-\-pivot\f[R] option,
+re\-enabling balance assertions with the \f[CR]I\f[R] key also reloads
+the journal, like \f[CR]g\f[R].)
 .PP
 \f[CR]a\f[R] runs command\-line hledger\[aq]s add command, and reloads
 the updated file.
@@ -442,10 +445,6 @@
 fs.file\-max parameters in /etc/sysctl.conf might help.
 (#836)
 .IP \[bu] 2
-It may not detect file changes made by certain tools, such as Jetbrains
-IDEs or gedit.
-(#1617)
-.IP \[bu] 2
 It may not detect changes made from outside a virtual machine, ie by an
 editor running on the host system.
 .IP \[bu] 2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hledger-ui-1.50.2/hledger-ui.cabal 
new/hledger-ui-1.50.3/hledger-ui.cabal
--- old/hledger-ui-1.50.2/hledger-ui.cabal      2025-09-27 03:27:53.000000000 
+0200
+++ new/hledger-ui-1.50.3/hledger-ui.cabal      2025-11-18 23:54:26.000000000 
+0100
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           hledger-ui
-version:        1.50.2
+version:        1.50.3
 synopsis:       Terminal interface for the hledger accounting system
 description:    A simple terminal user interface for the hledger accounting 
system.
                 It can be a more convenient way to browse your accounts than 
the CLI.
@@ -39,15 +39,10 @@
   location: https://github.com/simonmichael/hledger
 
 flag debug
-  description: Build with GHC 9.10+'s stack traces enabled
+  description: Build with GHC 9.10+ stack traces enabled
   manual: True
   default: False
 
-flag threaded
-  description: Build with support for multithreaded execution
-  manual: False
-  default: True
-
 library
   exposed-modules:
       Hledger.UI
@@ -74,12 +69,12 @@
   hs-source-dirs:
       ./
   ghc-options: -Wall -Wno-incomplete-uni-patterns -Wno-missing-signatures 
-Wno-orphans -Wno-type-defaults -Wno-unused-do-bind
-  cpp-options: -DVERSION="1.50.2" -DVERSION="1.50.2"
+  cpp-options: -DVERSION="1.50.3" -DVERSION="1.50.3"
   build-depends:
       ansi-terminal >=0.9
     , async
     , base >=4.18 && <4.22
-    , brick >=2.1.1 && <2.3.2 || >2.3.2 && <2.10
+    , brick >=2.1.1 && <2.3.2 || >2.3.2 && <2.11
     , cmdargs >=0.8
     , containers >=0.5.9
     , data-default
@@ -89,8 +84,8 @@
     , filepath
     , fsnotify >=0.4.2.0 && <0.5
     , githash >=0.1.6.2
-    , hledger >=1.50.2 && <1.51
-    , hledger-lib >=1.50.2 && <1.51
+    , hledger >=1.50.3 && <1.51
+    , hledger-lib >=1.50.3 && <1.51
     , megaparsec >=7.0.0 && <9.8
     , microlens >=0.4
     , microlens-platform >=0.2.3.1
@@ -104,9 +99,9 @@
     , time >=1.5
     , transformers
     , vector
-    , vty >=6.1 && <6.5
+    , vty >=6.1 && <6.6
     , vty-crossplatform >=0.4.0.0 && <0.5.0.0
-  default-language: Haskell2010
+  default-language: GHC2021
   if (flag(debug))
     cpp-options: -DDEBUG
   if os(windows)
@@ -124,13 +119,11 @@
       Paths_hledger_ui
   hs-source-dirs:
       app
-  ghc-options: -Wall -Wno-incomplete-uni-patterns -Wno-missing-signatures 
-Wno-orphans -Wno-type-defaults -Wno-unused-do-bind -with-rtsopts=-T
-  cpp-options: -DVERSION="1.50.2"
+  ghc-options: -Wall -Wno-incomplete-uni-patterns -Wno-missing-signatures 
-Wno-orphans -Wno-type-defaults -Wno-unused-do-bind -threaded
+  cpp-options: -DVERSION="1.50.3"
   build-depends:
       base >=4.18 && <4.22
     , hledger-ui
-  default-language: Haskell2010
+  default-language: GHC2021
   if (flag(debug))
     cpp-options: -DDEBUG
-  if flag(threaded)
-    ghc-options: -threaded
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hledger-ui-1.50.2/hledger-ui.info 
new/hledger-ui-1.50.3/hledger-ui.info
--- old/hledger-ui-1.50.2/hledger-ui.info       2025-09-27 03:27:53.000000000 
+0200
+++ new/hledger-ui-1.50.3/hledger-ui.info       2025-11-18 23:54:26.000000000 
+0100
@@ -18,7 +18,7 @@
 or
 'hledger ui [OPTS] [QUERYARGS]'
 
-   This manual is for hledger's terminal interface, version 1.50.2.  See
+   This manual is for hledger's terminal interface, version 1.50.3.  See
 also the hledger manual for common concepts and file formats.
 
    hledger is a robust, user-friendly, cross-platform set of programs
@@ -256,7 +256,9 @@
 pause.)
 
    'I' toggles balance assertion checking.  Disabling balance assertions
-temporarily can be useful for troubleshooting.
+temporarily can be useful for troubleshooting.  (If hledger-ui was
+started with a '--pivot' option, re-enabling balance assertions with the
+'I' key also reloads the journal, like 'g'.)
 
    'a' runs command-line hledger's add command, and reloads the updated
 file.  This allows some basic data entry.
@@ -503,8 +505,6 @@
      configuration.  On some unix systems, increasing
      fs.inotify.max_user_watches or fs.file-max parameters in
      /etc/sysctl.conf might help.  (#836)
-   * It may not detect file changes made by certain tools, such as
-     Jetbrains IDEs or gedit.  (#1617)
    * It may not detect changes made from outside a virtual machine, ie
      by an editor running on the host system.
    * It may not detect file changes on certain less common filesystems.
@@ -558,19 +558,19 @@
 Node: OPTIONS1869
 Node: MOUSE8755
 Node: KEYS9087
-Node: SCREENS14091
-Node: Menu screen14831
-Node: Cash accounts screen15147
-Node: Balance sheet accounts screen15508
-Node: Income statement accounts screen15844
-Node: All accounts screen16229
-Node: Register screen16592
-Node: Transaction screen19035
-Node: Error screen20215
-Node: WATCH MODE20581
-Node: --watch problems21479
-Node: ENVIRONMENT22832
-Node: BUGS23065
+Node: SCREENS14229
+Node: Menu screen14969
+Node: Cash accounts screen15285
+Node: Balance sheet accounts screen15646
+Node: Income statement accounts screen15982
+Node: All accounts screen16367
+Node: Register screen16730
+Node: Transaction screen19173
+Node: Error screen20353
+Node: WATCH MODE20719
+Node: --watch problems21617
+Node: ENVIRONMENT22864
+Node: BUGS23097
 
 End Tag Table
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/hledger-ui-1.50.2/hledger-ui.txt 
new/hledger-ui-1.50.3/hledger-ui.txt
--- old/hledger-ui-1.50.2/hledger-ui.txt        2025-09-27 03:27:53.000000000 
+0200
+++ new/hledger-ui-1.50.3/hledger-ui.txt        2025-11-18 23:54:26.000000000 
+0100
@@ -11,7 +11,7 @@
        hledger ui [OPTS] [QUERYARGS]
 
 DESCRIPTION
-       This manual is for hledger's terminal interface, version  1.50.2.   See
+       This manual is for hledger's terminal interface, version  1.50.3.   See
        also the hledger manual for common concepts and file formats.
 
        hledger  is a robust, user-friendly, cross-platform set of programs for
@@ -223,7 +223,9 @@
        pause.)
 
        I  toggles  balance  assertion  checking.  Disabling balance assertions
-       temporarily can be useful for troubleshooting.
+       temporarily can be useful  for  troubleshooting.   (If  hledger-ui  was
+       started  with a --pivot option, re-enabling balance assertions with the
+       I key also reloads the journal, like g.)
 
        a runs command-line hledger's add  command,  and  reloads  the  updated
        file.  This allows some basic data entry.
@@ -398,38 +400,35 @@
          tify.max_user_watches or fs.file-max parameters  in  /etc/sysctl.conf
          might help.  (#836)
 
-       o It  may  not  detect file changes made by certain tools, such as Jet-
-         brains IDEs or gedit.  (#1617)
-
-       o It may not detect changes made from outside a virtual machine, ie  by
+       o It  may not detect changes made from outside a virtual machine, ie by
          an editor running on the host system.
 
        o It may not detect file changes on certain less common filesystems.
 
-       o It  may  use  increasing CPU and RAM over time, especially with large
-         files.  (This is probably not --watch specific, you may  be  able  to
+       o It may use increasing CPU and RAM over time,  especially  with  large
+         files.   (This  is  probably not --watch specific, you may be able to
          reproduce it by pressing g repeatedly.)  (#1825)
 
        Tips/workarounds:
 
-       o If  --watch  won't  work for you, press g to reload data manually in-
+       o If --watch won't work for you, press g to reload  data  manually  in-
          stead.
 
-       o If --watch is leaking resources over time, quit and restart (or  sus-
+       o If  --watch is leaking resources over time, quit and restart (or sus-
          pend and resume) hledger-ui when you're not using it.
 
-       o When  running  hledger-ui  inside a VM, also make file changes inside
+       o When running hledger-ui inside a VM, also make  file  changes  inside
          the VM.
 
-       o When working with files mounted from another machine, make  sure  the
+       o When  working  with files mounted from another machine, make sure the
          system clocks on both machines are roughly in agreement.
 
 ENVIRONMENT
-       LEDGER_FILE  The  main  journal  file  to  use  when not specified with
+       LEDGER_FILE The main journal  file  to  use  when  not  specified  with
        -f/--file.  Default: $HOME/.hledger.journal.
 
 BUGS
-       We   welcome   bug   reports   in    the    hledger    issue    tracker
+       We    welcome    bug    reports    in   the   hledger   issue   tracker
        (https://bugs.hledger.org),  or  on  the  hledger  chat  or  mail  list
        (https://hledger.org/support).
 
@@ -437,7 +436,7 @@
 
        -f- doesn't work (hledger-ui can't read from stdin).
 
-       --watch is not robust, especially with  large  files  (see  WATCH  MODE
+       --watch  is  not  robust,  especially  with large files (see WATCH MODE
        above).
 
        If you press g with large files, there could be a noticeable pause with
@@ -461,4 +460,4 @@
 SEE ALSO
        hledger(1), hledger-ui(1), hledger-web(1), ledger(1)
 
-hledger-ui-1.50.2               September 2025                   HLEDGER-UI(1)
+hledger-ui-1.50.3                November 2025                   HLEDGER-UI(1)

Reply via email to