Apply queued actions through a checkpoint - #238
Draft
ndisidore wants to merge 3 commits into
Draft
Conversation
|
@ndisidore Bonk workflow failed. Check the logs for details. View workflow run · To retry, trigger Bonk again. |
ndisidore
force-pushed
the
nathan/action-apply-through-foundation
branch
2 times, most recently
from
August 17, 2026 20:48
4f876d2 to
ebbb08e
Compare
ndisidore
force-pushed
the
nathan/action-apply-through-foundation
branch
from
August 17, 2026 21:14
ebbb08e to
8bbfdfe
Compare
This was referenced Aug 17, 2026
ndisidore
force-pushed
the
nathan/action-apply-through-foundation
branch
from
August 18, 2026 17:21
8bbfdfe to
f204f6a
Compare
|
APIError: Invalid Anthropic API Key |
2 similar comments
|
APIError: Invalid Anthropic API Key |
|
APIError: Invalid Anthropic API Key |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds a batch
applyActionsThroughcontract to gatekeepers and migrates Confluence + Notion to it. The overseer-side driver comes in #241; until that lands the new method is inert, so no production behavior changes yet.The old per-action
applyAction(id)/rejectAction(id)round-trips are now@deprecated(they stay until every gatekeeper migrates, then go away), andrevertActionloses its deadrestartreturn field — six gatekeepers computed it, nobody read it. In their place,applyActionsThrough(actionId, vetoes)resolves the whole queued prefix in one call: deliver the vetoes, then apply everything pending up toactionId. It returnsstopped: {at, reason}if an apply fails mid-way (the reason must be display-safe and specific — only the message survives the RPC hop), andinvalidatedByVetofor actions a veto cascade-deleted, so the UI can attribute them.The mapping is safe because the call is idempotent (retries are free — settled actions and stale vetoes are ignored) and a gatekeeper may never silently skip an in-range action: it applies it or reports it via
stopped, which is what lets the caller soundly conclude "everything ≤ N was applied" despite ID holes.User-visible approval/rejection doesn't change in this PR. Once #241 lands: approving an action applies everything queued before it in one pass under your authority (the semantics the UI already implies), and rejecting a content creation cascade-rejects the pending actions that depended on it — now with attribution, so those cards can say why instead of silently vanishing.
Coordination: #198 rebases on top (stale-action sentinel travels in
stopped.reason); #203 is closed in favor of this series.