The clients should stay thin: the default implementation of any method is to send the wire command, with behavior living in the vibium binary so every language behaves identically. The implementation guide never states this, and an audit found five places where feature logic is written once per client and can drift:
- URL pattern matching for route dispatch and capture filters. Three different glob dialects today.
- The dialog auto-dismiss default. The engine already owns
unhandledPromptBehavior.
- Console/error collect buffers
- The capture one-shot future/timeout machinery
- Download bookkeeping
Each duplication multiplies by every new client language.
First step is stating the rule in the implementation guide. The moves then land as separate scoped changes, pattern matching and dialog policy first since those are behavioral.
References
docs/explanation/client-implementation-guide.md: where the rule belongs
clients/javascript/src/utils/match.ts, clients/python/src/vibium/async_api/page.py, clients/java/src/main/java/com/vibium/Page.java: the three glob implementations
clicker/internal/api/prompt.go: engine-side prompt state the dialog default can build on
#435: the companion checker that keeps surfaces aligned; this one keeps semantics aligned
The clients should stay thin: the default implementation of any method is to send the wire command, with behavior living in the vibium binary so every language behaves identically. The implementation guide never states this, and an audit found five places where feature logic is written once per client and can drift:
unhandledPromptBehavior.Each duplication multiplies by every new client language.
First step is stating the rule in the implementation guide. The moves then land as separate scoped changes, pattern matching and dialog policy first since those are behavioral.
References
docs/explanation/client-implementation-guide.md: where the rule belongsclients/javascript/src/utils/match.ts,clients/python/src/vibium/async_api/page.py,clients/java/src/main/java/com/vibium/Page.java: the three glob implementationsclicker/internal/api/prompt.go: engine-side prompt state the dialog default can build on#435: the companion checker that keeps surfaces aligned; this one keeps semantics aligned