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
10
Topics
29
Project
GitProxy

Latest entries

All entries →
vitest

Vitest 4 tests pass locally but fail in CI

Bumping Vitest from 3 to 4 turned my git-proxy CI red while local stayed green. Stale node_modules, broken class mocks, and port clashes. Here's how I fixed each.

Read the entry →
github-actions

Auto-triage GitHub issues with an AI agent and Actions

Build a GitHub Actions bot that triages issues and PRs with an LLM: label, dedupe, security-scan, and run it on Claude, GPT, or Gemini. Here's how I did it.

Read the entry →
trusted-publishing

Switching to npm trusted publishers: mind the Node version

Moving GitProxy's npm publish from a token to OIDC trusted publishers took a few lines, except for one thing that kept failing.

Read the entry →
vitest

A Vitest toThrow test that misses a JSON.parse error

A Vitest test using expect().toThrow() let a JSON.parse SyntaxError escape and fail the run instead of catching it. Here's why, and the fix.

Read the entry →
git

Moving a Git tag to a newer commit

Moving a Git tag to a newer commit takes a force push, or Git rejects it because the tag already exists. Here's how, plus the gotcha that bites teammates.

Read the entry →
docker

Docker EACCES: permission denied, mkdir as a non-root user

A containerized Node app failed with EACCES: permission denied, mkdir './.data' after dropping to a non-root user. Here's the cause and the fix.

Read the entry →