Skip to content

Commit 3dd55a7

Browse files
committed
feat: prove first-run and recovery paths
1 parent 5aa30e9 commit 3dd55a7

26 files changed

Lines changed: 1554 additions & 1074 deletions

‎.github/workflows/ci.yml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ jobs:
2323
- run: pnpm run test:coverage
2424
- run: pnpm run build
2525
- run: pnpm run pack:check
26+
- run: pnpm run test:package
27+
- run: pnpm run test:recovery
2628
- run: pnpm audit --audit-level=high
2729

2830
postgresql:

‎CHANGELOG.md‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,16 @@
44

55
## 0.13.0 - 2026-08-15
66

7+
- Replace the exhaustive README with an outcome-first introduction, explicit
8+
fit and correctness boundaries, sourced comparisons, and factual design
9+
provenance.
10+
- Add a packaged SQLite quickstart, a clean-install tarball smoke test, and a
11+
deterministic multi-process crash and fencing demonstration.
12+
- Add a reproducible benchmark harness, record locally observed SQLite,
13+
PostgreSQL 18, and MySQL 8.4 measurements, and label other configurations as
14+
unmeasured.
15+
- Add support, contribution, and security policies plus stronger local
16+
Markdown link validation.
717
- **Breaking:** make unwrapped observables invalidation-only by default. They
818
continue to detect changes and refresh dependent components without storing
919
or sending their values. Wrap a projection in `broadcastValue()` to share

‎CONTRIBUTING.md‎

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Contributing
2+
3+
Solid Objects changes can affect durable state and recovery. A contribution
4+
should explain the invariant it changes and include a regression test at the
5+
lowest layer that can prove it.
6+
7+
## Setup
8+
9+
Install Node.js 24.15 or newer, enable Corepack, and install the locked
10+
dependencies:
11+
12+
```bash
13+
corepack enable
14+
pnpm install --frozen-lockfile
15+
```
16+
17+
## Validation
18+
19+
Run the local quality gates before opening a pull request:
20+
21+
```bash
22+
pnpm run format:check
23+
pnpm run check
24+
pnpm run test:coverage
25+
pnpm run build
26+
pnpm run pack:check
27+
pnpm run test:package
28+
pnpm run test:recovery
29+
```
30+
31+
Run `pnpm run test:browser` after installing Playwright Chromium. The database
32+
and wake-up suites use these variables:
33+
34+
- `SOLID_OBJECTS_DATABASE_URL` for PostgreSQL or MySQL integration tests;
35+
- `SOLID_OBJECTS_REDIS_URL` for the optional Redis wake-up suite.
36+
37+
Use disposable databases. Do not include credentials, production data,
38+
customer identifiers, or other personal information in fixtures or reports.
39+
40+
## Correctness changes
41+
42+
For mailbox, lease, fencing, retry, effect, reminder, or migration changes,
43+
include the failure sequence the test exercises. Prefer deterministic clocks,
44+
explicit process coordination, and durable assertions over sleeps or mock-only
45+
proof. Update [Correctness and delivery semantics](docs/correctness.md) when a
46+
guarantee or limitation changes.

0 commit comments

Comments
 (0)