Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
a07958c
fix(rail): close disputed when evidence cannot be evaluated or signed
EauDoon Oct 8, 2026
d72a627
fix(rail): route an escalate-only breach to review instead of REMEDY_DUE
EauDoon Oct 8, 2026
7f8d03f
fix(postconditions): refuse compound eq values at both proposal bound…
EauDoon Oct 8, 2026
8bf3368
fix(verify): bind receipt outcome and close time to the terminal event
EauDoon Oct 8, 2026
2f8cd2a
fix(http): align sidecar statuses and execute input with OpenAPI
EauDoon Oct 8, 2026
c8e7018
fix(cli): accept dash-leading digest pins and --name=value; strict ports
EauDoon Oct 8, 2026
86f1d1a
fix(cli): report a malformed --at as usage, not an invalid artifact
EauDoon Oct 8, 2026
99dfcb3
test: resolve repository files from the test tree, not the cwd
EauDoon Oct 8, 2026
f890b16
test(docs): execute README expected-output blocks and fix the stale one
EauDoon Oct 8, 2026
6ebdfe2
docs: correct claims that contradict the code; ignore walkthrough output
EauDoon Oct 8, 2026
681980b
ci: add Dependabot for actions and CodeQL analysis
EauDoon Oct 8, 2026
2dd4a31
feat: single-source the implementation version and expose it
EauDoon Oct 8, 2026
b172478
docs(changelog): adopt Keep a Changelog with recoverable version history
EauDoon Oct 8, 2026
c193b1a
build: gate version consistency in the repository check
EauDoon Oct 8, 2026
f244a53
ci(release): publish GitHub Releases from version tags
EauDoon Oct 8, 2026
d099cbd
chore(release): 0.3.0
EauDoon Oct 8, 2026
7c55f3a
fix(verify): accept the legacy receipt close-time lag
EauDoon Oct 9, 2026
d81f9f6
docs(changelog): describe the receipt close-time window in 0.3.0
EauDoon Oct 9, 2026
31fde8c
docs(changelog): date 0.3.0 for its release day
EauDoon Oct 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
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,5 @@ What actually happened.
- OS:
- Node version:
- Browser (if applicable):
- Package version:
- Output of `node ./cmd/crctl.js --version`:
- Any other relevant context:
9 changes: 0 additions & 9 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,3 @@
---
name: Pull request
about: Submit changes for review
title: ''
labels: ''
assignees: ''

---

**Description**
A clear and concise description of the changes in this PR.

Expand Down
12 changes: 12 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
commit-message:
prefix: ci
groups:
actions:
patterns:
- "*"
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ jobs:
node: ["20.x", "22.x", "24.x"]
steps:
- name: Check out exact source
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Set up Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: ${{ matrix.node }}
package-manager-cache: false
Expand Down
44 changes: 44 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: CodeQL

on:
push:
branches: [main]
pull_request:
schedule:
- cron: "17 3 * * 1"

permissions: {}

# Workflow-level, so the two matrix legs do not share one group and cancel
# each other.
concurrency:
group: codeql-${{ github.ref }}
cancel-in-progress: true

jobs:
analyze:
name: Analyze (${{ matrix.language }})
runs-on: ubuntu-latest
timeout-minutes: 15
permissions:
contents: read
actions: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [javascript-typescript, actions]
steps:
- name: Check out exact source
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Initialize CodeQL
uses: github/codeql-action/init@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
with:
languages: ${{ matrix.language }}
build-mode: none
- name: Analyze
uses: github/codeql-action/analyze@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
with:
category: /language:${{ matrix.language }}
87 changes: 87 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: Release

on:
push:
tags:
- "v*.*.*"

permissions: {}

# Workflow-level, so the verify matrix legs do not share one group. A tag is
# released at most once, so a second run waits instead of cancelling.
concurrency:
group: release-${{ github.ref }}
cancel-in-progress: false

jobs:
verify:
name: ${{ matrix.os }} / Node ${{ matrix.node }}
runs-on: ${{ matrix.os }}
timeout-minutes: 5
permissions:
contents: read
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
node: ["20.x", "22.x", "24.x"]
steps:
- name: Check out tagged source
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Set up Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: ${{ matrix.node }}
package-manager-cache: false
# GITHUB_REF_TYPE is "tag" here, so this also requires the tag to equal
# "v" + package.json version.
- name: Check repository integrity and version consistency
run: node ./scripts/check.js
- name: Run deterministic tests
run: node --test

publish:
name: Publish GitHub Release
needs: verify
runs-on: ubuntu-latest
timeout-minutes: 5
permissions:
contents: write
steps:
- name: Check out tagged source
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
persist-credentials: false
- name: Set up Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: "24.x"
package-manager-cache: false
- name: Require the tagged commit to be on main
run: |
git fetch --no-tags origin +refs/heads/main:refs/remotes/origin/main
git merge-base --is-ancestor "$GITHUB_SHA" origin/main
- name: Check for an existing release
id: existing
env:
GH_TOKEN: ${{ github.token }}
GH_REPO: ${{ github.repository }}
run: |
if gh release view "$GITHUB_REF_NAME" > /dev/null 2>&1; then
echo "exists=true" >> "$GITHUB_OUTPUT"
else
echo "exists=false" >> "$GITHUB_OUTPUT"
fi
- name: Create the release from CHANGELOG.md
if: steps.existing.outputs.exists == 'false'
env:
GH_TOKEN: ${{ github.token }}
GH_REPO: ${{ github.repository }}
run: |
node scripts/release-notes.js "$GITHUB_REF_NAME" > "$RUNNER_TEMP/notes.md"
gh release create "$GITHUB_REF_NAME" --verify-tag \
--title "Consequence Rail ${GITHUB_REF_NAME#v}" \
--notes-file "$RUNNER_TEMP/notes.md"
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
node_modules/
coverage/
.consequence-rail/
.consequence-rail-evidence/
*.log
*.sqlite
*.sqlite-shm
Expand Down
Loading
Loading