Skip to content

feat(repo): one click one run with pending and settled actions, guardAction and an extend tab - #50

Merged
fnLog0 merged 1 commit into
masterfrom
docs-extend-json-render
Oct 27, 2026
Merged

fnLog0 merged 1 commit into
masterfrom
docs-extend-json-render

Conversation

@fnLog0

@fnLog0 fnLog0 commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

When an action on a generated screen starts the next turn, the old buttons stayed live: a double click or a click on an older turn ran the action twice. Three layers fix it.

  • blocks 0.8.0: Plans and Keys take pending (locks every action, spinner on the one running) and settled (shows the outcome label in place of the buttons, locks the rest).
  • json-render 0.2.0: guardAction(run) runs one action at a time, writes /pending while it runs and /settled with the returned label. Returning null (a denial) leaves the turn open. Renderers read /pending, /settled and /locked from state, so the model never writes them; /locked freezes an older turn.
  • Docs: an Extend tab on /generative-ui (add, replace and remove catalog components, actions with guardAction, freezing older turns), README sections, prop rows and a changelog entry. The duplicate "done" notice is gone from the Plans and Keys samples.
  • example-react uses guardAction.

Checked: pnpm check (828 tests), both example apps build, and a headless click test on /generative-ui: a double click gives one approval and one spinner, approving shows "Moved to Pro" in the cell.

🤖 Generated with Claude Code

@fnLog0
fnLog0 merged commit 1a694fa into master Oct 27, 2026
2 checks passed
@fnLog0
fnLog0 deleted the docs-extend-json-render branch October 27, 2026 22:50
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