this derivation will be built: /nix/store/jmnsfs7h99iam12hxv8bi0pprix3nmx6-horae-browser-checks.drv building '/nix/store/jmnsfs7h99iam12hxv8bi0pprix3nmx6-horae-browser-checks.drv' horae-browser-checks> initdb: warning: enabling "trust" authentication for local connections horae-browser-checks> initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb. horae-browser-checks> waiting for server to start.... done horae-browser-checks> server started horae-browser-checks> 2026-10-07T14:51:58.818498Z INFO horae: Running migrations... horae-browser-checks> 2026-10-07T14:51:58.954230Z INFO horae: Migrations complete. horae-browser-checks> 2026-10-07T14:51:58.968079Z INFO horae::seed: Seeding demo data… horae-browser-checks> 2026-10-07T14:51:58.981377Z INFO horae::seed: Seed complete. horae-browser-checks> 2026-10-07T14:51:58.984355Z INFO horae::seed: time_entries: 10 rows horae-browser-checks> 2026-10-07T14:51:58.984579Z INFO horae::seed: clients: 2 rows horae-browser-checks> PASS: scoped project list/detail expose workflow labels without directory access, private notes or rates horae-browser-checks> PASS: edit and managed-project revocation remove current UI authority without legacy Administrator fallback horae-browser-checks> PASS: inactive-account and changed-policy responses clear retained detail; retry recovers only the original binding horae-browser-checks> PASS: header actions, supported metrics and labelled native budget progress horae-browser-checks> PASS: design heading, compact row typography and inline project type horae-browser-checks> PASS: filtered empty state resets search, scope and client horae-browser-checks> PASS: narrow/short layouts, keyboard row actions and export formats horae-browser-checks> PASS: loading spend is unavailable until the read completes horae-browser-checks> PASS: failed spend is unavailable; retry restores real amounts horae-browser-checks> PASS: configured monthly consumption replaces lifetime spend only after loading horae-browser-checks> PASS: keyboard-accessible scope breakdown exposes overruns without layout overflow horae-browser-checks> PASS: failed configured budget never falls back to lifetime figures horae-browser-checks> PASS: empty-state guidance and action visibility for admin horae-browser-checks> PASS: empty-state guidance and action visibility for manager horae-browser-checks> PASS: empty-state guidance and action visibility for member horae-browser-checks> PASS: shared Menu, Combobox, empty-state and navigation-icon defaults are unchanged horae-browser-checks> PASS: /clients header at 320px horae-browser-checks> PASS: /clients header at 390px horae-browser-checks> PASS: /clients header at 768px horae-browser-checks> PASS: /clients header at 1280px horae-browser-checks> PASS: /clients header at 1440px horae-browser-checks> PASS: /projects header at 320px horae-browser-checks> PASS: /projects header at 390px horae-browser-checks> PASS: /projects header at 768px horae-browser-checks> PASS: /projects header at 1280px horae-browser-checks> PASS: /projects header at 1440px horae-browser-checks> PASS: /invoices header at 320px horae-browser-checks> PASS: /invoices header at 390px horae-browser-checks> PASS: /invoices header at 768px horae-browser-checks> PASS: /invoices header at 1280px horae-browser-checks> PASS: /invoices header at 1440px horae-browser-checks> PASS: /reports header at 320px horae-browser-checks> PASS: /reports header at 390px horae-browser-checks> PASS: /reports header at 768px horae-browser-checks> PASS: /reports header at 1280px horae-browser-checks> PASS: /reports header at 1440px horae-browser-checks> PASS: /admin/users header at 320px horae-browser-checks> PASS: /admin/users header at 390px horae-browser-checks> PASS: /admin/users header at 768px horae-browser-checks> PASS: /admin/users header at 1280px horae-browser-checks> PASS: /admin/users header at 1440px horae-browser-checks> PASS: /approvals header at 320px horae-browser-checks> PASS: /approvals header at 390px horae-browser-checks> PASS: /approvals header at 768px horae-browser-checks> PASS: /approvals header at 1280px horae-browser-checks> PASS: /approvals header at 1440px horae-browser-checks> PASS: /settings header at 320px horae-browser-checks> PASS: /settings header at 390px horae-browser-checks> PASS: /settings header at 768px horae-browser-checks> PASS: /settings header at 1280px horae-browser-checks> PASS: /settings header at 1440px horae-browser-checks> PASS: /admin/importers header at 320px horae-browser-checks> PASS: /admin/importers header at 390px horae-browser-checks> PASS: /admin/importers header at 768px horae-browser-checks> PASS: /admin/importers header at 1280px horae-browser-checks> PASS: /admin/importers header at 1440px horae-browser-checks> PASS: /timesheet/week/2026-10-05 header at 320px horae-browser-checks> PASS: /timesheet/week/2026-10-05 header at 390px horae-browser-checks> PASS: /timesheet/week/2026-10-05 header at 768px horae-browser-checks> PASS: /timesheet/week/2026-10-05 header at 1280px horae-browser-checks> PASS: /timesheet/week/2026-10-05 header at 1440px horae-browser-checks> PASS: /timesheet/day/2026-10-05 header at 320px horae-browser-checks> PASS: /timesheet/day/2026-10-05 header at 390px horae-browser-checks> PASS: /timesheet/day/2026-10-05 header at 768px horae-browser-checks> PASS: /timesheet/day/2026-10-05 header at 1280px horae-browser-checks> PASS: /timesheet/day/2026-10-05 header at 1440px horae-browser-checks> PASS: /timesheet/calendar/2026-10-05 header at 320px horae-browser-checks> PASS: /timesheet/calendar/2026-10-05 header at 390px horae-browser-checks> PASS: /timesheet/calendar/2026-10-05 header at 768px horae-browser-checks> PASS: /timesheet/calendar/2026-10-05 header at 1280px horae-browser-checks> PASS: /timesheet/calendar/2026-10-05 header at 1440px horae-browser-checks> PASS: project names and badges stay within aligned columns; scrolling to last-row actions opens editing horae-browser-checks> PASS: small-screen timesheet pager, date picker and view controls remain usable horae-browser-checks> PASS: admin subnavigation and its content remain reachable on mobile horae-browser-checks> PASS: day strip scrolls to Sunday and long entry labels do not cover actions horae-browser-checks> CHECK: late popover initialization restores missing focus without overriding deliberate focus horae-browser-checks> PASS: late popover initialization restores missing focus without overriding deliberate focus horae-browser-checks> CHECK: content reflow preserves an open menu while deliberate scrolling still dismisses it horae-browser-checks> PASS: content reflow preserves an open menu while deliberate scrolling still dismisses it horae-browser-checks> CHECK: first and last project-row actions are initially visible and clickable horae-browser-checks> PASS: first and last project-row actions are initially visible and clickable horae-browser-checks> CHECK: menu keyboard, disabled items, outside click and repeated opening horae-browser-checks> PASS: menu keyboard, disabled items, outside click and repeated opening horae-browser-checks> CHECK: scroll and resize dismiss without leaving stale menus or focus horae-browser-checks> PASS: scroll and resize dismiss without leaving stale menus or focus horae-browser-checks> CHECK: short-screen menu scrolls internally and supports reverse Tab and Space horae-browser-checks> PASS: short-screen menu scrolls internally and supports reverse Tab and Space horae-browser-checks> CHECK: filter and calendar menus keep their callbacks and survive route changes horae-browser-checks> PASS: filter and calendar menus keep their callbacks and survive route changes horae-browser-checks> CHECK: Timesheet keeps the shared calendar and week selection behavior horae-browser-checks> PASS: Timesheet keeps the shared calendar and week selection behavior horae-browser-checks> PASS: mobile content width, keyboard toggle, Escape/focus restoration and navigation close horae-browser-checks> PASS: short mobile viewport reaches account navigation and preserves desktop collapse state horae-browser-checks> PASS: desktop drag width survives mobile and breakpoint transitions horae-browser-checks> PASS: keyboard selection, mixed/select-all states and Actions count horae-browser-checks> PASS: search, status and client changes clear selection horae-browser-checks> PASS: keyboard selection/confirmation and no document overflow in both themes at three widths horae-browser-checks> PASS: cancel/focus, failure retry, pending guard and archive/reactivate confirmation horae-browser-checks> PASS: oversized selection cannot submit and members have no bulk controls horae-browser-checks> PASS: real atomic archive/reactivate, anonymous/member/inactive denial, manager/admin and safe retries horae-browser-checks> PASS: bulk success restores focus and recovers the list without stale actions horae-browser-checks> PASS: bulk pending restores focus and recovers the list without stale actions horae-browser-checks> PASS: bulk pending-navigation restores focus and recovers the list without stale actions horae-browser-checks> PASS: bulk failure restores focus and recovers the list without stale actions horae-browser-checks> PASS: client activation failure remains visible with form closed, open and cancelled horae-browser-checks> PASS: successful form save preserves action error; real status retry clears it and refreshes the row horae-browser-checks> PASS: archive failure survives menu dismissal; shared edit failure preserves input and safely retries horae-browser-checks> PASS: failed team removal preserves the draft, safely retries and can be restored through the shared editor horae-browser-checks> PASS: initial catalog/draft failures show loading and recovery without rendering or saving an empty replacement horae-browser-checks> PASS: design typography, section spacing, quiet dividers and theme-aware task information horae-browser-checks> PASS: project types retain native keyboard selection and the designed icon/option-card states horae-browser-checks> PASS: searchable client selection, pending/error recovery and explicit/inherited currency horae-browser-checks> PASS: client default-rate currency rejects relabelling, preserves failed input and permits compatible edits horae-browser-checks> PASS: task and teammate searches handle pending results, keyboard selection, duplicates and retry horae-browser-checks> PASS: real client, team, task restrictions, billing and invoice defaults survive reload horae-browser-checks> PASS: all invoice-default errors identify and focus their field, preserve input and recover at three widths horae-browser-checks> PASS: basic-field rejections retain values, link visible errors and restore focus at three widths horae-browser-checks> PASS: failed resume and retry preserve the existing draft without a replacement write horae-browser-checks> PASS: invalid hourly rates and hour/fee budgets retain input and focus their error at three widths horae-browser-checks> PASS: a stale email configuration rejection can be corrected without sending mail horae-browser-checks> PASS: task/person rate, cost and budget errors identify their row and preserve other inputs at three widths horae-browser-checks> PASS: single/monthly fees, empty schedules and individual milestone errors recover without changing another row horae-browser-checks> PASS: responsive form, conditional panels and Cancel preserve the draft horae-browser-checks> PASS: edits made while a save is pending are saved after its acknowledgement horae-browser-checks> PASS: lost acknowledgement retries the same request and preserves newer edits horae-browser-checks> PASS: real finalized budget reaches the authorized Projects endpoint and display horae-browser-checks> PASS: a new tagged project reaches reports and both exports; pending/error filters never show stale rows horae-browser-checks> PASS: project invoice defaults prefill real estimates, stale reviews cannot generate, and editable draft values persist independently horae-browser-checks> PASS: lost creation response is idempotent and clears the completed draft horae-browser-checks> PASS: stale tabs cannot overwrite saved input; explicit discard removes only the draft horae-browser-checks> PASS: invoice selection, partial balances, exact excess, dirty/pending navigation, reload recovery, account-scoped replay, storage failure safety and authorized per-occurrence project balances horae-browser-checks> PASS: New Project task rates and editor capabilities preserve configured/legacy modes, source currencies, unknown/zero recovery, scoped budgets and keyboard recovery across three widths horae-browser-checks> AssertionError [ERR_ASSERTION]: Observe the actual get_project_details route before replaying it horae-browser-checks> at post (/nix/store/n3bybns5jfy39k7zalkin8xgx0yid5yy-browser/new-project-permissions.cjs:45:12) horae-browser-checks> at /nix/store/n3bybns5jfy39k7zalkin8xgx0yid5yy-browser/new-project-permissions.cjs:141:29 { horae-browser-checks> generatedMessage: false, horae-browser-checks> code: 'ERR_ASSERTION', horae-browser-checks> actual: undefined, horae-browser-checks> expected: true, horae-browser-checks> operator: '==', horae-browser-checks> diff: 'simple' horae-browser-checks> } horae-browser-checks> 2026-10-07T14:51:59.009423Z WARN horae: DEV_LOGIN=1: /auth/dev-login signs anyone in as an admin without a password. Use it for local development only. horae-browser-checks> 2026-10-07 14:51:58.671 UTC [18] LOG: starting PostgreSQL 17.10 on x86_64-pc-linux-gnu, compiled by clang version 21.1.8, 64-bit horae-browser-checks> 2026-10-07 14:51:58.671 UTC [18] LOG: listening on Unix socket "/tmp/horae-browser.AoiHdi/.s.PGSQL.5432" horae-browser-checks> 2026-10-07 14:51:58.673 UTC [21] LOG: database system was shut down at 2026-10-07 14:51:58 UTC horae-browser-checks> 2026-10-07 14:51:58.677 UTC [18] LOG: database system is ready to accept connections horae-browser-checks> 2026-10-07 14:51:58.984 UTC [127] LOG: could not receive data from client: Connection reset by peer horae-browser-checks> 2026-10-07 14:56:07.158 UTC [18] LOG: received fast shutdown request horae-browser-checks> 2026-10-07 14:56:07.158 UTC [18] LOG: aborting any active transactions horae-browser-checks> 2026-10-07 14:56:07.160 UTC [18] LOG: background worker "logical replication launcher" (PID 24) exited with exit code 1 horae-browser-checks> 2026-10-07 14:56:07.164 UTC [19] LOG: shutting down horae-browser-checks> 2026-10-07 14:56:07.164 UTC [19] LOG: checkpoint starting: shutdown immediate horae-browser-checks> 2026-10-07 14:56:07.176 UTC [19] LOG: checkpoint complete: wrote 1302 buffers (7.9%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.012 s, sync=0.001 s, total=0.013 s; sync files=0, longest=0.000 s, average=0.000 s; distance=7070 kB, estimate=7070 kB; lsn=0/1BD42D0, redo lsn=0/1BD42D0 horae-browser-checks> 2026-10-07 14:56:07.183 UTC [18] LOG: database system is shut down error: Cannot build '/nix/store/jmnsfs7h99iam12hxv8bi0pprix3nmx6-horae-browser-checks.drv'. Reason: builder failed with exit code 1. Output paths: /nix/store/kxml3y8gcvkd1iqgkz32cgcxpcx8rkxl-horae-browser-checks Last 25 log lines: > PASS: invoice selection, partial balances, exact excess, dirty/pending navigation, reload recovery, account-scoped replay, storage failure safety and authorized per-occurrence project balances > PASS: New Project task rates and editor capabilities preserve configured/legacy modes, source currencies, unknown/zero recovery, scoped budgets and keyboard recovery across three widths > AssertionError [ERR_ASSERTION]: Observe the actual get_project_details route before replaying it > at post (/nix/store/n3bybns5jfy39k7zalkin8xgx0yid5yy-browser/new-project-permissions.cjs:45:12) > at /nix/store/n3bybns5jfy39k7zalkin8xgx0yid5yy-browser/new-project-permissions.cjs:141:29 { > generatedMessage: false, > code: 'ERR_ASSERTION', > actual: undefined, > expected: true, > operator: '==', > diff: 'simple' > } > 2026-10-07T14:51:59.009423Z WARN horae: DEV_LOGIN=1: /auth/dev-login signs anyone in as an admin without a password. Use it for local development only. > 2026-10-07 14:51:58.671 UTC [18] LOG: starting PostgreSQL 17.10 on x86_64-pc-linux-gnu, compiled by clang version 21.1.8, 64-bit > 2026-10-07 14:51:58.671 UTC [18] LOG: listening on Unix socket "/tmp/horae-browser.AoiHdi/.s.PGSQL.5432" > 2026-10-07 14:51:58.673 UTC [21] LOG: database system was shut down at 2026-10-07 14:51:58 UTC > 2026-10-07 14:51:58.677 UTC [18] LOG: database system is ready to accept connections > 2026-10-07 14:51:58.984 UTC [127] LOG: could not receive data from client: Connection reset by peer > 2026-10-07 14:56:07.158 UTC [18] LOG: received fast shutdown request > 2026-10-07 14:56:07.158 UTC [18] LOG: aborting any active transactions > 2026-10-07 14:56:07.160 UTC [18] LOG: background worker "logical replication launcher" (PID 24) exited with exit code 1 > 2026-10-07 14:56:07.164 UTC [19] LOG: shutting down > 2026-10-07 14:56:07.164 UTC [19] LOG: checkpoint starting: shutdown immediate > 2026-10-07 14:56:07.176 UTC [19] LOG: checkpoint complete: wrote 1302 buffers (7.9%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.012 s, sync=0.001 s, total=0.013 s; sync files=0, longest=0.000 s, average=0.000 s; distance=7070 kB, estimate=7070 kB; lsn=0/1BD42D0, redo lsn=0/1BD42D0 > 2026-10-07 14:56:07.183 UTC [18] LOG: database system is shut down For full logs, run: nix log /nix/store/jmnsfs7h99iam12hxv8bi0pprix3nmx6-horae-browser-checks.drv nixbot: transient error detected, retrying once this derivation will be built: /nix/store/jmnsfs7h99iam12hxv8bi0pprix3nmx6-horae-browser-checks.drv building '/nix/store/jmnsfs7h99iam12hxv8bi0pprix3nmx6-horae-browser-checks.drv' horae-browser-checks> initdb: warning: enabling "trust" authentication for local connections horae-browser-checks> initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb. horae-browser-checks> waiting for server to start.... done horae-browser-checks> server started horae-browser-checks> 2026-10-07T14:56:09.585321Z INFO horae: Running migrations... horae-browser-checks> 2026-10-07T14:56:09.757611Z INFO horae: Migrations complete. horae-browser-checks> 2026-10-07T14:56:09.775093Z INFO horae::seed: Seeding demo data… horae-browser-checks> 2026-10-07T14:56:09.789649Z INFO horae::seed: Seed complete. horae-browser-checks> 2026-10-07T14:56:09.796370Z INFO horae::seed: time_entries: 10 rows horae-browser-checks> 2026-10-07T14:56:09.797234Z INFO horae::seed: clients: 2 rows horae-browser-checks> PASS: scoped project list/detail expose workflow labels without directory access, private notes or rates horae-browser-checks> PASS: edit and managed-project revocation remove current UI authority without legacy Administrator fallback horae-browser-checks> PASS: inactive-account and changed-policy responses clear retained detail; retry recovers only the original binding horae-browser-checks> PASS: header actions, supported metrics and labelled native budget progress horae-browser-checks> PASS: design heading, compact row typography and inline project type horae-browser-checks> PASS: filtered empty state resets search, scope and client horae-browser-checks> PASS: narrow/short layouts, keyboard row actions and export formats horae-browser-checks> PASS: loading spend is unavailable until the read completes horae-browser-checks> PASS: failed spend is unavailable; retry restores real amounts horae-browser-checks> PASS: configured monthly consumption replaces lifetime spend only after loading horae-browser-checks> PASS: keyboard-accessible scope breakdown exposes overruns without layout overflow horae-browser-checks> PASS: failed configured budget never falls back to lifetime figures horae-browser-checks> PASS: empty-state guidance and action visibility for admin horae-browser-checks> PASS: empty-state guidance and action visibility for manager horae-browser-checks> PASS: empty-state guidance and action visibility for member horae-browser-checks> PASS: shared Menu, Combobox, empty-state and navigation-icon defaults are unchanged horae-browser-checks> PASS: /clients header at 320px horae-browser-checks> PASS: /clients header at 390px horae-browser-checks> PASS: /clients header at 768px horae-browser-checks> PASS: /clients header at 1280px horae-browser-checks> PASS: /clients header at 1440px horae-browser-checks> PASS: /projects header at 320px horae-browser-checks> PASS: /projects header at 390px horae-browser-checks> PASS: /projects header at 768px horae-browser-checks> PASS: /projects header at 1280px horae-browser-checks> PASS: /projects header at 1440px horae-browser-checks> PASS: /invoices header at 320px horae-browser-checks> PASS: /invoices header at 390px horae-browser-checks> PASS: /invoices header at 768px horae-browser-checks> PASS: /invoices header at 1280px horae-browser-checks> PASS: /invoices header at 1440px horae-browser-checks> PASS: /reports header at 320px horae-browser-checks> PASS: /reports header at 390px horae-browser-checks> PASS: /reports header at 768px horae-browser-checks> PASS: /reports header at 1280px horae-browser-checks> PASS: /reports header at 1440px horae-browser-checks> PASS: /admin/users header at 320px horae-browser-checks> PASS: /admin/users header at 390px horae-browser-checks> PASS: /admin/users header at 768px horae-browser-checks> PASS: /admin/users header at 1280px horae-browser-checks> PASS: /admin/users header at 1440px horae-browser-checks> PASS: /approvals header at 320px horae-browser-checks> PASS: /approvals header at 390px horae-browser-checks> PASS: /approvals header at 768px horae-browser-checks> PASS: /approvals header at 1280px horae-browser-checks> PASS: /approvals header at 1440px horae-browser-checks> PASS: /settings header at 320px horae-browser-checks> PASS: /settings header at 390px horae-browser-checks> PASS: /settings header at 768px horae-browser-checks> PASS: /settings header at 1280px horae-browser-checks> PASS: /settings header at 1440px horae-browser-checks> PASS: /admin/importers header at 320px horae-browser-checks> PASS: /admin/importers header at 390px horae-browser-checks> PASS: /admin/importers header at 768px horae-browser-checks> PASS: /admin/importers header at 1280px horae-browser-checks> PASS: /admin/importers header at 1440px horae-browser-checks> PASS: /timesheet/week/2026-10-05 header at 320px horae-browser-checks> PASS: /timesheet/week/2026-10-05 header at 390px horae-browser-checks> PASS: /timesheet/week/2026-10-05 header at 768px horae-browser-checks> PASS: /timesheet/week/2026-10-05 header at 1280px horae-browser-checks> PASS: /timesheet/week/2026-10-05 header at 1440px horae-browser-checks> PASS: /timesheet/day/2026-10-05 header at 320px horae-browser-checks> PASS: /timesheet/day/2026-10-05 header at 390px horae-browser-checks> PASS: /timesheet/day/2026-10-05 header at 768px horae-browser-checks> PASS: /timesheet/day/2026-10-05 header at 1280px horae-browser-checks> PASS: /timesheet/day/2026-10-05 header at 1440px horae-browser-checks> PASS: /timesheet/calendar/2026-10-05 header at 320px horae-browser-checks> PASS: /timesheet/calendar/2026-10-05 header at 390px horae-browser-checks> PASS: /timesheet/calendar/2026-10-05 header at 768px horae-browser-checks> PASS: /timesheet/calendar/2026-10-05 header at 1280px horae-browser-checks> PASS: /timesheet/calendar/2026-10-05 header at 1440px horae-browser-checks> PASS: project names and badges stay within aligned columns; scrolling to last-row actions opens editing horae-browser-checks> PASS: small-screen timesheet pager, date picker and view controls remain usable horae-browser-checks> PASS: admin subnavigation and its content remain reachable on mobile horae-browser-checks> PASS: day strip scrolls to Sunday and long entry labels do not cover actions horae-browser-checks> CHECK: late popover initialization restores missing focus without overriding deliberate focus horae-browser-checks> PASS: late popover initialization restores missing focus without overriding deliberate focus horae-browser-checks> CHECK: content reflow preserves an open menu while deliberate scrolling still dismisses it horae-browser-checks> PASS: content reflow preserves an open menu while deliberate scrolling still dismisses it horae-browser-checks> CHECK: first and last project-row actions are initially visible and clickable horae-browser-checks> PASS: first and last project-row actions are initially visible and clickable horae-browser-checks> CHECK: menu keyboard, disabled items, outside click and repeated opening horae-browser-checks> PASS: menu keyboard, disabled items, outside click and repeated opening horae-browser-checks> CHECK: scroll and resize dismiss without leaving stale menus or focus horae-browser-checks> PASS: scroll and resize dismiss without leaving stale menus or focus horae-browser-checks> CHECK: short-screen menu scrolls internally and supports reverse Tab and Space horae-browser-checks> PASS: short-screen menu scrolls internally and supports reverse Tab and Space horae-browser-checks> CHECK: filter and calendar menus keep their callbacks and survive route changes horae-browser-checks> PASS: filter and calendar menus keep their callbacks and survive route changes horae-browser-checks> CHECK: Timesheet keeps the shared calendar and week selection behavior horae-browser-checks> PASS: Timesheet keeps the shared calendar and week selection behavior horae-browser-checks> PASS: mobile content width, keyboard toggle, Escape/focus restoration and navigation close horae-browser-checks> PASS: short mobile viewport reaches account navigation and preserves desktop collapse state horae-browser-checks> PASS: desktop drag width survives mobile and breakpoint transitions horae-browser-checks> PASS: keyboard selection, mixed/select-all states and Actions count horae-browser-checks> PASS: search, status and client changes clear selection horae-browser-checks> PASS: keyboard selection/confirmation and no document overflow in both themes at three widths horae-browser-checks> PASS: cancel/focus, failure retry, pending guard and archive/reactivate confirmation horae-browser-checks> PASS: oversized selection cannot submit and members have no bulk controls horae-browser-checks> PASS: real atomic archive/reactivate, anonymous/member/inactive denial, manager/admin and safe retries horae-browser-checks> PASS: bulk success restores focus and recovers the list without stale actions horae-browser-checks> PASS: bulk pending restores focus and recovers the list without stale actions horae-browser-checks> PASS: bulk pending-navigation restores focus and recovers the list without stale actions horae-browser-checks> PASS: bulk failure restores focus and recovers the list without stale actions horae-browser-checks> PASS: client activation failure remains visible with form closed, open and cancelled horae-browser-checks> PASS: successful form save preserves action error; real status retry clears it and refreshes the row horae-browser-checks> PASS: archive failure survives menu dismissal; shared edit failure preserves input and safely retries horae-browser-checks> PASS: failed team removal preserves the draft, safely retries and can be restored through the shared editor horae-browser-checks> PASS: initial catalog/draft failures show loading and recovery without rendering or saving an empty replacement horae-browser-checks> PASS: design typography, section spacing, quiet dividers and theme-aware task information horae-browser-checks> PASS: project types retain native keyboard selection and the designed icon/option-card states horae-browser-checks> PASS: searchable client selection, pending/error recovery and explicit/inherited currency horae-browser-checks> PASS: client default-rate currency rejects relabelling, preserves failed input and permits compatible edits horae-browser-checks> PASS: task and teammate searches handle pending results, keyboard selection, duplicates and retry horae-browser-checks> PASS: real client, team, task restrictions, billing and invoice defaults survive reload horae-browser-checks> PASS: all invoice-default errors identify and focus their field, preserve input and recover at three widths horae-browser-checks> PASS: basic-field rejections retain values, link visible errors and restore focus at three widths horae-browser-checks> PASS: failed resume and retry preserve the existing draft without a replacement write horae-browser-checks> PASS: invalid hourly rates and hour/fee budgets retain input and focus their error at three widths horae-browser-checks> PASS: a stale email configuration rejection can be corrected without sending mail horae-browser-checks> PASS: task/person rate, cost and budget errors identify their row and preserve other inputs at three widths horae-browser-checks> PASS: single/monthly fees, empty schedules and individual milestone errors recover without changing another row horae-browser-checks> PASS: responsive form, conditional panels and Cancel preserve the draft horae-browser-checks> PASS: edits made while a save is pending are saved after its acknowledgement horae-browser-checks> PASS: lost acknowledgement retries the same request and preserves newer edits horae-browser-checks> PASS: real finalized budget reaches the authorized Projects endpoint and display horae-browser-checks> PASS: a new tagged project reaches reports and both exports; pending/error filters never show stale rows horae-browser-checks> PASS: project invoice defaults prefill real estimates, stale reviews cannot generate, and editable draft values persist independently horae-browser-checks> PASS: lost creation response is idempotent and clears the completed draft horae-browser-checks> PASS: stale tabs cannot overwrite saved input; explicit discard removes only the draft horae-browser-checks> PASS: invoice selection, partial balances, exact excess, dirty/pending navigation, reload recovery, account-scoped replay, storage failure safety and authorized per-occurrence project balances horae-browser-checks> PASS: New Project task rates and editor capabilities preserve configured/legacy modes, source currencies, unknown/zero recovery, scoped budgets and keyboard recovery across three widths horae-browser-checks> AssertionError [ERR_ASSERTION]: Observe the actual get_project_details route before replaying it horae-browser-checks> at post (/nix/store/n3bybns5jfy39k7zalkin8xgx0yid5yy-browser/new-project-permissions.cjs:45:12) horae-browser-checks> at /nix/store/n3bybns5jfy39k7zalkin8xgx0yid5yy-browser/new-project-permissions.cjs:141:29 { horae-browser-checks> generatedMessage: false, horae-browser-checks> code: 'ERR_ASSERTION', horae-browser-checks> actual: undefined, horae-browser-checks> expected: true, horae-browser-checks> operator: '==', horae-browser-checks> diff: 'simple' horae-browser-checks> } horae-browser-checks> 2026-10-07T14:56:09.828899Z WARN horae: DEV_LOGIN=1: /auth/dev-login signs anyone in as an admin without a password. Use it for local development only. horae-browser-checks> 2026-10-07 14:56:09.448 UTC [18] LOG: starting PostgreSQL 17.10 on x86_64-pc-linux-gnu, compiled by clang version 21.1.8, 64-bit horae-browser-checks> 2026-10-07 14:56:09.449 UTC [18] LOG: listening on Unix socket "/tmp/horae-browser.KLCr6s/.s.PGSQL.5432" horae-browser-checks> 2026-10-07 14:56:09.451 UTC [21] LOG: database system was shut down at 2026-10-07 14:56:09 UTC horae-browser-checks> 2026-10-07 14:56:09.455 UTC [18] LOG: database system is ready to accept connections horae-browser-checks> 2026-10-07 14:56:09.757 UTC [76] LOG: could not receive data from client: Connection reset by peer horae-browser-checks> 2026-10-07 15:00:31.510 UTC [18] LOG: received fast shutdown request horae-browser-checks> 2026-10-07 15:00:31.511 UTC [18] LOG: aborting any active transactions horae-browser-checks> 2026-10-07 15:00:31.514 UTC [18] LOG: background worker "logical replication launcher" (PID 24) exited with exit code 1 horae-browser-checks> 2026-10-07 15:00:31.517 UTC [19] LOG: shutting down horae-browser-checks> 2026-10-07 15:00:31.517 UTC [19] LOG: checkpoint starting: shutdown immediate horae-browser-checks> 2026-10-07 15:00:31.534 UTC [19] LOG: checkpoint complete: wrote 1302 buffers (7.9%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.017 s, sync=0.001 s, total=0.018 s; sync files=0, longest=0.000 s, average=0.000 s; distance=7066 kB, estimate=7066 kB; lsn=0/1BD3260, redo lsn=0/1BD3260 horae-browser-checks> 2026-10-07 15:00:31.542 UTC [18] LOG: database system is shut down error: Cannot build '/nix/store/jmnsfs7h99iam12hxv8bi0pprix3nmx6-horae-browser-checks.drv'. Reason: builder failed with exit code 1. Output paths: /nix/store/kxml3y8gcvkd1iqgkz32cgcxpcx8rkxl-horae-browser-checks Last 25 log lines: > PASS: invoice selection, partial balances, exact excess, dirty/pending navigation, reload recovery, account-scoped replay, storage failure safety and authorized per-occurrence project balances > PASS: New Project task rates and editor capabilities preserve configured/legacy modes, source currencies, unknown/zero recovery, scoped budgets and keyboard recovery across three widths > AssertionError [ERR_ASSERTION]: Observe the actual get_project_details route before replaying it > at post (/nix/store/n3bybns5jfy39k7zalkin8xgx0yid5yy-browser/new-project-permissions.cjs:45:12) > at /nix/store/n3bybns5jfy39k7zalkin8xgx0yid5yy-browser/new-project-permissions.cjs:141:29 { > generatedMessage: false, > code: 'ERR_ASSERTION', > actual: undefined, > expected: true, > operator: '==', > diff: 'simple' > } > 2026-10-07T14:56:09.828899Z WARN horae: DEV_LOGIN=1: /auth/dev-login signs anyone in as an admin without a password. Use it for local development only. > 2026-10-07 14:56:09.448 UTC [18] LOG: starting PostgreSQL 17.10 on x86_64-pc-linux-gnu, compiled by clang version 21.1.8, 64-bit > 2026-10-07 14:56:09.449 UTC [18] LOG: listening on Unix socket "/tmp/horae-browser.KLCr6s/.s.PGSQL.5432" > 2026-10-07 14:56:09.451 UTC [21] LOG: database system was shut down at 2026-10-07 14:56:09 UTC > 2026-10-07 14:56:09.455 UTC [18] LOG: database system is ready to accept connections > 2026-10-07 14:56:09.757 UTC [76] LOG: could not receive data from client: Connection reset by peer > 2026-10-07 15:00:31.510 UTC [18] LOG: received fast shutdown request > 2026-10-07 15:00:31.511 UTC [18] LOG: aborting any active transactions > 2026-10-07 15:00:31.514 UTC [18] LOG: background worker "logical replication launcher" (PID 24) exited with exit code 1 > 2026-10-07 15:00:31.517 UTC [19] LOG: shutting down > 2026-10-07 15:00:31.517 UTC [19] LOG: checkpoint starting: shutdown immediate > 2026-10-07 15:00:31.534 UTC [19] LOG: checkpoint complete: wrote 1302 buffers (7.9%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.017 s, sync=0.001 s, total=0.018 s; sync files=0, longest=0.000 s, average=0.000 s; distance=7066 kB, estimate=7066 kB; lsn=0/1BD3260, redo lsn=0/1BD3260 > 2026-10-07 15:00:31.542 UTC [18] LOG: database system is shut down For full logs, run: nix log /nix/store/jmnsfs7h99iam12hxv8bi0pprix3nmx6-horae-browser-checks.drv