Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
d1fbb2a
feat(bap): bind lifecycle receipts to idempotency keys
seonghobae Aug 21, 2026
75bbeb7
test(bap): reject post-hoc receipt minting
seonghobae Aug 21, 2026
202aa55
fix(bap): mint receipts only at accepted command boundary
seonghobae Aug 21, 2026
3e0dc5d
test(bap): require tenant-scoped command receipts
seonghobae Aug 21, 2026
86f7a6b
test(bap): format tenant-scope RED regression
seonghobae Aug 21, 2026
3e11147
fix(bap): scope command receipts by tenant namespace
seonghobae Aug 21, 2026
ebc637e
docs(api): make BAP tenant-scoped receipt truth explicit
seonghobae Aug 21, 2026
f5eed0c
docs(bap): document tenant-scoped receipts
seonghobae Aug 21, 2026
5bfc188
test(bap): require idempotent receipt replay
seonghobae Aug 21, 2026
20f50c8
test(bap): format receipt replay regression
seonghobae Aug 21, 2026
f6e3a3a
feat(bap): replay exact idempotent receipts
seonghobae Aug 21, 2026
67821ce
test(bap): reject replay on unrelated lifecycle state
seonghobae Aug 21, 2026
e8fc7ec
fix(bap): bind idempotent replay to lifecycle state
seonghobae Aug 21, 2026
8fafe5d
test(bap): cover stale receipt replay refusal
seonghobae Aug 21, 2026
e7e32a5
style(bap): apply canonical rustfmt
seonghobae Aug 21, 2026
ccd2be3
test(bap): cover replay sequence mismatch branch
seonghobae Aug 21, 2026
17e49c6
test(bap): validate retry identifiers before replay comparison
seonghobae Aug 21, 2026
9f41952
fix(bap): validate retry identifiers before replay
seonghobae Aug 21, 2026
021da64
test(bap): reject replay across divergent transition paths
seonghobae Aug 21, 2026
6b13236
fix(bap): bind receipt replay to exact transition history
seonghobae Aug 21, 2026
b6d4d42
test(bap): fail closed on receipt replay after partial restore
seonghobae Aug 21, 2026
d2411d9
docs(bap): record exact-transition replay hardening
seonghobae Aug 21, 2026
9ce97c9
style(bap): apply canonical rustfmt
seonghobae Aug 21, 2026
a2cdf1b
test(bap): require credential-safe receipt debug output
seonghobae Aug 21, 2026
7253da1
fix(bap): redact receipt retry diagnostics
seonghobae Aug 21, 2026
526e1cb
style(bap): apply canonical Rust formatting
seonghobae Aug 21, 2026
7e2b40f
test(bap): require task identifier debug redaction
seonghobae Aug 21, 2026
825dd15
fix(bap): redact task identifiers from receipt debug
seonghobae Aug 21, 2026
a5d1a6a
chore(bap): apply canonical rustfmt newline
seonghobae Aug 21, 2026
dbfea3b
test(bap): require exact transition evidence for recovery
seonghobae Aug 21, 2026
81a9c4a
test(bap): cover transition recovery errors
seonghobae Aug 21, 2026
4ce264f
test(bap): cover recovery sequence mismatch
seonghobae Aug 21, 2026
e4b4564
feat(bap): restore exact transition recovery evidence
seonghobae Aug 21, 2026
cb812a4
test(bap): align recovery regression with strict clippy
seonghobae Aug 21, 2026
3001c47
refactor(bap): trust validated transition typestate on recovery
seonghobae Aug 21, 2026
37daf0d
test(bap): cover invalid recovery snapshot propagation
seonghobae Aug 21, 2026
794e532
test(bap): require persisted receipt reconstruction
seonghobae Aug 21, 2026
df89f56
fix(bap): reconstruct persisted idempotency receipts
seonghobae Aug 21, 2026
602ec20
test(bap): align persisted receipt recovery formatting
seonghobae Aug 21, 2026
72fba9b
test(bap): cover reconciliation receipt recovery
seonghobae Aug 22, 2026
0773c15
style(bap): apply canonical formatting to reconciliation recovery test
seonghobae Aug 22, 2026
3c7bd78
merge(bap): integrate reconciliation lifecycle parent
seonghobae Aug 22, 2026
9977e0c
test(bap): require read-only replay validation
seonghobae Aug 22, 2026
719878f
feat(bap): add read-only replay validation
seonghobae Aug 22, 2026
246b67b
Merge current BAP lifecycle parent into idempotency receipt stack
seonghobae Aug 22, 2026
56b335c
Merge current BAP lifecycle parent into idempotency stack
seonghobae Aug 23, 2026
40d642d
Merge current BAP lifecycle parent into idempotency stack
seonghobae Aug 23, 2026
6ce7458
Merge current BAP lifecycle parent into idempotency stack
seonghobae Aug 25, 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
4 changes: 4 additions & 0 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,10 @@ Owns validated task budgets and deterministic cumulative mitigation plans. Platf

Owns universally value-redacted network evidence and source-bound provenance records. Generic network records retain only bounded method, canonical origin, unambiguous bounded path, and bounded field names. Body capture, typed metadata values, WARC serialization, object storage, retention, encryption, and legal policy remain future bounded modules.

### `originweave-bap`

The active BAP lane owns the in-memory task lifecycle and immutable command-receipt contract. A receipt binds a bounded tenant namespace, idempotency key, and task identifier to one accepted lifecycle event; the caller-supplied tenant namespace scopes retry identity only and is not authentication. The receipt can identify an exact retry but is not durable deduplication, policy authority, transport, browser state, or side-effect suppression.

## 6. Planned modules

```text
Expand Down
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ All notable changes to OriginWeave are documented in this file. The format follo

### Changed

- Added an active BAP in-memory command receipt that binds bounded tenant namespaces, idempotency keys, and task identities to accepted lifecycle transitions without claiming authenticated tenant authority, durable deduplication, or side-effect suppression.
- Receipt replay now additionally requires the lifecycle's actual most recently accepted transition to equal the retained receipt transition; same-state/same-sequence divergent histories and state-only restored snapshots fail closed instead of replaying ambiguous command evidence.
- Aligned the hourly product-development branch-coverage toolchain and its one-shot materializer with the reviewed `nightly-2026-08-18` pin, and corrected the official Dependabot Rust-toolchain reference.
- Separated logical origin authority from resolved network destination authority; an origin grant no longer implies permission to connect to every resolver result.
- Separated resolved-address authorization from direct transport evidence; an approved IP now becomes a usable stream only after the operating system reports the exact requested IP and port.
Expand Down
Loading
Loading