Engineering log · GitProxy

Debugging in the open.

A daily record of the real work behind GitProxy — the bugs that bit, the fixes that stuck, and the reasoning in between. Written for the next engineer who hits the same wall.

Entries
24
Topics
41
Project
GitProxy

Latest entries

All entries →
security

Secrets in argv, and scanners that fail open

A git clone with Authorization on argv is readable from ps, and a scanner that swallows errors is a silent pass. Two fixes from a PR review.

Read the entry →
linux

ENOSPC: System limit for number of file watchers reached

ENOSPC: System limit for number of file watchers reached is an inotify limit, not a full disk. Here's how to find what ate your watchers and raise them.

Read the entry →
git

Exit code 126 in CI: the exec bit git never committed

A GitHub Actions step failed with Permission denied and exit code 126. The script was committed as 100644 because core.fileMode was off. Here's the fix.

Read the entry →
npm

Missing files after npm publish: the files allowlist

Files missing from a published npm package: our vite UI build landed outside dist, so the files allowlist dropped it. Here's how I found and fixed it.

Read the entry →
javascript

Losing this by passing a method as a callback

Passing obj.exec into a list strips this, so stateful plugins crash. Bind it, wrap it, or use an arrow field. Here is the GitProxy fix.

Read the entry →
javascript

Optional chaining as an accidental deny

p.chains?.includes(name) dropped every plugin that omitted chains. Optional chaining in a filter is an accidental deny; default with ?? instead.

Read the entry →