Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
a4f7e14
docs(adr): ADR-0008 Worldline Runtime Model
flyingrobots Mar 9, 2026
875b0a6
docs(adr): amend ADR-0008 — multi-writer, frontier clamp, two-tier sc…
flyingrobots Mar 9, 2026
ccc015a
docs(adr): ADR-0009 Inter-Worldline Communication
flyingrobots Mar 9, 2026
5d1ffbc
docs(adr): revise ADR-0009 per review — 3 must-fix, 5 should-fix
flyingrobots Mar 10, 2026
a65d4bf
test(warp-core): Phase 0 invariant harness for ADR-0008/0009 refactor
flyingrobots Mar 10, 2026
ffac10d
feat(warp-core): Phase 1 runtime primitives for ADR-0008
flyingrobots Mar 10, 2026
9a7c747
feat(warp-core): Phase 2 SchedulerCoordinator for ADR-0008
flyingrobots Mar 10, 2026
d475e1b
feat(warp-core): Phase 3 deterministic ingress and per-head inboxes
flyingrobots Mar 10, 2026
b7b5067
fix(warp-core): self-review fixes for Phases 0–3
flyingrobots Mar 10, 2026
c2b5403
fix: address CodeRabbit PR feedback
flyingrobots Mar 10, 2026
a817947
chore: skip doc-tests in pre-push hook
flyingrobots Mar 11, 2026
fa4f256
fix(warp-core): address CodeRabbit round-2 PR feedback
flyingrobots Mar 11, 2026
7d13ea6
fix(warp-core): address CodeRabbit round-3 PR feedback
flyingrobots Mar 11, 2026
580f685
Merge branch 'main' into feat/adr-0008-0009-phase-0
flyingrobots Mar 11, 2026
54f4d71
Implement ADR-0008 phase 3 runtime ingress
flyingrobots Mar 12, 2026
3a6ce05
Merge remote-tracking branch 'origin/feat/adr-0008-0009-phase-0' into…
flyingrobots Mar 12, 2026
03901f8
fix(warp-core): harden runtime ingress invariants
flyingrobots Mar 12, 2026
1915b7b
docs: sync ADR plan and changelog with runtime hardening
flyingrobots Mar 12, 2026
1e7be49
fix(warp-core): resolve remaining runtime review gaps
flyingrobots Mar 12, 2026
ac66771
docs: sync review follow-up docs and hooks
flyingrobots Mar 12, 2026
bfff648
fix(warp-core): repair rustdoc gate for registry docs
flyingrobots Mar 12, 2026
749ed3a
docs: expand tooling backlog from review follow-ups
flyingrobots Mar 12, 2026
ffba1c4
docs: sync phase 3 review follow-up docs
flyingrobots Mar 12, 2026
dfb4512
fix(warp-core): harden late phase 3 review fixes
flyingrobots Mar 12, 2026
1a0668e
fix(warp-core): validate restored worldline runtime state
flyingrobots Mar 12, 2026
a5215fe
docs: clarify final phase 3 review invariants
flyingrobots Mar 12, 2026
effae2c
docs: correct remaining phase 3 changelog notes
flyingrobots Mar 12, 2026
abc937c
fix: close remaining runtime review threads
flyingrobots Mar 13, 2026
1c603a1
docs: sync remaining review notes
flyingrobots Mar 13, 2026
6e2f279
fix(tooling): make local verification path-aware
flyingrobots Mar 13, 2026
d59c753
fix(tooling): narrow the local full gate
flyingrobots Mar 13, 2026
b3266d1
fix(tooling): trim local full clippy scope
flyingrobots Mar 13, 2026
af451f3
fix(tooling): focus local full tests on core crates
flyingrobots Mar 13, 2026
88d7449
fix(tooling): default local verification to cargo test
flyingrobots Mar 13, 2026
a505c07
fix(tooling): use a curated local full test lane
flyingrobots Mar 13, 2026
fa3fb58
fix(tooling): reuse local full verification stamps
flyingrobots Mar 13, 2026
81e41de
fix(ci): shard the test gate
flyingrobots Mar 13, 2026
5b5e99b
fix(ci): run warp-core tests with nextest
flyingrobots Mar 13, 2026
3adf291
fix: address remaining PR review threads
flyingrobots Mar 13, 2026
7b849a3
fix: address self-review findings
flyingrobots Mar 13, 2026
ef7d2f1
fix(tooling): add staged pre-commit verifier
flyingrobots Mar 14, 2026
9a068dc
fix(warp-core): harden runtime commit guard
flyingrobots Mar 14, 2026
0734f7a
docs: sync final PR review notes
flyingrobots Mar 14, 2026
b176d78
fix(warp-core): make super tick panic-safe
flyingrobots Mar 14, 2026
c73aa9d
fix(tooling): harden local verification gating
flyingrobots Mar 14, 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
12 changes: 2 additions & 10 deletions .githooks/pre-commit
Original file line number Diff line number Diff line change
Expand Up @@ -107,16 +107,8 @@ if [[ -f Cargo.lock ]]; then
fi
fi

# 7) Targeted clippy + check for changed crates (fast-ish)
CRATES=$(echo "$STAGED" | sed -n 's#^crates/\([^/]*\)/.*#\1#p' | sort -u)
for c in $CRATES; do
if [[ -f "crates/${c}/Cargo.toml" ]]; then
cargo clippy -p "$c" --all-targets -- -D warnings -D missing_docs
cargo check -p "$c" --quiet
else
echo "pre-commit: skipping ${c}: missing crates/${c}/Cargo.toml" >&2
fi
done
# 7) Targeted Rust verification for staged crates
scripts/verify-local.sh pre-commit

# 8) SPDX header enforcement (code = Apache-2.0; docs/math = Apache-2.0 OR LicenseRef-MIND-UCAL-1.0)
if [[ -x scripts/ensure_spdx.sh ]]; then
Expand Down
63 changes: 5 additions & 58 deletions .githooks/pre-push
Original file line number Diff line number Diff line change
@@ -1,63 +1,10 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: Apache-2.0
# © James Ross Ω FLYING•ROBOTS <https://github.com/flyingrobots>
# Round-robin pre-push: alternates between sequential/parallel, logs timing
#
# Canonical pre-push hook: route to the shared local verifier so developers pay
# for the full workspace gates only when the changed paths justify it.
set -euo pipefail

LOGFILE="${PREPUSH_LOGFILE:-.githooks/timing.jsonl}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

# Portable high-resolution timestamp (macOS date doesn't support %N)
get_timestamp() {
if date +%s.%N 2>/dev/null | grep -q '\.'; then
date +%s.%N
elif command -v python3 >/dev/null 2>&1; then
python3 -c 'import time; print(f"{time.time():.6f}")'
elif command -v perl >/dev/null 2>&1; then
perl -MTime::HiRes=time -e 'printf "%.6f\n", time'
else
# Fallback to integer seconds
date +%s
fi
}

# Determine which variant to run (round-robin based on line count)
if [[ -f "$LOGFILE" ]]; then
COUNT=$(wc -l < "$LOGFILE" | tr -d ' ')
else
COUNT=0
fi

if (( COUNT % 2 == 0 )); then
VARIANT="sequential"
SCRIPT="$SCRIPT_DIR/pre-push-sequential"
else
VARIANT="parallel"
SCRIPT="$SCRIPT_DIR/pre-push-parallel"
fi

echo "📊 pre-push benchmark: running $VARIANT (#$((COUNT + 1)))"

# Capture output to check if compilation happened
OUTFILE=$(mktemp)
trap 'rm -f "$OUTFILE"' EXIT

# Time the run, tee output to both terminal and file
START=$(get_timestamp)
set +e # Disable errexit so PIPESTATUS is captured before exit
"$SCRIPT" 2>&1 | tee "$OUTFILE"
RC=${PIPESTATUS[0]}
set -e
END=$(get_timestamp)

# Only log timing if cargo actually compiled something
if grep -q "Compiling" "$OUTFILE"; then
DURATION=$(echo "$END - $START" | bc)
TIMESTAMP=$(date -u +%Y-%m-%dT%H:%M:%SZ)
echo "{\"ts\":\"$TIMESTAMP\",\"variant\":\"$VARIANT\",\"duration\":$DURATION,\"exit\":$RC}" >> "$LOGFILE"
echo "📊 $VARIANT completed in ${DURATION}s (logged)"
else
echo "📊 $VARIANT completed (no compilation, timing not logged)"
fi

exit $RC
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
exec "$REPO_ROOT/scripts/verify-local.sh" pre-push
54 changes: 49 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ on:
push:
branches:
- main
- "feat/**"
pull_request:

jobs:
Expand Down Expand Up @@ -59,8 +58,23 @@ jobs:
- name: cargo clippy (warp-core, det_fixed)
run: cargo clippy -p warp-core --all-targets --features det_fixed -- -D warnings -D missing_docs

test:
name: Tests
test-workspace:
name: Tests (workspace sans warp-core)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: false
- uses: dtolnay/rust-toolchain@1.90.0
- uses: Swatinem/rust-cache@v2
with:
workspaces: |
.
- name: cargo test (workspace sans warp-core)
run: cargo test --workspace --exclude warp-core

test-warp-core:
name: Tests (warp-core)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand All @@ -71,11 +85,41 @@ jobs:
with:
workspaces: |
.
- name: cargo test (workspace)
run: cargo test --workspace
- name: Install cargo-nextest
uses: taiki-e/install-action@5ab5d1729c22acd8f798b267eadcfe5e5be6f5c2 # v2.68.27
with:
tool: nextest
- name: cargo nextest run (warp-core)
run: cargo nextest run -p warp-core
- name: cargo test --doc (warp-core)
run: cargo test -p warp-core --doc
- name: PRNG golden regression (warp-core)
run: cargo test -p warp-core --features golden_prng --test prng_golden_regression

test:
name: Tests
runs-on: ubuntu-latest
needs:
- test-workspace
- test-warp-core
if: always()
steps:
- name: Require test shard success
shell: bash
run: |
set -euo pipefail
workspace_result="${{ needs.test-workspace.result }}"
warp_core_result="${{ needs.test-warp-core.result }}"
if [[ "$workspace_result" != "success" ]]; then
echo "workspace shard result: $workspace_result" >&2
exit 1
fi
if [[ "$warp_core_result" != "success" ]]; then
echo "warp-core shard result: $warp_core_result" >&2
exit 1
fi
echo "All test shards passed."

test-musl:
name: Tests (musl)
runs-on: ubuntu-latest
Expand Down
Loading
Loading