I'm excited and equally feeling very brittle because it's my first HN post ever and it's the one where I ask for feedback on an important project of mine. Gah.
I built a tool called Unfault. I've felt the weight of the "Context Tax"
that comes with maintaining long-lived codebases for a while. Whenever I
return to a project after a few months, or look at how my tech stack has
increasingly grown and I have to spend time to figure out "why and what was I
doing here?".
I realized I need better Orientation. So, I took the last few months to build
Unfault to see if I could help with this challenge.
How it works: Unfault is a CLI and an LSP extension. It builds a graph of
what I call "Facts" about your system's reachability and logical flow.
If you're looking at a function, Unfault's CLI, Code Lenses and Sidebar show you
the ambient context:
- Reachability: "This is reached by POST /v1/orders".
- Logical Impact: "Changing this return type ripples to 3 downstream services."
- Findings: "Callers of this function are currently ignoring the error result."
The idea is to get a gentle glance at your surroundings when you work on a function for instance.
I design with developers in mind so (well because I didn't want a tool that bothered me in the first place):
- Local Engine: The analysis happens in a rust-based CLI on your machine.
- Structural Graph: It doesn't ingest your source code. It syncs an Intermediate Representation (IR) of the graph like the symbol names and the logical "links" between them.
- Privacy: I kept a hard line here: implementation logic and strings stay on your disk.
Status: Tea but no Scones It’s currently working well at the Facts (the structure and flow). It’s not yet at the point where it helps with Mindset (reconstructing
why you wrote something a certain way).
It’s in a learning phase right now, so it’s free to use. I’m mostly looking to
see where the graph engine breaks on different architectural patterns.
Would love to hear how you guys handle the mental fatigue of jumping between
projects.
sylvain-h•1h ago
I'm excited and equally feeling very brittle because it's my first HN post ever and it's the one where I ask for feedback on an important project of mine. Gah.
I built a tool called Unfault. I've felt the weight of the "Context Tax" that comes with maintaining long-lived codebases for a while. Whenever I return to a project after a few months, or look at how my tech stack has increasingly grown and I have to spend time to figure out "why and what was I doing here?".
I realized I need better Orientation. So, I took the last few months to build Unfault to see if I could help with this challenge.
How it works: Unfault is a CLI and an LSP extension. It builds a graph of what I call "Facts" about your system's reachability and logical flow.
If you're looking at a function, Unfault's CLI, Code Lenses and Sidebar show you the ambient context:
- Reachability: "This is reached by POST /v1/orders".
- Logical Impact: "Changing this return type ripples to 3 downstream services."
- Findings: "Callers of this function are currently ignoring the error result."
The idea is to get a gentle glance at your surroundings when you work on a function for instance.
I design with developers in mind so (well because I didn't want a tool that bothered me in the first place):
- Local Engine: The analysis happens in a rust-based CLI on your machine.
- Structural Graph: It doesn't ingest your source code. It syncs an Intermediate Representation (IR) of the graph like the symbol names and the logical "links" between them.
- Privacy: I kept a hard line here: implementation logic and strings stay on your disk.
Status: Tea but no Scones It’s currently working well at the Facts (the structure and flow). It’s not yet at the point where it helps with Mindset (reconstructing why you wrote something a certain way).
It’s in a learning phase right now, so it’s free to use. I’m mostly looking to see where the graph engine breaks on different architectural patterns.
Would love to hear how you guys handle the mental fatigue of jumping between projects.
PS: I hope I didn't break any HN etiquette :)