Skip to content

feat: learn repo tethers when a saga-member create fails post-materialize - #2

Merged
Nurozen merged 1 commit into
weirwoodfrom
stave/saga-add-learning/stave
Aug 27, 2026
Merged

Nurozen merged 1 commit into
weirwoodfrom
stave/saga-add-learning/stave

Conversation

@Nurozen

@Nurozen Nurozen commented Aug 27, 2026

Copy link
Copy Markdown
Owner

Follow-up to repo-tethers (PR 2 of a 2-PR stack). Stacked on #1 — targets that branch; reviews/merges after it.

A saga-member create whose repos are durably built but which then fails (e.g. --memory attach) previously recorded no co-occurrence tethers: the inner member create is suppressed and the success-path capture never runs on error. This captures it — post-lock and best-effort, gated on durable materialization.

Design note: capture happens at the create-failure point, NOT on stave saga add. Adding an already-captured space to a saga would double-count, and there's no schema-free way to tell a captured space from an uncaptured recovery member. The failure-point approach targets exactly the uncaptured recovery member with no manifest/provenance change, honoring strict-once-only. (~12-line service.go change + tests.)

Deep-planned, deep-built, reviewed (holistic + codex; the double-capture was caught and this redesign resolves it). Full go test -race ./... green across all 12 packages, golangci-lint 0.

🤖 Generated with Claude Code

Base automatically changed from stave/tmux-e2e/stave to weirwood August 27, 2026 05:36
…lize

Follow-up to repo-tethers. A saga-member create whose repos are durably
built but which then fails (e.g. --memory attach) previously recorded no
co-occurrence tethers: the inner member create is suppressed and the
success-path capture never runs on error. Capture it now, post-lock and
best-effort, gated on durable materialization (spaceHasRepos).

`stave saga add` deliberately does NOT capture: adding an already-captured
space to a saga would double-count, and there is no schema-free way to tell
a captured space from an uncaptured recovery member. Capturing at the
failure point targets exactly the uncaptured recovery member with no
manifest/provenance change, honoring strict-once-only.

Stacked on the tmux-e2e branch (file-disjoint; stacked for delivery).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@Nurozen
Nurozen force-pushed the stave/saga-add-learning/stave branch from 3ec8c74 to 49616cd Compare August 27, 2026 05:36
@Nurozen
Nurozen merged commit 96e0488 into weirwood Aug 27, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant