DEV Community

Cover image for Dev log #17 From 16-bit TUIs to p2p Hardening: A 227-Commit Week
Yash Kumar Saini
Yash Kumar Saini Subscriber

Posted on • Originally published at app.notion.com

Dev log #17 From 16-bit TUIs to p2p Hardening: A 227-Commit Week

A high-output week focused on shipping GitBanner 1.3.0, hardening WebRTC and DHT layers in py-libp2p, and archiving kad-monitor with a proper demo harness. 227 commits, 16 PRs, and a perfect 7-day streak.

TL;DR

This week was a massive exercise in context switching, but in the best way possible. I logged 227 commits across a dozen repos, ranging from low-level p2p networking fixes in Python to aesthetic TUI refinements in TypeScript. The highlights? Shipping a 16-bit type system for GitBanner, hardening py-libp2p against DoS attacks, and finally archiving my kad-monitor project with the dignity of a full demo harness.

What I Built

GitBanner: The Aesthetic CLI

I spent a huge chunk of my time (95 commits!) on GitBanner. I’m prepping the 1.3.0 release, and I went down a rabbit hole with the TUI type system. I implemented a 16-bit CLI/TUI aesthetic—using Silkscreen for titles and VT323 for basically everything else. It gives the tool this retro-terminal vibe that I’m obsessed with.

Beyond the visuals, I did a lot of "invisible" work: rebuilding dist, regenerating cards, and cleaning up the caption logic so the 'total commits' count doesn't feel redundant next to the 52-week scope. It’s about that polish.

Obsidian & Personal Knowledge

My obsidian-vault saw 58 commits this week. I know, "commits to a vault?" but I treat my knowledge base like a codebase. I overhauled the graph palette to ensure every category has a vibrant, distinct family based on perceptual distance. I also built a calendar-sync tool to repair frontmatter and backfill my August 2026 daily notes. If it isn't automated, I won't do it.

Kad-Monitor: The Final Chapter

I decided to officially archive kad-monitor. But I didn't want to just flip the bit and walk away. I spent 37 commits building a proper "Demo Harness." I merged PR #1, which includes a runnable simulation, a full dashboard, and A/B experiment results. I also documented its limitations honestly in the README. There's something satisfying about parking a project with a clean deployment guide and CI badges rather than letting it rot.

P2P & Backend Hardening

Most of my "serious" engineering time went into py-libp2p. P2P networking is unforgiving, and this week was all about resilience.

I opened PR #1442 to enforce IP subnet diversity in Kademlia DHT k-buckets. In a decentralized network, you don't want all your peers coming from the same subnet—that's a centralization risk. I also tackled a security concern in PR #1396, hardening the /sdp HTTP server against memory-amplification DoS attacks.

One of the more satisfying fixes was PR #1441. I noticed our varint decoders were accepting truncated or over-long inputs. It’s a classic edge case that can lead to all sorts of weirdness down the line, so I tightened that up to reject malformed data immediately.

I also took a swing at hydradb, opening PR #80 to optimize cursor performance. The old logic was rescanning the cursor tail on every page drain while holding a global mutex—not exactly great for concurrency. I swapped it to subtract drained bytes instead, which should feel much snappier.

Issues & Discussions

I opened 13 issues this week, mostly as I was dogfooding my own tools or digging into upstream dependencies.

  • HydraDB: Found a nasty bug where merge_distributed_inner_join treats null keys as equal (Issue #96). That results in a massive cross-product of null rows that can blow up your memory.
  • Agent-Orchestrator: Had some trouble with the Linux AppImage on Arch (Issue #4006). It turns out it was built with a legacy FUSE2 runtime. I opened PR #4007 to move it to a modern runtime so it actually starts on clean installs.
  • Corsair: Did a quick accessibility audit and found some missing labels in the Studio ChatPage (Issue #746). I fixed that and also implemented a constant-time comparison for GitLab tokens to prevent timing attacks (PR #757).

Tech Stack & Workflow

This was a heavy Python and TypeScript week, but I also touched quite a bit of Lua while tweaking my Neovim config.

I actually simplified my nvim setup this week. I removed toggleterm and all its associated complexity in favor of a leaner workflow. I also restored my <leader>gg binding to trigger snacks.lazygit. Sometimes the best code is the code you delete—I ended the week with a net negative line count on my config, which is always the goal.

The stats tell a story of massive growth: +29,890 lines and -12,478 lines. A lot of that addition is documentation and the Obsidian backfill, but the 12k deletions represent a lot of refactoring in GitBanner and py-libp2p.

What's Next

Next week is all about the GitBanner 1.3.0 launch. I want to make sure the new TUI type system is rock solid. I’m also planning to dive deeper into the HydraDB join issues I uncovered—fixing that cross-join on null keys is going to be a fun challenge in distributed logic.

Seven days of commits in a row. The streak is alive, the coffee is strong, and the code is getting cleaner. See you next week!


Yash K Saini — Engineer, building in public — AI/ML, low-level (Rust/C/C++), and open source.

GitHub · X · LinkedIn · Portfolio

Generated by DevNotion

Top comments (0)