Pin oxygen: a new log key is a note, and oxy tlog verify 7dbb41b09a99
Run 363 failed: a test's fetch found its hub's log signed by another key than one pinned at the same address by an earlier test (ports reused), which oxy took for a fork. oxygen b26c0033 makes a changed key a note that pins the new one; the fetch test now checks that too. Refs #238
- Author
- Andy McCall @andymccall <[email protected]>
- via
- agent
agent:claude@andymccall <[email protected]> · keyless, under your grant for changes,refs,seal · key f9beb368185f
- When
- · 2026-10-18 00:19 UTC
- Signature
- ◈ sealed by agent:claude@andymccall
- Hash
7dbb41b09a99ace1e68892a6b1da3c695c46b2b549b2cbb51a42e272be91a25e- Depends on
- 380996db84e5 42fa95540468 e5b97ac399e7
- Depended on by
- 4f40eed0588f
- In bookmarks
- api-unknown-fields cancel-landed-runs diffusion-pin-bookmark draft-ready main oh-comment-body-file proposal-list-fast
- In tags
- v0.6.0 v0.6.1 v0.7.0 v0.8.0 v0.9.0 v0.9.1 v0.9.11 v0.9.15 v0.9.16 v0.9.19 v0.9.2 v0.9.20 v0.9.21 v0.9.22 v0.9.23 v0.9.24 v0.9.3 v0.9.4 v0.9.5 v0.9.6 v0.9.7 v0.9.8 v0.9.9
- Edits
- 2 atoms, 0 tree operations, 2 files
Browse the tree at this change
modified crates/hub/tests/flow.rs +12 −0
| … | 5070 unchanged lines |
||
| 5071 | 5071 | let report = b.fetch("origin").unwrap(); |
|
| 5072 | 5072 | assert!(report.log_notes.iter().any(|n| n.contains("not in its transparency log yet")), "{:?}", report.log_notes); |
|
| 5073 | 5073 | ||
| 5074 | + | // A log key other than the one pinned (a hub given a new key, or a |
|
| 5075 | + | // port reused by another hub): a note, and the new key pinned. |
|
| 5076 | + | let text = std::fs::read_to_string(&pin).unwrap(); |
|
| 5077 | + | let other_sk = oxy_core::identity::SecretKey::generate(); |
|
| 5078 | + | let other = other_sk.identity("another hub", "[email protected]", 1); |
|
| 5079 | + | let note = text.split_once('\n').unwrap().1; |
|
| 5080 | + | std::fs::write(&pin, format!("{}\n{note}", oxy_core::dsse::base64(&other.encode()))).unwrap(); |
|
| 5081 | + | let report = b.fetch("origin").unwrap(); |
|
| 5082 | + | assert!(report.log_notes.iter().any(|n| n.contains("signed by another key")), "{:?}", report.log_notes); |
|
| 5083 | + | let report = b.fetch("origin").unwrap(); |
|
| 5084 | + | assert!(!report.log_notes.iter().any(|n| n.contains("another key")), "pinned now: {:?}", report.log_notes); |
|
| 5085 | + | ||
| 5074 | 5086 | // What this user saw replaced by another log of the same size, signed |
|
| 5075 | 5087 | // by the hub's own key: the hub's real log does not extend it. |
|
| 5076 | 5088 | let size = seen(&pin).size; |
|
| … | 193 unchanged lines |
replaced deps/oxygenflow +0 −0
No line changes.