Mockup, do not merge: Tasks (list, card, wow, waiting, time) #535

Closed
kayg wants to merge 51 commits from issue/tasks-mockup into dev
Owner

Mockup only, do not merge. Tasks list, card, wow, waiting, time logging and layouts as apps/mockup/tasks.html. See #534 for the links and evidence.

Try: https://preview.calternal.cloud/tasks.html

Refs #534

🤖 Generated with Claude Code

https://claude.ai/code/session_01WCcFhwwgMK66k9LMVqogNJ

Mockup only, do not merge. Tasks list, card, wow, waiting, time logging and layouts as `apps/mockup/tasks.html`. See #534 for the links and evidence. Try: https://preview.calternal.cloud/tasks.html Refs #534 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01WCcFhwwgMK66k9LMVqogNJ
kayg added 51 commits 2026-10-17 16:24:37 +00:00
Mockup search, round 3: glass pills, one lighter material, pull to search (#275, #320, #321)
Some checks failed
CI / server (pull_request) Successful in 23s
CI / web (pull_request) Failing after 25s
CI / rust (pull_request) Successful in 1m57s
e8233d6db9
kayg on round 2: the band behind the filter buttons "looks bad", and search should be "more
transparent and less blurry so more content can be seen", on one material shared with the bar,
sheets and menus (#319).

- The bottom progressive-blur band is gone. Date, Tag, Sort, Trash and Clear are glass pills on
  the shared floating tokens (--glass-float, --glass-float-filter, --glass-float-edge), floating
  straight over the list. On a phone, unset filters show just their icon (with a tooltip and a
  name that says the setting) so the row fits; Clear becomes an icon pill.
- The panel and the phone sheet use only the floating tokens (no more one-off 72 px blur).
- styles/glass.css tries the lighter material on those shared tokens, mockup-wide: tint 0.30 /
  0.36 (light / dark) and blur 20 px, down from 0.40 / 0.42 and 44 px. Proposed for tokens.css
  on #319; production is unchanged.
- Pull to search (#320): a small gesture plugin (search/pull.svelte.ts) plus its hint pill.
  A downward pull from the top third of any phone screen follows the finger with resistance,
  arms at 72 px ("Let go to search"), opens the sheet coming down from the top, and springs back
  if let go early. It starts only when what's under the finger is at its top (or on a header),
  never from the left edge, never with words selected or inside text being edited, and cancels
  touch moves only once the pull is its own, so iOS overscroll can't fight it.
- Search now floats over Settings too, so the pull works on every screen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T
Search list clears its pills; the selector capsule never animates from the keyboard (#275)
Some checks failed
CI / server (pull_request) Successful in 24s
CI / web (pull_request) Failing after 25s
CI / rust (pull_request) Successful in 1m45s
8abd41a897
- Search: the results list ends a pill, its gap to the edge (with the home indicator on a
  phone) and 24 px of air further down, so the last row always scrolls fully out from under the
  floating filter pills. One measure (--clear-of-pills) sets both the padding and the keyboard's
  scroll padding. Checked at 1440, 390 and 390 with a 34 px home indicator, Chromium and WebKit.
- Selector (packages/ui): the capsule no longer fades in on first appearance, and changes from
  the keyboard (arrows, Enter, Space) or from outside (a link, another control) jump without
  any fade or slide, reduced motion included. Only a pointer's click glides or fades. Two new
  e2e checks: nothing runs on first appearance or after keyboard choices, and a pointer's first
  choice does fade in.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T
Search: the tab bar steps aside, one pill size, rows never rest under the pills (#350)
Some checks failed
CI / web (pull_request) Failing after 24s
CI / server (pull_request) Successful in 23s
CI / rust (pull_request) Successful in 2m0s
4ec278eacb
- While search is open, the app's bottom bar (tabs and note tools) and the phone's + button are
  hidden at every width, so nothing shows under the sheet's filter pills (it did at 320).
- The filter pills are one size: --f tall (36 px with a 44 px hit area on touch), and square
  when they show only their icon, the Trash included.
- The results list now stops above the pill row instead of running under it, so no row rests
  or scrolls under the pills at any scroll position; its last 14 px fade instead of ending on a
  hard edge. The pills keep their own glass. Checked at the top, mid-list and the end, at 320,
  390, 900 and 1440, light and dark, Chromium and WebKit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T
- packages/ui/src/search/words.ts: a small pure parser for English filter words
  (kinds, before/after/on/in/since/until/between dates with ISO or relative days,
  #tags, pinned, in trash, newest/oldest), with unit tests run by CI.
- The search field shows recognised words as tokens; a tap turns one back into
  words, and they stay words. Words become tokens when a space, paste or
  suggestion finishes them; deleting never makes one.
- The bottom pills (Date, Tag, Sort, Trash) and the kind row are gone on every
  width. Best match by default; "newest" or "oldest" reorders.
- An empty field shows recent things plus three examples to try; they step
  aside after a few filter words.
- Phone: the panel hangs from the top and ends above the keyboard and Safari's
  bar (visualViewport), and springs back when the keyboard goes down.
  Scrolling the results puts the keyboard away.
- Rows: a held row never starts the system drag, callout or selection.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T
Search r4: the token line fades at its edge when scrolled (#399)
Some checks failed
CI / server (pull_request) Successful in 30s
CI / rust (pull_request) Successful in 3m0s
CI / web (pull_request) Failing after 43m31s
9e73419bc9
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T
- hug.ts: the panel is laid out once at full height and shows only as much
  as its content and the keyboard allow, by a clip on the glass and the words
  and a scale on the shadow layer, moved by springs (no re-layout per frame).
  Results coming and going use a soft spring; keyboard moves use a quicker
  one with no overshoot, tuned to the keyboard.
- viewport.svelte.ts: the panel doesn't wait for Safari's late viewport
  report (WebKit 265578, 226689). A blur means the keyboard is leaving (the
  whole page, at once); a focus means it's coming (last time's height, at
  once). Safari's numbers then correct it on the same spring.
- While the keyboard is up, the list pads its end so every row can scroll
  above it.
- "Search everything" on phones; a link opens search without selecting the
  words; compact word-only tokens under 360 px (S18).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T
- lib/fit/hug.ts and lib/fit/viewport.svelte.ts: the hug and keyboard logic
  as a shared module any mockup panel can use (Views, #312).
- The mockup gets the app's edge treatment (#105, #226, #396): the backdrop
  publishes --sky-edge, the phone's list screens set data-edge with the
  glass's colour and melt into it at the top and bottom, and the Home Screen
  app is sized by the real screen. glass-edge.ts and home-screen.ts move to
  packages/ui so the app and the mockup share them (the app re-exports).
- While search is open the app behind is inert (a modal dialog), which also
  leaves iOS's form bar arrows nowhere to go. On a phone a tap below a short
  panel closes search.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T
Rows swipe in the note list, the sidebar (places and tags), search results and the Trash. Every
route to a row's actions reads one registry (rows/row-actions.ts): the swipe buttons, the ⋯ and
right-click menu, the long-press card, the shortcuts on a focused row and aria-actions.

- rows/swipe-row.ts: the gesture. Follows the finger 1:1, rubber-bands past the buttons (×0.55),
  a long swipe grows the outer button into the gap on a spring detent, release keeps the finger's
  speed (springTo). Never from the left 24 px; claims at ≥10 px sideways, >2× vertical, within
  300 ms of the touch; a still hold is a long press. Non-passive touch listeners (WebKit 232545).
  Transforms only; one width read per touch.
- rows/RowActions.svelte, RowCard.svelte: the tray, the ⋯ on hover/focus, the long-press card
  (preview with every action under it).
- rows/plugins: note, search, sidebar and Trash actions. Archive and Hide as kayg decided them
  (W13, W17–W19): an Archive place once anything is archived, Unarchive on its long swipe; "archived"
  and "hidden" in search, and "Show hidden items" in a result's ⋯.
- Still open, as mockup switches: W14 search's left → right order, W15 Pin, W16 Open as a button.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T
Swipe rows: labels wrap only between words, ⋯ steps aside while a row moves (#400)
Some checks failed
CI / server (pull_request) Successful in 1m6s
CI / rust (pull_request) Successful in 2m39s
CI / web (pull_request) Failing after 44m13s
56313bd51f
"Unarchive" broke mid-word in its 56 px tile; labels now wrap between words only. The ⋯ hid the
tray during a mouse swipe; it now steps aside while the row is moved.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T
Search r5: measure the hug as soon as results change, not on the next frame (#399)
Some checks failed
CI / server (pull_request) Successful in 1m1s
CI / rust (pull_request) Successful in 2m15s
CI / web (pull_request) Failing after 35m57s
dc064b4b1a
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T
Mockup only, do not merge. One page with switchable variants:
- #448: a link to a never-written note makes it at the link's path and opens it
  (Made "…" · Undo); Trash card (Restore, Open read-only in place); deleted-for-good
  card (Create a new note, Remove link); a file moved outside the app is found by id
  and its link quietly updated; ⌘↵ in a link does what a click does. Every link leads
  with a kind icon (note, day, photo, file); missing=icondim|icon|fade|dim,
  trash=replace|beside. No underlines.
- #449: `#` opens the same glass picker as `[[`/`@`: prefix then fuzzy, one level at a
  time, counts; Enter/Tab accept, Space keeps typing, Esc closes; trigger=after1|immediate,
  tagrow=count|plain.
- #450: chip=icon-accent|icon-ink|neutral|current (pill only on hover or caret),
  handle=ink|white|current on #319's dense glass, over=paper|photo; contrast measured
  by scripts/links-contrast.mjs and shown in the Mockup pill.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T
- Links sit in the sentence like words: no gap before the punctuation after a link
  (the pill's room is cancelled by an equal negative margin, so hover and the caret
  still never move a word).
- No links summary above a note's title; "Linked here" stays at the end of the note.
- Safari's bars no longer change colour on page changes: one theme-color writer that
  copies the root's edge colour, data-edge on the phone stack, and the app's floor
  under the page, so the sky never shows below a note (keyboard, toolbar, slides).
- Pickers and cards close on navigation, on a click elsewhere and when the caret
  leaves the trigger.
- The Trash card shows the note itself (the approved peek); the plain card is a fallback.
- Cards, pickers and the ink handle and pill use the shared floating glass from #319
  (glass.css, Glass.svelte and its tokens, taken from origin/issue/319-one-glass).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T
Mockup: URL states, Settings edge, tests for both engines (#469, #470)
Some checks failed
CI / server (pull_request) Successful in 28s
CI / rust (pull_request) Successful in 2m2s
CI / web (pull_request) Failing after 48m45s
c6748b3dff
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Yyy8fQGxPLkLa8v8NXz7T
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Mockup blocks.html: one registry of block actions behind / and Insert, and embeds (#471)
Some checks failed
CI / server (pull_request) Successful in 24s
CI / rust (pull_request) Successful in 1m56s
CI / web (pull_request) Failing after 57m30s
760ba47eeb
One list of block actions (headings, lists, task, quote, code, table, divider, note box,
embed a note, link to a note, photo or file, day link, tag, time-log line). Each is a plugin
file under src/blocks/plugins and has a label, icon, keywords, the markdown it writes and an
optional typed shortcut. The `/` menu (opens at the start of a block or after a space, never
inside "and/or") and the bottom bar's Insert sheet both read it.

Embeds: `![Title](<Note.md>)` and `![Title](<Note.md#Heading>)` render the note, or one part
of it, as a glass card with an open arrow. A note that was never written, is in the Trash or
was deleted for good reuses the links' looks (#448). Photos and files show as media cards.

The shared inline picker gets a Link | Embed switch (tap, or Cmd+E, no motion from the
keyboard). `[[` and `@` start a link; `![[`, `!@`, `![]()` and `/embed` start an embed. A
link's menu offers "Show as embed", an embed's "Show as link".

Also: the picker follows its line when the page scrolls or a picture loads, a space after a
picked link survives the next key in Chromium, `####`, `---` and a code fence work as
typed shortcuts, and an embed counts as a link in "Linked here".

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Mockup: proposed default look v2 tokens (#493)
Some checks failed
CI / server (pull_request) Successful in 24s
CI / rust (pull_request) Successful in 1m54s
CI / web (pull_request) Failing after 51m4s
12b0ad741f
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Mockup: gallery state link for covers (#484)
Some checks failed
CI / server (pull_request) Successful in 31s
CI / rust (pull_request) Failing after 1m59s
CI / web (pull_request) Failing after 47m28s
46ca946e31
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Mockup: Esc selects a block without a caret, Places search test, look v2 and sticky headings switches (#469, #489, #493)
Some checks failed
CI / server (pull_request) Successful in 34s
CI / rust (pull_request) Failing after 2m48s
CI / web (pull_request) Failing after 45m19s
30790e0a10
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Mockup blocks.html: the pickers on a real phone (#471)
Some checks failed
CI / server (pull_request) Successful in 30s
CI / rust (pull_request) Successful in 2m21s
CI / web (pull_request) Failing after 51m27s
9be3be0fd5
kayg's iPhone round:
- Contrast: the shared dense glass is now 0.78 (was 0.56) in light and dark, so menu text keeps
  4.5:1 and icons 3:1 over the worst thing behind it (black in light, white in dark). A test
  checks it from the computed colours.
- The picker is a shell with the glass as a backplate and a separate scroller for the rows, moved
  to <body>: nothing can paint over it, and the glass stays whole while the rows scroll.
- Touch: the list is a real scroller (momentum, no scroll chaining); a row is chosen by a tap
  that moved under 8 px, a mouse still chooses on press.
- Keyboard: the list follows the shared visualViewport (lib/fit/viewport.svelte.ts, from search
  r5), stays above the keyboard and the bottom bar, opens below the caret line when three rows
  fit and above it otherwise, and re-fits as the keyboard changes.
- The caret inside a link chip is drawn as tall as the chip's words; a tap springs it between
  heights, the keyboard never animates.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Mockup: body and UI weights from the font round, no font smoothing resets (#469)
Some checks failed
CI / server (pull_request) Successful in 22s
CI / rust (pull_request) Failing after 2m4s
CI / web (pull_request) Failing after 53m17s
c62db14ded
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Mockup round 4: document scrolling, keyboard guard, glass, picker, mic row (#469, #470)
Some checks failed
CI / server (pull_request) Successful in 27s
CI / rust (pull_request) Successful in 2m24s
CI / web (pull_request) Failing after 49m12s
55c1c7eb1c
- Phone pages scroll the document (lib/scroll.ts adapter; pills, header trackers, selecting,
  deep links read it). `&docscroll=0` brings the boxes back. Fixes the Safari tab bottom band.
- lib/keyboard-guard.ts: after the keyboard goes away the page returns to its pre-focus scroll.
- Menus clamp to the viewport (12 px); menu close animation on touch; leaving menus are inert.
- Shared dense glass 0.48 (light and dark, and look v2); contrast test floors updated.
- Search pill shrinks (flex, spring) while the mic records; note bar yields room too.
- Inline picker: anchored to the caret with Safari's visual viewport numbers, re-fit as it settles.
- Tab bar / block bar / formatting icons match the top pills (22 px, 2.1 stroke) on the phone.
- Body text 17 in look v2; `&text=18` to compare.
- Sidebar sections never shrink (fixes the overlap under Tags).
- Desktop sizes from the macOS references.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
- The note's tab bar stays fixed to the window on the Home Screen (document scrolling), left of the mic.
- Scroll content has bottom room for the dock (and the bulk bar while selecting) plus the safe area.
- The bulk bar says "Copy" under the link icon so no label wraps (aria-label stays "Copy links").

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
- The picture under Safari's toolbar: the current screen's frost is a document-sized surface with a
  counter-scrolled layer (CSS scroll timeline, touch WebKit 26.4+, not on the Home Screen) (lib/scroll-link.ts).
- Home Screen: the empty bulk bar no longer leaves a thin pill at the bottom; manifest and Apple tags added.
- Places: footer is a 28 pt avatar and body-size name; scrolling ends with the last row just above the dock.
- Notes: a paper strip at the bottom (no grey/dark blocks), top strip re-made per screen and hidden over a
  cover; empty notes do not scroll; keyboard room only while a field has the caret.
- The voice card is dragged away (down or right) with a spring; a tap opens it.
- The top-right pill lights up on press and the menu grows out of it, top right, left and down, no overshoot.
- Hold preview: one timeline, the row grows into the card while the menu grows from the card's bottom edge,
  close together; the menu is fitted above the dock; links repair waits for a menu to close.
- Glass: float 0.16 light, 0.22 dark, dense 0.32; `&glass=<alpha>` to tune; a faint halo on words.
- Inline pickers: sized to their rows (springs on touch), above the caret when there is no room, clear of
  Safari's form bar, clamped to the right edge; no empty row.
- Views are Collections: This week, Open tasks, With photos (gallery), Calternal, each with its rule.
- No corner credit on covers.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019QGa6qjALuHyi8H1naGp6b
- Home Screen: the blur ramp starts at the very top edge (no unblurred strip above it) and the opaque
  top strip stays on every screen.
- Keyboard up: the page gets only the room the caret needs above the keyboard and form bar, so a short
  note can't be scrolled out of sight; the top pills ride the visual viewport; no bottom strip under a keyboard.
- Sheets on an iPhone: top 24 pt, bottom concentric with the display corners (lookup by screen size,
  minus a 10 pt inset); `&sheetr=uniform` for today's look.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WCcFhwwgMK66k9LMVqogNJ
A dock that was only slid down by its own height still showed through Safari's glass toolbar on a note.
It now goes past the foot of the window and is hidden once it has stepped away.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WCcFhwwgMK66k9LMVqogNJ
The bottom colour strip is on every screen and re-made per screen; only its colour changes (paper on a
note, the picture's bottom colour on a list). Removing it on the way back left Safari with the note's stale
sample under the toolbar. A test compares the bottom edge before and after a note.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WCcFhwwgMK66k9LMVqogNJ
Mockup, do not merge: Tasks (list, card, wow, waiting, time)
Some checks failed
CI / server (pull_request) Successful in 28s
CI / rust (pull_request) Successful in 2m11s
CI / web (pull_request) Failing after 41m43s
d42639d19d
A tasks.html page: the Tasks list (Today, Upcoming, Someday, Done, Untracked), the task card
(TQ12), the typed-words-to-chips morph (TQ15), inline description, Waiting on, calendar and journal
time logging into time-spent, and Kanban, Timeline and Eisenhower layouts. Fixture data only.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WCcFhwwgMK66k9LMVqogNJ
Author
Owner

housekeeping #1009: needs-decision.

Explicit mockup-only/do-not-merge Tasks snapshot. Current Tasks UI is being delivered through #888 → #889 → #893 → #957; retain any unported design details for review.

original head: d42639d19d469b4539dbf5b28dcfd6049d63c63d. against dev cd7f84432febfc63b788fbb9b9f9950452982d74, git cherry reports 43 unmatched and 0 equivalent patches. the landing audit lists each candidate missing commit and stable patch match in pr-535.md; unmatched patches can include superseded behavior.

left open, source branch unchanged. no rebase or new test claim for this decision lane.

housekeeping #1009: needs-decision. Explicit mockup-only/do-not-merge Tasks snapshot. Current Tasks UI is being delivered through #888 → #889 → #893 → #957; retain any unported design details for review. original head: `d42639d19d469b4539dbf5b28dcfd6049d63c63d`. against dev `cd7f84432febfc63b788fbb9b9f9950452982d74`, git cherry reports 43 unmatched and 0 equivalent patches. the [landing audit](https://git.kayg.org/attachments/fe3c09dc-dea3-47a0-92e2-b44a777083e5) lists each candidate missing commit and stable patch match in `pr-535.md`; unmatched patches can include superseded behavior. left open, source branch unchanged. no rebase or new test claim for this decision lane.
Author
Owner

Superseded by the Tasks UI port stack #888→#889→#893→#957. The branch and original tips are archived under archive/ (see #1009), so nothing is lost; useful regression vectors are noted there for the active lanes. Closing.

Superseded by the Tasks UI port stack #888→#889→#893→#957. The branch and original tips are archived under `archive/` (see #1009), so nothing is lost; useful regression vectors are noted there for the active lanes. Closing.
kayg closed this pull request 2026-11-07 21:21:23 +00:00
Some checks failed
CI / server (pull_request) Successful in 28s
CI / rust (pull_request) Successful in 2m11s
CI / web (pull_request) Failing after 41m43s

Pull request closed

Sign in to join this conversation.
No reviewers
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!535
No description provided.