ctxr-cli 0.35.0 → 0.36.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 +25 -2
- package/dist/commands/land.d.ts +1 -1
- package/dist/commands/land.d.ts.map +1 -1
- package/dist/commands/land.js +8 -4
- package/dist/commands/land.js.map +1 -1
- package/dist/commands/serve.d.ts +3 -0
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +121 -23
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/session-submit.d.ts.map +1 -1
- package/dist/commands/session-submit.js +2 -0
- package/dist/commands/session-submit.js.map +1 -1
- package/dist/commands/sync.d.ts +50 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +186 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/version.d.ts.map +1 -1
- package/dist/commands/version.js +6 -3
- package/dist/commands/version.js.map +1 -1
- package/dist/config/defaults.d.ts +13 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +11 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/schema.d.ts +1 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +7 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/core/approval/sessions.d.ts.map +1 -1
- package/dist/core/approval/sessions.js +4 -2
- package/dist/core/approval/sessions.js.map +1 -1
- package/dist/core/browse/approve.d.ts.map +1 -1
- package/dist/core/browse/approve.js +12 -2
- package/dist/core/browse/approve.js.map +1 -1
- package/dist/core/browse/page-url.d.ts +13 -0
- package/dist/core/browse/page-url.d.ts.map +1 -1
- package/dist/core/browse/page-url.js +17 -0
- package/dist/core/browse/page-url.js.map +1 -1
- package/dist/core/browse/pull-preview.d.ts +67 -0
- package/dist/core/browse/pull-preview.d.ts.map +1 -0
- package/dist/core/browse/pull-preview.js +154 -0
- package/dist/core/browse/pull-preview.js.map +1 -0
- package/dist/core/browse/webhook.d.ts +38 -0
- package/dist/core/browse/webhook.d.ts.map +1 -0
- package/dist/core/browse/webhook.js +102 -0
- package/dist/core/browse/webhook.js.map +1 -0
- package/dist/core/errors.d.ts +16 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +27 -0
- package/dist/core/errors.js.map +1 -1
- package/dist/core/git/exec.d.ts +16 -1
- package/dist/core/git/exec.d.ts.map +1 -1
- package/dist/core/git/exec.js +15 -4
- package/dist/core/git/exec.js.map +1 -1
- package/dist/core/git/fast-forward.d.ts +23 -0
- package/dist/core/git/fast-forward.d.ts.map +1 -1
- package/dist/core/git/fast-forward.js +24 -0
- package/dist/core/git/fast-forward.js.map +1 -1
- package/dist/core/git/hardened.d.ts +15 -0
- package/dist/core/git/hardened.d.ts.map +1 -0
- package/dist/core/git/hardened.js +123 -0
- package/dist/core/git/hardened.js.map +1 -0
- package/dist/core/install-kind.d.ts +10 -3
- package/dist/core/install-kind.d.ts.map +1 -1
- package/dist/core/install-kind.js +48 -14
- package/dist/core/install-kind.js.map +1 -1
- package/dist/core/npm-prefix.d.ts +10 -0
- package/dist/core/npm-prefix.d.ts.map +1 -0
- package/dist/core/npm-prefix.js +11 -0
- package/dist/core/npm-prefix.js.map +1 -0
- package/dist/core/session/submit.d.ts +7 -0
- package/dist/core/session/submit.d.ts.map +1 -1
- package/dist/core/session/submit.js +8 -0
- package/dist/core/session/submit.js.map +1 -1
- package/dist/core/store-update-runner.d.ts +57 -0
- package/dist/core/store-update-runner.d.ts.map +1 -0
- package/dist/core/{approval/lander.js → store-update-runner.js} +41 -17
- package/dist/core/store-update-runner.js.map +1 -0
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +12 -0
- package/dist/run.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/templates/approve/pages-note-pull.md +1 -0
- package/templates/conventions/baseline-conventions.md +5 -0
- package/templates/skills/ctxr-upgrade.md +5 -5
- package/dist/core/approval/lander.d.ts +0 -38
- package/dist/core/approval/lander.d.ts.map +0 -1
- package/dist/core/approval/lander.js.map +0 -1
package/README.md
CHANGED
|
@@ -350,6 +350,28 @@ A published page's navigation label follows its own declared `<title>`, falling
|
|
|
350
350
|
|
|
351
351
|
The **Preview** area, directly below the published pages, holds the pages your open session worktrees are carrying. A page is previewable from the moment its files exist on disk — before any commit, before any push, before a PR is opened or merged — because `serve` reads the worktree rather than asking git or a forge anything. Pages group by the worktree holding them at `/preview/<worktree>/<page>/index.html`, and a preview is byte-identical to what `/publish/<page>/index.html` will serve once the page lands, so what you read is what ships. Both routes address files rather than directories, so a page's address always names its index file — which is the address `ctxr publish new` and `ctxr publish check` report, so you never have to work out which of the two applies. For a whole change set, `ctxr publish urls --staged` (or `--since <ref>`) reports every page added, modified, moved or removed with both addresses, which is what `ctxr-submit` puts in a pull request's **Pages** section; set `serve.previews: none` in `contexture.yaml` if previews never resolve for your reviewers. A session worktree carrying no page appears nowhere, and nothing else inside one — notes, catalog, graph, config — becomes reachable.
|
|
352
352
|
|
|
353
|
+
**Keeping the served clone current.** `serve` follows the store's default branch on its own, whether or not the store approves changes through it. Ten seconds after it starts, and then every `serve.sync_minutes` minutes (five when the key is absent), it runs one store-update run as a child process: `ctxr land --pending` when the store [lands approved changes](#approving-changes-from-a-page) through `serve`, and `ctxr sync` otherwise. Runs never overlap, a run's output goes to `serve`'s stderr prefixed `land:` or `sync:`, and no run, failed or not, changes how a request is answered. `ctxr sync` fetches the default branch as landing does (as the GitHub App, when its credentials are in the environment) and fast-forwards the clone only when it is on that branch, clean and not diverged; otherwise it leaves the clone alone and says why. A failed fetch is reported as a failure, never as an up-to-date clone. Git run for landing and syncing ignores the repository's own hooks, fsmonitor and filter, diff and merge drivers, because `serve` may share its clone with an agent.
|
|
354
|
+
|
|
355
|
+
```yaml
|
|
356
|
+
serve:
|
|
357
|
+
base_url: "https://ctx.example.com"
|
|
358
|
+
sync_minutes: 2 # optional; positive whole minutes, 5 when absent
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
An agents container keeps its own clone and mounts current the same way, as the agent's own user: `ctxr sync --every 5` runs until stopped, and each round syncs the clone and then refreshes the mounts as `ctxr shared-stores sync` does. A failed round is reported on stderr and the next round still runs.
|
|
362
|
+
|
|
363
|
+
**Pull request previews.** A worktree preview needs the session's worktree on the same machine as `serve`. A page written anywhere else, such as in another container or inside another store's mount, previews from its pushed branch instead, at the address of the store that will publish it: `/preview/pull/<number>/<page>/index.html`. When one is opened, `serve` asks the forge for the pull request's head, reusing what it read for at most 15 seconds, and fetches a commit it lacks into a ref namespace of its own (`refs/ctxr-preview/pull/<number>`), which leaves the clone's branches and working tree alone. Only files under the publish path are addressable, byte-identical to what `/publish/` serves after the change lands. Once the pull request merges, its preview addresses redirect to the published page, so a shared link keeps working; one closed without merging, or unknown, answers `404`. For a store with `serve.base_url`, `ctxr session submit` reports the preview address (`preview_url`), and the approval page links each page's pull request preview.
|
|
364
|
+
|
|
365
|
+
**The GitHub webhook.** The timer is a fallback. For merged pages within seconds, and previews fetched before anyone opens them, give `serve` a webhook secret in its environment, as `CONTEXTURE_WEBHOOK_SECRET` or as a file named by `CONTEXTURE_WEBHOOK_SECRET_FILE` (never in `contexture.yaml`, which is committed). `serve` then accepts `POST /hooks/github`, verifies `X-Hub-Signature-256` against the secret, and answers `401` to anything else. A verified push to the default branch starts a store-update run at once; a push to another branch fetches it for its pull request's preview. Only the branch name is read from a delivery; every change is read from the forge. Without a secret, the route does not exist and the `POST` gets `405`. GitHub does not retry a failed delivery, so the timer and on-demand fetching stay.
|
|
366
|
+
|
|
367
|
+
In the store repository's **Settings → Webhooks → Add webhook**: payload URL `https://ctx.example.com/hooks/github`, content type `application/json`, the same secret, and the **Pushes** and **Pull requests** events. GitHub cannot pass an access proxy, so the hostname needs a bypass for exactly `/hooks/github` and nothing else; with Cloudflare Access, a self-hosted application for that one path with a **Bypass** policy, beside the application covering the rest. The signature check is that route's control. Check it from outside:
|
|
368
|
+
|
|
369
|
+
```sh
|
|
370
|
+
curl -i -X POST https://ctx.example.com/hooks/github # 401: the bypass works, and an unsigned delivery is refused
|
|
371
|
+
curl -i https://ctx.example.com/ # still a redirect to the access login
|
|
372
|
+
curl -i https://ctx.example.com/notes/ # still a redirect to the access login
|
|
373
|
+
```
|
|
374
|
+
|
|
353
375
|
## Stores for more than one person
|
|
354
376
|
|
|
355
377
|
A store has one audience: everyone who can clone it reads all of it. Privacy between people is a store boundary, never a field on a note, because a git clone holds every file it has ever had. So each person keeps their own store, and the stores they read with others — a family's, a company's, a project group's — are mounted into it:
|
|
@@ -383,9 +405,9 @@ change_approval:
|
|
|
383
405
|
|
|
384
406
|
Identity comes from the proxy in front of `serve` (Cloudflare Access, Google IAP, oauth2-proxy): every `/approve/` request must carry its signed assertion, verified against the key set, issuer, audience and expiry, or it gets `401`. A request that reaches the port around the proxy carries none.
|
|
385
407
|
|
|
386
|
-
Then the system does the rest, inside `ctxr serve` itself — no scheduler. Right after an Approve, and every
|
|
408
|
+
Then the system does the rest, inside `ctxr serve` itself — no scheduler. Right after an Approve, and as its store-update run every `serve.sync_minutes` minutes (five by default; once ten seconds after startup, for approvals made while it was down), `serve` runs `ctxr land --pending` as a child process. That lands every pull request whose current head carries an approval — rebasing it onto the default branch when it is behind, merging, syncing the canonical clone, and removing the worktree. A clean rebase keeps the approval only when every commit's patch is unchanged, and the carry-over is recorded on the pull request. A rebase that conflicts goes to the configured resolver; its result is checked (clean, rebased, `ctxr doctor` passes), pushed, and handed back to the page for a new decision, because nobody has read an agent's merge of two sides. With no resolver, the change is marked blocked. Requested changes and blocked landings reach the next agent session through `ctxr review list`.
|
|
387
409
|
|
|
388
|
-
Runs never overlap, and only one landing runs per repository at a time: `ctxr land` holds a lock in the repository's git directory, so `serve`, a second `serve` and a person running `ctxr land` by hand never race. A run's output goes to `serve`'s stderr, prefixed `land:`, and a failed run never affects a page. On a host with no git identity, the catch-up rebase commits as the recording login. Every run also brings the store's canonical clone up to date: it fast-forwards to the default branch when the clone is on that branch, has no uncommitted changes to tracked files, and has not diverged, so anything merged on the forge (a configuration change, notes, pages) is served within one
|
|
410
|
+
Runs never overlap, and only one landing runs per repository at a time: `ctxr land` holds a lock in the repository's git directory, so `serve`, a second `serve` and a person running `ctxr land` by hand never race. A run's output goes to `serve`'s stderr, prefixed `land:`, and a failed run never affects a page. On a host with no git identity, the catch-up rebase commits as the recording login. Every run also brings the store's canonical clone up to date: it fast-forwards to the default branch when the clone is on that branch, has no uncommitted changes to tracked files, and has not diverged, so anything merged on the forge (a configuration change, notes, pages) is served within one interval. Otherwise the clone is left exactly as it was, and the run reports why as a warning (`canonical_sync` in `ctxr land --pending --json`). `serve` needs write access to the store for this. Set `change_approval.land: manual` to turn it off, for a deployment that runs `ctxr land --pending` some other way; `serve`'s store-update runs are then `ctxr sync` runs, and `ctxr land` stays available for landing by hand.
|
|
389
411
|
|
|
390
412
|
Outside the store, set up the recording identity (below) and, where your plan allows it, a branch protection rule requiring one approving review.
|
|
391
413
|
|
|
@@ -522,6 +544,7 @@ To pin a value against a future default change, declare it. Nothing rewrites wha
|
|
|
522
544
|
| `session start \| capture \| list` | Session worktrees, and applying an approved capture proposal |
|
|
523
545
|
| `land <pr> [--confirm] \| --pending` | Land a session pull request that carries consent: catch up, merge, confirm, sync, reclaim |
|
|
524
546
|
| `review list` | Each open session pull request's decision from the approval page |
|
|
547
|
+
| `sync [--every <minutes>]` | Fast-forward the canonical clone to the forge's default branch when that is safe; `--every` keeps doing so, mounts included |
|
|
525
548
|
| `shared-stores sync \| status` | Clone and fast-forward the stores this store mounts under `shared/`, or report their state |
|
|
526
549
|
| `adapters generate` | Regenerate harness outputs (`ctxr update` does this too) |
|
|
527
550
|
| `serve` | Read the store in a browser |
|
package/dist/commands/land.d.ts
CHANGED
|
@@ -74,5 +74,5 @@ export interface LandData {
|
|
|
74
74
|
* runner acting on a page approval has no agent in it, and the consent check is
|
|
75
75
|
* the one thing that must be enforced rather than instructed.
|
|
76
76
|
*/
|
|
77
|
-
export declare function execute(
|
|
77
|
+
export declare function execute(callerEnv: RunEnv, store: Store, flags: LandFlags, forge?: ForgeClient): Promise<CommandOutcome<LandData>>;
|
|
78
78
|
//# sourceMappingURL=land.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"land.d.ts","sourceRoot":"","sources":["../../src/commands/land.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"land.d.ts","sourceRoot":"","sources":["../../src/commands/land.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/land.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { mkdtemp, rm, stat } from 'node:fs/promises';
|
|
2
|
-
import { fastForwardIfSafe } from '../core/git/fast-forward.js';
|
|
2
|
+
import { fastForwardIfSafe, syncCanonicalClone } from '../core/git/fast-forward.js';
|
|
3
|
+
import { hardenGit } from '../core/git/hardened.js';
|
|
3
4
|
import { tmpdir } from 'node:os';
|
|
4
5
|
import path from 'node:path';
|
|
5
6
|
import { decisionBody, landingBody, recordPartOf } from '../core/approval/decision.js';
|
|
@@ -249,8 +250,9 @@ async function catchUp(ctx, result, pull, session, approvedHead) {
|
|
|
249
250
|
* it; if the fast-forward would overwrite one, git refuses and that is reported.
|
|
250
251
|
*/
|
|
251
252
|
async function syncCanonical(ctx) {
|
|
252
|
-
|
|
253
|
-
|
|
253
|
+
// serve-keeps-its-clone-current D11: a failed fetch is reported as not synced, never compared against.
|
|
254
|
+
const result = await syncCanonicalClone(() => remoteGit(ctx, ['fetch', '--quiet', 'origin', ctx.defaultBranch], ctx.canonical, true), (args) => git(ctx, args, ctx.canonical, true), ctx.defaultBranch, 'the canonical clone');
|
|
255
|
+
return result.outcome;
|
|
254
256
|
}
|
|
255
257
|
function syncFinding(sync) {
|
|
256
258
|
if (sync.synced)
|
|
@@ -382,7 +384,9 @@ function summaryLine(r) {
|
|
|
382
384
|
* runner acting on a page approval has no agent in it, and the consent check is
|
|
383
385
|
* the one thing that must be enforced rather than instructed.
|
|
384
386
|
*/
|
|
385
|
-
export async function execute(
|
|
387
|
+
export async function execute(callerEnv, store, flags, forge) {
|
|
388
|
+
// serve-keeps-its-clone-current D12: every git command this run makes ignores the repository's hooks and drivers.
|
|
389
|
+
const env = { ...callerEnv, git: hardenGit(callerEnv.git) };
|
|
386
390
|
if (flags.pending && flags.confirm)
|
|
387
391
|
throw new LandFlagsError('--pending lands only recorded approvals, so it does not take --confirm.');
|
|
388
392
|
if (flags.session !== undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"land.js","sourceRoot":"","sources":["../../src/commands/land.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"land.js","sourceRoot":"","sources":["../../src/commands/land.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/serve.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { CommandOutcome, CommandRequires } from '../core/command.js';
|
|
2
2
|
import type { RunEnv } from '../core/env.js';
|
|
3
|
+
import { type StoreUpdateSettings } from '../core/store-update-runner.js';
|
|
4
|
+
import type { StoreConfig } from '../config/schema.js';
|
|
3
5
|
import type { Store } from '../core/store.js';
|
|
4
6
|
import { type CredentialKind } from '../core/forge/credentials.js';
|
|
5
7
|
export declare const requires: CommandRequires;
|
|
@@ -25,5 +27,6 @@ export interface ServeData {
|
|
|
25
27
|
* caller's.
|
|
26
28
|
*/
|
|
27
29
|
export declare const DEFAULT_HOST = "127.0.0.1";
|
|
30
|
+
export declare function storeUpdateSettings(config: StoreConfig): StoreUpdateSettings;
|
|
28
31
|
export declare function execute(env: RunEnv, store: Store, flags: ServeFlags): Promise<CommandOutcome<ServeData>>;
|
|
29
32
|
//# sourceMappingURL=serve.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EAAiD,KAAK,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAEzH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAK9C,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAMnF,eAAO,MAAM,QAAQ,EAAE,eAAuC,CAAC;AAE/D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,0GAA0G;IAC1G,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;CACnC;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,cAAc,CAAC;AAoYxC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,mBAAmB,CAI5E;AAyCD,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAkD9G"}
|
package/dist/commands/serve.js
CHANGED
|
@@ -4,14 +4,18 @@ import path from 'node:path';
|
|
|
4
4
|
import { DIAGRAM_SCRIPT_ROUTE, RENDERER_ROUTE_PREFIX, diagramRenderer } from '../core/browse/diagram-assets.js';
|
|
5
5
|
import { buildLinkResolver } from '../core/browse/link-resolver.js';
|
|
6
6
|
import { renderIndexBody, renderNav } from '../core/browse/nav.js';
|
|
7
|
-
import { PREVIEW_ROUTE_PREFIX, PUBLISH_ROUTE_PREFIX, REVIEW_HEAD_PARAM, REVIEW_ROUTE_PREFIX } from '../core/browse/page-url.js';
|
|
7
|
+
import { parsePullPreviewPath, PREVIEW_ROUTE_PREFIX, PUBLISH_ROUTE_PREFIX, REVIEW_HEAD_PARAM, REVIEW_ROUTE_PREFIX } from '../core/browse/page-url.js';
|
|
8
|
+
import { PullPreviews } from '../core/browse/pull-preview.js';
|
|
9
|
+
import { hintOf, readBody, readWebhookSecret, signatureValid, WEBHOOK_ROUTE } from '../core/browse/webhook.js';
|
|
10
|
+
import { hardenGit } from '../core/git/hardened.js';
|
|
8
11
|
import { resolveNavState, resolveTheme } from '../core/browse/preferences.js';
|
|
9
12
|
import { titleFor } from '../core/catalog/model.js';
|
|
10
13
|
import { escapeHtml, renderNoteBody } from '../core/browse/render.js';
|
|
11
14
|
import { buildRouteTable } from '../core/browse/routes.js';
|
|
12
15
|
import { readDiagramScript, readStylesheet, renderShell } from '../core/browse/templates.js';
|
|
13
16
|
import { createServingState } from '../core/browse/serving-state.js';
|
|
14
|
-
import {
|
|
17
|
+
import { createStoreUpdateRunner } from '../core/store-update-runner.js';
|
|
18
|
+
import { serveSyncMinutes } from '../config/defaults.js';
|
|
15
19
|
import { readConfig } from '../config/load.js';
|
|
16
20
|
import { MIGRATION_STEPS } from '../config/migrations.js';
|
|
17
21
|
import { ExitCode } from '../core/exit-codes.js';
|
|
@@ -94,7 +98,7 @@ async function readDerivedDocument(absolutePath) {
|
|
|
94
98
|
throw err;
|
|
95
99
|
}
|
|
96
100
|
}
|
|
97
|
-
async function handleRequest(holder, landing, mcp, plugins, git, stderr, req, res) {
|
|
101
|
+
async function handleRequest(holder, landing, mcp, plugins, git, stderr, pulls, webhookSecret, req, res) {
|
|
98
102
|
// serve-follows-config-changes: one state per request, so a request never mixes two configurations.
|
|
99
103
|
const { store, approval, approvalError } = await holder.current();
|
|
100
104
|
landing.sync(store.config);
|
|
@@ -109,10 +113,16 @@ async function handleRequest(holder, landing, mcp, plugins, git, stderr, req, re
|
|
|
109
113
|
}
|
|
110
114
|
// context-browsing spec: the one exception to read-only is a POST to the decision route of a store that declares change approval.
|
|
111
115
|
const decisionPost = method === 'POST' && (approval !== null || approvalError !== null) && isDecisionRoute(pathname);
|
|
112
|
-
|
|
116
|
+
// serve-keeps-its-clone-current D9: and a POST to the webhook, which exists only with a secret in the environment.
|
|
117
|
+
const webhookPost = method === 'POST' && webhookSecret !== null && pathname === WEBHOOK_ROUTE;
|
|
118
|
+
if (method !== 'GET' && method !== 'HEAD' && !decisionPost && !webhookPost) {
|
|
113
119
|
send(res, method, 405, 'text/plain; charset=utf-8', 'method not allowed\n');
|
|
114
120
|
return;
|
|
115
121
|
}
|
|
122
|
+
if (webhookPost) {
|
|
123
|
+
await handleWebhook(store, landing, pulls, webhookSecret, stderr, req, res);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
116
126
|
// serve-the-session-lifecycle-to-chat-apps D7: the plugin downloads, behind the approval routes' identity check.
|
|
117
127
|
if (isPluginPath(pathname)) {
|
|
118
128
|
const reply = await plugins.handle(store, approval, approvalError, req, pathname);
|
|
@@ -145,6 +155,31 @@ async function handleRequest(holder, landing, mcp, plugins, git, stderr, req, re
|
|
|
145
155
|
send(res, method, 200, 'text/javascript; charset=utf-8', await readDiagramScript());
|
|
146
156
|
return;
|
|
147
157
|
}
|
|
158
|
+
/**
|
|
159
|
+
* serve-keeps-its-clone-current D6: a pull request's pages, from its head on
|
|
160
|
+
* the forge — byte-verbatim like `/publish/`, with no shell. Answered ahead
|
|
161
|
+
* of the worktree previews below, and before any read of the store's own
|
|
162
|
+
* checkout.
|
|
163
|
+
*/
|
|
164
|
+
const pullPreview = parsePullPreviewPath(pathname);
|
|
165
|
+
if (pullPreview !== null) {
|
|
166
|
+
const answer = await pulls.answer(store, pullPreview.number, pullPreview.filePath);
|
|
167
|
+
if (answer.kind === 'file') {
|
|
168
|
+
send(res, method, 200, contentTypeFor(answer.filePath), answer.body, { 'Cache-Control': 'no-store' });
|
|
169
|
+
}
|
|
170
|
+
else if (answer.kind === 'redirect') {
|
|
171
|
+
res.writeHead(302, { Location: answer.location, 'Cache-Control': 'no-store', 'Content-Length': 0 });
|
|
172
|
+
res.end();
|
|
173
|
+
}
|
|
174
|
+
else if (answer.kind === 'unavailable') {
|
|
175
|
+
stderr.write(`serve: pull request preview ${pullPreview.number}: ${answer.message}\n`);
|
|
176
|
+
send(res, method, 503, 'text/plain; charset=utf-8', 'the pull request could not be read from the forge\n');
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
send(res, method, 404, 'text/plain; charset=utf-8', 'not found\n');
|
|
180
|
+
}
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
148
183
|
const { theme, setCookie: themeSetCookie } = resolveTheme(req.headers.cookie, url.searchParams);
|
|
149
184
|
const { navState, setCookie: navSetCookie } = resolveNavState(req.headers.cookie, url.searchParams);
|
|
150
185
|
const headers = shellHeaders([themeSetCookie, navSetCookie]);
|
|
@@ -168,7 +203,7 @@ async function handleRequest(holder, landing, mcp, plugins, git, stderr, req, re
|
|
|
168
203
|
send(res, method, reply.status, reply.contentType, reply.body, replyHeaders);
|
|
169
204
|
// After the response: the decider's redirect never waits on a landing run.
|
|
170
205
|
if (reply.landingRequested === true)
|
|
171
|
-
landing.
|
|
206
|
+
landing.triggerLanding();
|
|
172
207
|
return;
|
|
173
208
|
}
|
|
174
209
|
const table = await buildRouteTable(store);
|
|
@@ -249,6 +284,44 @@ async function handleRequest(holder, landing, mcp, plugins, git, stderr, req, re
|
|
|
249
284
|
}
|
|
250
285
|
send(res, method, 404, 'text/plain; charset=utf-8', 'not found\n');
|
|
251
286
|
}
|
|
287
|
+
/**
|
|
288
|
+
* context-browsing spec ("Only a signed forge delivery reaches the webhook";
|
|
289
|
+
* "A verified push brings the server up to date at once"): a delivery whose
|
|
290
|
+
* signature does not verify is answered 401 and does nothing. A verified one
|
|
291
|
+
* is answered 202 first; then a push to the default branch starts a
|
|
292
|
+
* store-update run (coalesced with one in progress), and a push to another
|
|
293
|
+
* branch fetches it for its pull request's preview. Nothing else in the
|
|
294
|
+
* delivery is used.
|
|
295
|
+
*/
|
|
296
|
+
async function handleWebhook(store, landing, pulls, secret, stderr, req, res) {
|
|
297
|
+
const body = await readBody(req);
|
|
298
|
+
if (body === null) {
|
|
299
|
+
send(res, 'POST', 413, 'text/plain; charset=utf-8', 'delivery too large\n');
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
if (!signatureValid(secret, body, req.headers['x-hub-signature-256'])) {
|
|
303
|
+
stderr.write('serve: webhook: a delivery without a valid signature was refused\n');
|
|
304
|
+
send(res, 'POST', 401, 'text/plain; charset=utf-8', 'signature does not verify\n');
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
const hint = hintOf(req.headers['x-github-event'], body, store.config.git.default_branch);
|
|
308
|
+
send(res, 'POST', 202, 'text/plain; charset=utf-8', hint.kind === 'ignored' ? `ignored: ${hint.reason}\n` : 'accepted\n');
|
|
309
|
+
if (hint.kind === 'default-branch') {
|
|
310
|
+
stderr.write(`serve: webhook: ${store.config.git.default_branch} changed${hint.repository === null ? '' : ` on ${hint.repository}`}; starting a store-update run\n`);
|
|
311
|
+
landing.trigger();
|
|
312
|
+
}
|
|
313
|
+
else if (hint.kind === 'branch') {
|
|
314
|
+
stderr.write(`serve: webhook: ${hint.branch} changed${hint.repository === null ? '' : ` on ${hint.repository}`}; fetching it for its preview\n`);
|
|
315
|
+
try {
|
|
316
|
+
const fetched = await pulls.prefetchBranch(store, hint.branch);
|
|
317
|
+
if (fetched.length > 0)
|
|
318
|
+
stderr.write(`serve: webhook: fetched pull request ${fetched.map((n) => `#${n}`).join(', ')}\n`);
|
|
319
|
+
}
|
|
320
|
+
catch (err) {
|
|
321
|
+
stderr.write(`serve: webhook: ${hint.branch} could not be fetched: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
252
325
|
/**
|
|
253
326
|
* cli-contract spec (local-browsing-surface D5): resolves the moment the
|
|
254
327
|
* listener is ready, so `runCommand()` emits exactly one envelope before
|
|
@@ -289,35 +362,58 @@ async function approvalServer(env, store) {
|
|
|
289
362
|
forgeFor: storeForges(env),
|
|
290
363
|
env: env.env,
|
|
291
364
|
verifier: createIdentityVerifier(approval.identity),
|
|
292
|
-
|
|
365
|
+
// It fetches into the shared clone and its mounts, and renders diffs, next to the App key: no repository hooks or drivers.
|
|
366
|
+
git: hardenGit(env.git),
|
|
293
367
|
now: () => env.now(),
|
|
294
368
|
};
|
|
295
369
|
}
|
|
296
|
-
function
|
|
297
|
-
|
|
370
|
+
export function storeUpdateSettings(config) {
|
|
371
|
+
const landing = config.change_approval !== undefined && config.change_approval.land !== 'manual';
|
|
372
|
+
const kind = landing ? 'land' : 'sync';
|
|
373
|
+
return { kind, intervalMs: serveSyncMinutes(config) * 60 * 1000 };
|
|
374
|
+
}
|
|
375
|
+
function createStoreUpdateControl(env, initial, root) {
|
|
298
376
|
// Exactly the command a person would run: this Node binary and this CLI's entry script.
|
|
299
377
|
const command = [env.execPath, process.argv[1]];
|
|
378
|
+
const runner = createStoreUpdateRunner({ command, root, env: env.env, output: env.io.stderr, ...storeUpdateSettings(initial) });
|
|
300
379
|
return {
|
|
301
380
|
sync(config) {
|
|
302
|
-
|
|
303
|
-
if (wanted && lander === null)
|
|
304
|
-
lander = createLander({ command, root, env: env.env, output: env.io.stderr });
|
|
305
|
-
if (!wanted && lander !== null) {
|
|
306
|
-
void lander.stop();
|
|
307
|
-
lander = null;
|
|
308
|
-
}
|
|
381
|
+
runner.configure(storeUpdateSettings(config));
|
|
309
382
|
},
|
|
310
383
|
trigger() {
|
|
311
|
-
|
|
384
|
+
runner.trigger();
|
|
312
385
|
},
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
386
|
+
triggerLanding() {
|
|
387
|
+
if (runner.kind() === 'land')
|
|
388
|
+
runner.trigger();
|
|
389
|
+
},
|
|
390
|
+
stop() {
|
|
391
|
+
return runner.stop();
|
|
316
392
|
},
|
|
317
393
|
};
|
|
318
394
|
}
|
|
395
|
+
/**
|
|
396
|
+
* The store's own forge client and credential, for pull request previews and
|
|
397
|
+
* the webhook: formed once, on first use, so a store that never opens a
|
|
398
|
+
* preview never needs a forge credential. A failure is not remembered, so a
|
|
399
|
+
* credential fixed in the environment's files is picked up on the next try.
|
|
400
|
+
*/
|
|
401
|
+
function storeForge(env) {
|
|
402
|
+
let formed = null;
|
|
403
|
+
return (store) => {
|
|
404
|
+
formed ??= credentialsFor(env, store.root)
|
|
405
|
+
.then((credentials) => ({ forge: createGhForgeClient(store.root, credentials), credentials }))
|
|
406
|
+
.catch((err) => {
|
|
407
|
+
formed = null;
|
|
408
|
+
throw err;
|
|
409
|
+
});
|
|
410
|
+
return formed;
|
|
411
|
+
};
|
|
412
|
+
}
|
|
319
413
|
export async function execute(env, store, flags) {
|
|
320
414
|
// Startup still fails fast on a recording-login mismatch or an unreachable forge; only later changes degrade.
|
|
415
|
+
// An ambiguous or unreadable webhook secret fails it too: a store that asked for the webhook should not run without it.
|
|
416
|
+
const webhookSecret = await readWebhookSecret(env.env);
|
|
321
417
|
const approval = await approvalServer(env, store);
|
|
322
418
|
const holder = await createServingState({
|
|
323
419
|
initial: store,
|
|
@@ -326,18 +422,20 @@ export async function execute(env, store, flags) {
|
|
|
326
422
|
buildApproval: (next) => approvalServer(env, next),
|
|
327
423
|
log: (line) => env.io.stderr.write(`${line}\n`),
|
|
328
424
|
});
|
|
329
|
-
const landing =
|
|
425
|
+
const landing = createStoreUpdateControl(env, store.config, store.root);
|
|
330
426
|
const mcp = new McpSurface({ git: env.git, canonicalRoot: store.root, env: env.env, now: () => env.now(), log: (line) => env.io.stderr.write(`${line}\n`) });
|
|
331
427
|
const plugins = new PluginDownloads(env.git);
|
|
332
|
-
|
|
333
|
-
|
|
428
|
+
// Routes run git in the clone the agent shares (diffs, logs): no repository hooks or drivers there either.
|
|
429
|
+
const routeGit = hardenGit(env.git);
|
|
430
|
+
const pulls = new PullPreviews({ git: hardenGit(env.git), env: env.env, now: () => env.now(), forgeFor: storeForge(env) });
|
|
431
|
+
// Stopping serve stops a store-update run in progress; landing and syncing are resumable, so the next start finishes it.
|
|
334
432
|
const shutdown = (signal) => {
|
|
335
433
|
void landing.stop().finally(() => process.exit(signal === 'SIGINT' ? 130 : 143));
|
|
336
434
|
};
|
|
337
435
|
process.once('SIGTERM', shutdown);
|
|
338
436
|
process.once('SIGINT', shutdown);
|
|
339
437
|
const server = createServer((req, res) => {
|
|
340
|
-
handleRequest(holder, landing, mcp, plugins,
|
|
438
|
+
handleRequest(holder, landing, mcp, plugins, routeGit, env.io.stderr, pulls, webhookSecret, req, res).catch((err) => {
|
|
341
439
|
env.io.stderr.write(`serve: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
342
440
|
if (!res.headersSent)
|
|
343
441
|
send(res, req.method ?? 'GET', 500, 'text/plain; charset=utf-8', 'internal error\n');
|