Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
64b5f44
test: add real-daemon Threads smoke harness
BunsDev Sep 6, 2026
90c6e5a
fix: require typed veto-window terminal closes
BunsDev Sep 6, 2026
4de2728
fix: remove Tier-0 proposal authority
BunsDev Sep 6, 2026
99a27e6
test: harden Threads E2E fixture
BunsDev Sep 6, 2026
9dc82ba
Merge remote-tracking branch 'origin/main' into test/884-threads-real…
BunsDev Sep 6, 2026
28e21e1
Merge remote-tracking branch 'origin/main' into fix/886-terminal-close
BunsDev Sep 6, 2026
5fd639f
Merge remote-tracking branch 'origin/main' into fix/887-protected-pro…
BunsDev Sep 6, 2026
1210efc
fix: persist rejected window close evidence
BunsDev Sep 7, 2026
e9b9113
Merge branch 'main' into test/884-threads-real-daemon
BunsDev Sep 9, 2026
7c80e47
test: preserve daemon lifecycle and successful E2E provenance
BunsDev Sep 9, 2026
2905cad
fix: retain typed close on first protected scheduler rejection
BunsDev Sep 9, 2026
64fc4d5
fix: preserve terminal audit and quarantine ambiguous recovery
BunsDev Sep 9, 2026
f36b4cb
test: capture protected proposal and refusal-audit boundary regressions
BunsDev Sep 9, 2026
23d0446
fix: integrate protected proposal prohibition into current daemon
BunsDev Sep 9, 2026
24673fd
fix: audit protected intake refusals without creating approval authority
BunsDev Sep 9, 2026
3fad633
fix: integrate protected rejection and terminal recovery
BunsDev Sep 9, 2026
d6791a8
fix: bind scheduled recovery documents to their proposal filenames
BunsDev Sep 9, 2026
0e94e9c
feat: activate typed identity invariants in Ward and Threads replay
BunsDev Sep 9, 2026
f7ee42a
test: add isolated deterministic Threads daemon time controls
BunsDev Sep 9, 2026
8a4f2b7
ci: exercise the isolated Threads clock on supported Rust runners
BunsDev Sep 9, 2026
31cfe4f
test: assemble identity runtime for coordinated boundary acceptance
BunsDev Sep 9, 2026
7be2a47
test: integrate controlled time through real daemon terminal audits
BunsDev Sep 9, 2026
d15d493
test: expose lost retired-Ward scheduling through the real daemon
BunsDev Sep 9, 2026
1cef655
fix: retry silent Windows startup probes within the lifecycle deadline
BunsDev Sep 9, 2026
150321c
test: move identity and replay evidence onto supported scheduled intake
BunsDev Sep 9, 2026
e88b89b
feat: publish classified scheduled proposals from supported Ward intake
BunsDev Sep 9, 2026
a051eca
test: bind scheduled acceptance decisions to inspected revisions
BunsDev Sep 9, 2026
d3abad0
feat: integrate real scheduled intake with identity and typed termina…
BunsDev Sep 9, 2026
71e1533
test: expose missing supersession terminal through real daemon intake
BunsDev Sep 9, 2026
4257ea2
ci: isolate native dependency installation to Ubuntu sources
BunsDev Sep 9, 2026
4e6385f
fix(ci): clean apt-owned metadata with bounded privileges
BunsDev Sep 9, 2026
42ec7e4
fix(threads): preserve explicit verified supersession across recovery
BunsDev Sep 9, 2026
b0819c3
test(threads): integrate verified supersession and bounded daemon jou…
BunsDev Sep 9, 2026
e53988e
fix(daemon): retry transient Windows startup connect timeouts
BunsDev Sep 9, 2026
bd81b00
fix(daemon): publish Unix socket after installing private permissions
BunsDev Sep 9, 2026
c226656
fix(threads): reject stale identity and regional approval policy
BunsDev Sep 9, 2026
606c706
test(pty): recognize termination during prompt delivery
BunsDev Sep 9, 2026
345d4cf
test(threads): align protected-region fixture identity with its source
BunsDev Sep 9, 2026
299afac
Merge main into Threads daemon acceptance checkpoint
BunsDev Sep 9, 2026
596cb7a
test: cover Threads final commit authority drift
BunsDev Sep 9, 2026
7ca4a8d
fix: bind Threads final commits to validated authority
BunsDev Sep 9, 2026
1aef6ad
test: register Threads final commit regression
BunsDev Sep 10, 2026
ad0153b
Merge current main into Threads daemon acceptance checkpoint
BunsDev Sep 10, 2026
f3436c2
fix: bind proposal recovery to validated baselines
BunsDev Sep 10, 2026
e6b1188
Merge refreshed Threads integration into final authority binding
BunsDev Sep 10, 2026
ddb3e2b
test: run shared Threads daemon journeys on Windows
BunsDev Sep 10, 2026
cfe8757
chore: reconcile merged Windows startup recovery
BunsDev Sep 10, 2026
d5a0a5a
test: satisfy authority regression lint gates
BunsDev Sep 10, 2026
7b42511
test: integrate native Windows Threads daemon journeys
BunsDev Sep 10, 2026
b74f76d
fix: integrate validated Threads commit bindings
BunsDev Sep 10, 2026
7788475
chore: reconcile Threads acceptance with current main
BunsDev Sep 10, 2026
a9347cc
test: port final-commit drift journey to shared daemon client
BunsDev Sep 10, 2026
0ce3af5
ci: budget Windows for both Threads build profiles
BunsDev Sep 10, 2026
42f5e71
fix: retain the published Unix daemon socket path
BunsDev Sep 10, 2026
fd610f6
ci: retain Windows Threads evidence after workspace failures
BunsDev Sep 10, 2026
2d5eec8
chore: integrate landed cancellation diagnostics into Threads acceptance
BunsDev Sep 10, 2026
b4a0cdd
test: initialize adoption stores before concurrency watchdogs
BunsDev Sep 10, 2026
d4653f1
test: integrate adoption fixture readiness into Threads acceptance
BunsDev Sep 10, 2026
e273bf2
fix: retain failed daemon startup evidence before fixture cleanup
BunsDev Sep 10, 2026
5443212
diagnostics: measure bounded daemon startup phases
BunsDev Sep 10, 2026
0883d6d
fix: integrate atomic runtime evidence bootstrap
BunsDev Sep 10, 2026
aa6bdfa
test(threads): isolate native evidence from build caches
BunsDev Sep 10, 2026
0c1b262
ci(threads): use upload-compatible runner evidence paths
BunsDev Sep 10, 2026
92b701a
diagnostics(threads): measure launch budget and store phases
BunsDev Sep 10, 2026
8576f41
ci(threads): distinguish evidence artifacts by run attempt
BunsDev Sep 10, 2026
ea3f455
test(daemon): pin startup budget observation boundaries (#1019)
BunsDev Sep 12, 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
32 changes: 31 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -244,16 +244,28 @@ jobs:
- name: Install native link dependencies
run: bash scripts/install-native-link-dependencies.sh
- run: cargo test --workspace --locked
- name: Exercise isolated Threads clock feature
run: cargo test --locked -p coven-cli --bin coven --features threads-test-clock threads_
- name: Exercise real-daemon Threads journeys
run: cargo test --locked -p coven-cli --test threads_e2e --features threads-test-clock

rust-test-windows:
name: Rust tests (Windows)
needs: changes
if: ${{ needs.changes.outputs.rust == 'true' }}
runs-on: windows-latest
timeout-minutes: 20
# A cold workspace run took 16 minutes; leave bounded room for the
# separate clock-feature build and real-daemon journeys.
timeout-minutes: 30
steps:
- uses: actions/checkout@v7.0.1
- uses: dtolnay/rust-toolchain@stable
- name: Configure Threads evidence directory
shell: pwsh
env:
COVEN_THREADS_E2E_ARTIFACT_ROOT: ${{ runner.temp }}/threads-e2e-${{ github.run_id }}-${{ github.run_attempt }}
run: |
"COVEN_THREADS_E2E_ARTIFACT_ROOT=$env:COVEN_THREADS_E2E_ARTIFACT_ROOT" >> $env:GITHUB_ENV
- uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: |
Expand All @@ -264,6 +276,20 @@ jobs:
restore-keys: |
${{ runner.os }}-rust-test-
- run: cargo test --workspace --locked
- name: Exercise isolated Threads clock feature
if: ${{ !cancelled() }}
run: cargo test --locked -p coven-cli --bin coven --features threads-test-clock threads_
- name: Exercise real-daemon Threads journeys
if: ${{ !cancelled() }}
run: cargo test --locked -p coven-cli --test threads_e2e --features threads-test-clock
- name: Upload Threads daemon evidence
if: ${{ always() }}
uses: actions/upload-artifact@v7
with:
name: threads-daemon-windows-${{ github.sha }}-${{ github.run_id }}-${{ github.run_attempt }}
path: ${{ runner.temp }}/threads-e2e-${{ github.run_id }}-${{ github.run_attempt }}
retention-days: 14
if-no-files-found: error

# macOS runners bill at roughly ten times the Linux rate, so this follows the
# npm-onboarding split: a cheap matrix on pull requests, the full one on main.
Expand All @@ -290,6 +316,10 @@ jobs:
restore-keys: |
${{ runner.os }}-rust-test-
- run: cargo test --workspace --locked
- name: Exercise isolated Threads clock feature
run: cargo test --locked -p coven-cli --bin coven --features threads-test-clock threads_
- name: Exercise real-daemon Threads journeys
run: cargo test --locked -p coven-cli --test threads_e2e --features threads-test-clock

afs-mount-linux:
name: AFS mount backend (Linux)
Expand Down
4 changes: 2 additions & 2 deletions Cargo.lock

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

7 changes: 6 additions & 1 deletion crates/coven-cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ repository.workspace = true
name = "coven"
path = "src/main.rs"

[features]
default = []
threads-test-clock = ["time/serde-well-known"]

[dependencies]
coven-afs = { path = "../coven-afs", version = "0.1.0" }
coven-client = { path = "../coven-client", version = "0.1.0" }
Expand All @@ -27,7 +31,7 @@ coven-runtime-spec = { git = "https://github.com/OpenCoven/coven-runtimes", tag
# (PHASE-0-DESIGN.md in OpenCoven/coven-threads; RFC-0001 §5). The daemon is
# the only caller: familiar-controlled processes never reach this crate.
# Pinned to the reviewed Phase 5 core revision until its 0.2 release tag lands.
coven-threads-core = { git = "https://github.com/OpenCoven/coven-threads", rev = "c102844", version = "0.2.0" }
coven-threads-core = { git = "https://github.com/OpenCoven/coven-threads", rev = "c3bd46bcadb6396db8436c47411a4d0eac17192b", version = "0.2.0" }
blake3 = "1"
cap-fs-ext = "4.0.2"
cap-std = "4.0.2"
Expand Down Expand Up @@ -74,6 +78,7 @@ iana-time-zone = "0.1.65"
[target.'cfg(unix)'.dependencies]
libc = "0.2"
rustix = { version = "1", features = ["fs"] }
tempfile = "3"

[target.'cfg(windows)'.dependencies]
interprocess = "2"
Expand Down
Loading