See docs/prs for the PR document. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Reviewed-on: #121 Co-authored-by: claude-code <claude-code@javagil.de>
27 lines
1.4 KiB
Markdown
27 lines
1.4 KiB
Markdown
# 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.
|