Gitty 0.1.4
Added
-
Every file in the tree now shows its line count beside the name (e.g.
"142 lines"), counted from disk for the work tree and from the revision
wherever else. Binary files, deleted files and files larger than 8 MB are
skipped and show no count. -
Images are shown, not reported as binary. Opening a
.png,.jpg,.gif,
.webp,.bmp,.ico,.avifor.svg— from the file tree, the header
button or a snapshot — gives the picture itself, fitted to the pane over a
checkerboard so transparency reads as transparency, with its pixel dimensions
and size underneath. Click it for actual size and scroll around; click again
to fit. The bytes come from disk in the work tree and from the commit
everywhere else, so an image can be looked at as it was. -
Markdown previews show the images they reference. A relative path is resolved
against the document and read out of the repository at the document's own
revision, so an old commit renders with the screenshots it shipped with; one
that is not there at that revision leaves a placeholder carrying its alt text.
Images from the web are still not fetched — reading a stranger's README should
not announce you to whatever host it points at. Selecting an image also
renames the header's View File to View Image. -
A Language setting in the Settings dialog switches the interface without
restarting: the panes, the menus, the dialogs and the application menu's own
labels all change together. Nine languages are listed — English, 简体中文,
日本語, 한국어, Français, Deutsch, Español, Русский and Português, all of them
translated in full — the interface, the application menu and the notices git's
output is wrapped in. English remains the source the others are translated
from. -
The commit log filters. A box above it narrows the list to commits whose
message or author contains the text, with a ✕ to clear; typing is debounced
and the result pages like the unfiltered log. The filter is a union of a
message match and an author match — git would AND--grepwith--author,
so the two passes are merged by hash and shaped in one date-ordered pass. -
Selecting a commit shows its full message. The subject, author, date and the
whole body sit above the file list whenever a commit or a snapshot is
selected, so a long commit message no longer has to be guessed at from the
one-line log. When the message has a body, a ▸ toggle folds it away to the
subject and the metadata row, giving the file list the room. -
Blame and file history, from any file's context menu. Blame File opens
one row per source line — the commit, its author and the line itself, with an
em dash where a line is not committed yet; File History lists every
commit that touched the file and clicking one opens it. Both open as
documents beside the diff, blame the revision being viewed (a commit-mode
file blames that commit, a snapshot file the snapshot's tree), and the
history follows renames. -
A vitest suite for the git parsers, the only part of the app that is pure
functions over text: thestatus,log,name-status, branch and blame
formats are parsed from fixtures without a repository.npm testjoins
npm run typecheckas the automated safety net.
Changed
- A repository tab's tooltip now says when that repository has uncommitted
changes, so the yellow dot beside its name does not have to be guessed at. - The README is available in five more languages — 简体中文, 日本語, Español,
Français and Deutsch — underref/readme/, linked from the top of the English
one. Each translation is stamped with the date it was made and says plainly
that the English README is the official version and the only one kept up to
date; where a translation disagrees with it, the English is right. - README restructured around the window rather than the panes. The title bar —
every button and counter in it — now has a section of its own instead of
being split across four unrelated ones, tabs and recent repositories sit under
it, and opening a file whole is documented beside the diff rather than inside
it. Newly written up: the Settings dialog, snapshots (Browse Snapshot),
and the Word highlight option, none of which the README mentioned. - The window opens faster: the renderer bundle is split, so the app shell and
the four panes no longer wait on the libraries only some of them need. The
terminal (xterm), opened files and markdown previews (highlight.js,
markdown-it) load as their own chunks only when they first appear, instead of
gating the first paint. - The pane-title tooltips now spell out the double-click gesture: hovering any
of the four pane titles shows Double-click the title toggles full screen
under its shortcut, so the mouse gesture is discoverable without a docs hunt. - README screenshot updated for this release (
ref/gitty-0.1.4.png).
Fixed
- Yesterday evening's commits read as times still to come. The commit log shows
a bare time for today's rows and a date for everything else, but "everything
else" was measured as the last 24 hours: at 3 PM, a commit from 9:45 the
previous night was labelled "9:45 PM" with no date, sitting directly under
1:43 PM. The cutoff is now the calendar day. The file history pane shares the
same stamp and was wrong the same way. - The window could stay hidden forever on Wayland. It is created hidden and
shown at its first paint, but an unmapped window's renderer can hold that
frame back — and showing the window is what would have released it. Gitty
appeared to start and then leave nothing on screen. The load event now arms a
fallback that shows the window a second later if the first paint has not
already done it. - Around twenty strings never followed the language setting, because they were
still written into the components rather than read from a message table —
Show Whole Diff, Wrap, Outline, Preview, Open in Browser,
the document tabs, the work-tree row of the commit log and a dozen tooltips.
They now come from the tables like everything else.