Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
42f1260
fix(block): bound sparse VRAM I/O by physical allocation
emersonbusson Sep 21, 2026
e8f52aa
fix(agent): reject invalid PSI averages
emersonbusson Sep 21, 2026
7bf3017
test(cuda): isolate mock unregister counts per thread
emersonbusson Sep 21, 2026
cb9c8ed
fix(safety): reject odd backslash runs in WSL paths
emersonbusson Sep 21, 2026
de78559
fix(package): fail closed when RPM artifact is absent
emersonbusson Sep 21, 2026
bd51b43
chore(governance): remove agent-routing policy
emersonbusson Sep 21, 2026
212f7d5
fix(release): align v0.14.1 claims and support matrix
emersonbusson Sep 21, 2026
8db494e
docs(cuda): re-audit native tiering under SSDV3
emersonbusson Sep 21, 2026
5254011
docs(reliability): record local disposition of open PR queue
emersonbusson Sep 21, 2026
7693b05
docs(governance): remove obsolete build-permit claims
emersonbusson Sep 21, 2026
53cec83
docs(package): clarify direct release-build responsibility
emersonbusson Sep 21, 2026
ff0a6dd
docs(reliability): retire obsolete build admission wording
emersonbusson Sep 21, 2026
b891ac2
test(core): reproduce duplicate PSI field acceptance
emersonbusson Sep 21, 2026
c8574a7
fix(core): reject duplicate PSI pressure fields
emersonbusson Sep 21, 2026
69a7969
docs(cuda): record current cutile PR adoption blockers
emersonbusson Sep 21, 2026
bfdd67e
docs(cuda): gate cutile PRs on host validation
emersonbusson Sep 21, 2026
b20f21e
docs(cuda): reflect current cutile support wording
emersonbusson Sep 21, 2026
58fb470
docs(cuda): detail cutile PR blockers and test gaps
emersonbusson Sep 21, 2026
7d1d556
test(scripts): reproduce unsafe legacy swapoff failure
emersonbusson Sep 21, 2026
c1e75c9
fix(scripts): refuse NBD teardown when swapoff fails
emersonbusson Sep 21, 2026
a7cace0
test(scripts): reproduce foreign PID teardown
emersonbusson Sep 21, 2026
f038824
fix(scripts): bind legacy teardown to daemon identity
emersonbusson Sep 21, 2026
aad7263
test(scripts): reproduce ignored detach and forced kill
emersonbusson Sep 21, 2026
0165e03
fix(scripts): require NBD detach before graceful daemon stop
emersonbusson Sep 21, 2026
d750164
test(scripts): reproduce unsafe NBD tier adoption
emersonbusson Sep 21, 2026
e03ab8c
fix(scripts): refuse legacy adoption of active NBD swap
emersonbusson Sep 21, 2026
9f55a48
docs(reliability): record legacy service gate and local evidence
emersonbusson Sep 21, 2026
e7e6637
test(scripts): reproduce false NBD capacity activation
emersonbusson Sep 21, 2026
70c4657
fix(scripts): verify NBD swap before capacity claim
emersonbusson Sep 21, 2026
c2c8aae
test(scripts): reproduce legacy daemon startup collision
emersonbusson Sep 21, 2026
3504390
fix(scripts): reject competing legacy daemon startup
emersonbusson Sep 21, 2026
1c78585
test(scripts): flag unsafe legacy boot auto-deploy
emersonbusson Sep 21, 2026
764ecda
fix(packaging): retire unsafe boot auto-deploy
emersonbusson Sep 21, 2026
2d98dd6
test(scripts): reproduce unsafe ZRAM reset ownership
emersonbusson Sep 21, 2026
3a17d9f
fix(scripts): limit ZRAM reset to confirmed owned swap
emersonbusson Sep 21, 2026
7383848
test(scripts): reproduce unsafe ZRAM startup claims
emersonbusson Sep 21, 2026
82bf0e8
fix(scripts): fail closed on ZRAM startup errors
emersonbusson Sep 21, 2026
f480398
test(ci): require legacy VRAM safety gate
emersonbusson Sep 21, 2026
4e13164
ci(safety): run legacy VRAM service regressions
emersonbusson Sep 21, 2026
ba37d47
docs(reliability): retain live legacy handoff gate
emersonbusson Sep 21, 2026
2f69549
docs(reliability): update packaging PR disposition after boot retirement
emersonbusson Sep 21, 2026
a83e552
test(scripts): reproduce NBD swap prefix collision
emersonbusson Sep 22, 2026
6d70ab1
fix(scripts): match NBD swap device exactly
emersonbusson Sep 22, 2026
5a3eb17
test(scripts): reproduce unknown swap-table false absence
emersonbusson Sep 22, 2026
eabf7f9
fix(scripts): refuse unknown swap-table state
emersonbusson Sep 22, 2026
8228c12
test(scripts): reproduce kernel swap-path aliases
emersonbusson Sep 22, 2026
5749b5a
fix(scripts): recognize kernel swap-path aliases
emersonbusson Sep 22, 2026
ad16664
docs(reliability): record WSL2 swap alias qualification
emersonbusson Sep 22, 2026
86630a8
test(scripts): reproduce non-idempotent legacy stop
emersonbusson Sep 22, 2026
61ed4c2
fix(scripts): make clean legacy stop idempotent
emersonbusson Sep 22, 2026
7495718
test(scripts): reproduce symlinked daemon ownership
emersonbusson Sep 22, 2026
156d8d2
fix(scripts): reject symlinked legacy PID records
emersonbusson Sep 22, 2026
99582e1
test(scripts): reproduce symlinked ZRAM ownership
emersonbusson Sep 22, 2026
17e245f
fix(scripts): reject symlinked ZRAM records
emersonbusson Sep 22, 2026
f8ef2da
test(scripts): reproduce false-success NBD detach
emersonbusson Sep 22, 2026
f9259a7
fix(scripts): verify NBD detach in kernel state
emersonbusson Sep 22, 2026
225edc0
docs(scripts): align NBD reserve comment with code
emersonbusson Sep 22, 2026
a97fc7e
docs(reliability): record replayable legacy teardown evidence
emersonbusson Sep 22, 2026
624772e
fix(cli): block check activation when managed swap is active
emersonbusson Sep 23, 2026
2b82903
feat(cli): autonomous origin vhdx attach and systemd scope envelopment
emersonbusson Sep 23, 2026
0ccf1ac
docs(trovaldo): log VMBus v2 qualification and WSL2 backport progress
emersonbusson Sep 23, 2026
2e7121f
docs: align WSL2 upstream proposal ISSUE-03 with v2 chunked CoCo allo…
emersonbusson Sep 23, 2026
be9d059
bench(cascade): record Build #5 100% VRAM qualification metrics
emersonbusson Sep 23, 2026
96f516c
bench(cascade): qualify 100% 3-tier saturation on kernel Build #5
emersonbusson Sep 23, 2026
e71e084
fix(docs): resolve gitignored artifact link and align slice coverage
emersonbusson Sep 23, 2026
ea7f944
docs(evidence): register EVD-0046 100% 3-tier cascade qualification
emersonbusson Sep 23, 2026
fccbb5b
fix(cascade): require physical cache telemetry and harden teardown
emersonbusson Sep 23, 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
200 changes: 0 additions & 200 deletions .claude/rules/agent-orchestration.md

This file was deleted.

2 changes: 1 addition & 1 deletion .claude/rules/governance.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ systems or other repositories.
## Release, Packaging & Reliability Gap Parity

1. **Stable Release Alignment**:
- Production posture is strictly stable (`v0.14.0`). No beta or prerelease flags remain on public releases.
- Production posture is strictly stable (`v0.14.1`). No beta or prerelease flags remain on public releases.
- Package build scripts (`scripts/package/build-deb-package.sh`, `build-rpm-package.sh`), documentation badges (`README.md`, `README.pt-BR.md`), and manifests (`docs/localization/manifest.json`) must stay synchronized with the active release tag.
2. **Semantic Gap Register Governance**:
- `docs/reliability/GAP-REGISTER.md` must accurately reflect real CI and repository state.
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/release-packaging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ on:
workflow_dispatch:
inputs:
version:
description: 'Release version tag (e.g. v0.12.0)'
description: 'Release version tag (e.g. v0.14.1)'
required: false
default: 'v0.12.0'
default: 'v0.14.1'

permissions:
contents: write
Expand Down Expand Up @@ -37,10 +37,10 @@ jobs:
run: cargo build --release --locked

- name: Build Debian/Ubuntu Package (.deb)
run: ./scripts/package/build-deb-package.sh "${{ (github.ref_type == 'tag' && github.ref_name) || inputs.version || 'v0.12.0' }}"
run: ./scripts/package/build-deb-package.sh "${{ (github.ref_type == 'tag' && github.ref_name) || inputs.version || 'v0.14.1' }}"

- name: Build Fedora/RHEL Package (.rpm)
run: ./scripts/package/build-rpm-package.sh "${{ (github.ref_type == 'tag' && github.ref_name) || inputs.version || 'v0.12.0' }}"
run: ./scripts/package/build-rpm-package.sh "${{ (github.ref_type == 'tag' && github.ref_name) || inputs.version || 'v0.14.1' }}"

- name: Package Arch Linux AUR Tarball
run: |
Expand Down Expand Up @@ -68,5 +68,5 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
TARGET_TAG="${{ (github.ref_type == 'tag' && github.ref_name) || inputs.version || 'v0.12.0' }}"
TARGET_TAG="${{ (github.ref_type == 'tag' && github.ref_name) || inputs.version || 'v0.14.1' }}"
find artifacts/packages -maxdepth 1 -type f \( -name "*.deb" -o -name "*.rpm" -o -name "*.tar.gz" -o -name "SHA256SUMS.txt" \) -exec gh release upload "$TARGET_TAG" --clobber {} +
4 changes: 1 addition & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@ The source of truth for architecture and coding rules is:
- [`.claude/rules/coding.md`](.claude/rules/coding.md)
- [`.claude/rules/governance.md`](.claude/rules/governance.md)
- [`.claude/rules/benchmarks.md`](.claude/rules/benchmarks.md)
- Agent orchestration and dispatch: [`.claude/rules/agent-orchestration.md`](.claude/rules/agent-orchestration.md).
- Its rendered policy and canonical typed records are the machine-checked source.

### Before planning, editing, or opening a patch/PR

Expand Down Expand Up @@ -76,5 +74,5 @@ PR descriptions must follow `.github/pull_request_template.md` strictly: canonic
- No persisting secrets.
- No undocumented dependencies.
- **Reliability Gap Register & Release Parity**: Keep `docs/reliability/GAP-REGISTER.md`
semantically synchronized with active CI status and releases (`v0.14.0`). Phantom
semantically synchronized with active CI status and releases (`v0.14.1`). Phantom
blockers (such as resolved Guard repairs) are strictly forbidden when CI gates pass.
24 changes: 16 additions & 8 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@ RamShared models **idle GPU memory** as a clean, revocable cache for an SSD-auth
RamShared enforces deterministic fail-closed execution boundaries and strict identity bindings:
- **Write-Through Invariant:** Every acknowledged write is persisted to the authoritative SSD origin before cache mutation. VRAM eviction or reclamation affects performance, not data integrity.
- **Ordered Teardown:** Swapoff-first ordering guarantees that devices are never detached while active in the kernel swap table.
- **Dynamic Headroom Protection:** GPU memory is dynamically bounded by WDDM headroom, automatically reserving `max(2 GiB, 20% total VRAM)` for 3D and graphics workloads.
- **Surface-Specific Headroom Protection:** Broker/NBD capacity reserves `max(1536 MiB, 20% of total VRAM)` and also retains a separate `768 MiB` runtime free buffer when live telemetry is available. The origin cache reserves `max(2 GiB, 20%)`; StorPort reserves `max(configured reserve, 512 MiB, 10%)`.
- **Legacy Preallocation Sunset:** The legacy full-VRAM NBD source composition and `RAMSHARED_VRAM_PREALLOC_LEGACY` selector were removed from executable source and are no longer available or supported.

| Track | Status | Deployment Architecture |
| --- | --- | --- |
| Linux / WSL2 cascade | Production Qualified (EVD-0040) | Multi-tier cascade via ublk/io_uring, page-locked DMA, and ZRAM |
| Windows StorPort | Hardware Miniport Qualified | Isolated SCM broker/consumer services communicating over local named pipes |
| Standard WSL2 cascade | Stable userspace path, live gates still tracked | NBD transport, ZRAM, revocable VRAM cache, and authoritative SSD origin |
| Native Linux / compatible WSL2 custom kernel | Bounded transport qualification (EVD-0039) | `ublk`/`io_uring` plus page-locked DMA on the recorded hardware and workload |
| CUDA host mapping | Qualified library surface (EVD-0040) | Zero-copy CUDA host mapping with `cuMemHostRegister` and `PinnedHostMapping` |
| Windows StorPort | Experimental supervised-lab surface | Isolated SCM broker/consumer services; public distribution remains blocked |

---

Expand Down Expand Up @@ -46,9 +48,16 @@ origin failure.
(disk swap or sufficient free RAM). The controller verifies this before any lifecycle
transition.

On WSL2, Windows WDDM/VidMm remains the memory authority. The physical target
is the minimum of logical capacity, the sealed cache cap, and the measured
budget after external use and `max(2 GiB, 20% total VRAM)` headroom.
On WSL2, Windows WDDM/VidMm remains the memory authority. Standard WSL2 uses
NBD as its baseline transport. `ublk`/`io_uring` is qualified on native Linux
or WSL2 with a compatible custom kernel; it is not assumed on stock WSL2.

The broker/NBD physical target is bounded by the logical request, measured
capacity, `max(1536 MiB, 20% of total VRAM)` capacity reserve, and a separate
`768 MiB` runtime free buffer. The origin cache instead applies
`max(2 GiB, 20%)`, while StorPort applies
`max(configured reserve, 512 MiB, 10%)`. A capacity reserve limits admitted
cache; a runtime buffer protects new allocations as external use changes.

### Control-Plane Containment

Expand All @@ -68,7 +77,7 @@ The codebase is organized into 15 focused Rust crates across 6 architectural tie
| Layer | Crates | Role & Responsibility |
| :--- | :--- | :--- |
| **Layer 1: Frontend & CLI** | [`ramshared-cli`](crates/ramshared-cli/README.md) | Primary operator interface (`doctor`, `stress`, `monitor`, `top`, `cascade`, `diagnose`). |
| **Layer 2: Daemons & Agents** | [`ramshared-wsl2d`](crates/ramshared-wsl2d/README.md)<br>[`ramshared-agent`](crates/ramshared-agent/README.md)<br>[`ramshared-winsvc`](crates/ramshared-winsvc/README.md)<br>[`ramshared-winbroker`](crates/ramshared-winbroker/README.md) | In-guest block device daemon (`ublk`/NBD), local kernel swap agent, Windows StorPort worker service, and SCM broker daemon. |
| **Layer 2: Daemons & Services** | [`ramshared-wsl2d`](crates/ramshared-wsl2d/README.md)<br>[`ramshared-agent`](crates/ramshared-agent/README.md)<br>[`ramshared-winsvc`](crates/ramshared-winsvc/README.md)<br>[`ramshared-winbroker`](crates/ramshared-winbroker/README.md) | In-guest block device daemon (NBD baseline; conditional `ublk`), local host-observation service, Windows StorPort worker service, and SCM broker daemon. |
| **Layer 3: Broker & Policy** | [`ramshared-broker`](crates/ramshared-broker/README.md)<br>[`ramshared-config`](crates/ramshared-config/README.md)<br>[`ramshared-tier`](crates/ramshared-tier/README.md) | Logical lease arbitration, fail-closed configuration parsing, and 3-tier cascade state machine (N1/N2/N3 hysteresis). |
| **Layer 4: Memory & I/O** | [`ramshared-vram`](crates/ramshared-vram/README.md)<br>[`ramshared-cuda`](crates/ramshared-cuda/README.md)<br>[`ramshared-vulkan`](crates/ramshared-vulkan/README.md)<br>[`ramshared-uring`](crates/ramshared-uring/README.md) | Hardware-agnostic VRAM allocator abstraction, NVIDIA CUDA DMA, cross-vendor Vulkan allocator (AMD/Intel), and Linux `io_uring` engine. |
| **Layer 5: Storage & Origin** | [`ramshared-block`](crates/ramshared-block/README.md)<br>[`ramshared-integrity`](crates/ramshared-integrity/README.md)<br>[`ramshared-dxg`](crates/ramshared-dxg/README.md) | Authoritative SSD origin persistence, SHA-256 block corruption prevention, and `/dev/dxg` WDDM memory budget query. |
Expand Down Expand Up @@ -101,4 +110,3 @@ Logical lease arbitration is isolated into a dedicated least-privilege `RamShare
## Verification & Failure Mode Registry

All architectural transitions and failure edge cases are cataloged in the [Degradation Matrix](docs/reliability/DEGRADATION-MATRIX.md). Stress testing, benchmark qualifications, and operational validation execute against controlled, isolated test harnesses with watchdog limits to prevent host resource starvation.

3 changes: 0 additions & 3 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@

[`.claude/rules/*.md`](.claude/rules/*.md) are the authoritative code rules. `AGENTS.md` mirrors these guidelines.

- Agent orchestration and dispatch: [`.claude/rules/agent-orchestration.md`](.claude/rules/agent-orchestration.md).
- Its rendered policy and canonical typed records are the machine-checked source.

**Documentation scope:** only this repository. Do not load or invent requirements from other products/monorepos when working here.

Before changing code:
Expand Down
Loading
Loading