Updates on the build!!
This session, I connected the earlier git data, diff parsing, and graph layout work to the Textual interface. gitscope now opens as a coordinated read-only history viewer instead of a static shell.
What Changed
- Replaced the placeholder app screen with a real Textual layout.
- Added a refs sidebar for HEAD, local branches, tags, and an all-branches view.
- Added a commit table with graph, SHA, author, date, and subject columns.
- Rendered the branch graph gutter from the pure graph layout module.
- Added a diff pane that updates when the selected commit changes.
- Added a compact diff overview strip beside the diff pane.
- Added a status bar showing repo path, HEAD, selected ref, selected commit, loaded count, and key hints.
- Added shared reactive state for the selected commit, so the log selection drives the diff pane cleanly.
- Added key bindings for refresh, all branches, HEAD, load more, j/k movement, help, and quit.
Read-Only Behavior
The UI only asks the backend for repository data. It does not shell out to git directly and does not expose checkout, staging, committing, rebasing, pushing, pulling, fetching, branch creation, or any other mutating operation.
Selecting a branch or tag changes the viewed log data only. It does not change the checked-out branch.
Testing
Added headless Textual tests with a fake backend to verify:
- the refs sidebar, commit table, diff pane, and status bar mount correctly
- the selected commit updates the diff pane
- moving the selection changes the displayed diff
- selecting a ref reloads log data without mutating git state
- the all-branches action uses the all-branches backend path
Verification
-
py -m pytestpassed with 26 tests. -
py -m pip install .completed successfully. -
gitscope --versionreturnedgitscope 0.1.0. - A headless app smoke check against the real gitscope repository loaded the commit log and selected the current commit.
- Source scans confirmed subprocess access remains outside the UI.
Notes
The next devlog will cover large-repository behavior and release-readiness work.
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.