Skip to content

Punchlist v1.5.26

Choose a tag to compare

@evrenucar evrenucar released this 28 Jul 13:02
· 105 commits to main since this release

Update every device you sync with. Two separate bugs fixed in this release could replace a newer board with an older one. A device still on an older build has neither fix and can still overwrite good work.

This is the first release since v1.5.1 on July 19. Twenty-five builds are folded into it.

Everything tells you its keyboard shortcut

Hover any button on a row and it names the key that does the same thing: the checkbox says Ctrl+Enter, a chevron names the Ctrl+arrow that matches whether it is open or closed, the plus says Enter then Tab, the bin says Backspace. Alt+S shows and hides the sidebar. The sidebar and Settings now browse with the arrow keys the way the board does: arrows walk everything on screen, Right opens a section, Left closes it and then climbs to the section holding it, Ctrl+arrows expand and collapse.

There is a printable cheatsheet of every shortcut at https://evrenucar.github.io/punchlist_app/shortcuts.html, also linked from Help inside the app.

Sync could lose a board (the reason to update)

  • A device that had been offline with an unfinished push used to win any divergence on its "dirty" flag alone, with no recency check at all. It pushed its old board over newer work, and every other device then pulled that old board down. Divergences are now decided by a per-board edit counter: the stale device pulls instead of clobbering (1.5.20).
  • That counter ranked devices by how many edits they made, never how recently. A phone holding 50 week-old offline edits outranked a laptop edited a minute ago, so the trip back in time was still possible. Every edit now stamps a time next to the counter, and sync reads both. When they agree it resolves silently, exactly as before. When they disagree it stops and asks, and the dialog names both edit times instead of asking you to pick blind (1.5.25).
  • Sync no longer discards edits you had not saved yet, no longer yanks your scroll position and selection on a pull, and no longer gets stuck retrying after a 409.
  • A board synced by an older build carries no timestamp, so it falls back to the counter. Nothing breaks on mixed versions, but the protection is only complete once every device is on 1.5.25.

Images moved out of the board file

Image bytes now live in the browser's IndexedDB and as one immutable file each in the sync repo, instead of inside the board JSON. Syncs and local storage got much smaller. JSON exports re-embed every image, so an export is still a single lossless file an older build can read.

Speed

  • Editing a linked copy used to repaint the entire board. Completing an alias: 650ms to 31ms.
  • Pressing Enter on a top-level row: 146-328ms to 25ms.
  • Link counting is one walk per render now, not one walk per task.

Focus mode

Collapse and fold, scrolling for long content, a smaller header, a sticky breadcrumb, the group's time total, and Ctrl+Alt+F shown where you can see it. Images no longer blow out the row layout.

Text formatting

Ctrl+B, Ctrl+I and Ctrl+Shift+S toggle markdown bold, italic and strikethrough. _italic_, __bold__ and ___both___ render, with CommonMark's rule that underscores inside a word are left alone.

Phone and touch

  • The sideways drift on iPhone was a grid track blowing out its column. Measured on the device, then clamped.
  • Tapping the checkbox on a row that was not selected now toggles it reliably.
  • Button labels stay on one line.

Also

  • Bug report dialog, with a GitHub issue link that carries your description and the build number.
  • The downloaded copy checks GitHub for a newer release on load and shows one small dismissible toast. Settings can turn it off, and the hosted copy hides that section entirely.
  • History restore matched trash records by name, so deleting two items with the same name meant Restore could bring back the wrong one. It breaks the tie on deletion time now.
  • The expand chevron hides when a task's children are all hidden.

Updating a file you downloaded

Put the new file in the same folder under the same filename, then open it the way you always do. Your board is stored by location, so a different folder or filename opens empty (nothing is lost, the old board is still attached to the old path).

Full walkthrough: https://evrenucar.github.io/punchlist_app/updating.html

The hosted app at https://evrenucar.github.io/punchlist_app/ is always current and needs no update.