Files
werkrevisor/docs/DECISIONS.md
claude-code db2fba45e7
werkator build succeeded after 00:09
werkator/werkrevisor-statistics build succeeded after 00:47
werkator/release build succeeded after 00:16
werkrevisor 0.52.0: diagrams of PR Lens in the result comment (#121)
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>
2026-10-18 20:57:15 +02:00

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.