A library-first postal protocol built on Keel.
Find a file
PerishCode b2a1378716
All checks were successful
guard / guard (pull_request) Successful in 2m4s
guard / guard (push) Successful in 1m19s
Describe Posta's real guard and land entrypoints
Describe Posta's real guard and land entrypoints

The named Runseal profiles :guard and :land were removed with the generic
wrapper suite, and .runseal/ no longer exists. Point Operating at the
canonical guard lane in .forgejo/workflows/guard.yml and at plumb land.

Land-Source: agents-entrypoint-drift@61ce9c58ee81e970ebac2112f7cdcb7da0971b03
2026-08-11 13:46:18 +08:00
.cargo Cold-start Posta and consume the wrapperless Runseal profile 2026-08-02 16:54:32 +08:00
.forgejo/workflows Cold-start Posta and consume the wrapperless Runseal profile 2026-08-02 16:54:32 +08:00
crates/posta Cold-start Posta and consume the wrapperless Runseal profile 2026-08-02 16:54:32 +08:00
docs Cold-start Posta and consume the wrapperless Runseal profile 2026-08-02 16:54:32 +08:00
.gitignore Cold-start Posta and consume the wrapperless Runseal profile 2026-08-02 16:54:32 +08:00
AGENTS.md Describe Posta's real guard and land entrypoints 2026-08-11 13:46:18 +08:00
Cargo.lock Refresh Keel lock resolution 2026-08-06 17:34:50 +08:00
Cargo.toml Cold-start Posta and consume the wrapperless Runseal profile 2026-08-02 16:54:32 +08:00
ectropy.toml Cold-start Posta and consume the wrapperless Runseal profile 2026-08-02 16:54:32 +08:00
LICENSE Cold-start Posta and consume the wrapperless Runseal profile 2026-08-02 16:54:32 +08:00
README.md Cold-start Posta and consume the wrapperless Runseal profile 2026-08-02 16:54:32 +08:00
runseal.toml Cold-start Posta and consume the wrapperless Runseal profile 2026-08-02 16:54:32 +08:00
sidecar.toml Cold-start Posta and consume the wrapperless Runseal profile 2026-08-02 16:54:32 +08:00

posta

Library-first postal protocol built on Keel.

Posta declares mailboxes, threads, letters, receipts, and their transactional ceremonies. Keel projects that model into storage, HTTP, authority, lifecycle, events, and estate evolution.

Cold start

use keel::adapt::db::Sqlite;
use keel::bootstrap;
use posta::{Post, Store};

# async fn example() -> Result<(), Box<dyn std::error::Error>> {
let wire = Sqlite::memory().await?;
let mut boot = bootstrap(posta::graph(), wire)?;
let token = boot.mint().await?;
let core = boot.seal(&token).await?.share();
let post = Store::new(core)
    .stage(Post {
        mailbox: "ada",
        request: "request-1",
        content: "hello",
        created: "2026-07-30T00:00:00Z",
    })
    .await?;
assert!(!post.deduplicated);
# Ok(())
# }

The initial protocol is the library behavior and its scenario suite. It ships no binary and owns no runtime configuration. The crate version is the schema version for this executable model.

Verification

runseal :init
runseal :guard