Audit: interaction latency and motion that delays content, every Tab #1369

Open
opened 2026-10-07 14:09:38 +00:00 by kayg · 3 comments
Owner

Owner 2026-10-07: "neither is the performance great nor are the animations / ui interactions great. please dig into these things and fix them." This issue owns an app-wide audit of interaction latency and motion: every common interaction in every Tab measured input-to-visible-result, every animation that delays content or input listed, ranked, and filed one issue per cause. Budgets: DESIGN §59 (open from cache <= 100 ms, action input to visible accepted state <= 150 ms, warm Tab switch <= 100 ms, frames <= 16.7 ms) and the motion rule that loading and input never wait on motion (#611).

Owner 2026-10-07: "neither is the performance great nor are the animations / ui interactions great. please dig into these things and fix them." This issue owns an app-wide audit of interaction latency and motion: every common interaction in every Tab measured input-to-visible-result, every animation that delays content or input listed, ranked, and filed one issue per cause. Budgets: DESIGN §59 (open from cache <= 100 ms, action input to visible accepted state <= 150 ms, warm Tab switch <= 100 ms, frames <= 16.7 ms) and the motion rule that loading and input never wait on motion (#611).
Author
Owner

Starting the #1369 discovery audit on job/instaudit-1369, based on 0419170fe456b58614befcb12d9c9d255118f1c0 (origin/dev). I am reading the existing production Playwright and fixture paths, then I will build/run the real-server audit and record findings here and in docs/perf/2026-10-07-1369-interaction-audit.md.

Starting the #1369 discovery audit on `job/instaudit-1369`, based on `0419170fe456b58614befcb12d9c9d255118f1c0` (`origin/dev`). I am reading the existing production Playwright and fixture paths, then I will build/run the real-server audit and record findings here and in `docs/perf/2026-10-07-1369-interaction-audit.md`.
Author
Owner

Local audit finding (evidence): the Release server and production web build started, but under the shared host load (start average 59.88 / 65.10 / 62.73; 12 CPUs), the Notes (1,000), Tasks (1,000), Journal Logs (84), Files (5,000), Photos (500), and Money (2,000) seed phases each hit the configured 180,000 ms settle limit. Notifications (12), Calendar (84 Events and 84 Tasks), and Mail (2,000 messages) indexed. The browser run therefore produced only six Notifications samples, not five per interaction for every Tab. I’m replaying the full audit on the free perf VM under perf-run and will report the local fixture timeouts separately.

Local audit finding (evidence): the Release server and production web build started, but under the shared host load (start average 59.88 / 65.10 / 62.73; 12 CPUs), the Notes (1,000), Tasks (1,000), Journal Logs (84), Files (5,000), Photos (500), and Money (2,000) seed phases each hit the configured 180,000 ms settle limit. Notifications (12), Calendar (84 Events and 84 Tasks), and Mail (2,000 messages) indexed. The browser run therefore produced only six Notifications samples, not five per interaction for every Tab. I’m replaying the full audit on the free perf VM under perf-run and will report the local fixture timeouts separately.
Author
Owner

Finished #1369 on branch job/instaudit-1369.

Report: docs/perf/2026-10-07-1369-interaction-audit.md
Head: 65a6272a9f3379e3defbe3b769e69c6e0d59cf6e

The report includes the release server and production web build identities, API-seeded fixture results, a ranked interaction table, request and long-task observations, motion source scan, issue deduplication, and measurement gaps. The locked perf-VM run used macOS platform emulation at 1440×900. Thirty-five interaction groups have five valid samples; 54 groups are incomplete. Files and Money fixtures reached the 180-second limit, Ask had no provider, and Photos navigation aborted. Settings Search duplicate samples were excluded; the harness fix is committed.

Follow-ups: #1387 tracks Notifications read/unread menu latency. Overlay close evidence was added to #414. Existing findings are linked in the report.

Gates after git fetch origin && git merge origin/dev (merge was already up to date):

PASS production dependency licences: 759 locked package releases across apps/web, apps/docs and packages
perf-lint: PASS; 0 violations; 22544 scoped exceptions
User browser caches use userStorage; only documented device/public-link exceptions remain.
Glass alpha, blur and backdrop-filter roles use packages/ui/src/tokens.css.
Text sizes and UI shape values use shared role tokens.
Keyboard focus rings use the shared focus tokens.
UI transitions and animation options use shared motion tokens or documented exceptions.
/home/kayg/Developer/calternal-wt/instaudit-1369/apps/web/../../packages/ui/src/components/calendar/AttachmentDeck.svelte:1055:3
Warn: Do not use empty rulesets (css)
svelte-check found 0 errors and 1 warning in 1 file

bun run test began. Its pre-Vitest checks passed (Ran 140 tests in 0.069s, 8 pass, 0 fail), but Vitest was still running at the three-hour timebox and was stopped. Exact final output:

error: script "test" exited with code 143

Cleanup: Removed 9259 files, 3.4GiB total; apps/web/build and apps/web/.svelte-kit were deleted.

Decisions: used 84 daily Calendar Events, dated Tasks and Journal Logs for the 12-week fixture; enforced the 180-second fixture cap; excluded duplicate Settings observations by keeping the first observation per run; used nearest-rank percentiles and did not report p50/p95 for groups with fewer than five valid samples. No product code changed.

Finished #1369 on branch `job/instaudit-1369`. Report: `docs/perf/2026-10-07-1369-interaction-audit.md` Head: `65a6272a9f3379e3defbe3b769e69c6e0d59cf6e` The report includes the release server and production web build identities, API-seeded fixture results, a ranked interaction table, request and long-task observations, motion source scan, issue deduplication, and measurement gaps. The locked perf-VM run used macOS platform emulation at 1440×900. Thirty-five interaction groups have five valid samples; 54 groups are incomplete. Files and Money fixtures reached the 180-second limit, Ask had no provider, and Photos navigation aborted. Settings Search duplicate samples were excluded; the harness fix is committed. Follow-ups: [#1387](https://git.kayg.org/kayg/calternal/issues/1387) tracks Notifications read/unread menu latency. Overlay close evidence was added to [#414](https://git.kayg.org/kayg/calternal/issues/414). Existing findings are linked in the report. Gates after `git fetch origin && git merge origin/dev` (merge was already up to date): ```text PASS production dependency licences: 759 locked package releases across apps/web, apps/docs and packages perf-lint: PASS; 0 violations; 22544 scoped exceptions User browser caches use userStorage; only documented device/public-link exceptions remain. Glass alpha, blur and backdrop-filter roles use packages/ui/src/tokens.css. Text sizes and UI shape values use shared role tokens. Keyboard focus rings use the shared focus tokens. UI transitions and animation options use shared motion tokens or documented exceptions. /home/kayg/Developer/calternal-wt/instaudit-1369/apps/web/../../packages/ui/src/components/calendar/AttachmentDeck.svelte:1055:3 Warn: Do not use empty rulesets (css) svelte-check found 0 errors and 1 warning in 1 file ``` `bun run test` began. Its pre-Vitest checks passed (`Ran 140 tests in 0.069s`, `8 pass`, `0 fail`), but Vitest was still running at the three-hour timebox and was stopped. Exact final output: ```text error: script "test" exited with code 143 ``` Cleanup: `Removed 9259 files, 3.4GiB total`; `apps/web/build` and `apps/web/.svelte-kit` were deleted. Decisions: used 84 daily Calendar Events, dated Tasks and Journal Logs for the 12-week fixture; enforced the 180-second fixture cap; excluded duplicate Settings observations by keeping the first observation per run; used nearest-rank percentiles and did not report p50/p95 for groups with fewer than five valid samples. No product code changed.
Commenting is not possible because the repository is archived.
No labels
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal-v0#1369
No description provided.