Skip to content
View ntdatt812's full-sized avatar
🏢
Minh Lo Company
🏢
Minh Lo Company
  • LIGHT ROAD LIMITED COMPANY
  • Thanh Hoa
  • 03:03 (UTC +07:00)
  • Facebook ntdat812
  • Instagram nt.datt812

Block or report ntdatt812

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ntdatt812/README.md

Nguyen Thanh Dat — plumbing under AI developer tooling

Landed Open Focus Location

I work on the plumbing under AI developer tooling — the API routers, session stores, and configuration managers that sit between a coding agent and the models it talks to. Almost all of it is root-cause work in codebases I did not write.

Every patch below ships with a regression test that I verify fails on main before I open the pull request.

Contribution record

Public data for ntdatt812, counted 2026-08-18, covering the preceding 12 months. "Landed" means the change is in the upstream default branch of a repository I do not own — as a merged pull request, or as a commit the maintainer cherry-picked from one.

Count What it counts
Pull requests merged 9 Merged by maintainers of repos I don't own
Additional commits landed 6 In decolua/9router main; the PRs were closed and the work cherry-picked
Pull requests open 23 Awaiting maintainer review
Repositories 9 Third-party repos I've contributed to

I am not a maintainer of any of these projects, and I don't claim to be.

Landed

decolua/9router — LLM API router, 25.7k★. Six commits in main.

Commit What it does
9225921 Implements the hardening for GHSA-5mj8-gf6m-fhw8 (high): the router decided a request was local by trusting a client-supplied X-9r-Real-Ip header, so any remote caller could send 127.0.0.1 and reach the owner's LLM API with no key. Now the address must be proven to come from the socket.
70ba002 Preserves prompt_cache_key when translating Chat into Responses — without it every routed request silently lost its cache hit.
59d858b Reads Gemini's usageMetadata out of the antigravity response envelope, so token accounting stopped reporting zero.
27f3710 Ships sql.js in the Docker image so the pure-JS database fallback can actually start.
8af5e75 Adds Fish Audio as a text-to-speech provider.
b04c03c Adds the Alibaba Token Plan provider (token-plan.ap-southeast-1).

lidge-jun/opencodex — coding agent, 10.9k★. Four pull requests, all merged inside 24 hours.

PR What it does
#1788 Makes the responses path fail closed when a routed provider invokes a tool that was never declared, instead of passing it through.
#1780 Normalizes tool-call ids so conversation history replays across providers.
#1806 Keeps an absolute POSIX sqlite home literal in POSIX service files.
#1805 Gives the Windows test sandbox a real profile shape.

williamcachamwri/zalo-tg — Zalo↔Telegram bridge, 276★. Five pull requests merged: #42 group history backfill and offline auto-reply, #43 Zalo reactions as native Telegram reactions, #44 muted threads mirrored as silent, #45 typing and seen indicators, #46 message recall by reacting 🙈.

Open for review

Project Pull request
farion1231/cc-switch 128k★ #6477 — Codex Desktop's [desktop] config table was wiped on every provider switch. Also #6474, #6476, #6479.
thedotmack/claude-mem 91k★ #3619 — the provider recorded every assistant reply into the conversation history twice, and nothing dedupes it before it becomes the request's messages array, so the assistant half of every later request was double-billed. Also #3620, #3593.
decolua/9router 25.7k★ 13 open, including #3369 recovering a tool result that arrived without an id, and #3368 stopping a hard-coded heap cap from overriding the operator.
zenoamaro/react-quill 7k★ #1050 — replace findDOMNode with a ref so the editor works on React 19.
commandlineparser/commandline 4.8k★ #953 — retarget the test project to net8.0 so the suite runs on current SDKs.
nestjsx/nestjs-typeorm-paginate 875★ #927 — reject a limit of 0 instead of dividing totalPages by zero.

How I work

Most of these were found by reading code, not by reproducing a filed issue. The expensive part is never the patch — it's reading enough of an unfamiliar codebase to know which of five plausible causes is the real one. That's why the diffs tend to be three lines rather than thirty.

I apply the same standard to my own work. On claude-mem #3620 a reviewer found two real defects in my diagnostic code — a capped summary reply reported as a truncated observation, and missing upstream usage rendered as zero output tokens. I pushed fixes and tests for both the same day.

I've also offered to take on verification work rather than only sending patches: claude-mem #3606 — checking each defect a tracker claims against current HEAD and reporting which are already fixed and which are still live, for the maintainer to accept or discard.

Day job

Fullstack — React/Next.js, NestJS, ASP.NET Core, MongoDB/Prisma/SQL. Based in Thanh Hoa, Vietnam. Open-source work is evenings and weekends.

Popular repositories Loading

  1. react-vite-ntdat react-vite-ntdat Public

    JavaScript

  2. react-ultimate-backend react-ultimate-backend Public

  3. react-ultimate-frontend react-ultimate-frontend Public

    JavaScript

  4. react-portfolio-ntdat react-portfolio-ntdat Public

    TypeScript

  5. cv-portfolio-ntdat cv-portfolio-ntdat Public

    TypeScript

  6. fontend-book-app-ntdat fontend-book-app-ntdat Public

    JavaScript