Skip to content

Animate the restart figure, and pin down the path matching - #125

Merged
marcosqlbi merged 1 commit into
mainfrom
docs/animate-restart-figure
Sep 11, 2026
Merged

marcosqlbi merged 1 commit into
mainfrom
docs/animate-restart-figure

Conversation

@marcosqlbi

Copy link
Copy Markdown
Collaborator

Two things, and one of them is a correction.

The figure now moves

Pick up where you left off was the only figure on the page that sat still. It now uses the
same staggered fig-pop as f4, f8 and f10 — same 6.5s cycle, same 0 / .3 / .6 delays:

  1. the board as you left it,
  2. the restart arrow,
  3. the board again.

So the second window arriving after the first is the thing the eye follows. It rests on both
windows for most of the loop, per the comment at the top of that CSS block, and inherits the
existing is-visible observer and the prefers-reduced-motion gate without touching either.

The short-path limitation does not exist

I reported that IsSameFile would miss a match between C:\Users\MARCOR~1\board.wboard and
C:\Users\MarcoRusso\board.wboard. That was wrong. Path.GetFullPath expands 8.3
components
against the directory entries, so the original code already handled it.

I found out by writing the fix: a GetLongPathName interop went in, and the new test passed
just as well with it disabled. Deriving a real short path with GetShortPathName and printing
what GetFullPath returns settled it — the long form comes back. The interop is removed; it
did nothing.

What survives is the part that has value:

  • IsSameFile moves from MainWindow to SessionStore, where the smoke tests can reach
    it. That move is what made the question answerable instead of arguable.
  • A smoke test covers it, deriving a genuine 8.3 path at run time rather than asserting
    against a hand-written one. It also covers case differences and a redundant path component.
    On a volume with 8.3 names turned off it degrades to comparing a path with itself rather
    than failing.
  • The remark on IsSameFile records why it is correct and the one condition it rests on:
    the expansion needs the file to be there to read. That holds here, since the board being
    opened exists and the slot that matches it names that same file.

No version bump

VersionPrefix stays at 1.5.0. Nothing here changes what the application does — a refactor,
a test, and a site figure. Say the word if you want 1.5.1 anyway and I will add it with an
honest entry.

Both smoke harnesses pass; the figure checked in light and dark, and frame-sampled mid-cycle
to confirm the order.

🤖 Generated with Claude Code

The restart figure was the only one on the page that did not move. It
now uses the same staggered fig-pop the other figures use: the board,
then the restart, then the board again, so the second window arriving
after the first is what the eye follows. Same 6.5s cycle and 0/.3/.6
delays as f4, f8 and f10, and it rests on both windows for most of the
loop.

The short-path limitation reported against this feature does not exist.
Path.GetFullPath expands 8.3 components against the directory entries,
so a slot holding C:\MARCOR~1\board.wboard already matches the same
board opened by its long name - verified by deriving a real short path
with GetShortPathName and comparing. A GetLongPathName interop was
written to fix it and then removed, because it did nothing.

IsSameFile moves to SessionStore, where the smoke tests can reach it,
and the case is now covered rather than argued about. Its remark records
that the expansion needs the file to be there to read, which is exactly
when this is asked.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@marcosqlbi
marcosqlbi merged commit 73ccbef into main Sep 11, 2026
5 checks passed
@marcosqlbi
marcosqlbi deleted the docs/animate-restart-figure branch September 11, 2026 17:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant