unhappychoice unhappychoice · 2026-03-16 - 2026-03-22

feat: add markdown diff view and previous commit history tabs lands in mdts

A week of focused development on the mdts diff feature, cross-repo dependency maintenance, and contributing fixes to external projects.

This week was dominated by the completion and merge of a major feature in my markdown tool mdts: the Diff and History tabs. After several iterations based on review feedback, I finally shipped a polished implementation that shows uncommitted changes and previous commit diffs directly in the UI. The feature required careful handling of git edge cases like initial commits and non-repository files.

Simultaneously, I was in "dependency update mode" across a dozen repositories—Java, Ruby, JavaScript, and Rust projects all received bumps for Gradle, JSON, tree-sitter-rust, and more. I also opened a PR in ashkulz/committers.top to fix a subtle GraphQL sorting bug that was causing non-deterministic user rankings, and got my own tool gitlogue accepted into awesome-cli-apps.

The rhythm was burst-driven: heavy commit activity early in the week (peaking at 142 on Tuesday) as I pushed the mdts feature over the line, then tapering into review-heavy days managing the resulting dependency updates and cross-repo reviews. It was a satisfying mix of deep feature work and broad maintenance.

Summary

4 sections
repo-summary
mdts: diff feature dominates
The mdts repository consumed most of my focus with the Diff and History tabs feature (+878 lines, 21 files). I also merged several dependency bumps there, but the feature work was the clear narrative. The implementation evolved significantly based on review feedback, especially around edge case handling.
unhappychoice/mdts 9 PRs
bitflyer-tools/DroidFlyer 3 PRs
circleci-tools/CircleCI 3 PRs
unhappychoice/gitlogue 3 PRs
unhappychoice/slack_channel_stats 3 PRs
circleci-tools/circleci-cli 3 PRs
bitflyer-tools/cycle-flyer 3 PRs
unhappychoice/gittype 2 PRs
unhappychoice/blog 2 PRs
circleci-tools/Norimaki 2 PRs
unhappychoice/cycle-pusher 2 PRs
unhappychoice/RxSnackbar 2 PRs
unhappychoice/color-hash.kt 2 PRs
agarrharr/awesome-cli-apps 1 PRs
ashkulz/committers.top 1 PRs
bitflyer-tools/bitflyer-cli 1 PRs
irasutoya-tools/irasutoya 1 PRs
unhappychoice/terminal_image 1 PRs
bitflyer-tools/bitflyer 1 PRs
irasutoya-tools/irasutoya-cli 1 PRs
unhappychoice/mdts 9 PRs feature lines +878/-42
deep-dive
Git edge cases in a diff viewer
Building the diff tabs exposed tricky git scenarios: how to handle the initial commit (no HEAD1), what to show when not in a git repo, and ensuring the 'previous commit' actually reflects the last change to the file, not just HEAD1. I had to refactor to use git log -1 -- <file> for accurate history and add guards to hide tabs when irrelevant.
edge cases handled 3 refactors 5 commits
activity-pattern
Burst early, review later
Commit volume peaked sharply on Tuesday (142) and Monday (137) as I pushed the mdts feature, then declined steadily through the week. The latter half was review-heavy: 42 reviews total, mostly dependency bumps from Dependabot across my various repos, plus feedback on the mdts PR itself from coderabbit.
137
Mon
142
Tue
83
Wed
71
Thu
64
Fri
48
Sat
57
Sun
peak day Tue 142 total reviews 42
collaboration-summary
Cross-repo impact
I contributed to 19 distinct repositories this week, spanning my own orgs (unhappychoice, bitflyer-tools, circleci-tools) and external projects like ashkulz/committers.top and agarrharr/awesome-cli-apps. The committers.top fix improves their user ranking accuracy, and getting gitlogue listed in awesome-cli-apps was a nice moment of sharing my own tool.
repos touched 19 external PRs 2

Highlights

3 items
pr
unhappychoice/mdts · merged Mar 22 · +878 -42 · 21 files
The main event: shipped Diff and History tabs in mdts after iterating on review feedback. The Diff tab shows uncommitted changes via git diff, and History shows the last commit's changes for the file. It required careful git edge-case handling and a refactor to use MarkdownRenderer for consistency.
pr
ashkulz/committers.top · opened Mar 18 · +321 -161 · 4 files
Discovered their GraphQL user search used an unsupported sort:followers qualifier, causing non-deterministic rankings. Fixed by switching to GitHub's REST API with proper ?sort=followers support, ensuring accurate committer rankings.
pr
agarrharr/awesome-cli-apps · merged Mar 20 · +1 -0 · 1 file
Got my cinematic Git replay tool gitlogue accepted into the curated awesome-cli-apps list. A small but meaningful validation of a tool I built to make Git history more engaging.
Share 𝕏 in 🦋