Skip to content

Feat/goal store folds - #167

Merged
stippi merged 3 commits into
mainfrom
feat/goal-store-folds
Jul 20, 2026
Merged

Feat/goal store folds#167
stippi merged 3 commits into
mainfrom
feat/goal-store-folds

Conversation

@stippi

@stippi stippi commented Jul 20, 2026

Copy link
Copy Markdown
Owner

No description provided.

stippi added 2 commits July 17, 2026 09:09
…Goal

The claim/finish/abandon protocol is policy, not persistence: every
GoalRepository implementation must apply exactly the same per-goal
transition or the token guarantees silently diverge. The JSON store's
embedded logic — snapshot staleness, envelope enforcement on claim, and
the stopped-state merge on finish — moves onto Goal as fold_claim /
fold_finish / fold_abandon (with ClaimFold naming what the store must
persist). GoalStore delegates; behavior is unchanged (84 tests green).

Also extend GoalRepository with add_new / replace_current_for_owner /
remove_current_for_owner (object-safe String signatures): hosts that
manage one current goal per owner need these through the seam, not only
on the concrete JSON store. Motivation for both: PAL's transactional
orchestration store implements GoalRepository over SQLite and must not
duplicate the fold subtleties.
@stippi
stippi changed the base branch from main to feat/goal-consumer July 20, 2026 22:42
Base automatically changed from feat/goal-consumer to main July 20, 2026 22:43
@stippi
stippi merged commit 2635fcf into main Jul 20, 2026
4 checks passed
@stippi
stippi deleted the feat/goal-store-folds branch July 20, 2026 22:44
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