1this derivation will be built:2 /nix/store/pjd130mmjax6pyy8v5wdrx60cnry1sgx-treefmt-check.drv3building '/nix/store/pjd130mmjax6pyy8v5wdrx60cnry1sgx-treefmt-check.drv'4treefmt-check> treefmt v2.5.0traversed 157 files5treefmt-check> emitted 93 files for processing6treefmt-check> formatted 93 files (2 changed) in 2.758s7treefmt-check> M packages/harvest-invoicer/src/harvest_invoicer/app.py8treefmt-check> M packages/harvest-invoicer/tests/test_app.py9treefmt-check> diff --git a/packages/harvest-invoicer/src/harvest_invoicer/app.py b/packages/harvest-invoicer/src/harvest_invoicer/app.py10treefmt-check> index 9b06d9b..ffa4806 10064411treefmt-check> --- a/packages/harvest-invoicer/src/harvest_invoicer/app.py12treefmt-check> +++ b/packages/harvest-invoicer/src/harvest_invoicer/app.py13treefmt-check> @@ -406,6 +406,7 @@ def create_app(14treefmt-check> clients_map: dict[str, dict[str, str]] = app.state["clients"] # type: ignore[attr-defined]15treefmt-check> key = request.form.get("client_key", "").strip()16treefmt-check> entry = clients_map.get(key)17treefmt-check> +18treefmt-check> def rows_and_totals() -> Response:19treefmt-check> return Response(20treefmt-check> _render_rows(inv) + _render_totals(inv), content_type="text/html"21treefmt-check> diff --git a/packages/harvest-invoicer/tests/test_app.py b/packages/harvest-invoicer/tests/test_app.py22treefmt-check> index 310115e..0996406 10064423treefmt-check> --- a/packages/harvest-invoicer/tests/test_app.py24treefmt-check> +++ b/packages/harvest-invoicer/tests/test_app.py25treefmt-check> @@ -420,9 +420,7 @@ class TestBillToSwitch:26treefmt-check> assert b"Domestic S.L." in preview.data27treefmt-check> assert b"Numtide Sarl" not in preview.data28treefmt-check> 29treefmt-check> - def test_switch_applies_vat_and_extras_keeps_lines(30treefmt-check> - self, tmp_path: Path31treefmt-check> - ) -> None:32treefmt-check> + def test_switch_applies_vat_and_extras_keeps_lines(self, tmp_path: Path) -> None:33treefmt-check> app = self._make_app(tmp_path)34treefmt-check> with app.test_client() as c:35treefmt-check> # Edit a harvest line first: the edit must survive the switch36error: Cannot build '/nix/store/pjd130mmjax6pyy8v5wdrx60cnry1sgx-treefmt-check.drv'.37 Reason: builder failed with exit code 1.38 Output paths:39 /nix/store/6i6yvyw3kw23xaagj7bivsjcya6khswa-treefmt-check40 Last 25 log lines:41 > --- a/packages/harvest-invoicer/src/harvest_invoicer/app.py42 > +++ b/packages/harvest-invoicer/src/harvest_invoicer/app.py43 > @@ -406,6 +406,7 @@ def create_app(44 > clients_map: dict[str, dict[str, str]] = app.state["clients"] # type: ignore[attr-defined]45 > key = request.form.get("client_key", "").strip()46 > entry = clients_map.get(key)47 > +48 > def rows_and_totals() -> Response:49 > return Response(50 > _render_rows(inv) + _render_totals(inv), content_type="text/html"51 > diff --git a/packages/harvest-invoicer/tests/test_app.py b/packages/harvest-invoicer/tests/test_app.py52 > index 310115e..0996406 10064453 > --- a/packages/harvest-invoicer/tests/test_app.py54 > +++ b/packages/harvest-invoicer/tests/test_app.py55 > @@ -420,9 +420,7 @@ class TestBillToSwitch:56 > assert b"Domestic S.L." in preview.data57 > assert b"Numtide Sarl" not in preview.data58 > 59 > - def test_switch_applies_vat_and_extras_keeps_lines(60 > - self, tmp_path: Path61 > - ) -> None:62 > + def test_switch_applies_vat_and_extras_keeps_lines(self, tmp_path: Path) -> None:63 > app = self._make_app(tmp_path)64 > with app.test_client() as c:65 > # Edit a harvest line first: the edit must survive the switch66 For full logs, run:67 nix log /nix/store/pjd130mmjax6pyy8v5wdrx60cnry1sgx-treefmt-check.drv