<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: michaelmure</title><link>https://news.ycombinator.com/user?id=michaelmure</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 26 Sep 2026 00:53:06 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=michaelmure" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by michaelmure in "Git-bug: Distributed, offline-first bug tracker embedded in Git"]]></title><description><![CDATA[
<p>They would be two different bugs (even with the same title). Someone would recognize the duplicate and close one. That would happen less as the time to sync decrease.</p>
]]></description><pubDate>Fri, 25 Sep 2026 21:00:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=49849886</link><dc:creator>michaelmure</dc:creator><comments>https://news.ycombinator.com/item?id=49849886</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49849886</guid></item><item><title><![CDATA[New comment by michaelmure in "Git-bug: Distributed, offline-first bug tracker embedded in Git"]]></title><description><![CDATA[
<p>> I don't understand how this is a problem. Isn't this already solved with keyservers and importing to a local keyring? My Linux distro has no problem keeping track of who is who and if they are trusted (not updating for a year or two would probably break things).<p>There is different pieces that solve part of the problem (name/email from the git config, key servers for *some* users), but everything is disconnected, unstable, incomplete. Git-bug needs a stable identifier, the full self-certified pubkey log ... Those solutions are not good enough.<p>> Doesn't git's design yield blockchain-like assurance that nothing in the past has been modified?<p>It's not specific to git, but yes you get a chain of data blocks, content-addressed with signature support. That's what you want to build on, to have identities, roles, rules to enforce in a p2p system.<p>> Personally, I think signed commits should be the default. This is especially true in the age of AI where distinguishing humans from machines becomes harder every day. I would love for encrypted email/IM and sharing keys to be the norm for everyone but we're not there and may never be.<p>Agree! Note that if git-bug bring a solid identity primitive and publish pubkeys ... it can also carry the pubkeys that are *already* used to sign commits, publish them in the same public registry and verify code commits transparently, without relying on a third party to do so. Imho that's something missing in the current git model: if there is identities, there are segregated in third party systems like github. DIDs brings a lot to the table.</p>
]]></description><pubDate>Fri, 25 Sep 2026 19:05:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=49848601</link><dc:creator>michaelmure</dc:creator><comments>https://news.ycombinator.com/item?id=49848601</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49848601</guid></item><item><title><![CDATA[New comment by michaelmure in "Git-bug: Distributed, offline-first bug tracker embedded in Git"]]></title><description><![CDATA[
<p>There is <a href="https://github.com/git-bug/git-bug/issues/63" rel="nofollow">https://github.com/git-bug/git-bug/issues/63</a>, but I have plenty to do before that.</p>
]]></description><pubDate>Fri, 25 Sep 2026 18:51:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=49848442</link><dc:creator>michaelmure</dc:creator><comments>https://news.ycombinator.com/item?id=49848442</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49848442</guid></item><item><title><![CDATA[New comment by michaelmure in "Git-bug: Distributed, offline-first bug tracker embedded in Git"]]></title><description><![CDATA[
<p>It's really hard (impossible?) to define a feature set that work for everyone. Every bug tracker is a bit different, and if you want to have everything you end with Jira, which I'm not sure is actually solving a problem.<p>However, git-bug's data model is designed in a way that you can add more "operations" on an entity (say: assign a bug) without every client having to implement it. You can also add your own entity type (pr, kanban, ...) the same way. Clients will just ignore that extra data and support what they want. This open the possibility for addons and so on.<p>For this specific case of the bug states, I want to add a config entity to configure that. You'd start with a reasonable default (open/close) but you could tune it for the needs of your project.</p>
]]></description><pubDate>Fri, 25 Sep 2026 18:16:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=49848082</link><dc:creator>michaelmure</dc:creator><comments>https://news.ycombinator.com/item?id=49848082</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49848082</guid></item><item><title><![CDATA[New comment by michaelmure in "Git-bug: Distributed, offline-first bug tracker embedded in Git"]]></title><description><![CDATA[
<p>Sure.<p>Identities in git can barely be called that. You define your name and email, maybe sign your commit. Those signature can be checked but it's really optional and often left to another system (e.g. github or your git viewer). Access right in the git remote is also a completely different thing.<p>In a distributed/p2p system with social interaction you need well defined identities that carries public keys. If you want to work offline, you actually need a full self-certified history of public key updates. Any changes in the entities (bug, pr, ...) need to have an author and a clear logical time so that you can backtrack to which pubkey(s) was active at the moment. Note that if you accept external contribution from a webui, you still need those identities being created in the background, possibly later to be "adopted" when using the native tooling.<p>Identities in git-bug is a part that nearly didn't change since the inception, and it's time for an upgrade. At the moment they are a linear series of changes (that is, NOT a CRDT) and are stuck within one repo. You can push/pull around but you are really just making a copy that you need to maintain.<p>My plan is to split this concept in two parts: pubkey log, and how they anchor within the repo's logical time. It turns out that if you split that way, the first part is pretty much exactly what did:plc is. Additionally, for complicated reasons like allowing recovery without opening major weakness, that's the one thing where having a centralized reference is important, so relying on the public <a href="https://plc.directory/" rel="nofollow">https://plc.directory/</a> makes sense.</p>
]]></description><pubDate>Fri, 25 Sep 2026 18:10:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=49848009</link><dc:creator>michaelmure</dc:creator><comments>https://news.ycombinator.com/item?id=49848009</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49848009</guid></item><item><title><![CDATA[New comment by michaelmure in "Git-bug: Distributed, offline-first bug tracker embedded in Git"]]></title><description><![CDATA[
<p>The point of using git is to have a full software project (code, issues, ...) self-contained, without being trapped in or dependent on a SaaS, dead fast and working offline and integrating with all your tooling locally. All that with a single binary and git that virtually everyone use already.<p>Now what you are talking about seems to be about the lifecycle of a bug. With this model you can replicate the same behavior as on major bugtrackers, or also track some metadata (fix in commit xxx) and compute where the bug is "deployed". But that's a UX/social problem, not a technical one imho.</p>
]]></description><pubDate>Fri, 25 Sep 2026 17:43:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=49847714</link><dc:creator>michaelmure</dc:creator><comments>https://news.ycombinator.com/item?id=49847714</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49847714</guid></item><item><title><![CDATA[New comment by michaelmure in "Git-bug: Distributed, offline-first bug tracker embedded in Git"]]></title><description><![CDATA[
<p>Fair enough, done!</p>
]]></description><pubDate>Fri, 25 Sep 2026 17:14:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=49847282</link><dc:creator>michaelmure</dc:creator><comments>https://news.ycombinator.com/item?id=49847282</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49847282</guid></item><item><title><![CDATA[New comment by michaelmure in "Git-bug: Distributed, offline-first bug tracker embedded in Git"]]></title><description><![CDATA[
<p>Trust me, I'm an engineer</p>
]]></description><pubDate>Fri, 25 Sep 2026 17:10:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=49847228</link><dc:creator>michaelmure</dc:creator><comments>https://news.ycombinator.com/item?id=49847228</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49847228</guid></item><item><title><![CDATA[New comment by michaelmure in "Git-bug: Distributed, offline-first bug tracker embedded in Git"]]></title><description><![CDATA[
<p>It's both really. If done well, the same local-first software can be a hosted solution and give you the "github" experience, or work fully locally, or anything in between with different topologies. If you work locally but care about some external sources, it's just a matter of notification, polling or transport. That can be done silently in the background.</p>
]]></description><pubDate>Fri, 25 Sep 2026 17:07:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=49847178</link><dc:creator>michaelmure</dc:creator><comments>https://news.ycombinator.com/item?id=49847178</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49847178</guid></item><item><title><![CDATA[New comment by michaelmure in "Git-bug: Distributed, offline-first bug tracker embedded in Git"]]></title><description><![CDATA[
<p>I'll fix that soon. I really wanted to avoid calling the git binary for security reason, but I have to admit that go-git is not robust enough in some cases. I'll have at least the option to use the git binary for push/pull, possibly as a default depending on how it goes.</p>
]]></description><pubDate>Fri, 25 Sep 2026 16:59:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=49847079</link><dc:creator>michaelmure</dc:creator><comments>https://news.ycombinator.com/item?id=49847079</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49847079</guid></item><item><title><![CDATA[New comment by michaelmure in "Git-bug: Distributed, offline-first bug tracker embedded in Git"]]></title><description><![CDATA[
<p>The choice to not use git merge handling was there from the beginning, the proper CRDT came a bit later when I understood more the problem and it's possible solutions. From a UX perspective, manually fixing merge conflict is the right thing for code, but it's a different story for social interactions: when the output you operate on is code, you want to precisely control that output. When the output is people understanding each other, you want to capture the <i>intent</i>. It's ok to, in rare case, be a little bit off in edge cases of the conflict resolution. What's not ok is forcing on the user to understand and deal with the problem.<p>Note that this very question is why some previous attempt at distributed bug tracker failed.<p>As for the postmodernism of git, I don't know ;-). I'm simply building on top of the lower level git database and leveraging the tools I have (like push/pull). Each bug is essentially its own namespace of operations that get moved around between repos. As with any CRDT, the state of that document get built from what is known at the time.</p>
]]></description><pubDate>Fri, 25 Sep 2026 16:57:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=49847051</link><dc:creator>michaelmure</dc:creator><comments>https://news.ycombinator.com/item?id=49847051</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49847051</guid></item><item><title><![CDATA[New comment by michaelmure in "Git-bug: Distributed, offline-first bug tracker embedded in Git"]]></title><description><![CDATA[
<p>I agree. I'll have soon-ish the webui accept OAuth/OIDC, so you can easily host and replicate a normal bug tracker experience... yet still benefit from the other workflows that a normal forge can't have.<p>That's the key feature to make a distributed bug tracker actually work in practice.</p>
]]></description><pubDate>Fri, 25 Sep 2026 14:32:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=49845225</link><dc:creator>michaelmure</dc:creator><comments>https://news.ycombinator.com/item?id=49845225</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49845225</guid></item><item><title><![CDATA[New comment by michaelmure in "Git-bug: Distributed, offline-first bug tracker embedded in Git"]]></title><description><![CDATA[
<p>I do want to extend to pull-request and more, so I'll need to at least make space in the CLI commands. Having a "git bug bug" next to a "git bug pr" is quite ugly.<p>Naming is hard, but I mostly didn't expect to reach that point :-)</p>
]]></description><pubDate>Fri, 25 Sep 2026 13:44:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=49844586</link><dc:creator>michaelmure</dc:creator><comments>https://news.ycombinator.com/item?id=49844586</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49844586</guid></item><item><title><![CDATA[New comment by michaelmure in "Git-bug: Distributed, offline-first bug tracker embedded in Git"]]></title><description><![CDATA[
<p>Hi, author here, nice to see some interest :-)<p>FYI, this is my near-term roadmap:<p><pre><code>  - have the webui accept external auth (like github oauth) so that it can be a public portal and accept external interactions
  - have the webui expose a git remote endpoint
  - slightly rework identities (and likely root them in did:plc for pubkey distribution, the identity system from bluesky, without being an ATProto thing), which would allow to share identities between repos way more naturally
  - extend to support pull-requests, possibly CI. That would make it a somewhat complete local-first forge that you can also self-host trivially
</code></pre>
Also, while there is some attention ... I'm considering working on this full time. If you have some advice or opportunities on how I can support myself doing this, let me know!</p>
]]></description><pubDate>Fri, 25 Sep 2026 13:36:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=49844476</link><dc:creator>michaelmure</dc:creator><comments>https://news.ycombinator.com/item?id=49844476</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49844476</guid></item><item><title><![CDATA[New comment by michaelmure in "Markdown in /src"]]></title><description><![CDATA[
<p>I want to do something like that with git-bug (keeping track of prompt/conversation/review alongside normal commit), but unsure what the DX would be. Insights welcome :)</p>
]]></description><pubDate>Wed, 23 Sep 2026 07:43:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=49812872</link><dc:creator>michaelmure</dc:creator><comments>https://news.ycombinator.com/item?id=49812872</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49812872</guid></item><item><title><![CDATA[New comment by michaelmure in "Defrag98: Windows 98 Disk Defragmenter Simulator Online"]]></title><description><![CDATA[
<p>In the same vein, but showing live the go allocator and GC operating on the heap of a running program: <a href="https://github.com/MichaelMure/gogc98" rel="nofollow">https://github.com/MichaelMure/gogc98</a></p>
]]></description><pubDate>Sun, 30 Aug 2026 01:04:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=49494724</link><dc:creator>michaelmure</dc:creator><comments>https://news.ycombinator.com/item?id=49494724</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49494724</guid></item><item><title><![CDATA[New comment by michaelmure in "Ask HN: Alternatives to GitHub"]]></title><description><![CDATA[
<p>FWIW, I have a new and much better webui that I need to release. I'm also planning to work on PRs and other stuff around the end of the year.</p>
]]></description><pubDate>Mon, 17 Aug 2026 16:50:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=49334021</link><dc:creator>michaelmure</dc:creator><comments>https://news.ycombinator.com/item?id=49334021</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49334021</guid></item><item><title><![CDATA[Show HN: Gogc98 – live visualisation of the go allocator and GC]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/MichaelMure/gogc98">https://github.com/MichaelMure/gogc98</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49309370">https://news.ycombinator.com/item?id=49309370</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 15 Aug 2026 10:21:02 +0000</pubDate><link>https://github.com/MichaelMure/gogc98</link><dc:creator>michaelmure</dc:creator><comments>https://news.ycombinator.com/item?id=49309370</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49309370</guid></item><item><title><![CDATA[New comment by michaelmure in "How I use LLMs to learn complex topics"]]></title><description><![CDATA[
<p>I wish there was a LLM tool to explore a topic recursively, as a tree or a mindmap. You would start with some high level concept (say "cryptography") then dig further and further to more specific topics.<p>I think that would be a way more natural way to explore than being stuck on the classic linear output of a LLM.</p>
]]></description><pubDate>Sun, 09 Aug 2026 21:35:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=49236230</link><dc:creator>michaelmure</dc:creator><comments>https://news.ycombinator.com/item?id=49236230</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49236230</guid></item><item><title><![CDATA[New comment by michaelmure in "Ask HN: What is a good format for a tool to report data to a LLM?"]]></title><description><![CDATA[
<p>That's an interesting take! Not quite easy to do with a CLI tool with dozens of commands though. Maybe it would be some kind of always on server the LLM can operate on ... but then that starts to really look like graphql.</p>
]]></description><pubDate>Wed, 05 Aug 2026 04:33:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=49178591</link><dc:creator>michaelmure</dc:creator><comments>https://news.ycombinator.com/item?id=49178591</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49178591</guid></item></channel></rss>