Repository navigation
SendBeam v2.2.0
Cryptographic Verification
All release binaries and installer packages are cryptographically signed and verifiable end-to-end:
- Minisign (Ed25519):
# Verify SHA256SUMS.txt using the official SendBeam public key:
minisign -Vm SHA256SUMS.txt -P RWTcyDWHWbxnuo3LVM5mWoZrx0HDwSQzAZvXK1lPRcdtJxshUDxJh+rE- Sigstore Cosign (Keyless OIDC):
# Verify the GitHub Actions OIDC identity attestation:
cosign verify-blob --bundle SHA256SUMS.txt.sigstore.json --certificate-identity-regexp 'github.com/Akshay7273/sendbeam' --certificate-oidc-issuer https://token.actions.githubusercontent.com SHA256SUMS.txt- SHA-256 Checksums:
# Verify downloaded asset checksum against the signed manifest:
sha256sum -c SHA256SUMS.txt --ignore-missingChanges
SendBeam v2.2 — Release Gate
The v2.2 milestone (Repeatable Handoffs) gates release on the checks below, each verified against merged main.
Theme: save a handoff workflow, preview it, and optionally run it on a schedule or when selected local files become ready. A routine is a one-way delivery, not a shared folder or backup system: it does not mirror deletions, overwrite existing files by default, pull arbitrary remote files, or promise that all historical versions will be retained.
Automation posture: saved recipes start disabled or approval-required. Automated dispatch (watch/schedule) needs a separate explicit auto-send grant on a native user-scoped runner. Sender auto-send permission and receiver auto-accept permission are distinct; neither implies the other.
1. Gate Checks
| # | Requirement | Result | Evidence |
|---|---|---|---|
| 1 | Saved handoff recipe schema and explicit automation grants (V22-PR01) Small, local, reviewable workflow model: explicit local source roots/selections, fixed authenticated recipients, allowed network/privacy mode, filters, trigger, expiry, budgets. Default new/imported/changed recipes to disabled or approval-required. Material changes invalidate prior automation consent. No secrets embedded in recipe files; imported recipes never run automatically. |
PASS | packages/engine/recipes/ (schema, store, grants). Merged via PR #218 (1bf0f616). |
| 2 | Manual one-shot recipe runs and secret-free dry-run preview (V22-PR02) Save/edit/duplicate recipes; dry-run plan (sources, recipients, filters, limits, estimated bytes) with no transfers or remote effects; explicit Run enqueues ordinary jobs. Preview distinguished from execution; revalidation at enqueue/send. No second job queue. |
PASS | Recipe resolver/runner, CLI recipe preview/run, versioned DTO output. Merged via PR #219 (f009e5e5). |
| 3 | Bounded user-scoped routine runner with AutoSend grant enforcement (V22-PR03) Explicitly enabled, bounded host for automated triggers. Single ownership, restart reconciliation, bounded admission/resources, disable-all, per-user startup controls; autostart off by default. Locked credential store pauses visibly rather than falling back to plaintext. No privileged system-wide service. |
PASS | Runner, ownership lease, CLI/desktop controls. Merged via PR #220 (b641d0e3). |
| 4 | Watched-folder one-way handoffs (V22-PR04) Explicitly selected new/changed stable files become ordinary one-way delivery jobs. Default discovered changes to an approval-required queue; automatic dispatch needs a separate explicit grant. Debounce/coalesce bursts, stability revalidation, bounded reconciliation, symlink-escape and receive-folder feedback-loop protection. No mirror deletion, no two-way sync. |
PASS | fsnotify watcher adapter, debounce/cooldown. Merged via PR #221 (04d9102d). |
| 5 | Explicit schedules with bounded catch-up (V22-PR05) Intervals and daily local-time schedules with persisted timezone and next-run semantics. DST gaps/repeats, clock jumps, sleep, missed runs defined: default skip or one bounded catch-up ( max_catchup_runs, 0–10, default 3), never every missed occurrence. Durable idempotency cursor; single active execution per recipe. |
PASS | Scheduler, durable cursor, deterministic-clock tests. Merged via PR #222 (bbe5fa8c). |
| 6 | Provenance, receiver auto-accept policy, pause/disable controls (V22-PR06) Local cause/provenance attached to normal transfer jobs (advisory label, no file contents, no reusable secrets); sender byte/file/run/concurrency ceilings independent of receiver quotas. Receiver auto-accept policy stays separate from sender auto-send. Run now / Preview / Pause / Disable / Reapprove; widening recipe scope requires reapproval. |
PASS | Provenance on jobs + wire manifest, receiver policy, CLI/desktop controls. Merged via PR #223 (676febd5). |
| 7 | Isolation, failure recovery, chaos/resource evidence (V22-PR07) End-to-end recipes against real listeners and real filesystems: overlapping recipes, receive-folder loops, event floods, changed sources, large directories, offline periods, disk-full, locked credentials, revoked recipients, policy changes, crashes around enqueue/receiver-commit/ack. No unauthorized source inclusion, automatic overwrite, remote deletion, unbounded queue growth, or secret exposure. |
PASS | Integration/chaos harness, resource budgets. Merged via PR #224 (84c1ee45). |
| 8 | Release evidence, upgrade/rollback checks, release notes (V22-PR08) This document. Upgrade proved additive, rollback proved safe, wire interop proved byte-exact, final hygiene sweep clean. |
PASS | This PR. Evidence in §7. |
2. v2.2 PR Table (verified against main and the GitHub API, 2026-09-20)
| Logical ID | PR (number + URL) | Merge SHA | One-line description |
|---|---|---|---|
| V22-PR01 | #218 | 1bf0f6163ffa611608d7da7e3b1a9ee6d389b366 |
Saved handoff recipe schema and explicit automation grants |