You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/copilot-instructions.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -118,7 +118,7 @@ The Rust workspace (`src/`) implements multiple sandboxing backends behind the `
118
118
119
119
### Config flow
120
120
121
-
1. User provides JSON config (file or base64) → `config_parser.rs`deserializes into the typed wire model (`wxc_common::wire`) → validates and maps to `ExecutionRequest` (the internal execution model in `models.rs`)
121
+
1. User provides JSON config (file or base64) → `config_deserialize.rs`performs path-aware typed deserialization into the wire model (`wxc_common::wire`) → `config_parser.rs`validates and maps it to `ExecutionRequest` (the internal execution model in `models.rs`)
122
122
2.`ExecutionRequest` includes the containment backend selection, process config, filesystem/network policies, and optional experimental features
123
123
3. The appropriate `ScriptRunner` implementation executes the process and returns `ScriptResponse`
124
124
@@ -210,7 +210,7 @@ The workspace is organized into six top-level directories under `src/`:
210
210
211
211
### Config parser pattern
212
212
213
-
The parser deserializes JSON directly into the typed wire model (`wxc_common::wire`), the single source of truth for the config shape (it also generates the JSON schema). `config_parser.rs` then maps the wire types to the validated domain structs in `models.rs`. The stable surface uses `deny_unknown_fields` (closed); the `experimental` block is permissive.
213
+
The parser deserializes JSON directly into the typed wire model (`wxc_common::wire`), the single source of truth for the config shape (it also generates the JSON schema). All typed config deserialization goes through `config_deserialize.rs`, which distinguishes syntax errors from typed policy errors and adds the complete JSON path plus source line/column when available; state-aware backend errors are prefixed with their full `experimental.<backend>.<phase>` location. `config_parser.rs` then maps the wire types to the validated domain structs in `models.rs`. The stable surface uses `deny_unknown_fields` (closed); the `experimental` block is permissive.
0 commit comments