Three smaller papercuts from agency-style usage (fleet of projects, SEO page
factories). Tested on 0.277.0 and re-verified on 0.278.0.
1. workflow.next locks out read-only tools
After calling workflow.next {"goal":"design-system-page"}, EVERY subsequent tool
call fails with CHECKPOINT_REQUIRED until checkpoint.ack, including pure reads like
list-pages or meta.get_more_tools (reproduced over stdio). The enforced checkpoint
idea is great for mutations, but blocking discovery/read tools forces interactive
agents into ack round-trips that add no safety. Suggestion: scope the lock to
mutating tools, or add an opt-out for interactive/streaming agents.
2. One project per directory/session
The config binds one directory to one project, sessions are exclusive
(PROJECT_SESSION_BUSY), and no tool takes a project selector. For an agency managing
10+ Webstudio projects on one machine, that means N checkouts and N server processes.
A --project scope at startup or an optional per-call project selector (with the
share-link permission model already in place, permits would still apply) would make
fleet automation dramatically cheaper.
3. duplicate-page with substitutions
duplicate-page only takes pageId/name/path. The most common agency use case for
duplication is programmatic SEO (same page per city/product), which needs find/replace
of text and variable/dataSource references as part of the copy. Doing it after the
fact with replace-text/replace-prop-text does not cover page-scoped
variables/resources cloned by the duplicate. A substitutions option (text map and/or
variable value overrides) on duplicate-page would unlock that workflow in one call.
Related praise: insert-collection in 0.278.0 (atomic Collection + parameters +
bindings, with expression-backed data) is exactly the right direction for this kind
of high-level semantic tool.
Three smaller papercuts from agency-style usage (fleet of projects, SEO page
factories). Tested on 0.277.0 and re-verified on 0.278.0.
1. workflow.next locks out read-only tools
After calling
workflow.next {"goal":"design-system-page"}, EVERY subsequent toolcall fails with CHECKPOINT_REQUIRED until
checkpoint.ack, including pure reads likelist-pagesormeta.get_more_tools(reproduced over stdio). The enforced checkpointidea is great for mutations, but blocking discovery/read tools forces interactive
agents into ack round-trips that add no safety. Suggestion: scope the lock to
mutating tools, or add an opt-out for interactive/streaming agents.
2. One project per directory/session
The config binds one directory to one project, sessions are exclusive
(PROJECT_SESSION_BUSY), and no tool takes a project selector. For an agency managing
10+ Webstudio projects on one machine, that means N checkouts and N server processes.
A
--projectscope at startup or an optional per-call project selector (with theshare-link permission model already in place, permits would still apply) would make
fleet automation dramatically cheaper.
3. duplicate-page with substitutions
duplicate-pageonly takes pageId/name/path. The most common agency use case forduplication is programmatic SEO (same page per city/product), which needs find/replace
of text and variable/dataSource references as part of the copy. Doing it after the
fact with
replace-text/replace-prop-textdoes not cover page-scopedvariables/resources cloned by the duplicate. A
substitutionsoption (text map and/orvariable value overrides) on
duplicate-pagewould unlock that workflow in one call.Related praise:
insert-collectionin 0.278.0 (atomic Collection + parameters +bindings, with expression-backed data) is exactly the right direction for this kind
of high-level semantic tool.