Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
e6e12b0
feat(relay/git): object-store backend with CAS pointer + content-addr…
tlongwell-block May 22, 2026
4b8345f
fix(relay/git/store): atomic pointer GET, constructive A1, conformanc…
tlongwell-block May 22, 2026
ac106d8
fix(relay/git/store): fail closed on missing CAS-response ETag
tlongwell-block May 22, 2026
1262dfd
feat(relay/git): manifest schema with canonical JSON serialization
tlongwell-block May 22, 2026
162d3ec
feat(relay/git/manifest): pub validate() + shared is_safe_refname/is_…
tlongwell-block May 22, 2026
694da12
feat(relay/git/manifest): pub pointer_key + parent-shape validation
tlongwell-block May 22, 2026
871812f
feat(relay/git): read-path hydration to ephemeral bare repo
tlongwell-block May 22, 2026
fa132d7
test(relay/git/hydrate): empty-repo clone case
tlongwell-block May 22, 2026
014c1ea
fix(relay/git/hydrate): drop dead PointerNotFound variant; narrow allow
tlongwell-block May 22, 2026
9744f91
fix(relay/git/hydrate): align pointer key with cas_publish (repos/<o>…
tlongwell-block May 22, 2026
4844001
refactor(relay/git/hydrate): import shared is_safe_refname/is_hex_oid
tlongwell-block May 22, 2026
6e9263b
refactor(relay/git/hydrate): import pointer_key from manifest
tlongwell-block May 22, 2026
7f7e364
feat(relay/git): kind:30618 ref-state event builder
tlongwell-block May 22, 2026
0bcb045
feat(git/transport): type-enforced post-push fence + fallible refs sn…
tlongwell-block May 22, 2026
686fd36
feat(git/cas_publish): the §Push step 2-7 commit point
tlongwell-block May 22, 2026
de160f9
refactor(git): structural Inv_RefDerivedFromParent via ParentState seam
tlongwell-block May 22, 2026
645ad84
test(git): gate object store and add live git e2e
tlongwell-block May 22, 2026
11085ba
feat(git/transport): all three handlers on hydrate + CAS, end to end
tlongwell-block May 22, 2026
37dad04
fix(relay/handlers): seed empty manifest pointer on kind:30617 announce
tlongwell-block May 22, 2026
63f589b
docs(git-on-object-storage): v1 deployment architecture + §Impl Corre…
tlongwell-block May 22, 2026
a898c18
test(git): assert live e2e uses S3 manifest pointer
tlongwell-block May 22, 2026
61cc38f
ci(desktop-e2e): cap git conformance probe at 8-way concurrency
tlongwell-block May 22, 2026
0ad56eb
feat(relay/git): drop dead on-disk bare repo from kind:30617 announce
tlongwell-block May 22, 2026
e6a285d
fix(relay/git/store): drop-and-floor classification for conformance p…
tlongwell-block May 22, 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
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,7 @@ jobs:
SPROUT_BIND_ADDR=0.0.0.0:3000 \
SPROUT_REQUIRE_AUTH_TOKEN=false \
SPROUT_RECONCILE_CHANNELS=true \
SPROUT_GIT_PROBE_WRITERS=8 \
./target/ci/sprout-relay > /tmp/sprout-relay.log 2>&1 &
echo $! > /tmp/sprout-relay.pid
for attempt in $(seq 1 60); do
Expand Down
3 changes: 3 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions crates/sprout-relay/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ base64 = "0.22"
sprout-sdk = { workspace = true }
sprout-workflow = { workspace = true, features = ["reqwest"] }
sprout-media = { workspace = true }
s3 = { version = "0.37", package = "rust-s3", default-features = false, features = ["tokio-rustls-tls", "fail-on-err", "tags"] }
tempfile = "3"
bytes = "1"
infer = "0.19"
serde_yaml = { workspace = true }
Expand Down
713 changes: 713 additions & 0 deletions crates/sprout-relay/src/api/git/cas_publish.rs

Large diffs are not rendered by default.

Loading
Loading