1these 2 derivations will be built:2 /nix/store/fiqqnzqgdg61cjmv0wdw95v37zyhvymh-horae-0.1.0.drv3 /nix/store/xh2nsapn0slirqk5x5jh6j4m9r8ipc08-horae-browser-checks.drv4building '/nix/store/xh2nsapn0slirqk5x5jh6j4m9r8ipc08-horae-browser-checks.drv' on 'grpc://farm.numtide.com:50051?client-cert=/run/secrets/vars/per-machine/bld1/nix-farm-ci/crt&client-key=/run/secrets/vars/per-machine/bld1/nix-farm-ci/key&connect-timeout=22&system=aarch64-linux'5building '/nix/store/xh2nsapn0slirqk5x5jh6j4m9r8ipc08-horae-browser-checks.drv' on farm.numtide.com:500516horae-browser-checks> elastic-arm-0e79936e: building xh2nsapn0slirqk5x5jh6j4m9r8ipc08-horae-browser-checks.drv7horae-browser-checks> initdb: warning: enabling "trust" authentication for local connections8horae-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.9horae-browser-checks> waiting for server to start.... done10horae-browser-checks> server started11horae-browser-checks> 2026-10-07T07:53:16.118119Z INFO horae: Running migrations...12horae-browser-checks> 2026-10-07T07:53:16.279074Z INFO horae: Migrations complete.13horae-browser-checks> 2026-10-07T07:53:16.292768Z INFO horae::seed: Seeding demo data…14horae-browser-checks> 2026-10-07T07:53:16.313960Z INFO horae::seed: Seed complete.15horae-browser-checks> 2026-10-07T07:53:16.314575Z INFO horae::seed: time_entries: 10 rows16horae-browser-checks> 2026-10-07T07:53:16.317902Z INFO horae::seed: clients: 2 rows17horae-browser-checks> PASS: keyboard manager removal preserves archived membership and withheld money/notes at desktop and narrow widths18horae-browser-checks> PASS: financial read grants display disabled values and ordinary saves preserve stored fields19horae-browser-checks> PASS: explicit zero, cost reset and lost-acknowledgement replay preserve exact original intent20horae-browser-checks> PASS: current-authority revocation discards old editor state; explicit reload restores a fresh authorized form21horae-browser-checks> PASS: an explicit hours-only budget edit preserves inactive hidden money and recorded history22horae-browser-checks> PASS: header actions, supported metrics and labelled native budget progress23horae-browser-checks> PASS: design heading, compact row typography and inline project type24horae-browser-checks> PASS: filtered empty state resets search, scope and client25horae-browser-checks> PASS: narrow/short layouts, keyboard row actions and export formats26horae-browser-checks> PASS: loading spend is unavailable until the read completes27horae-browser-checks> PASS: failed spend is unavailable; retry restores real amounts28horae-browser-checks> PASS: configured monthly consumption replaces lifetime spend only after loading29horae-browser-checks> PASS: keyboard-accessible scope breakdown exposes overruns without layout overflow30horae-browser-checks> PASS: failed configured budget never falls back to lifetime figures31horae-browser-checks> PASS: empty-state guidance and action visibility for admin32horae-browser-checks> PASS: empty-state guidance and action visibility for manager33horae-browser-checks> PASS: empty-state guidance and action visibility for member34horae-browser-checks> PASS: shared Menu, Combobox, empty-state and navigation-icon defaults are unchanged35horae-browser-checks> PASS: /clients header at 320px36horae-browser-checks> PASS: /clients header at 390px37horae-browser-checks> PASS: /clients header at 768px38horae-browser-checks> PASS: /clients header at 1280px39horae-browser-checks> PASS: /clients header at 1440px40horae-browser-checks> PASS: /projects header at 320px41horae-browser-checks> PASS: /projects header at 390px42horae-browser-checks> PASS: /projects header at 768px43horae-browser-checks> PASS: /projects header at 1280px44horae-browser-checks> PASS: /projects header at 1440px45horae-browser-checks> PASS: /invoices header at 320px46horae-browser-checks> PASS: /invoices header at 390px47horae-browser-checks> PASS: /invoices header at 768px48horae-browser-checks> PASS: /invoices header at 1280px49horae-browser-checks> PASS: /invoices header at 1440px50horae-browser-checks> PASS: /reports header at 320px51horae-browser-checks> PASS: /reports header at 390px52horae-browser-checks> PASS: /reports header at 768px53horae-browser-checks> PASS: /reports header at 1280px54horae-browser-checks> PASS: /reports header at 1440px55horae-browser-checks> PASS: /admin/users header at 320px56horae-browser-checks> PASS: /admin/users header at 390px57horae-browser-checks> PASS: /admin/users header at 768px58horae-browser-checks> PASS: /admin/users header at 1280px59horae-browser-checks> PASS: /admin/users header at 1440px60horae-browser-checks> PASS: /approvals header at 320px61horae-browser-checks> PASS: /approvals header at 390px62horae-browser-checks> PASS: /approvals header at 768px63horae-browser-checks> PASS: /approvals header at 1280px64horae-browser-checks> PASS: /approvals header at 1440px65horae-browser-checks> PASS: /settings header at 320px66horae-browser-checks> PASS: /settings header at 390px67horae-browser-checks> PASS: /settings header at 768px68horae-browser-checks> PASS: /settings header at 1280px69horae-browser-checks> PASS: /settings header at 1440px70horae-browser-checks> PASS: /admin/importers header at 320px71horae-browser-checks> PASS: /admin/importers header at 390px72horae-browser-checks> PASS: /admin/importers header at 768px73horae-browser-checks> PASS: /admin/importers header at 1280px74horae-browser-checks> PASS: /admin/importers header at 1440px75horae-browser-checks> PASS: /timesheet/week/2026-10-05 header at 320px76horae-browser-checks> PASS: /timesheet/week/2026-10-05 header at 390px77horae-browser-checks> PASS: /timesheet/week/2026-10-05 header at 768px78horae-browser-checks> PASS: /timesheet/week/2026-10-05 header at 1280px79horae-browser-checks> PASS: /timesheet/week/2026-10-05 header at 1440px80horae-browser-checks> PASS: /timesheet/day/2026-10-05 header at 320px81horae-browser-checks> PASS: /timesheet/day/2026-10-05 header at 390px82horae-browser-checks> PASS: /timesheet/day/2026-10-05 header at 768px83horae-browser-checks> PASS: /timesheet/day/2026-10-05 header at 1280px84horae-browser-checks> PASS: /timesheet/day/2026-10-05 header at 1440px85horae-browser-checks> PASS: /timesheet/calendar/2026-10-05 header at 320px86horae-browser-checks> PASS: /timesheet/calendar/2026-10-05 header at 390px87horae-browser-checks> PASS: /timesheet/calendar/2026-10-05 header at 768px88horae-browser-checks> PASS: /timesheet/calendar/2026-10-05 header at 1280px89horae-browser-checks> PASS: /timesheet/calendar/2026-10-05 header at 1440px90horae-browser-checks> PASS: project names and badges stay within aligned columns; scrolling to last-row actions opens editing91horae-browser-checks> PASS: small-screen timesheet pager, date picker and view controls remain usable92horae-browser-checks> PASS: admin subnavigation and its content remain reachable on mobile93horae-browser-checks> PASS: day strip scrolls to Sunday and long entry labels do not cover actions94horae-browser-checks> CHECK: late popover initialization restores missing focus without overriding deliberate focus95horae-browser-checks> PASS: late popover initialization restores missing focus without overriding deliberate focus96horae-browser-checks> CHECK: content reflow preserves an open menu while deliberate scrolling still dismisses it97horae-browser-checks> PASS: content reflow preserves an open menu while deliberate scrolling still dismisses it98horae-browser-checks> CHECK: first and last project-row actions are initially visible and clickable99horae-browser-checks> PASS: first and last project-row actions are initially visible and clickable100horae-browser-checks> CHECK: menu keyboard, disabled items, outside click and repeated opening101horae-browser-checks> PASS: menu keyboard, disabled items, outside click and repeated opening102horae-browser-checks> CHECK: scroll and resize dismiss without leaving stale menus or focus103horae-browser-checks> PASS: scroll and resize dismiss without leaving stale menus or focus104horae-browser-checks> CHECK: short-screen menu scrolls internally and supports reverse Tab and Space105horae-browser-checks> PASS: short-screen menu scrolls internally and supports reverse Tab and Space106horae-browser-checks> CHECK: filter and calendar menus keep their callbacks and survive route changes107horae-browser-checks> PASS: filter and calendar menus keep their callbacks and survive route changes108horae-browser-checks> CHECK: Timesheet keeps the shared calendar and week selection behavior109horae-browser-checks> PASS: Timesheet keeps the shared calendar and week selection behavior110horae-browser-checks> PASS: mobile content width, keyboard toggle, Escape/focus restoration and navigation close111horae-browser-checks> PASS: short mobile viewport reaches account navigation and preserves desktop collapse state112horae-browser-checks> PASS: desktop drag width survives mobile and breakpoint transitions113horae-browser-checks> PASS: keyboard selection, mixed/select-all states and Actions count114horae-browser-checks> PASS: search, status and client changes clear selection115horae-browser-checks> PASS: keyboard selection/confirmation and no document overflow in both themes at three widths116horae-browser-checks> PASS: cancel/focus, failure retry, pending guard and archive/reactivate confirmation117horae-browser-checks> PASS: oversized selection cannot submit and members have no bulk controls118horae-browser-checks> PASS: real atomic archive/reactivate, anonymous/member/inactive denial, manager/admin and safe retries119horae-browser-checks> PASS: bulk success restores focus and recovers the list without stale actions120horae-browser-checks> PASS: bulk pending restores focus and recovers the list without stale actions121horae-browser-checks> PASS: bulk failure restores focus and recovers the list without stale actions122horae-browser-checks> PASS: client activation failure remains visible with form closed, open and cancelled123horae-browser-checks> PASS: successful form save preserves action error; real status retry clears it and refreshes the row124horae-browser-checks> PASS: archive failure survives menu dismissal; shared edit failure preserves input and safely retries125horae-browser-checks> PASS: assignment removal failure remains visible with form closed, open and cancelled126horae-browser-checks> PASS: initial catalog/draft failures show loading and recovery without rendering or saving an empty replacement127horae-browser-checks> PASS: design typography, section spacing, quiet dividers and theme-aware task information128horae-browser-checks> PASS: project types retain native keyboard selection and the designed icon/option-card states129horae-browser-checks> PASS: searchable client selection, pending/error recovery and explicit/inherited currency130horae-browser-checks> PASS: client default-rate currency rejects relabelling, preserves failed input and permits compatible edits131horae-browser-checks> PASS: task and teammate searches handle pending results, keyboard selection, duplicates and retry132horae-browser-checks> PASS: real client, team, task restrictions, billing and invoice defaults survive reload133horae-browser-checks> PASS: all invoice-default errors identify and focus their field, preserve input and recover at three widths134horae-browser-checks> PASS: basic-field rejections retain values, link visible errors and restore focus at three widths135horae-browser-checks> PASS: failed resume and retry preserve the existing draft without a replacement write136horae-browser-checks> PASS: invalid hourly rates and hour/fee budgets retain input and focus their error at three widths137horae-browser-checks> PASS: a stale email configuration rejection can be corrected without sending mail138horae-browser-checks> PASS: task/person rate, cost and budget errors identify their row and preserve other inputs at three widths139horae-browser-checks> PASS: single/monthly fees, empty schedules and individual milestone errors recover without changing another row140horae-browser-checks> PASS: responsive form, conditional panels and Cancel preserve the draft141horae-browser-checks> PASS: edits made while a save is pending are saved after its acknowledgement142horae-browser-checks> PASS: lost acknowledgement retries the same request and preserves newer edits143horae-browser-checks> PASS: real finalized budget reaches the authorized Projects endpoint and display144horae-browser-checks> PASS: a new tagged project reaches reports and both exports; pending/error filters never show stale rows145horae-browser-checks> PASS: project invoice defaults prefill real estimates, stale reviews cannot generate, and editable draft values persist independently146horae-browser-checks> PASS: lost creation response is idempotent and clears the completed draft147horae-browser-checks> PASS: stale tabs cannot overwrite saved input; explicit discard removes only the draft148horae-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 balances149horae-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 widths150horae-browser-checks> PASS: organization admin real-session UI, draft ownership, progress/export scope and financial redaction151horae-browser-checks> PASS: organization manager real-session UI, draft ownership, progress/export scope and financial redaction152horae-browser-checks> PASS: project lead real-session UI, draft ownership, progress/export scope and financial redaction153horae-browser-checks> PASS: project admin real-session UI, draft ownership, progress/export scope and financial redaction154horae-browser-checks> PASS: visible assigned member real-session UI, draft ownership, progress/export scope and financial redaction155horae-browser-checks> PASS: private assigned member real-session UI, draft ownership, progress/export scope and financial redaction156horae-browser-checks> PASS: revoked assignment and outsider identities cannot grant project-wide access157horae-browser-checks> PASS: inactive/anonymous requests are denied and a manager creates a real project without private overrides158horae-browser-checks> PASS: stale client/task/person references and archived task-name conflicts preserve drafts and support field-level recovery at three widths159horae-browser-checks> PASS: saved invalid task names/access identify their row, preserve input and support keyboard recovery at three widths before real finalization160horae-browser-checks> PASS: 390/1 hourly Person/No budget161horae-browser-checks> PASS: 390/1 hourly Task/Hours per task162horae-browser-checks> PASS: 390/1 hourly Project/Total project hours163horae-browser-checks> PASS: 390/1 hourly Person/Hours per person164horae-browser-checks> PASS: 390/1 hourly Task/Fees per task165horae-browser-checks> PASS: 390/1 hourly Project/Total project fees166horae-browser-checks> PASS: 390/1 fixed/no budget167horae-browser-checks> PASS: 390/1 fixed/Single fee168horae-browser-checks> PASS: 390/1 fixed/Milestones169horae-browser-checks> PASS: 390/1 fixed/Monthly170horae-browser-checks> PASS: 390/1 non-billable/No budget171horae-browser-checks> PASS: 390/1 non-billable/Total project hours172horae-browser-checks> PASS: 390/1 non-billable/Hours per task173horae-browser-checks> PASS: 390/1 non-billable/Hours per person174horae-browser-checks> PASS: native Tab order, accessible names, reverse Tab and unclipped focus across all billing/budget branches at 390px and 100% text175horae-browser-checks> PASS: 768/1 hourly Person/No budget176horae-browser-checks> PASS: 768/1 hourly Task/Hours per task