HackerTrans
TopNewTrendsCommentsPastAskShowJobs

rohanucla

no profile record

Submissions

Sem: New primitive for code understanding – not LSPs, but entities on top of Git

ataraxy-labs.github.io
175 points·by rohanucla·الشهر الماضي·60 comments

Opensessions – A beautiful TMUX sidebar, no nonsense

github.com
2 points·by rohanucla·الشهر الماضي·0 comments

Lazydiff – Language aware Semantic PR review TUI, way faster than lsp indexing

github.com
3 points·by rohanucla·الشهر الماضي·0 comments

OpenSessions – real time agent tracking in tmux using hooks and process trees

github.com
2 points·by rohanucla·قبل شهرين·1 comments

Lazydiff: Terminal PR Review with AST-Aware Semantic Diff Rendering

github.com
12 points·by rohanucla·قبل شهرين·2 comments

comments

rohanucla
·الشهر الماضي·discuss
Nice Blog!
rohanucla
·الشهر الماضي·discuss
I mean we are trying to be faster than LSPs, LSPs are a little slow for enterprise grade codebases
rohanucla
·الشهر الماضي·discuss
There is a skill.md for the agent to know about the cli, I can make update the same with more examples.
rohanucla
·الشهر الماضي·discuss
Thanks a lot Alex! for this reply, it keeps us pumped.
rohanucla
·الشهر الماضي·discuss
no setup just configures your git diff to use sem by defult, you will find the sem mcp directory on github repostiory, also there's skill.md file which will tell your agent on how to use sem.
rohanucla
·الشهر الماضي·discuss
sorry if you consider that as hijack, it was just a user's request to use this as default plugin on their git. But I will add it to let the users know thanks for the feedback
rohanucla
·الشهر الماضي·discuss
It doesn't override git diff at all, sem is its own standalone CLI. git diff continues to work exactly as before. You do sem setup only when you want to change your default git diff behavior, other wise after installing sem you can use it straight away using sem commands.
rohanucla
·الشهر الماضي·discuss
sem doesn't override git diff, it's a completely separate command (sem diff). Your regular git diff should work exactly as it always has after installing sem.

If you want to change your git diff default behavior then you can do sem setup.
rohanucla
·الشهر الماضي·discuss
This is actually the exact scenario we just spent the last few weeks optimizing for. On a 71K-file TypeScript monorepo, sem was previously choking entirely (DNF), and now completes in 6.5s with the topology cache warm. On a 100K-file generated fixture, sem impact went from 90s cold down to about 1s warm. The key was building a SQLite-backed cache that stores the dependency graph structure so repeat runs skip re-parsing unchanged files entirely.
rohanucla
·الشهر الماضي·discuss
Appreciate it!
rohanucla
·الشهر الماضي·discuss
That's a really compelling use case actually
rohanucla
·الشهر الماضي·discuss
Thanks! The data artifacts angle is really interesting. in some ways the problem is even harder there because data pipelines have less explicit structure than code, I guess.
rohanucla
·الشهر الماضي·discuss
haha definitely!
rohanucla
·الشهر الماضي·discuss
[dead]
rohanucla
·الشهر الماضي·discuss
git is actually great, and there are not much of the issues as the world says about it, and the best is to build complimentary layers that makes it even stronger is the best bet I guess.
rohanucla
·الشهر الماضي·discuss
[dead]
rohanucla
·الشهر الماضي·discuss
I am sorry, should have put up a warning there, but You can do sem unsetup, if you go to the github, you will understand more about the way to reverse it.
rohanucla
·الشهر الماضي·discuss
Lemme give you an example. when you're working in a 100K-file TypeScript monorepo and you change a utility function that parses API responses. git diff tells you that you changed n lines in that function. What it doesn't tell you is which services, components, and tests actually depend on that function across the repo. You're left grepping for the function name, hoping nobody aliased the import or re-exported it through a barrel file. sem impact gives you that full downstream dependency list in seconds, so you know exactly what to review and test before you ship.
rohanucla
·الشهر الماضي·discuss
Ha, the regex approach is honestly how a lot of people start with this problem and you can get surprisingly far with it until you hit the edge cases around aliased imports, re-exports, and nested scopes where things start falling apart. That's basically why we went with tree-sitter under the hood it gives you the actual parse tree so you don't have to keep patching regex patterns for every new language construct.
rohanucla
·الشهر الماضي·discuss
This is a really interesting direction, you're essentially talking about data flow or taint analysis, where you track how a value propagates through copies and transformations rather than just following call edges. Honestly pure static analysis gets you partway there but it hits real limits once you run into dynamic dispatch, runtime branching, or serialization boundaries where data gets written somewhere and read back in a completely different part of the codebase.

We're on the structural side right now with call graphs and dependency edges, but a hybrid approach that combines the static graph with runtime instrumentation to fill in the gaps is definitely something I'd love to explore. Thanks for the feedback.