Follow-ups: narrow week event titles, distinct view icons, Disclosure chevron gap #376

Closed
opened 2026-09-28 22:31:16 +00:00 by kayg · 12 comments
Owner

Follow-ups from Claude's review of #321, #352 and #313 (2026-09-29)

  1. Narrow Week columns show only the icon and "…" in event cards (820 px with the sidebar open, about 120 px columns): the title is not readable at all. Below a column width threshold, hide the source icon and the time line, and give the title the whole width (truncate after at least 6 characters). Below that, use a coloured bar with the title in its tooltip and accessible name. Include a "+2" chip in the timed grid only when events truly overlap past the lane limit.
  2. All five Calendar view rows in the sidebar use the same calendar icon. Use distinct Lucide icons: Agenda (list), Day (calendar-day or single column), Week (columns), Month (grid), Year (calendar-range). The same icons go in the header pills' tooltips.
  3. The Mail "Advanced" disclosure chevron touches its label ("Advanced⌵"). Use the shared icon+label gap token in the new Disclosure.svelte, and check that Disclosure is not a duplicate of an existing collapsible (reuse gate; #318 collapsible steps).

Screenshots at 390/820/1440, light and dark.

## Follow-ups from Claude's review of #321, #352 and #313 (2026-09-29) 1. **Narrow Week columns show only the icon and "…" in event cards** (820 px with the sidebar open, about 120 px columns): the title is not readable at all. Below a column width threshold, hide the source icon and the time line, and give the title the whole width (truncate after at least 6 characters). Below that, use a coloured bar with the title in its tooltip and accessible name. Include a "+2" chip in the timed grid only when events truly overlap past the lane limit. 2. **All five Calendar view rows in the sidebar use the same calendar icon.** Use distinct Lucide icons: Agenda (list), Day (calendar-day or single column), Week (columns), Month (grid), Year (calendar-range). The same icons go in the header pills' tooltips. 3. **The Mail "Advanced" disclosure chevron touches its label** ("Advanced⌵"). Use the shared icon+label gap token in the new `Disclosure.svelte`, and check that Disclosure is not a duplicate of an existing collapsible (reuse gate; #318 collapsible steps). Screenshots at 390/820/1440, light and dark.
Author
Owner

Starting #376 on job/cal-followups, based on dev SHA a9a16e90bb9bd01039da7790cd5ea46364df4589. I have read CLAUDE.md, CONTEXT.md and DESIGN.md §34; next I am tracing the Calendar event card, Calendar view navigation and shared Disclosure implementation before making the three follow-ups.

Starting #376 on `job/cal-followups`, based on dev SHA `a9a16e90bb9bd01039da7790cd5ea46364df4589`. I have read CLAUDE.md, CONTEXT.md and DESIGN.md §34; next I am tracing the Calendar event card, Calendar view navigation and shared Disclosure implementation before making the three follow-ups.
Author
Owner

Scope addition (Claude, from the #357 review): 4) the phone sheet title 'All-day items' is clipped mid-word ('All-day item|'); the shared sheet header title must never clip (it truncates with an ellipsis only when the text truly overflows, and this one fits). 5) e2e capture: the '*-dark' screenshots of calendar-day-overflow render the light theme; set and assert the theme before capture (same fix as #326). Merge dev first: #357 (dup-task) is now in dev.

Scope addition (Claude, from the #357 review): 4) the phone sheet title 'All-day items' is clipped mid-word ('All-day item|'); the shared sheet header title must never clip (it truncates with an ellipsis only when the text truly overflows, and this one fits). 5) e2e capture: the '*-dark' screenshots of calendar-day-overflow render the light theme; set and assert the theme before capture (same fix as #326). Merge dev first: #357 (dup-task) is now in dev.
Author
Owner

Finding from the source trace: GridColumn.svelte enters the Event cramped state only below 64 px per lane, so the 120 px single-Event Week cards keep the provider icon and time. Event buttons also have no title for the narrower coloured-bar fallback. OverlaySurface.svelte gives a sheet without side controls only the middle column of a three-column title row. MailSection.svelte uses the shared Disclosure, whose chevron margin is fixed at 0.25 rem while tokens.css defines --icon-label-gap; #318's App Password setup repeats that same Pill, chevron and hidden-panel structure locally. The overflow E2E seeds browser theme and palette fields before navigation but does not save the requested scheme through the Appearance API. Production regressions are prepared; they will run after the initial server build.

Finding from the source trace: `GridColumn.svelte` enters the Event `cramped` state only below 64 px per lane, so the 120 px single-Event Week cards keep the provider icon and time. Event buttons also have no `title` for the narrower coloured-bar fallback. `OverlaySurface.svelte` gives a sheet without side controls only the middle column of a three-column title row. `MailSection.svelte` uses the shared `Disclosure`, whose chevron margin is fixed at 0.25 rem while `tokens.css` defines `--icon-label-gap`; #318's App Password setup repeats that same Pill, chevron and hidden-panel structure locally. The overflow E2E seeds browser `theme` and `palette` fields before navigation but does not save the requested scheme through the Appearance API. Production regressions are prepared; they will run after the initial server build.
Author
Owner

Production E2E evidence on the current build: calendar-view-switcher.mjs stopped in assertSidebarViews with “Agenda uses its distinct Calendar icon”. The sidebar rows were all rendering the generic Calendar icon. Source review also confirmed lane capping reserved the last visible lane for the overflow button, so five simultaneous Events in a three-lane column would show only two Events and report +3.

Production E2E evidence on the current build: `calendar-view-switcher.mjs` stopped in `assertSidebarViews` with “Agenda uses its distinct Calendar icon”. The sidebar rows were all rendering the generic Calendar icon. Source review also confirmed lane capping reserved the last visible lane for the overflow button, so five simultaneous Events in a three-lane column would show only two Events and report `+3`.
Author
Owner

The first production E2E run measured the open-sidebar Week date columns at 820 px: each was 61.42 px wide. With the existing 36 px lane floor, that is a one-lane column, so the five simultaneous fixture Events correctly render one coloured bar and +4. I am keeping the 820 px screenshot at that real layout and checking the requested three-lane +2 behavior at 1250 px, where the local layout fits three lanes.

The first production E2E run measured the open-sidebar Week date columns at 820 px: each was 61.42 px wide. With the existing 36 px lane floor, that is a one-lane column, so the five simultaneous fixture Events correctly render one coloured bar and `+4`. I am keeping the 820 px screenshot at that real layout and checking the requested three-lane `+2` behavior at 1250 px, where the local layout fits three lanes.
Author
Owner

The App Password screenshot harness reused one test User across six screenshots. The auth API permits five profile-link issuances per User in its rate-limit window, so the later phone QR was rejected. The screenshot matrix now creates a fresh local server and User for each capture; this keeps the production API limits intact and masks the one-use QR and credential fields in every image.

The App Password screenshot harness reused one test User across six screenshots. The auth API permits five profile-link issuances per User in its rate-limit window, so the later phone QR was rejected. The screenshot matrix now creates a fresh local server and User for each capture; this keeps the production API limits intact and masks the one-use QR and credential fields in every image.
Author
Owner

The all-day overflow control in TimeGrid.svelte is rendered only when colw >= 110. At 390 px the Week view has narrower day columns and does not expose the sheet opener, while Day keeps a full-width column. I kept the sheet screenshot matrix on Day at 390/820/1440 in both themes; the shared OverlaySurface title fix applies to that real sheet.

The all-day overflow control in `TimeGrid.svelte` is rendered only when `colw >= 110`. At 390 px the Week view has narrower day columns and does not expose the sheet opener, while Day keeps a full-width column. I kept the sheet screenshot matrix on Day at 390/820/1440 in both themes; the shared OverlaySurface title fix applies to that real sheet.
Author
Owner

Final web gate finding:

bun run test reports 2 failures in src/lib/calendar/TimeGrid.svelte.test.ts (the 1-day and 7-day all-day overflow cases); 755 tests pass. In both failures, the test DOM has --colw: 44px. packages/ui/src/components/calendar/TimeGrid.svelte sends columns below 110px to the compact “Open day” control (aria-label="3 all-day items. Open day"), while the unchanged assertions expect the wide-column popover control (2 more all-day items. Show all-day items). This job changed neither TimeGrid.svelte nor that test. I left the existing assertion unchanged; the test setup currently exercises the narrow-column branch.

Final web gate finding: `bun run test` reports 2 failures in `src/lib/calendar/TimeGrid.svelte.test.ts` (the 1-day and 7-day all-day overflow cases); 755 tests pass. In both failures, the test DOM has `--colw: 44px`. `packages/ui/src/components/calendar/TimeGrid.svelte` sends columns below 110px to the compact “Open day” control (`aria-label="3 all-day items. Open day"`), while the unchanged assertions expect the wide-column popover control (`2 more all-day items. Show all-day items`). This job changed neither `TimeGrid.svelte` nor that test. I left the existing assertion unchanged; the test setup currently exercises the narrow-column branch.
Author
Owner

Finished: cal-followups (#376)

Branch: job/cal-followups (pushed; not merged)
Head: 5c12e8c1ded2f2f1a07dba024588cfaf2082786b

Built

  • Added five distinct Lucide icons for Agenda, Day, Week, Month, and Year. The sidebar and header tooltip use the same mapping.
  • Kept Week event titles readable in narrow lanes. Compact lanes hide source and time metadata; very narrow lanes show a colored bar with the full title available to assistive technology and as a tooltip. The overflow count includes only events beyond the visible lane limit.
  • Fixed sheet title clipping when the header has no leading or trailing controls.
  • Changed the Mail Advanced chevron to use --icon-label-gap and migrated App Password disclosures to the shared Disclosure component.
  • Added theme-backed production capture checks and responsive tests for the view icons, overlap counts, compact event titles, Mail disclosure spacing, the all-day sheet, and App Password setup.

Files

packages/ui/src/components/calendar/model.ts, GridColumn.svelte, CalendarTools.svelte, SegmentedControl.svelte, components/tooltip/TooltipLayer.svelte, components/tooltip/tip.ts, components/Disclosure.svelte, components/OverlaySurface.svelte, packages/ui/src/index.ts, apps/web/src/lib/components/app-sidebar.svelte, apps/web/src/routes/settings/account/AppPasswordsGroup.svelte, and apps/web/e2e/{harness,calendar-view-switcher,calendar-task-overflow,app-passwords}.mjs.

Production evidence

34 screenshots are attached to this issue and remain in artifacts/calendar-followups-376/. They cover Calendar (390/820/1440, sidebar open/closed, light/dark), Mail, Day all-day overflow, and App Passwords at all three widths and both themes, plus four zoom crops for tooltip and disclosure alignment. Each capture asserts the rendered theme before saving.

Production E2E output:

PASS Calendar view switcher matrix: 3 widths × 2 sidebar states × 2 themes; screenshots in /home/kayg/Developer/calternal-wt/cal-followups/artifacts/calendar-followups-376
Calendar all-day overflow: 6 production screenshots saved in /home/kayg/Developer/calternal-wt/cal-followups/artifacts/calendar-followups-376/overflow
app password e2e: QR, manual steps, Other apps, and Mac profile passed

Final gates

cargo fmt --check: passed with empty output (exit 0).

cargo clippy --all-targets -- -D warnings: exit 0. Final output:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 16m 42s

cargo test: exit 0. Test-profile output and representative suite summary:

    Finished `test` profile [unoptimized + debuginfo] target(s) in 19m 48s
test result: ok. 122 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 309.25s

bun run check: exit 0. Output:

$ svelte-kit sync && svelte-check --tsconfig ./tsconfig.json
Loading svelte-check in workspace: /home/kayg/Developer/calternal-wt/cal-followups/apps/web
Getting Svelte diagnostics...

svelte-check found 0 errors and 0 warnings

bun run test: exit 1. Verbatim final summary:

 Test Files  1 failed | 114 passed (115)
      Tests  2 failed | 755 passed (757)
   Start at  03:52:41
   Duration  216.29s (transform 62%, environment 15%, import 11%, tests 8%, setup 3%)
error: script "test" exited with code 1

Both failures are the existing 1-day and 7-day TimeGrid all-day overflow assertions. The test DOM reports --colw: 44px, which takes the compact “Open day” branch; the assertions expect the wide-column “Show all-day items” popover. This job changed neither TimeGrid.svelte nor its test, and left the assertions unchanged. I recorded the evidence in the preceding issue comment.

Decisions not specified in DESIGN.md

  • Used 136px per lane as the compact metadata threshold and retained the existing 64px cramped-lane threshold for colored bars. Counts use the event lane index to identify genuinely hidden overlaps.
  • Used Day view for the all-day sheet screenshot matrix at all widths. The sheet control requires a column width of at least 110px; narrow Week columns use the compact Open day control.
  • Started a fresh local server and User for each App Password capture because the profile-issuance endpoint allows five issues per User. This keeps the responsive/theme captures independent.

Commits:

  • 8927a2bc Give calendar views distinct Lucide icons
  • 4f8a5dc0 Keep narrow week events readable
  • 7f144d77 Prevent sheet titles from clipping
  • 28e69f55 Reuse shared Disclosure in App Passwords
  • 5c12e8c1 Verify calendar follow-up layouts in production

Cleanup completed: cargo clean removed 12.9 GiB; apps/web/build and apps/web/.svelte-kit were removed. The working tree is clean.

# Finished: cal-followups (#376) Branch: `job/cal-followups` (pushed; not merged) Head: `5c12e8c1ded2f2f1a07dba024588cfaf2082786b` ## Built - Added five distinct Lucide icons for Agenda, Day, Week, Month, and Year. The sidebar and header tooltip use the same mapping. - Kept Week event titles readable in narrow lanes. Compact lanes hide source and time metadata; very narrow lanes show a colored bar with the full title available to assistive technology and as a tooltip. The overflow count includes only events beyond the visible lane limit. - Fixed sheet title clipping when the header has no leading or trailing controls. - Changed the Mail Advanced chevron to use `--icon-label-gap` and migrated App Password disclosures to the shared `Disclosure` component. - Added theme-backed production capture checks and responsive tests for the view icons, overlap counts, compact event titles, Mail disclosure spacing, the all-day sheet, and App Password setup. ## Files `packages/ui/src/components/calendar/model.ts`, `GridColumn.svelte`, `CalendarTools.svelte`, `SegmentedControl.svelte`, `components/tooltip/TooltipLayer.svelte`, `components/tooltip/tip.ts`, `components/Disclosure.svelte`, `components/OverlaySurface.svelte`, `packages/ui/src/index.ts`, `apps/web/src/lib/components/app-sidebar.svelte`, `apps/web/src/routes/settings/account/AppPasswordsGroup.svelte`, and `apps/web/e2e/{harness,calendar-view-switcher,calendar-task-overflow,app-passwords}.mjs`. ## Production evidence 34 screenshots are attached to this issue and remain in `artifacts/calendar-followups-376/`. They cover Calendar (390/820/1440, sidebar open/closed, light/dark), Mail, Day all-day overflow, and App Passwords at all three widths and both themes, plus four zoom crops for tooltip and disclosure alignment. Each capture asserts the rendered theme before saving. Production E2E output: ```text PASS Calendar view switcher matrix: 3 widths × 2 sidebar states × 2 themes; screenshots in /home/kayg/Developer/calternal-wt/cal-followups/artifacts/calendar-followups-376 Calendar all-day overflow: 6 production screenshots saved in /home/kayg/Developer/calternal-wt/cal-followups/artifacts/calendar-followups-376/overflow app password e2e: QR, manual steps, Other apps, and Mac profile passed ``` ## Final gates `cargo fmt --check`: passed with empty output (exit 0). `cargo clippy --all-targets -- -D warnings`: exit 0. Final output: ```text Finished `dev` profile [unoptimized + debuginfo] target(s) in 16m 42s ``` `cargo test`: exit 0. Test-profile output and representative suite summary: ```text Finished `test` profile [unoptimized + debuginfo] target(s) in 19m 48s test result: ok. 122 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 309.25s ``` `bun run check`: exit 0. Output: ```text $ svelte-kit sync && svelte-check --tsconfig ./tsconfig.json Loading svelte-check in workspace: /home/kayg/Developer/calternal-wt/cal-followups/apps/web Getting Svelte diagnostics... svelte-check found 0 errors and 0 warnings ``` `bun run test`: **exit 1**. Verbatim final summary: ```text Test Files 1 failed | 114 passed (115) Tests 2 failed | 755 passed (757) Start at 03:52:41 Duration 216.29s (transform 62%, environment 15%, import 11%, tests 8%, setup 3%) error: script "test" exited with code 1 ``` Both failures are the existing 1-day and 7-day `TimeGrid` all-day overflow assertions. The test DOM reports `--colw: 44px`, which takes the compact “Open day” branch; the assertions expect the wide-column “Show all-day items” popover. This job changed neither `TimeGrid.svelte` nor its test, and left the assertions unchanged. I recorded the evidence in the preceding issue comment. ## Decisions not specified in DESIGN.md - Used 136px per lane as the compact metadata threshold and retained the existing 64px cramped-lane threshold for colored bars. Counts use the event lane index to identify genuinely hidden overlaps. - Used Day view for the all-day sheet screenshot matrix at all widths. The sheet control requires a column width of at least 110px; narrow Week columns use the compact Open day control. - Started a fresh local server and User for each App Password capture because the profile-issuance endpoint allows five issues per User. This keeps the responsive/theme captures independent. Commits: - `8927a2bc` Give calendar views distinct Lucide icons - `4f8a5dc0` Keep narrow week events readable - `7f144d77` Prevent sheet titles from clipping - `28e69f55` Reuse shared Disclosure in App Passwords - `5c12e8c1` Verify calendar follow-up layouts in production Cleanup completed: `cargo clean` removed 12.9 GiB; `apps/web/build` and `apps/web/.svelte-kit` were removed. The working tree is clean.
Author
Owner

Starting continuation on job/cal-followups at 5c12e8c1ded2f2f1a07dba024588cfaf2082786b; merge base with dev is b708b258319afac33ccc1d2788a86bb9367edbf1. I’m merging current dev once and will resolve the three reported conflicts while preserving the follow-up changes and newer dev behavior.

Starting continuation on `job/cal-followups` at `5c12e8c1ded2f2f1a07dba024588cfaf2082786b`; merge base with `dev` is `b708b258319afac33ccc1d2788a86bb9367edbf1`. I’m merging current `dev` once and will resolve the three reported conflicts while preserving the follow-up changes and newer `dev` behavior.
Author
Owner

The requested test:e2e:calendar reached /calendar/week/..., then timed out at apps/web/e2e/calendar.mjs:128 waiting for getByRole('tab', { name: 'Week' }). A fresh desktop browser context has no collapsed-sidebar preference, and +layout.svelte defaults the sidebar to open. In that state ModeHeader.titleMenuAvailable is false, so CalendarTools omits the header tab switcher and Week appears as a sidebar link. The issue-specific calendar-view-switcher.mjs covers the sidebar-link and collapsed-sidebar tab states. I left the legacy assertion unchanged per the owner rule for existing test expectations.

The requested `test:e2e:calendar` reached `/calendar/week/...`, then timed out at `apps/web/e2e/calendar.mjs:128` waiting for `getByRole('tab', { name: 'Week' })`. A fresh desktop browser context has no collapsed-sidebar preference, and `+layout.svelte` defaults the sidebar to open. In that state `ModeHeader.titleMenuAvailable` is false, so `CalendarTools` omits the header tab switcher and Week appears as a sidebar link. The issue-specific `calendar-view-switcher.mjs` covers the sidebar-link and collapsed-sidebar tab states. I left the legacy assertion unchanged per the owner rule for existing test expectations.
Author
Owner

Completed

Merged dev once (8f3f5e3) into job/cal-followups, resolved the three requested conflicts, and pushed head c31218a4af. No merge into dev was made. The local dev branch later advanced to 103297b946; per the one-merge instruction, that later movement is not included.

Conflict resolutions preserve dev’s touch-only shortcut hiding, layer tokens, glass overlay, and app-password API probe; they also retain the branch’s sheet-title and tooltip changes. The TimeGrid tests were left as merged from dev.

Gates

bun run check output:

$ svelte-kit sync && svelte-check --tsconfig ./tsconfig.json
Loading svelte-check in workspace: /home/kayg/Developer/calternal-wt/cal-followups/apps/web
Getting Svelte diagnostics...

svelte-check found 0 errors and 0 warnings

bun run test summary:

Test Files 118 passed (118)
Tests 772 passed (772)
Start at 04:28:52
Duration 74.75s (transform 53%, environment 20%, import 15%, tests 8%, setup 4%)

cargo fmt --check exited 0 with no output.

Successful cargo clippy output:

Checking calternal-embed v0.0.1 (/home/kayg/Developer/calternal-wt/cal-followups/crates/calternal-embed)
Checking calternal-dav v0.0.1 (/home/kayg/Developer/calternal-wt/cal-followups/crates/calternal-dav)
Checking calternal-tags v0.0.1 (/home/kayg/Developer/calternal-wt/cal-followups/crates/calternal-tags)
Checking calternal-plugin v0.0.1 (/home/kayg/Developer/calternal-wt/cal-followups/crates/calternal-plugin)
Checking calternal-db v0.1.0 (/home/kayg/Developer/calternal-wt/cal-followups/crates/calternal-db)
Checking calternal-api v0.0.1 (/home/kayg/Developer/calternal-wt/cal-followups/crates/calternal-api)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 50.48s

cargo test did not pass. Exact failure summary:

failures:
continuous_typing_is_saved_within_the_maximum_wait
primitive_value_in_fragment_cannot_truncate_the_note
reconnect_storm_does_not_cancel_pending_save

test result: FAILED. 8 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 15.56s

error: test failed, to rerun pass -p calternal-collab --test hostile_clients

All three failed at 4–5 second save deadlines. Other jobs were compiling concurrently on the shared host. I did not modify those tests or retry the single final workspace run.

The production build passed. The one calendar e2e browser run timed out at apps/web/e2e/calendar.mjs:128 waiting for a Week tab; with the sidebar expanded the view switch is a sidebar link. No expectation was changed. The focused adversarial MCP round passed: read scope denied create_log, API-only scope returned 403, cross-user Note read was denied, oversized input returned 413, malformed input returned 415, and 48 parallel calls produced no 5xx.

The 34 screenshot artifacts covering phone, tablet, and desktop in light and dark themes remain attached to this issue. Cargo cleanup output: Removed 13996 files, 10.8GiB total. Generated web build output was removed.

Decisions: keep dev’s balanced phone sheet title layout and glass header while preserving the branch’s no-controls title and tooltip icon changes. No design-doc decision was changed.

## Completed Merged dev once (8f3f5e3) into job/cal-followups, resolved the three requested conflicts, and pushed head c31218a4af2739db10374ba2b92ca3710b779c4e. No merge into dev was made. The local dev branch later advanced to 103297b946836786220f250a168f9d5de868f76e; per the one-merge instruction, that later movement is not included. Conflict resolutions preserve dev’s touch-only shortcut hiding, layer tokens, glass overlay, and app-password API probe; they also retain the branch’s sheet-title and tooltip changes. The TimeGrid tests were left as merged from dev. ## Gates bun run check output: > $ svelte-kit sync && svelte-check --tsconfig ./tsconfig.json > Loading svelte-check in workspace: /home/kayg/Developer/calternal-wt/cal-followups/apps/web > Getting Svelte diagnostics... > > svelte-check found 0 errors and 0 warnings bun run test summary: > Test Files 118 passed (118) > Tests 772 passed (772) > Start at 04:28:52 > Duration 74.75s (transform 53%, environment 20%, import 15%, tests 8%, setup 4%) cargo fmt --check exited 0 with no output. Successful cargo clippy output: > Checking calternal-embed v0.0.1 (/home/kayg/Developer/calternal-wt/cal-followups/crates/calternal-embed) > Checking calternal-dav v0.0.1 (/home/kayg/Developer/calternal-wt/cal-followups/crates/calternal-dav) > Checking calternal-tags v0.0.1 (/home/kayg/Developer/calternal-wt/cal-followups/crates/calternal-tags) > Checking calternal-plugin v0.0.1 (/home/kayg/Developer/calternal-wt/cal-followups/crates/calternal-plugin) > Checking calternal-db v0.1.0 (/home/kayg/Developer/calternal-wt/cal-followups/crates/calternal-db) > Checking calternal-api v0.0.1 (/home/kayg/Developer/calternal-wt/cal-followups/crates/calternal-api) > Finished `dev` profile [unoptimized + debuginfo] target(s) in 50.48s cargo test did not pass. Exact failure summary: > failures: > continuous_typing_is_saved_within_the_maximum_wait > primitive_value_in_fragment_cannot_truncate_the_note > reconnect_storm_does_not_cancel_pending_save > > test result: FAILED. 8 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 15.56s > > error: test failed, to rerun pass `-p calternal-collab --test hostile_clients` All three failed at 4–5 second save deadlines. Other jobs were compiling concurrently on the shared host. I did not modify those tests or retry the single final workspace run. The production build passed. The one calendar e2e browser run timed out at apps/web/e2e/calendar.mjs:128 waiting for a Week tab; with the sidebar expanded the view switch is a sidebar link. No expectation was changed. The focused adversarial MCP round passed: read scope denied create_log, API-only scope returned 403, cross-user Note read was denied, oversized input returned 413, malformed input returned 415, and 48 parallel calls produced no 5xx. The 34 screenshot artifacts covering phone, tablet, and desktop in light and dark themes remain attached to this issue. Cargo cleanup output: Removed 13996 files, 10.8GiB total. Generated web build output was removed. Decisions: keep dev’s balanced phone sheet title layout and glass header while preserving the branch’s no-controls title and tooltip icon changes. No design-doc decision was changed.
kayg closed this issue 2026-09-29 03:57:07 +00:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
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#376
No description provided.