Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 3 additions & 0 deletions .claude/commands/check-ci.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,7 @@ Run all CI checks locally, in order. Stop and report if any step fails.
8. `cargo run --manifest-path crates/trusted-server-cli/Cargo.toml --target "$(rustc -vV | sed -n 's/host: //p')" --bin ts -- dev lint domains --changed-vs origin/main` (use the PR's base branch in place of `main` when it targets another branch)
9. `node --test scripts/check-ci-node-pin.test.mjs && node scripts/check-ci-node-pin.mjs`

10. Publisher attestation fixtures (run `cd docs && npm ci` first): `node scripts/publisher-attestation/generate.mjs --check && node --test scripts/publisher-attestation/*.test.mjs`
11. `docs/node_modules/.bin/eslint --config scripts/publisher-attestation/eslint.config.mjs "scripts/publisher-attestation/*.mjs"` and `docs/node_modules/.bin/prettier --config docs/.prettierrc --check "scripts/publisher-attestation/*.mjs"`

Report a summary of all results when done.
8 changes: 8 additions & 0 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,14 @@ jobs:
docs/node_modules/.bin/prettier --config docs/.prettierrc --check
"*.md" ".claude/**/*.md" ".github/**/*.md" "crates/**/*.md" "scripts/**/*.md" "tinybird/**/*.md"

- name: Check publisher attestation fixtures
working-directory: .
run: |
node scripts/publisher-attestation/generate.mjs --check
node --test scripts/publisher-attestation/*.test.mjs
docs/node_modules/.bin/eslint --config scripts/publisher-attestation/eslint.config.mjs "scripts/publisher-attestation/*.mjs"
docs/node_modules/.bin/prettier --config docs/.prettierrc --check "scripts/publisher-attestation/*.mjs"

- name: Build with VitePress (fails on dead links)
run: npm run build

Expand Down
7 changes: 4 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -375,9 +375,10 @@ Every PR must pass:
11. Documentation proposal scripts: `shellcheck scripts/docs-proposal/*.sh && node --test scripts/docs-proposal/hunks.test.mjs && scripts/docs-proposal/test.sh`
12. URL-host linter on lines the PR adds (`lint-domains` job, PRs only); run it locally with `cargo run --manifest-path crates/trusted-server-cli/Cargo.toml --target <host-triple> --bin ts -- dev lint domains --changed-vs origin/main`, using the PR's base branch in place of `main` when it targets another branch
13. CI Node pin guard: `node --test scripts/check-ci-node-pin.test.mjs && node scripts/check-ci-node-pin.mjs` with the `.tool-versions` Node (every CI job that compiles Rust sets up the `.tool-versions` Node before its first cargo step)
14. Fastly absolute-deadline network fixtures under Viceroy (the harness builds the adapter test binary itself): `node crates/trusted-server-adapter-fastly/tests/deadline-origin.mjs "$(command -v viceroy)"`
15. Worker auction-deadline runtime fixtures (`worker-auction-deadlines.yml`): build and lint the runtime fixture, then run it under the local runtime. For Cloudflare, `cargo build --locked -p trusted-server-adapter-cloudflare --example deadline-runtime --target wasm32-unknown-unknown --features cloudflare` and `node scripts/test-worker-auction-deadlines.mjs cloudflare --runtime "$(command -v wrangler)"` (requires wrangler and the `Cargo.lock` wasm-bindgen CLI). For Spin, `cargo build --locked -p trusted-server-adapter-spin --example deadline-runtime --target wasm32-wasip1 --features spin` and `node scripts/test-worker-auction-deadlines.mjs spin --runtime "$(command -v spin)"`. CI lints each fixture with the same `cargo clippy` arguments plus `-- -D warnings`
16. Release producer checks: `node --test scripts/release/phase1.test.mjs && shellcheck scripts/release/phase1-build.sh`
14. Publisher attestation fixtures (requires `cd docs && npm ci` for Ajv, ESLint and Prettier): `node scripts/publisher-attestation/generate.mjs --check && node --test scripts/publisher-attestation/*.test.mjs`; lint with `docs/node_modules/.bin/eslint --config scripts/publisher-attestation/eslint.config.mjs "scripts/publisher-attestation/*.mjs"` and format with `docs/node_modules/.bin/prettier --config docs/.prettierrc --check "scripts/publisher-attestation/*.mjs"`
15. Fastly absolute-deadline network fixtures under Viceroy (the harness builds the adapter test binary itself): `node crates/trusted-server-adapter-fastly/tests/deadline-origin.mjs "$(command -v viceroy)"`
16. Worker auction-deadline runtime fixtures (`worker-auction-deadlines.yml`): build and lint the runtime fixture, then run it under the local runtime. For Cloudflare, `cargo build --locked -p trusted-server-adapter-cloudflare --example deadline-runtime --target wasm32-unknown-unknown --features cloudflare` and `node scripts/test-worker-auction-deadlines.mjs cloudflare --runtime "$(command -v wrangler)"` (requires wrangler and the `Cargo.lock` wasm-bindgen CLI). For Spin, `cargo build --locked -p trusted-server-adapter-spin --example deadline-runtime --target wasm32-wasip1 --features spin` and `node scripts/test-worker-auction-deadlines.mjs spin --runtime "$(command -v spin)"`. CI lints each fixture with the same `cargo clippy` arguments plus `-- -D warnings`
17. Release producer checks: `node --test scripts/release/phase1.test.mjs && shellcheck scripts/release/phase1-build.sh`

CI also runs these HTML EOF checks. Run them locally only when changing EOF
finalization, publisher or HTML-processor code:
Expand Down
1 change: 1 addition & 0 deletions docs/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
"devDependencies": {
"@eslint/js": "^10",
"@types/node": "^24.10",
"ajv": "6.14.0",
"eslint": "^10",
"mermaid": "^11.12.3",
"prettier": "^3.4.2",
Expand Down
2 changes: 2 additions & 0 deletions docs/superpowers/specs/2026-01-15-attestation-design.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
> **Author:** Architecture Team
> **Date:** January 2026

> **Superseded for publisher/runtime attestation:** [Publisher attestation](2026-11-04-publisher-attestation-design.md) is the current contract. The proposal metadata above is historical; this document's full-configuration and embedded-checksum model is not a current requirement. Binary release evidence follows its separate release specification.

## Problem Statement

The Trusted Server is a WASM-based edge computing system that handles ad serving with pluggable **integrations** (Prebid, Lockr, Didomi, etc.). Publishers configure these integrations via `trusted-server.toml`. The challenge:
Expand Down
Loading
Loading