TL;DR but did you see this? https://docs.google.com/document/d/1qPdNXaz5zuDQ8M9uoZFyyFis7hA0G55BEfhWhrVBsfc/edit?tab=t.0#heading=h.axs6y16wohk9
On Mon, Mar 2, 2026 at 5:00 PM 'Simon Guest' via Beancount < [email protected]> wrote: > A limabean issue <https://github.com/tesujimath/limabean/issues/46> has > raised a question about how plugins should work, and highlighted that my > approach in limabean differs from the historical behaviour > <https://beancount.github.io/docs/beancount_scripting_plugins.html#load-pipeline> > . > > It comes down to, what are plugins for, actually? > > The specific plugin which initiated the discussion was zerosum > <https://github.com/redstreet/beancount_reds_plugins/tree/main/beancount_reds_plugins/zerosum>. > Currently it is not possible to run such a plugin in limabean because > limabean plugins run after the booking process has completed, and until > such a plugin has run the beanfile is invalid. > > My first instinct was, well, fix the beanfile! That particular plugin > seems to be a mitigation for an import process which doesn't pair > transactions between accounts, in contrast to limabean-harvest > <https://github.com/tesujimath/limabean-harvest> for example, which > handles transaction pairing across accounts on import > <https://github.com/tesujimath/limabean-harvest/blob/main/clj/doc/10-features.md#transaction-pairing> > . > > My proposed mitigation for what I am calling such breakage (sorry) in > beanfiles would be to run user-defined functions over the beanfile whose > final output would be a fixed-up beanfile which passes validation. > > I understand there is legacy behaviour here. But the vNext document has > some interesting plugin-related discussion > <https://beancount.github.io/docs/beancount_v3.html#intermediate-parsed-data-vs-final-list-of-directives>, > which says: > > > > *Furthermore, there may be two types of plugins: a plugin that runs on the > uninterpolated, unbooked output of the parser, and a plugin that runs on > the resolved and booked stream. This would allow more creative use of > partial input that might be invalid under the limitations of interpolation > and booking.Updates:- We could convert the plugin system to one that runs > at booking/interpolation time.* > > I am interested to understand other scenarios which would illuminate > design choices here. > > -- > You received this message because you are subscribed to the Google Groups > "Beancount" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/beancount/CAFhGSbuECVFGk_mrSuhE9u-LWiS-%2BzTs0EjTsHt5vTOCKg8YQw%40mail.gmail.com > <https://groups.google.com/d/msgid/beancount/CAFhGSbuECVFGk_mrSuhE9u-LWiS-%2BzTs0EjTsHt5vTOCKg8YQw%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "Beancount" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/beancount/CAK21%2BhMhcY9rBUr5vvUgjByGycOp2Dz1OxMCiNghT8TQVC5a-Q%40mail.gmail.com.
