Commit Graph
8 Commits
Author SHA1 Message Date
hh 43d1e1a4a3 feat(settings,docs): vault subpath becomes the chats folder, panel screenshots in the readme 2026-09-05 04:56:03 +02:00
hh 223560c8da fix(view): follow the keyboard through the navbar hiding behind it
Same two misses as the calendar's: the four-frame watch stopped before
Obsidian hid its navbar - a second move of the ground, after the keyboard's
own - and a trigger that arrived while a watch was running was dropped rather
than restarting it. The watch now needs twelve steady frames, restarts on
every trigger, and listens to Obsidian's Capacitor keyboard events too.
2026-09-05 01:15:11 +02:00
hh 70cf985aa1 refactor(inset): the bottom-inset arithmetic becomes testable, and is tested
The measurement lived inside the view, where the only way to check it was to
run Obsidian on a phone. It moves to a pure `insetFor(leaf, bars, visible)`
against the numbers a phone reports - including the case the events hid: while
the keyboard is up the navbar is behind it, so the deeper of the two is the
inset and adding them would push the composer twice as far as it must go.
2026-09-05 00:49:54 +02:00
hh 413d68fc87 fix(view): the inset chases the keyboard by frame, and comes back when it goes
Two fixed delays into the keyboard's animation is not where it ends: the
composer read the viewport mid-slide, and on the way out - when the navbar
comes back - nothing re-measured at all, so the panel stayed pushed up or
sat back under the bar. In a sidedock drawer no resize event fires either,
so a phone's keyboard moved nothing there.

The inset is now re-measured every frame until the reading holds still, and
blur is a trigger as much as focus. `inset()` returns what it wrote so the
loop can tell it has settled rather than counting milliseconds.
2026-09-05 00:47:44 +02:00
hh cc46abc34f fix(view,panel): the composer clears the navbar and the keyboard, panel opens on the master
The inset only knew the desktop status bar, so on a phone the composer sat
under the navbar - which paints over a leaf instead of shortening it - and
the software keyboard hid it outright. Every bottom bar is measured now, and
the keyboard is read off `visualViewport`: it shrinks the visible area
without resizing the layout, so no workspace event fires and the panel had
no way to know. Focus re-measures once iOS has finished animating the keys in.

The panel asks the shell to fall back to the latest master, so opening it on
a phone lands in the day's thread rather than on a prompt.

The preview fixtures anchor at midday instead of the wall clock: spread over
hours, a run just after midnight pushed half of them into yesterday and
emptied the "Today" group the switcher smoke checks.
2026-09-05 00:20:33 +02:00
hh cec5aef98c feat(panel): island, rail by day, companion mode beside a deep note, cached index and threads, obsidian skin for strips 2026-09-02 03:48:42 +02:00
hh 8cefc54552 fix(view): pad the panel by the status bar overlap so the composer stays clear 2026-08-29 19:21:18 +02:00
hh 04400c5076 feat(*): svelte 5 panel view sharing the gateway ui, obsidian theme, preview and tests 2026-08-29 18:30:31 +02:00