Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
107 commits
Select commit Hold shift + click to select a range
14f9a24
Add full-surface documentation refresh spec
aram356 Aug 20, 2026
e4da50a
Address spec self-review findings
aram356 Aug 20, 2026
3bba26c
Ship all work packages in a single implementation PR
aram356 Aug 20, 2026
1b937f4
Fold issues #277 and #341 into the documentation refresh spec
aram356 Aug 20, 2026
9ddf3f4
Land spec and work packages in the same PR
aram356 Aug 20, 2026
82caa0c
Rework documentation refresh spec after pre-implementation review
aram356 Aug 20, 2026
7d853a5
Align documentation refresh spec with rc/202608
aram356 Aug 20, 2026
4056bf4
Record accessibility scope decision in Non-goals
aram356 Aug 20, 2026
2c95da4
Rework spec after second pre-implementation review
aram356 Aug 21, 2026
a7cdc8c
Rework spec after third pre-implementation review
aram356 Aug 21, 2026
1adcb25
Rework spec after fourth pre-implementation review
aram356 Aug 21, 2026
aa5327d
Rework spec after fifth pre-implementation review
aram356 Aug 21, 2026
5a324d2
Rework spec after sixth pre-implementation review
aram356 Aug 21, 2026
f5a8385
Rework spec after seventh pre-implementation review
aram356 Aug 21, 2026
df1bd96
Regenerate spec against rc/202608 at a163367b3
aram356 Aug 27, 2026
0e9441f
Rework spec after ninth pre-implementation review
aram356 Aug 28, 2026
91f4e6d
Rework spec after tenth pre-implementation review
aram356 Aug 28, 2026
b55e573
Rework spec after eleventh pre-implementation review
aram356 Aug 28, 2026
0ddbb88
Rework spec after twelfth pre-implementation review
aram356 Aug 28, 2026
2ff5b89
Rework spec after thirteenth pre-implementation review
aram356 Aug 29, 2026
08f339f
Add release-handoff PR sequencing row
aram356 Aug 29, 2026
60b6334
Rework spec after fourteenth pre-implementation review
aram356 Aug 29, 2026
306e106
Rework spec after fifteenth pre-implementation review
aram356 Aug 29, 2026
2daa370
Rework spec after sixteenth pre-implementation review
aram356 Aug 29, 2026
b404a36
Order sequencing table by epoch
aram356 Aug 29, 2026
92a3a33
Rework spec after seventeenth pre-implementation review
aram356 Aug 29, 2026
b904b3a
Split attestation job from read-only validation
aram356 Aug 29, 2026
8588391
Approve documentation refresh delivery plan
aram356 Aug 31, 2026
349fd46
Clarify documentation refresh evidence controls
aram356 Aug 31, 2026
931e53e
Record documentation approval evidence
aram356 Aug 31, 2026
3ac8bc3
Adopt single-PR documentation refresh design
aram356 Sep 1, 2026
54cb66e
Remove obsolete documentation epoch terminology
aram356 Sep 1, 2026
01bf84a
Rewrite documentation refresh plan for one PR
aram356 Sep 1, 2026
333bb47
Align documentation refresh records to one PR
aram356 Sep 1, 2026
4314575
Clarify documentation release capture ownership
aram356 Sep 1, 2026
06d916f
Contain internal documentation pages
aram356 Aug 31, 2026
5dcf84b
Fix internal onboarding links
aram356 Aug 31, 2026
0a8e57f
Record documentation containment transfer
aram356 Sep 1, 2026
75fd406
Harden documentation containment evidence
aram356 Sep 1, 2026
f47ef6e
Parse documentation containment links semantically
aram356 Sep 1, 2026
e6441a8
Update containment source provenance
aram356 Sep 1, 2026
5a7b389
Resolve documentation site domain
aram356 Sep 1, 2026
b4a99c5
Clean documentation publishing policy
aram356 Sep 1, 2026
4624613
Harden documentation policy evidence
aram356 Sep 1, 2026
14ea4d9
Normalize documentation evidence URLs
aram356 Sep 1, 2026
4f7fe47
Add documentation parity tool foundation
aram356 Sep 1, 2026
048ab3a
Reject dangling documentation output symlinks
aram356 Sep 1, 2026
91bfa7f
Harden documentation parity boundaries
aram356 Sep 1, 2026
d0e8399
Complete documentation path device checks
aram356 Sep 1, 2026
ed1c76f
Enforce documentation source classification
aram356 Sep 1, 2026
db86fef
Close documentation classification review gaps
aram356 Sep 1, 2026
2693da4
Harden documentation parity review boundaries
aram356 Sep 1, 2026
2ce0e11
Close documentation scanner context gaps
aram356 Sep 1, 2026
441473e
Harden documentation parser semantics
aram356 Sep 1, 2026
ce63f6e
Close documentation parser review gaps
aram356 Sep 1, 2026
f15f2f0
Harden documentation governance edge handling
aram356 Sep 1, 2026
f73689e
Correct documentation scanner context validation
aram356 Sep 1, 2026
a2a2fe3
Refine documentation domain context
aram356 Sep 1, 2026
993ab59
Remove broad domain prose heuristics
aram356 Sep 1, 2026
53a5a9e
Correct documentation audit totals
aram356 Sep 1, 2026
4eb96c1
Add checked documentation regions and links
aram356 Sep 2, 2026
96bf016
Harden documentation Markdown contracts
aram356 Sep 5, 2026
88aeafe
Close Markdown transport review gaps
aram356 Sep 5, 2026
8441bad
Correct documentation link transport framing
aram356 Sep 5, 2026
d4b2a05
Harden documentation update and link execution
aram356 Sep 5, 2026
5def38d
Close documentation execution quality gaps
aram356 Sep 5, 2026
24fc8cd
Correct Task 6 execution evidence
aram356 Sep 5, 2026
e2b4841
Check configuration documentation semantics
aram356 Sep 5, 2026
cc6be34
Close settings semantics review gaps
aram356 Sep 5, 2026
c5afbf9
Close settings extractor review gaps
aram356 Sep 5, 2026
8240f29
Correct Task 7 staging evidence
aram356 Sep 5, 2026
9366d6e
Correct settings alias semantics
aram356 Sep 5, 2026
5e0d9ab
Check integration and adapter inventories
aram356 Sep 5, 2026
a04ae1f
Close integration inventory review gaps
aram356 Sep 5, 2026
2b324f8
Close integration execution quality gaps
aram356 Sep 6, 2026
9960085
Add documentation enforcement foundations
aram356 Sep 7, 2026
8a60b44
Fix hosted CLI capture argument parsing
aram356 Sep 7, 2026
41df180
Record cross-platform CLI help goldens
aram356 Sep 7, 2026
95847a5
Correct maintained documentation truth
aram356 Sep 7, 2026
18f4d6b
Complete configuration documentation
aram356 Sep 7, 2026
8dd55de
Record configuration checklist publication
aram356 Sep 7, 2026
78cd35c
Generate adapter API documentation
aram356 Sep 7, 2026
fa4c87b
Record API documentation checkpoint
aram356 Sep 7, 2026
8587359
Document adapter deployment journeys
aram356 Sep 7, 2026
2f1f11c
Fix pinned Fastly smoke setup
aram356 Sep 7, 2026
552dbee
Fix symbolic capability receipts
aram356 Sep 7, 2026
bf8adfd
Record adapter smoke publication
aram356 Sep 7, 2026
93375a2
Import authenticated CLI help captures
aram356 Sep 7, 2026
8331938
Add full documentation product coverage
aram356 Sep 8, 2026
54f3ee5
Refresh contributor and crate documentation
aram356 Sep 8, 2026
9fcd610
Complete in-code documentation
aram356 Sep 8, 2026
b8b6e22
Fix Task 16 Clippy documentation
aram356 Sep 8, 2026
7bb35bd
Activate documentation enforcement gates
aram356 Sep 8, 2026
585ebe4
Fix final documentation acceptance regressions
aram356 Sep 8, 2026
597fdb3
Bound shared browser teardown
aram356 Sep 8, 2026
9f46902
Bound browser audit operations
aram356 Sep 8, 2026
adb383b
Allow bounded browser setup on hosted macOS
aram356 Sep 8, 2026
d4f2641
Stabilize hosted browser fixtures
aram356 Sep 8, 2026
b095a34
Run browser fixtures on Linux CI
aram356 Sep 8, 2026
bbfd078
Run Linux browser fixtures without sandbox
aram356 Sep 8, 2026
5f4774a
Record documentation refresh acceptance
aram356 Sep 8, 2026
9e230c0
Pin Serde oracle derive version
aram356 Sep 8, 2026
159d922
Refresh Serde fixture scanner selector
aram356 Sep 8, 2026
d561d9a
Align Serde oracle with locked version
aram356 Sep 8, 2026
73cfd0e
Isolate Serde fixture lint flags
aram356 Sep 8, 2026
0dcf054
fix(docs): address refresh review findings
aram356 Sep 9, 2026
f682c05
docs: record authenticated CLI recapture
aram356 Sep 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions .claude/agents/code-architect.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,23 @@ Analyze the codebase architecture and suggest improvements when asked.

## Context

This is a Rust workspace targeting Fastly Compute (`wasm32-wasip1`) with three
crates: `common` (core logic), `fastly` (entry point), and `js` (TS/JS build).
This is a multi-adapter Rust workspace. Shared logic lives in
`trusted-server-core`; Fastly, Cloudflare, Spin, and Axum adapters provide
runtime-specific entry points, and the JS crate builds TSJS assets.

Key patterns:

- **RequestWrapper trait** abstracts HTTP handling for different backends
- **RuntimeServices and platform traits** supply stores, outbound HTTP,
backends, geo lookup, and template services to shared request handlers
- **Settings-driven config** via `trusted-server.toml`
- **Integration system** with Rust registration + per-integration JS bundles
- **Runtime JS concatenation** — server assembles core + integration scripts

## When Analyzing

1. Read relevant source files before making suggestions.
2. Consider WASM constraints (no filesystem, no threads, no Tokio).
2. Apply the constraints of the adapter being reviewed. Core and WASM adapter
code cannot assume Tokio or host filesystem access; Axum is native.
3. Respect existing patterns — suggest improvements that fit the current architecture.
4. Prioritize simplicity and correctness over cleverness.

Expand Down
2 changes: 1 addition & 1 deletion .claude/agents/issue-creator.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ Output the issue URL and type.
- Core (Edge Cookies, GDPR)
- Integrations (prebid, lockr, permutive, etc.)
- HTML processing / JS injection
- Ad serving (Equativ)
- Ad serving / auctions
- Fastly runtime
- JS build pipeline
- Documentation
Expand Down
14 changes: 4 additions & 10 deletions .claude/commands/check-ci.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
Run all CI checks locally, in order. Stop and report if any step fails.
Run every check in the [canonical CI gate list](/CLAUDE.md#ci-gates), in its
documented order. Stop and report if any gate fails.

1. `cargo fmt --all -- --check`
2. `cargo clippy-fastly && cargo clippy-axum && cargo clippy-cloudflare`
3. `cargo test-fastly && cargo test-axum && cargo test-cloudflare`
4. `cargo check-cloudflare` (wasm32-unknown-unknown target check, mirrors CI)
5. `cd crates/trusted-server-js/lib && npx vitest run`
6. `cd crates/trusted-server-js/lib && npm run format`
7. `cd docs && npm run format`

Report a summary of all results when done.
Report the result of each canonical gate. Do not maintain a separate gate list
in this command.
3 changes: 3 additions & 0 deletions .claude/commands/review-changes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
Review all staged and unstaged changes in the working tree.

Use the [canonical CI gate list](/CLAUDE.md#ci-gates) as the sole source for
required verification. Do not copy its commands into this file.

1. Run `git diff` and `git diff --cached` to see all changes.
2. Review each changed file for:
- Correctness and logic errors
Expand Down
17 changes: 5 additions & 12 deletions .claude/commands/test-all.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,6 @@
Run the full test suite for both Rust and JavaScript.
Run the Rust and JavaScript test gates from the
[canonical CI gate list](/CLAUDE.md#ci-gates). Do not maintain a separate test
command list in this file.

```bash
cargo test-fastly && cargo test-axum && cargo test-cloudflare
```

Then run JS tests:

```bash
cd crates/trusted-server-js/lib && npx vitest run
```

Report results for both. If any test fails, investigate and suggest a fix.
Report each test-gate result. If a test fails, investigate it before reporting
the command complete.
18 changes: 6 additions & 12 deletions .claude/commands/test-crate.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,10 @@ Test a specific crate by name.

Usage: /test-crate $ARGUMENTS

Run:
Use the target-aware test rules referenced by the
[canonical CI gate list](/CLAUDE.md#ci-gates). Select the canonical adapter or
JavaScript gate that covers `$ARGUMENTS`; do not substitute a bare workspace
test. For a host-only crate without a covering alias, follow the host-target
procedure in `CLAUDE.md`.

```bash
cargo test -p $ARGUMENTS
```

If $ARGUMENTS is "js" or "javascript", run:

```bash
cd crates/trusted-server-js/lib && npx vitest run
```

Report results and investigate any failures.
Report the selected canonical rule and its result. Investigate any failure.
15 changes: 4 additions & 11 deletions .claude/commands/verify.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,5 @@
Full verification: build, test, and lint the entire project.
Run full repository verification from the
[canonical CI gate list](/CLAUDE.md#ci-gates). That region is the sole source
for required gate commands; do not maintain a copy here.

1. `cargo build-fastly && cargo build-axum && cargo build-cloudflare`
2. `cargo build --package trusted-server-adapter-fastly --release --target wasm32-wasip1`
3. `cargo fmt --all -- --check`
4. `cargo clippy-fastly && cargo clippy-axum && cargo clippy-cloudflare`
5. `cargo test-fastly && cargo test-axum && cargo test-cloudflare`
6. `cd crates/trusted-server-js/lib && npx vitest run`
7. `cd crates/trusted-server-js/lib && npm run format`
8. `cd docs && npm run format`

Report results for each step. Stop and investigate if any step fails.
Report every canonical gate result. Stop and investigate if any gate fails.
8 changes: 5 additions & 3 deletions .env.dev
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@
# [publisher]
TRUSTED_SERVER__PUBLISHER__ORIGIN_URL=http://localhost:9090

# [synthetic]
TRUSTED_SERVER__SYNTHETIC__COUNTER_STORE=counter_store
TRUSTED_SERVER__SYNTHETIC__OPID_STORE=opid_store
# [ec]
# The passphrase is secret-store material, not a development overlay. This
# non-secret threshold is applied only when the file is exported before a
# `ts config` command.
TRUSTED_SERVER__EC__CLUSTER_TRUST_THRESHOLD=10

# [proxy]
# Disable TLS certificate verification for local dev with self-signed certs
Expand Down
15 changes: 7 additions & 8 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -18,27 +18,26 @@ TRUSTED_SERVER__PUBLISHER__COOKIE_DOMAIN=.publisher.com
TRUSTED_SERVER__PUBLISHER__ORIGIN_URL=https://origin.publisher.com

# =============================================================================
# Synthetic ID Settings
# Edge Cookie Settings
# =============================================================================
TRUSTED_SERVER__SYNTHETIC__COUNTER_STORE=counter_store
TRUSTED_SERVER__SYNTHETIC__OPID_STORE=opid_store
# Template variables: client_ip, user_agent, first_party_id, auth_user_id, publisher_domain, accept_language
TRUSTED_SERVER__SYNTHETIC__TEMPLATE={{ client_ip }}:{{ user_agent }}:{{ first_party_id }}
# Non-secret CLI overlay. Keep the EC passphrase in the app-config secret
# store; do not place it in this file.
TRUSTED_SERVER__EC__CLUSTER_TRUST_THRESHOLD=10

# =============================================================================
# Request Signing (optional)
# Request Signing (optional CLI overlay)
# =============================================================================
TRUSTED_SERVER__REQUEST_SIGNING__ENABLED=false
# TRUSTED_SERVER__REQUEST_SIGNING__CONFIG_STORE_ID=<fastly-config-store-id>
# TRUSTED_SERVER__REQUEST_SIGNING__SECRET_STORE_ID=<fastly-secret-store-id>

# =============================================================================
# Response Headers (optional)
# Response Headers (optional CLI overlay)
# =============================================================================
# TRUSTED_SERVER__RESPONSE_HEADERS__X_CUSTOM_HEADER=custom-value

# =============================================================================
# Integrations
# Integrations (optional CLI overlays)
# =============================================================================

# Prebid
Expand Down
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Authenticated CLI-help goldens preserve the runners' exact output bytes.
tools/docs-parity/goldens/*.txt -whitespace
9 changes: 7 additions & 2 deletions .github/actions/setup-integration-test-env/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@ runs:
shell: bash
run: echo "node-version=$(grep '^nodejs ' .tool-versions | awk '{print $2}')" >> "$GITHUB_OUTPUT"

- name: Set up Node.js
uses: actions/setup-node@v7.0.0
with:
node-version: ${{ steps.node-version.outputs.node-version }}

- name: Retrieve Viceroy version
id: viceroy-version
if: ${{ inputs.install-viceroy == 'true' }}
Expand All @@ -52,7 +57,7 @@ runs:
run: echo "viceroy-version=$(grep '^viceroy ' .tool-versions | awk '{print $2}')" >> "$GITHUB_OUTPUT"

- name: Set up Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
uses: actions-rust-lang/setup-rust-toolchain@v1.17.0
with:
toolchain: ${{ steps.rust-version.outputs.rust-version }}
target: wasm32-wasip1
Expand All @@ -61,7 +66,7 @@ runs:
- name: Cache Viceroy binary
if: ${{ inputs.install-viceroy == 'true' }}
id: cache-viceroy
uses: actions/cache@v4
uses: actions/cache@v6.1.0
with:
path: ~/.cargo/bin/viceroy
key: viceroy-${{ runner.os }}-v${{ steps.viceroy-version.outputs.viceroy-version }}
Expand Down
44 changes: 33 additions & 11 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,21 +1,43 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file

version: 2
updates:
- package-ecosystem: "cargo" # See documentation for possible values
directory: "/" # Location of package manifests
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
target-branch: "main"

- package-ecosystem: "cargo"
directory: "/"
schedule:
interval: "weekly"
target-branch: "main"

- package-ecosystem: "cargo"
directory: "/tools/docs-parity"
schedule:
interval: "weekly"
target-branch: "main"

- package-ecosystem: "npm"
directory: "/crates/trusted-server-js/lib"
schedule:
interval: "weekly"
target-branch: "main"

- package-ecosystem: "npm"
directory: "/crates/trusted-server-integration-tests/browser"
schedule:
interval: "weekly"
target-branch: "main"

- package-ecosystem: "npm" # See documentation for possible values
directory: "crates/trusted-server-js/lib/" # Location of package manifests
- package-ecosystem: "npm"
directory: "/crates/trusted-server-integration-tests/fixtures/frameworks/nextjs"
schedule:
interval: "weekly"
target-branch: "main"

- package-ecosystem: "npm" # See documentation for possible values
directory: "docs/" # Location of package manifests
- package-ecosystem: "npm"
directory: "/docs"
schedule:
interval: "weekly"
target-branch: "main"
17 changes: 5 additions & 12 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,22 +21,15 @@ Closes #

## Test plan

<!-- How did you verify this works? Check all that apply -->

- [ ] `cargo test-fastly && cargo test-axum`
- [ ] `cargo clippy-fastly && cargo clippy-axum`
- [ ] `cargo fmt --all -- --check`
- [ ] JS tests: `cd crates/trusted-server-js/lib && npx vitest run`
- [ ] JS format: `cd crates/trusted-server-js/lib && npm run format`
- [ ] Docs format: `cd docs && npm run format`
- [ ] WASM build: `cargo build --package trusted-server-adapter-fastly --release --target wasm32-wasip1`
- [ ] Manual testing via `fastly compute serve`
- [ ] Other: <!-- describe -->
<!-- Follow the canonical gates; do not copy their command list here. -->

- [ ] Completed the [canonical CI gate list](/CLAUDE.md#ci-gates)
- Evidence: <!-- Record exact results and any scoped additional checks. -->

## Checklist

- [ ] Changes follow [CLAUDE.md](/CLAUDE.md) conventions
- [ ] No `unwrap()` in production code — use `expect("should ...")`
- [ ] Uses `tracing` macros (not `println!`)
- [ ] Uses `log` macros (not `println!`)
- [ ] New code has tests
- [ ] No secrets or credentials committed
8 changes: 4 additions & 4 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
branches: ["main", "rc/*"]
schedule:
- cron: "42 6 * * 0"

Expand Down Expand Up @@ -59,7 +59,7 @@ jobs:
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v7.0.1

# Add any setup steps before running the `github/codeql-action/init` action.
# This includes steps like installing compilers or runtimes (`actions/setup-node`
Expand All @@ -69,7 +69,7 @@ jobs:

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v4
uses: github/codeql-action/init@v4.37.9
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
Expand Down Expand Up @@ -98,6 +98,6 @@ jobs:
exit 1

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4
uses: github/codeql-action/analyze@v4.37.9
with:
category: "/language:${{matrix.language}}"
21 changes: 15 additions & 6 deletions .github/workflows/deploy-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
branches: [main]
paths:
- "docs/**"
- ".tool-versions"
- ".github/workflows/deploy-docs.yml"
workflow_dispatch: # Allow manual triggers

Expand All @@ -24,34 +25,42 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v7.0.1
with:
fetch-depth: 0 # For lastUpdated feature

- name: Retrieve Node.js version
id: node-version
run: echo "node-version=$(grep '^nodejs ' .tool-versions | awk '{print $2}')" >> $GITHUB_OUTPUT
run: echo "node-version=$(grep '^nodejs ' .tool-versions | awk '{print $2}')" >> "$GITHUB_OUTPUT"

- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v7.0.0
with:
node-version: ${{ steps.node-version.outputs.node-version }}
cache: "npm"
cache-dependency-path: docs/package-lock.json

- name: Setup Pages
uses: actions/configure-pages@v4
uses: actions/configure-pages@v6.0.0

- name: Install dependencies
working-directory: docs
run: npm ci

- name: Build with VitePress
working-directory: docs
env:
GITHUB_SHA: ${{ github.sha }}
run: npm run build

- name: Assert exact source provenance
working-directory: docs
env:
GITHUB_SHA: ${{ github.sha }}
run: grep -R --fixed-strings --quiet "$GITHUB_SHA" .vitepress/dist

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
uses: actions/upload-pages-artifact@v5.0.0
with:
path: docs/.vitepress/dist

Expand All @@ -64,4 +73,4 @@ jobs:
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
uses: actions/deploy-pages@v5.0.1
Loading