@valescoagency/runway 0.8.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -156,7 +156,7 @@ sandcastle reads `.sandcastle/.env` per its docs.
|
|
|
156
156
|
## Install
|
|
157
157
|
|
|
158
158
|
```bash
|
|
159
|
-
pnpm
|
|
159
|
+
pnpm add -g @valescoagency/runway # or npm i -g, yarn global add
|
|
160
160
|
```
|
|
161
161
|
|
|
162
162
|
Export runway's own env (in your shell rc, or wherever you keep API keys):
|
|
@@ -392,7 +392,7 @@ These are tractable, just not v1.
|
|
|
392
392
|
|
|
393
393
|
## Status
|
|
394
394
|
|
|
395
|
-
0.
|
|
395
|
+
0.9.0 — production-shaped and dogfooded against live Linear queues.
|
|
396
396
|
The end-to-end pipeline (init → run → review → PR) is stable; surface
|
|
397
397
|
may still shift as the orchestrator's policy and iteration mechanics
|
|
398
398
|
mature. See [CHANGELOG.md](./CHANGELOG.md) for per-release detail.
|
package/dist/implement.js
CHANGED
|
@@ -60,6 +60,10 @@ export const runImplementLoop = (issue, deps, branch) => Effect.gen(function* ()
|
|
|
60
60
|
// and iteration N+1, since the implementer keeps drifting
|
|
61
61
|
// toward the same code paths until corrected.
|
|
62
62
|
priorReviewFeedback: priorFeedback,
|
|
63
|
+
// VA-417: pass the actual base branch so the prompt
|
|
64
|
+
// renders the real name (`main`, `master`, etc.) rather
|
|
65
|
+
// than a hardcoded default.
|
|
66
|
+
baseBranch,
|
|
63
67
|
}));
|
|
64
68
|
const sandcastleRunId = `impl-${issue.identifier}-iter-${iter}`;
|
|
65
69
|
// VA-389: parse the verdict inside the span scope so the
|
package/dist/prompts.js
CHANGED
|
@@ -56,6 +56,10 @@ function implementVars(args) {
|
|
|
56
56
|
PREVIOUS_ITERATIONS: args.previousIterations,
|
|
57
57
|
PRIOR_REVIEW_FEEDBACK: args.priorReviewFeedback,
|
|
58
58
|
POLICY_FORBIDDEN_BULLET: renderForbiddenPathsBullet(args.policy),
|
|
59
|
+
// VA-417: fall back to "main" if the caller didn't pass one, so
|
|
60
|
+
// older test fixtures keep working. Production always passes the
|
|
61
|
+
// resolved base branch from config / orchestrator detection.
|
|
62
|
+
BASE_BRANCH: args.baseBranch ?? "main",
|
|
59
63
|
};
|
|
60
64
|
}
|
|
61
65
|
function reviewVars(args) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@valescoagency/runway",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Linear-driven orchestrator + scaffolder for coding agents on Sandcastle. `runway init` scaffolds a target repo (sandcastle + varlock + 1Password); `runway run` drains a Linear queue against it; `runway doctor`, `runway upgrade`, `runway upgrade-repo` round out the lifecycle.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"vitest": "^4.1.6"
|
|
64
64
|
},
|
|
65
65
|
"engines": {
|
|
66
|
-
"node": ">=
|
|
66
|
+
"node": ">=24"
|
|
67
67
|
},
|
|
68
68
|
"publishConfig": {
|
|
69
69
|
"access": "public"
|
package/prompts/implement.md
CHANGED
|
@@ -12,8 +12,15 @@ You are an autonomous coding agent working on a single Linear issue.
|
|
|
12
12
|
|
|
13
13
|
# Repository context
|
|
14
14
|
|
|
15
|
-
You are operating
|
|
16
|
-
|
|
15
|
+
You are operating on the branch `agent/{{ISSUE_IDENTIFIER}}` based off
|
|
16
|
+
`{{BASE_BRANCH}}` (this repo's default branch — usually `main` or
|
|
17
|
+
`master`). The branch is clean on a first attempt. **On a retry it
|
|
18
|
+
may already carry commits from a prior attempt that review rejected**
|
|
19
|
+
— the rejection reasons then appear in the *Review feedback from
|
|
20
|
+
prior attempts* section above. Your job is to produce a final state
|
|
21
|
+
that addresses every blocker in that feedback, replacing the existing
|
|
22
|
+
commits if they would re-introduce a rejected design. Do not treat
|
|
23
|
+
pre-existing commits as authoritative.
|
|
17
24
|
|
|
18
25
|
# What done looks like
|
|
19
26
|
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
# patches AFTER this base, so adopters re-run `runway init --force`
|
|
10
10
|
# to roll forward.
|
|
11
11
|
|
|
12
|
-
FROM node:
|
|
12
|
+
FROM node:24-bookworm
|
|
13
13
|
|
|
14
14
|
# Install system dependencies
|
|
15
15
|
RUN apt-get update && apt-get install -y \
|
|
@@ -48,12 +48,12 @@ RUN if ! getent group $AGENT_GID >/dev/null; then \
|
|
|
48
48
|
ENV HOME=/home/agent
|
|
49
49
|
ENV XDG_CACHE_HOME=/home/agent/.cache
|
|
50
50
|
ENV TURBO_CACHE_DIR=/tmp/turbo-cache
|
|
51
|
-
ENV
|
|
51
|
+
ENV pnpm_config_cache=/home/agent/.cache/pnpm
|
|
52
52
|
|
|
53
53
|
# Pre-create cache dirs with agent ownership so the first pnpm/turbo
|
|
54
54
|
# run doesn't have to chown them. Both are inside paths the agent owns
|
|
55
55
|
# anyway; this just makes them exist.
|
|
56
|
-
RUN mkdir -p /home/agent/.cache /home/agent/.cache/
|
|
56
|
+
RUN mkdir -p /home/agent/.cache /home/agent/.cache/pnpm /tmp/turbo-cache \
|
|
57
57
|
&& chown -R $AGENT_UID:$AGENT_GID /home/agent/.cache /tmp/turbo-cache
|
|
58
58
|
|
|
59
59
|
# Bake pnpm via corepack at build time so `pnpm` is on PATH inside the
|
|
@@ -61,7 +61,7 @@ RUN mkdir -p /home/agent/.cache /home/agent/.cache/npm /tmp/turbo-cache \
|
|
|
61
61
|
# can override at runtime via `packageManager` in package.json +
|
|
62
62
|
# `corepack use`.
|
|
63
63
|
RUN corepack enable \
|
|
64
|
-
&& corepack prepare pnpm@
|
|
64
|
+
&& corepack prepare pnpm@11.1.1 --activate
|
|
65
65
|
|
|
66
66
|
USER ${AGENT_UID}:${AGENT_GID}
|
|
67
67
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Install varlock via npm. The official `ghcr.io/dmno-dev/varlock`
|
|
6
6
|
# image is musl/Alpine — copying its binary into a glibc base
|
|
7
|
-
# (node:
|
|
7
|
+
# (node:24-bookworm) produces an ELF that the loader can't resolve
|
|
8
8
|
# ("not found" on exec). npm install gets the right binary for the
|
|
9
9
|
# image's libc.
|
|
10
10
|
USER root
|