Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
e9a931c
test(core): specify enterprise approval lifecycle
seonghobae Aug 23, 2026
fc8dd10
test(policy): locate enterprise approval lifecycle boundary
seonghobae Aug 23, 2026
e55aa15
test(policy): move enterprise approval lifecycle regression
seonghobae Aug 23, 2026
bee1d34
test(policy): format enterprise approval lifecycle regression
seonghobae Aug 23, 2026
0431c4c
feat(policy): implement enterprise approval lifecycle
seonghobae Aug 23, 2026
5ca0d73
feat(policy): expose enterprise approval lifecycle
seonghobae Aug 23, 2026
c63ba3c
style(policy): apply canonical Rust formatting
seonghobae Aug 23, 2026
0d32899
test(policy): cover approval terminal transition guards
seonghobae Aug 23, 2026
88a5086
style(policy): apply canonical Rust formatting
seonghobae Aug 23, 2026
f1432f5
test(core): reject approval clock rollback
seonghobae Aug 23, 2026
c80b552
fix(core): enforce monotonic approval lifecycle time
seonghobae Aug 23, 2026
f120367
test(core): pin approval rollback error contract
seonghobae Aug 23, 2026
369aa6c
style(core): apply canonical approval time formatting
seonghobae Aug 23, 2026
e634a63
test(core): forbid cloning approval accounting state
seonghobae Aug 23, 2026
f9b5937
fix(core): make approval accounting state non-cloneable
seonghobae Aug 23, 2026
08390f8
style(core): satisfy strict clone-contract clippy
seonghobae Aug 23, 2026
44947cd
test(policy): cover monotonic pending transitions
seonghobae Aug 23, 2026
e54ce8f
docs(changelog): record enterprise approval lifecycle
seonghobae Aug 23, 2026
fb6113e
test(policy): prevent enterprise approval replay
seonghobae Aug 23, 2026
98ea5c7
test(policy): format approval replay regression
seonghobae Aug 23, 2026
618ad1e
fix(policy): make consumed enterprise approvals one-shot
seonghobae Aug 23, 2026
2a95e1e
fix(policy): apply canonical approval-use formatting
seonghobae Aug 23, 2026
8015ae6
docs(policy): record one-shot enterprise approval authority
seonghobae Aug 23, 2026
ed4cab1
docs(policy): index enterprise approval ADR
seonghobae Aug 23, 2026
2fb49a3
chore(policy): realign enterprise approval to protected main
seonghobae Aug 25, 2026
ee3cac4
test(policy): pin approval-use expiry at evaluation
seonghobae Aug 25, 2026
09df6e0
fix(policy): revalidate approval expiry at evaluation
seonghobae Aug 25, 2026
ad2b515
docs(policy): bound approval use lifetime and crash claims
seonghobae Aug 25, 2026
158fe1c
docs(policy): make checker authorization boundary explicit
seonghobae Aug 25, 2026
bc6c99f
test(policy): pin revocation of outstanding enterprise approval use
seonghobae Aug 25, 2026
cc59746
fix(policy): invalidate outstanding uses after checker revocation
seonghobae Aug 25, 2026
185cf67
docs(policy): bind outstanding uses to checker revocation
seonghobae Aug 25, 2026
6ad9c10
test(core): revoke exhausted outstanding approval use
seonghobae Aug 25, 2026
8e2491b
fix(core): revoke exhausted outstanding approval uses
seonghobae Aug 25, 2026
0ee005d
docs(adr): revoke final outstanding enterprise uses
seonghobae Aug 25, 2026
1a6d50c
test(policy): protect approval scope privacy at expiry
seonghobae Aug 25, 2026
af251ad
test(policy): format approval scope privacy regression
seonghobae Aug 25, 2026
4d8bad3
fix(policy): enforce approval scope before lifecycle state
seonghobae Aug 25, 2026
2059a6f
test(policy): protect actor identity before expiry state
seonghobae Aug 25, 2026
6d461d9
test(policy): apply canonical formatting
seonghobae Aug 25, 2026
9205583
fix(policy): validate actor identity before lifecycle state
seonghobae Aug 25, 2026
ae36811
test(approval): reject bidi controls in principal refs
seonghobae Aug 25, 2026
6ba9d89
fix(approval): reject bidi controls in principal refs
seonghobae Aug 25, 2026
7dd5c84
docs(approval): bind principal display safety to Unicode bidi controls
seonghobae Aug 25, 2026
d7de052
docs(standards): record Unicode bidi-control identity boundary
seonghobae Aug 25, 2026
cda5538
docs(changelog): record principal bidi-control hardening
seonghobae Aug 25, 2026
4d27493
docs(approval): clarify actor separation boundary
seonghobae Aug 25, 2026
093a8a9
test(policy): cover observed expiry invalidation
seonghobae Aug 25, 2026
a8b9498
fix(policy): invalidate issued uses on observed expiry
seonghobae Aug 25, 2026
cfabd8b
docs(adr): bind issued uses to observed terminal expiry
seonghobae Aug 25, 2026
1030018
fix(policy): apply canonical rustfmt to terminal invalidation
seonghobae Aug 25, 2026
ce001d3
test(policy): reject approval use scope drift
seonghobae Aug 25, 2026
248740a
test(policy): format approval scope regressions
seonghobae Aug 25, 2026
f04980c
fix(policy): bind approval use to exact request scope
seonghobae Aug 25, 2026
e0740a6
docs(adr): align approval-use scope ordering
seonghobae Aug 25, 2026
c1a1dac
Merge remote-tracking branch 'origin/main' into feat/enterprise-appro…
seonghobae Aug 27, 2026
ce58560
test(policy): reject invisible approval principal formatting
seonghobae Aug 27, 2026
3b7ed13
fix(policy): reject invisible approval principal formatting
seonghobae Aug 27, 2026
5fbda51
test(policy): reject remaining presentation controls
seonghobae Aug 27, 2026
41f0dbd
fix(policy): reject approval presentation controls
seonghobae Aug 27, 2026
7cdf399
docs(changelog): record approval presentation-control hardening
seonghobae Aug 27, 2026
a2b0c53
docs(adr): record principal presentation-control boundary
seonghobae Aug 27, 2026
b11db2b
Merge branch 'main' into feat/enterprise-approval-intent-lifecycle
opencode-agent[bot] Aug 28, 2026
f820502
test(policy): redact enterprise approval debug identity
seonghobae Aug 28, 2026
cb04781
test(policy): format approval debug privacy regression
seonghobae Aug 28, 2026
919190c
fix(policy): redact enterprise approval debug identity
seonghobae Aug 28, 2026
c8498d7
style(policy): apply canonical rustfmt to debug redaction
seonghobae Aug 28, 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
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,10 @@ All notable changes to OriginWeave are documented in this file. The format follo

- Refreshed the product-gap queue to 126 open pull requests (54 ready, 72 draft) after #190, #188, #185, #192, #182, #184, #115, #181, #116, #117, #118, #183, #114, #127, #112, #109, #186, #110, #108, #111, #174, and #113 were merged into their immediate stacked prerequisites. PRs #147, #146, #145, #144, #143, #142, #141, #139, #136, #132, #129, and #128 moved to ready after exact-head checks and thread review; these are queue-consolidation results, not protected-main shipment.

- Added a bounded enterprise maker-checker approval lifecycle with opaque principal references, exact immutable-scope approval, distinct maker/checker enforcement, bounded expiry and use counts, monotonic trusted-time transitions, fail-closed terminal states, and non-cloneable one-shot policy-evaluation uses so consumed enterprise authority cannot be replayed as reusable approval evidence.

### Added

- Corrected the 2026-08-26 product-gap snapshot with current #229 presentation-identity evidence, stacked-only #205 integration evidence, current base/head pairs, the 126-PR queue count, explicit root-versus-child merge ordering, and the active GitHub counted-approval gate.
- Refreshed the product and technical gap baseline onto the 2026-08-26 live inventory: 126 open pull requests (54 ready, 72 draft), protected-main promotion of #168/#194/#196/#216/#151, a verified maintenance-loop record (supersession closure of #153, conflict reconciliations on #37/#149/#152/#173/#175, issue #212 option-(b) authorization on #43, Strix vuln-0001 homoglyph remediation on #124), provider-rerun outcome evidence, an organization review-pipeline congestion record, and refreshed merge-order queue guidance. Documentation evidence contracts were aligned to the same snapshot so the baseline, its dated markers, and the pinned exact-head rows cannot silently diverge.

Expand Down Expand Up @@ -76,6 +79,8 @@ All notable changes to OriginWeave are documented in this file. The format follo
- Crawler mode is read-only, must pair with the public-crawl purpose, and fails closed without an applicable robots-policy decision.
- State-changing actions are same-origin by default.
- R3 and R4 approvals are bound to the exact action, target origin, and immutable digest of the complete canonical action intent; R5 legal consent is non-delegable.
- Consumed enterprise maker-checker approvals expose only a non-cloneable one-shot policy-evaluation use; denial still burns the consumed use and the reusable caller policy context is not upgraded with enterprise approval evidence.
- Enterprise approval principal references reject Unicode `Bidi_Control` characters plus soft hyphen, zero-width separators/joiners, word-joining controls, deprecated invisible formatting controls, and byte-order marks so exact `(issuer, subject)` authority tuples cannot differ only by operator-confusable presentation state.
- Shortened, integer, hexadecimal, and legacy octal-looking IPv4 host spellings are rejected so the policy origin cannot diverge from Chromium host interpretation.
- IPv4-mapped IPv6 is canonicalized before destination classification and pin comparison so mapped private or loopback addresses cannot bypass IPv4 policy.
- The default destination policy permits only public addresses and denies unspecified, loopback, private, shared, link-local, metadata, documentation, benchmarking, multicast, broadcast, transition, and protocol-reserved destinations.
Expand Down
Loading
Loading