# Decisions Decisions of werkrevisor that go beyond one PR. Entries are only added, never deleted; a deviation gets a new entry with its reason. ## 2026-10-18: Node.js in the base archive, for PR Lens Context: the diagrams of [PR#121](prs/2026-10-18-PR#121-pr-lens-diagrams.md) come from PR Lens, which is written in TypeScript and runs on Node.js. werkrevisor so far used only Python and the packages of the PR-Agent image. Decision: the stage `base` of the `Dockerfile` adds Debian's `nodejs` and PR Lens, pinned with `tools/pr-lens/package-lock.json` and the integrity of each package; npm stays in a build stage. PR Lens runs as a child process with only the OpenRouter key in its environment. Approved by the human on 2026-10-18. Alternatives: - Node.js in a container of its own: the werkdock sandbox on mih09 has no container engine. - Node.js through nvm in the home of `mih09-werkator`: the sandbox does not see it, and the toolchain home that it binds is writable by ordinary PR builds. - PR Lens ported to Python: no new runtime, but each new feature of PR Lens would need a port of its own. - The review model draws the graph in the same call: PR-Agent answers in a fixed YAML format. Consequences: the child can still read the environment of werkrevisor from `/proc`, since it runs as the same user; a new version of PR Lens is a reviewed change of the lockfile and needs a new base archive on mih09 before its merge.