nixbot

builds

failed horae-browser-checks checks.aarch64-linux.browser · build #458 · raw

1elastic-arm-976bb8e2: building 768dqqqkizpq2cblf79c6j740790pfda-horae-browser-checks.drv2initdb: warning: enabling "trust" authentication for local connections3initdb: 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.4waiting for server to start.... done5server started62026-10-08T04:28:28.159087Z INFO horae: Running migrations...72026-10-08T04:28:28.794841Z INFO horae: Migrations complete.82026-10-08T04:28:28.837867Z INFO horae::seed: Seeding demo data…92026-10-08T04:28:28.965196Z INFO horae::seed: Seed complete.102026-10-08T04:28:28.986966Z INFO horae::seed: time_entries: 10 rows112026-10-08T04:28:28.989109Z INFO horae::seed: clients: 2 rows12PASS: header actions, supported metrics and labelled native budget progress13PASS: design heading, compact row typography and inline project type14PASS: filtered empty state resets search, scope and client15PASS: narrow/short layouts, keyboard row actions and export formats16PASS: loading spend is unavailable until the read completes17PASS: failed spend is unavailable; retry restores real amounts18PASS: configured monthly consumption replaces lifetime spend only after loading19PASS: keyboard-accessible scope breakdown exposes overruns without layout overflow20PASS: failed configured budget never falls back to lifetime figures21PASS: empty-state guidance and action visibility for admin22PASS: empty-state guidance and action visibility for manager23PASS: empty-state guidance and action visibility for member24PASS: shared Menu, Combobox, empty-state and navigation-icon defaults are unchanged25PASS: /clients header at 320px26PASS: /clients header at 390px27PASS: /clients header at 768px28PASS: /clients header at 1280px29PASS: /clients header at 1440px30PASS: /projects header at 320px31PASS: /projects header at 390px32PASS: /projects header at 768px33PASS: /projects header at 1280px34PASS: /projects header at 1440px35PASS: /invoices header at 320px36PASS: /invoices header at 390px37PASS: /invoices header at 768px38PASS: /invoices header at 1280px39PASS: /invoices header at 1440px40PASS: /reports header at 320px41PASS: /reports header at 390px42PASS: /reports header at 768px43PASS: /reports header at 1280px44PASS: /reports header at 1440px45PASS: /admin/users header at 320px46PASS: /admin/users header at 390px47PASS: /admin/users header at 768px48PASS: /admin/users header at 1280px49PASS: /admin/users header at 1440px50PASS: /approvals header at 320px51PASS: /approvals header at 390px52PASS: /approvals header at 768px53PASS: /approvals header at 1280px54PASS: /approvals header at 1440px55PASS: /settings header at 320px56PASS: /settings header at 390px57PASS: /settings header at 768px58PASS: /settings header at 1280px59PASS: /settings header at 1440px60PASS: /admin/importers header at 320px61PASS: /admin/importers header at 390px62PASS: /admin/importers header at 768px63PASS: /admin/importers header at 1280px64PASS: /admin/importers header at 1440px65PASS: /timesheet/week/2026-10-05 header at 320px66PASS: /timesheet/week/2026-10-05 header at 390px67PASS: /timesheet/week/2026-10-05 header at 768px68PASS: /timesheet/week/2026-10-05 header at 1280px69PASS: /timesheet/week/2026-10-05 header at 1440px70PASS: /timesheet/day/2026-10-05 header at 320px71PASS: /timesheet/day/2026-10-05 header at 390px72PASS: /timesheet/day/2026-10-05 header at 768px73PASS: /timesheet/day/2026-10-05 header at 1280px74PASS: /timesheet/day/2026-10-05 header at 1440px75PASS: /timesheet/calendar/2026-10-05 header at 320px76PASS: /timesheet/calendar/2026-10-05 header at 390px77PASS: /timesheet/calendar/2026-10-05 header at 768px78PASS: /timesheet/calendar/2026-10-05 header at 1280px79PASS: /timesheet/calendar/2026-10-05 header at 1440px80PASS: project names and badges stay within aligned columns; scrolling to last-row actions opens editing81PASS: small-screen timesheet pager, date picker and view controls remain usable82PASS: admin subnavigation and its content remain reachable on mobile83PASS: day strip scrolls to Sunday and long entry labels do not cover actions84CHECK: late popover initialization restores missing focus without overriding deliberate focus85PASS: late popover initialization restores missing focus without overriding deliberate focus86CHECK: content reflow preserves an open menu while deliberate scrolling still dismisses it87PASS: content reflow preserves an open menu while deliberate scrolling still dismisses it88CHECK: first and last project-row actions are initially visible and clickable89PASS: first and last project-row actions are initially visible and clickable90CHECK: menu keyboard, disabled items, outside click and repeated opening91PASS: menu keyboard, disabled items, outside click and repeated opening92CHECK: scroll and resize dismiss without leaving stale menus or focus93PASS: scroll and resize dismiss without leaving stale menus or focus94CHECK: short-screen menu scrolls internally and supports reverse Tab and Space95PASS: short-screen menu scrolls internally and supports reverse Tab and Space96CHECK: filter and calendar menus keep their callbacks and survive route changes97PASS: filter and calendar menus keep their callbacks and survive route changes98CHECK: Timesheet keeps the shared calendar and week selection behavior99PASS: Timesheet keeps the shared calendar and week selection behavior100PASS: mobile content width, keyboard toggle, Escape/focus restoration and navigation close101PASS: short mobile viewport reaches account navigation and preserves desktop collapse state102PASS: desktop drag width survives mobile and breakpoint transitions103PASS: keyboard selection, mixed/select-all states and Actions count104PASS: search, status and client changes clear selection105PASS: keyboard selection/confirmation and no document overflow in both themes at three widths106PASS: cancel/focus, failure retry, pending guard and archive/reactivate confirmation107PASS: oversized selection cannot submit and members have no bulk controls108PASS: real atomic archive/reactivate, anonymous/member/inactive denial, manager/admin and safe retries109PASS: bulk success restores focus and recovers the list without stale actions110PASS: bulk pending restores focus and recovers the list without stale actions111PASS: bulk failure restores focus and recovers the list without stale actions112PASS: client activation failure remains visible with form closed, open and cancelled113PASS: successful form save preserves action error; real status retry clears it and refreshes the row114PASS: archive failure survives menu dismissal; shared edit failure preserves input and safely retries115PASS: assignment removal failure remains visible with form closed, open and cancelled116PASS: initial catalog/draft failures show loading and recovery without rendering or saving an empty replacement117PASS: design typography, section spacing, quiet dividers and theme-aware task information118PASS: project types retain native keyboard selection and the designed icon/option-card states119ExpectError: expect(received).toBe(expected) // Object.is equality120121Expected: 0122Received: 1123124Call Log:125- Timeout 5000ms exceeded while waiting on the predicate126 at captureRawStack (/nix/store/9l763mr9j5rhgkjcwkgsig6vspvz3hc3-playwright-test-1.60.0/lib/node_modules/playwright-core/lib/coreBundle.js:3130:17)127 at callMatcherAsStep (/nix/store/9l763mr9j5rhgkjcwkgsig6vspvz3hc3-playwright-test-1.60.0/lib/node_modules/playwright/lib/matchers/expect.js:12873:57)128 at Object.toBe (/nix/store/9l763mr9j5rhgkjcwkgsig6vspvz3hc3-playwright-test-1.60.0/lib/node_modules/playwright/lib/matchers/expect.js:12863:23)129 at readsFinished (/nix/store/y3izss53fxka1cqraiwzav98b7b3djh6-browser/new-project.cjs:41:74)130 at /nix/store/y3izss53fxka1cqraiwzav98b7b3djh6-browser/new-project.cjs:286:11 {131 matcherResult: {132 pass: false,133 message: '\x1B[2mexpect(\x1B[22m\x1B[31mreceived\x1B[39m\x1B[2m).\x1B[22mtoBe\x1B[2m(\x1B[22m\x1B[32mexpected\x1B[39m\x1B[2m) // Object.is equality\x1B[22m\n' +134 '\n' +135 'Expected: \x1B[32m0\x1B[39m\n' +136 'Received: \x1B[31m1\x1B[39m\n' +137 '\n' +138 'Call Log:\n' +139 '- Timeout 5000ms exceeded while waiting on the predicate',140 name: 'toBe'141 }142}143{144 url: 'http://127.0.0.1:8093/projects/new',145 errors: [],146 pending: [ '/api/save_project_draft1604479113674082919' ],147 resources: [148 {149 type: 'fetch',150 host: '127.0.0.1:8093',151 path: '/api/save_project_draft1604479113674082919'152 }153 ],154 page: '- complementary "Navigation":\n' +155 ' - text: Horae\n' +156 ' - button "Collapse sidebar": «\n' +157 ' - button "Start timer"\n' +158 ' - text: Track\n' +159 ' - link "Timesheet":\n' +160 ' - /url: /timesheet/week/2026-10-08?span=week\n' +161 ' - img\n' +162 ' - text: Timesheet\n' +163 ' - text: Organize\n' +164 ' - link "Clients":\n' +165 ' - /url: /clients\n' +166 ' - img\n' +167 ' - text: Clients\n' +168 ' - link "Projects":\n' +169 ' - /url: /projects\n' +170 ' - img\n' +171 ' - text: Projects\n' +172 ' - link "Invoices":\n' +173 ' - /url: /invoices\n' +174 ' - img\n' +175 ' - text: Invoices\n' +176 ' - text: Review\n' +177 ' - link "Approvals":\n' +178 ' - /url: /approvals\n' +179 ' - img\n' +180 ' - text: Approvals\n' +181 ' - link "Reports":\n' +182 ' - /url: /reports\n' +183 ' - img\n' +184 ' - text: Reports\n' +185 ' - button "AU Admin User Admin ⌄"\n' +186 '- main:\n' +187 ' - button "Back to Projects"\n' +188 ' - text: Projects\n' +189 ' - heading "New project" [level=1]\n' +190 ' - status: Saving draft…\n' +191 ' - group "Project settings":\n' +192 ' - text: Client\n' +193 ' - paragraph: Who this project is for\n' +194 ' - button "Client" [expanded]: Acme Corp\n' +195 ' - dialog "Choose Client":\n' +196 ' - searchbox "Search Client": unavailable search\n' +197 ' - listbox "Choose Client":\n' +198 ' - option "Select a client…"\n' +199 ' - alert: "Could not search clients: error reaching server to call server function: error sending request: TypeError: Failed to fetch"\n' +200 ' - text: or\n' +201 ' - button "+ New client"\n' +202 ' - text: Project name\n' +203 ' - paragraph: Required\n' +204 ' - textbox "Project name"\n' +205 ' - text: Project code\n' +206 ' - paragraph: Optional\n' +207 ' - textbox "Project code"\n' +208 ' - text: "Last code: TECH-01"\n' +209 ' - paragraph: An optional reference for this project. Numbers or letters, up to 100 characters.\n' +210 ' - text: Dates\n' +211 ' - paragraph: Optional · planning only\n' +212 ' - text: Start date\n' +213 ' - button "Start date": Starts on\n' +214 ' - text: End date\n' +215 ' - button "End date": Ends on\n' +216 ' - paragraph: Dates are advisory and do not prevent time tracking.\n' +217 ' - text: Tags\n' +218 ' - paragraph: Optional · for filtering\n' +219 ' - textbox "Tags":\n' +220 ' - /placeholder: Add tags…\n' +221 ' - paragraph: Enter or comma adds a tag. Backspace on an empty field removes the last tag. Removing a tag here does not delete it from other projects.\n' +222 ' - text: Currency\n' +223 ' - paragraph: For billing and project rates\n' +224 ' - group:\n' +225 ' - button "Currency": Client default (EUR)\n' +226 ' - paragraph: Sets the currency for rates, fees and budgets. Costs use the workspace currency (EUR).\n' +227 ' - text: Notes\n' +228 ' - paragraph: Optional · admins only\n' +229 ' - textbox "Notes":\n' +230 ' - /placeholder: Private context for administrators\n' +231 ' - text: Report visibility\n' +232 ' - group "Report visibility":\n' +233 ` - radio "Managers only Organization managers and this project's leads can see progress." [checked]\n` +234 " - text: Managers only Organization managers and this project's leads can see progress.\n" +235 ' - radio "Everyone on the project Project members can also see progress, without private rates or costs."\n' +236 ' - text: Everyone on the project Project members can also see progress, without private rates or costs.\n' +237 ' - text: Project type\n' +238 ' - paragraph: How this project bills\n' +239 ' - group "Project type":\n' +240 ` - radio "Time & Materials Bill by the hour at your team's billable rates." [checked]\n` +241 " - text: Time & Materials Bill by the hour at your team's billable rates.\n" +242 ' - radio "Fixed Fee Bill a set fee, in one go or across a schedule."\n' +243 ' - text: Fixed Fee Bill a set fee, in one go or across a schedule.\n' +244 ' - radio "Non-Billable Track internal work without billing a client."\n' +245 ' - text: Non-Billable Track internal work without billing a client.\n' +246 ' - group "Billable rates":\n' +247 ' - text: Billable rates\n' +248 ` - radio "Person hourly rate Use each person's project override or profile rate." [checked]\n` +249 " - text: Person hourly rate Use each person's project override or profile rate.\n" +250 ' - radio "Task hourly rate Use the rate set for each task on this project."\n' +251 ' - text: Task hourly rate Use the rate set for each task on this project.\n' +252 ' - radio "Project hourly rate Apply one rate to all billable work on this project."\n' +253 ' - text: Project hourly rate Apply one rate to all billable work on this project.\n' +254 ' - text: Budget\n' +255 ' - button "Budget": No budget\n' +256 ' - region "Tasks":\n' +257 ' - heading "Tasks" [level=2]\n' +258 ' - text: 0 tasks Billable\n' +259 ' - button "All"\n' +260 ' - button "None"\n' +261 " - paragraph: Everyone on the project can track to unrestricted tasks. Open a task's access settings to limit who can.\n" +262 ' - paragraph: No tasks selected yet.\n' +263 ' - textbox "Find or create a task":\n' +264 ' - /placeholder: Add a task and press Enter\n' +265 ' - button "Add task" [disabled]\n' +266 ' - button "Code Review"\n' +267 ' - button "Design"\n' +268 ' - button "Development"\n' +269 ' - button "Meetings"\n' +270 ' - paragraph: New catalog tasks are created only when you save this project.\n' +271 ' - region "Team":\n' +272 ' - heading "Team" [level=2]\n' +273 ' - text: 0 people Check = manages this project\n' +274 ' - paragraph: No teammates selected yet.\n' +275 " - paragraph: Blank billable rates inherit the person's profile, then the client's default. Blank costs inherit only the profile cost. Rates are not converted between currencies. Overrides affect only this project.\n" +276 ' - button "Add a teammate…"\n' +277 ' - button "Add everyone":\n' +278 ' - img\n' +279 ' - text: Add everyone\n' +280 ' - region "Invoice defaults":\n' +281 ' - heading "Invoice defaults" [level=2]\n' +282 ' - paragraph: Pre-filled when preparing an invoice — editable per invoice\n' +283 ' - text: Payment terms\n' +284 ' - button "Payment terms": Net 30\n' +285 ' - text: PO number\n' +286 ' - paragraph: Optional\n' +287 ' - textbox "PO number":\n' +288 ' - /placeholder: ""\n' +289 ' - text: Tax (%)\n' +290 ' - paragraph: Optional · up to two decimal places\n' +291 ' - textbox "Tax (%)":\n' +292 ' - /placeholder: ""\n' +293 ' - text: "%"\n' +294 ' - button "Add a second tax"\n' +295 ' - text: Discount (%)\n' +296 ' - paragraph: Optional\n' +297 ' - textbox "Discount (%)":\n' +298 ' - /placeholder: ""\n' +299 ' - text: "%"\n' +300 ' - paragraph: Discount is applied before tax. Both taxes use the discounted subtotal without compounding.\n' +301 ' - button "Save project" [disabled]\n' +302 ' - button "Cancel"\n' +303 ' - button "Discard draft" [disabled]\n' +304 ' - paragraph: Cancel keeps your draft.'305}306ExpectError: expect(received).toBe(expected) // Object.is equality307308Expected: 0309Received: 1310311Call Log:312- Timeout 5000ms exceeded while waiting on the predicate313 at captureRawStack (/nix/store/9l763mr9j5rhgkjcwkgsig6vspvz3hc3-playwright-test-1.60.0/lib/node_modules/playwright-core/lib/coreBundle.js:3130:17)314 at callMatcherAsStep (/nix/store/9l763mr9j5rhgkjcwkgsig6vspvz3hc3-playwright-test-1.60.0/lib/node_modules/playwright/lib/matchers/expect.js:12873:57)315 at Object.toBe (/nix/store/9l763mr9j5rhgkjcwkgsig6vspvz3hc3-playwright-test-1.60.0/lib/node_modules/playwright/lib/matchers/expect.js:12863:23)316 at readsFinished (/nix/store/y3izss53fxka1cqraiwzav98b7b3djh6-browser/new-project.cjs:41:74)317 at /nix/store/y3izss53fxka1cqraiwzav98b7b3djh6-browser/new-project.cjs:286:11 {318 matcherResult: {319 pass: false,320 message: '\x1B[2mexpect(\x1B[22m\x1B[31mreceived\x1B[39m\x1B[2m).\x1B[22mtoBe\x1B[2m(\x1B[22m\x1B[32mexpected\x1B[39m\x1B[2m) // Object.is equality\x1B[22m\n' +321 '\n' +322 'Expected: \x1B[32m0\x1B[39m\n' +323 'Received: \x1B[31m1\x1B[39m\n' +324 '\n' +325 'Call Log:\n' +326 '- Timeout 5000ms exceeded while waiting on the predicate',327 name: 'toBe'328 }329}3302026-10-08T04:28:29.087784Z WARN horae: DEV_LOGIN=1: /auth/dev-login signs anyone in as an admin without a password. Use it for local development only.3312026-10-08 04:28:28.005 UTC [18] LOG: starting PostgreSQL 17.10 on aarch64-unknown-linux-gnu, compiled by clang version 21.1.8, 64-bit3322026-10-08 04:28:28.006 UTC [18] LOG: listening on Unix socket "/tmp/horae-browser.lml2ju/.s.PGSQL.5432"3332026-10-08 04:28:28.008 UTC [21] LOG: database system was shut down at 2026-10-08 04:28:27 UTC3342026-10-08 04:28:28.013 UTC [18] LOG: database system is ready to accept connections3352026-10-08 04:30:48.483 UTC [18] LOG: received fast shutdown request3362026-10-08 04:30:48.483 UTC [18] LOG: aborting any active transactions3372026-10-08 04:30:48.491 UTC [18] LOG: background worker "logical replication launcher" (PID 24) exited with exit code 13382026-10-08 04:30:48.493 UTC [19] LOG: shutting down3392026-10-08 04:30:48.493 UTC [19] LOG: checkpoint starting: shutdown immediate3402026-10-08 04:30:48.509 UTC [19] LOG: checkpoint complete: wrote 1201 buffers (7.3%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.015 s, sync=0.001 s, total=0.017 s; sync files=0, longest=0.000 s, average=0.000 s; distance=6464 kB, estimate=6464 kB; lsn=0/1B3CCE8, redo lsn=0/1B3CCE83412026-10-08 04:30:48.527 UTC [18] LOG: database system is shut down