release-crate-docs: crate docs final pass — doc gate green with -D warnings posture recorded in AGENTS.md, warn(missing_docs) adopted on the four published crates (audit probe 0; Error enum+fields, sqlite substrate fuzz-surface fns filled), accuracy pass fixed core drifts (trim_to wake nuance, ADR-023 §2 domain rules + shared paragraph, QueueOpts gloss, MemStore::new exception) and engine postures (eleven-vs-ten tx-method count, spawn_blocking rationale via sync substrate, one-host cross-process honesty element), spec-side aligned (pg locks family + row-backed wording, mem clock-accessor home), two boundary-wording dispositions recorded for release-contract-window-close (try_recv arms, 8000-byte <= reading), queue round-trip doctest landed in alkstore-mem crate docs; task -> completed with Notes + Summary
This commit is contained in:
1 parent
5f5f6741d5
commit
8e27f4b64b
22 files changed
+289
-49
No files matched your search
@@ -5,8 +5,10 @@
|
||||
//! # Posture
|
||||
//!
|
||||
//! **Single-host** (ADR-016): this engine is file-backed, one machine,
|
||||
//! no runtime capability surface, no multi-host mode — NFS
|
||||
//! two-writers-unsupported is the inherited lineage honesty, stated
|
||||
//! no runtime capability surface, no multi-host mode — cross-process
|
||||
//! *on one host* is verified ground (`data_version` is cross-process
|
||||
//! by nature; deployment.md's matrix line), NFS two-writers
|
||||
//! unsupported is the inherited lineage honesty, stated
|
||||
//! here as the crate's deployment boundary (compile-time engine
|
||||
//! identity is the only engine-discovery mechanism — pick this crate,
|
||||
//! get this posture). Durability knobs, pool sizing, and the watcher
|
||||
@@ -20,8 +22,14 @@
|
||||
//! points holds it; consumers budget transactions accordingly.
|
||||
//!
|
||||
//! Every engine call round-trips a blocking thread (the
|
||||
//! `spawn_blocking` seam — rusqlite connections are not
|
||||
//! `Send`-across-await; the family REQ-TTY-01 posture).
|
||||
//! `spawn_blocking` seam — the substrate is sync machinery, std
|
||||
//! threads and blocking iterators, bridged at the trait seam per the
|
||||
//! family REQ-TTY-01 posture).
|
||||
//!
|
||||
//! Every public item carries doc text; the missing-docs lint is part
|
||||
//! of the standing gates.
|
||||
|
||||
#![warn(missing_docs)]
|
||||
|
||||
mod lock;
|
||||
mod notify;
|
||||
|
||||
@@ -26,9 +26,12 @@
|
||||
//! [`SqliteStore::close`].
|
||||
//!
|
||||
//! Every engine call round-trips the `spawn_blocking` seam
|
||||
//! ([`crate::seam`]); rusqlite connections are not
|
||||
//! `Send`-across-await. Single-host by nature: file-backed, one
|
||||
//! machine; NFS two-writers-unsupported (the lineage's honesty
|
||||
//! ([`crate::seam`]) — the substrate is sync machinery (std threads,
|
||||
//! blocking iterators) bridged at the trait seam, per the family
|
||||
//! REQ-TTY-01 posture. Single-host by nature: file-backed, one
|
||||
//! machine; cross-process on one host is verified ground
|
||||
//! (`data_version` is cross-process by nature); NFS
|
||||
//! two-writers-unsupported (the lineage's honesty
|
||||
//! posture, inherited — ADR-016).
|
||||
|
||||
use alkstore::Store;
|
||||
|
||||
@@ -487,6 +487,8 @@ fn now_unix(conn: &Connection) -> rusqlite::Result<i64> {
|
||||
conn.query_row("SELECT unixepoch()", [], |r| r.get(0))
|
||||
}
|
||||
|
||||
/// The substrate's `@every` interval parser (`@every <n><unit>`,
|
||||
/// `<unit>` in `s|m|h|d`) — fuzz/test-only surface.
|
||||
pub fn parse_every_interval(spec: &str) -> Result<i64, String> {
|
||||
let body = spec
|
||||
.strip_prefix("@every ")
|
||||
@@ -524,6 +526,8 @@ fn next_every_boundary(spec: &str, after: i64) -> Result<i64, String> {
|
||||
.ok_or_else(|| format!("next boundary overflows for {spec:?}"))
|
||||
}
|
||||
|
||||
/// The substrate's schedule skip-forward arithmetic — fuzz/test-only
|
||||
/// surface.
|
||||
pub fn skip_forward(next_fire_at: i64, now: i64, interval: i64) -> i64 {
|
||||
let gap = now as i128 - next_fire_at as i128;
|
||||
let interval = interval.max(1) as i128;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//! The transactional seam's SQLite arm — `begin_tx`, the
|
||||
//! [`SqliteTxHandle`] (the writer-slot lease, ADR-007), and all eleven
|
||||
//! `*_tx` methods (`sqlite-engine-seam-tx`).
|
||||
//! transaction-handle methods (ten `*_tx` ops plus `commit`) (`sqlite-engine-seam-tx`).
|
||||
//!
|
||||
//! `begin_tx` acquires the writer slot and opens `BEGIN IMMEDIATE` on
|
||||
//! the acquired connection; the handle owns connection + slot. Every
|
||||
|
||||
Reference in new issue
Block a user