Skip to content

0.5.9

Choose a tag to compare

@github-actions github-actions released this 06 Aug 01:33
· 27 commits to main since this release

Update notes 0.5.9

Requires a Termux runner update (v7 → v8). Open the companion app and tap Update runner, or re-run the install command from the plugin settings. Until the versions match, the plugin repeats the warning on every result.

Safety fix ⚠️(please update)

Per-path actions did not exclude protected sparse paths that lay below the requested path. Staging a parent folder in the tree layout, or picking "Git: Stage" on a folder, therefore ran git add over a protected subdirectory and put its files in the index; the sparse safety gate then blocked the commit, which is how it surfaced. stage-file, unstage-file and discard-file now carry the same :(exclude) specs that stage-all always used. Two related defects went with it: discarding an untracked folder failed instead of removing the untracked files inside it, and a folder whose only tracked content was a protected subdirectory was misclassified as tracked.

Sparse safety window

Two recovery buttons, side by side on a phone:

  • Delete files locally moves the listed files to Obsidian's trash (reversible, git history untouched). Offered only for paths that are new here (untracked or newly added). A tracked path is never offered, because deleting it would create the staged deletion the check exists to block; the note under the buttons says how many such paths are in the list.
  • Unprotect path removes the sparse exclusion for the directories the violations actually fall under, so they are checked out and committed like any other directory.

Both ask for confirmation and state the consequence first.

Status and history panels

  • File counts moved to the right-hand column, aligned with the change-letter column of file rows, in group headers, folder rows and commit rows. Space is reserved for two digits; larger numbers shrink, anything above 9999 shows 9999+. Tapping a clamped number shows the exact figure for three seconds, and press-and-hold keeps it open.
  • Folder rows in the tree layout now use the same slot layout as file rows, so the action buttons line up in one column instead of drifting left.

Diff pane

  • Wrapped lines follow the pane width instead of the longest line in the file. The rendering table used an automatic layout, so wrapping still left the pane scrolling sideways.
  • Display preferences (line wrapping, invisible characters) are re-applied whenever the pane re-renders or is resized. The pane is reused for every diff, and applying them once per DOM build silently dropped the whitespace glyphs after a few files.

Commands

  • Command names no longer repeat the plugin name. Native Git Bridge: Native Git: Fetch is now Native Git Bridge: Fetch. Command ids are unchanged, so existing hotkeys keep working.
  • New: Discard all local changes (keep staged). Unstaged edits go back to the staged version (or to HEAD). Staged changes and untracked files are kept.
  • New: Reset everything to HEAD (staged and local changes). The effect of git reset --hard, written as a pathspec restore so protected sparse paths stay excluded, which a literal --hard cannot do. HEAD is not moved and untracked files are not deleted.

Bridge check

  • "Update companion app" appears only when the companion reported an older version. It used to appear whenever a companion had ever answered, so a matched plugin and companion were told to update.
  • Result windows no longer carry a Close button; the window's ✕ closes them.

Internals

Runner v8: protected-path excludes on per-path actions, discard-all, reset-all.

Full Changelog: 0.5.8...0.5.9