App control
How Global Agent and Voice control Settings, projects, and canvas safely.
App control lets the Global Agent (and Voice using the same Global tools) operate BLXAde itself through a semantic allowlist — not arbitrary config edits or shell escapes.
What can be controlled
| Domain | Examples |
|---|---|
| Settings | Open a known section; change policy-catalog preferences that are explicitly allowlisted |
| Navigation | Open/switch among opaque recent or already-known project refs |
| Canvas view | Layout/focus state that the bridge exposes |
| Node lifecycle | Open, focus, or close known singleton/app nodes via stable nodeRefs |
Built-in Global-only tools include settings_read, settings_control,
app_navigation_control, canvas_view_control, and canvas_node_lifecycle.
What is never allowed
- Arbitrary config keys or free-form preference dumps
- Credential read/write
- Absolute filesystem paths or permission elevation
- Executable overrides or installing software
- Discoverability by Agent CLI or External MCP for this slice
Preference writes go through existing live Settings providers (same validation as the UI).
Voice
Local EN/DE voice commands and ASR repairs can trigger the same allowlisted actions (open Settings section, focus a node, etc.). Feedback is localized capability messaging — not raw tool JSON.
Phases
While tools run, the Global Agent phase machine may show states such as
ExecutingApp, ExecutingProject, ExecutingTerminal, ExecutingLoops,
ExecutingImages, ExecutingGitHub, and so on. The
Notification Center surfaces terminal outcomes
(completed / needs input / failed) without storing full answer text durably.
Single-flight runs
Only one Global Agent run is active. Starting another returns already-running; Esc / cancel cooperatively stops tools when supported.