Commit Β·
128f4e8
1
Parent(s): 5409740
fix(schema): add read_only_paths to constraints schema (#168)
Browse filesspec_executor.py already consumed read_only_paths from constraints but
work_block_schema.py had additionalProperties:False with the field absent.
Any spec using read_only_paths failed validation before execution reached
the field. One property added; no executor changes.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- work_block_schema.py +11 -0
work_block_schema.py
CHANGED
|
@@ -1,4 +1,10 @@
|
|
| 1 |
# ---- Changelog ----
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
# [2026-04-06] Josh + Claude β Add edit_file tool + shell_allowlist constraint
|
| 3 |
# What: (1) edit_file in _TOOL_NAMES (2) shell_allowlist in constraints schema
|
| 4 |
# Why: Gap 2 β specs need to extend shell allowlist; Gap 3 β edit_file is a new tool
|
|
@@ -289,6 +295,11 @@ WORK_BLOCK_SCHEMA = {
|
|
| 289 |
},
|
| 290 |
"max_iterations": {"type": "integer", "minimum": 1, "maximum": 100, "default": 15},
|
| 291 |
"timeout_seconds": {"type": "integer", "minimum": 30, "maximum": 3600, "default": 300},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 292 |
},
|
| 293 |
},
|
| 294 |
"steps": {
|
|
|
|
| 1 |
# ---- Changelog ----
|
| 2 |
+
# [2026-05-03] Claude (Sonnet 4.6) β Add read_only_paths to constraints schema (#168)
|
| 3 |
+
# What: Added read_only_paths as a valid constraints property
|
| 4 |
+
# Why: spec_executor.py already reads this field (lines 96-100) but work_block_schema.py
|
| 5 |
+
# constraints had additionalProperties:False with no read_only_paths entry β any spec
|
| 6 |
+
# using it failed schema validation before execution could reach the field.
|
| 7 |
+
# How: One new property added to constraints; no executor changes (already handled).
|
| 8 |
# [2026-04-06] Josh + Claude β Add edit_file tool + shell_allowlist constraint
|
| 9 |
# What: (1) edit_file in _TOOL_NAMES (2) shell_allowlist in constraints schema
|
| 10 |
# Why: Gap 2 β specs need to extend shell allowlist; Gap 3 β edit_file is a new tool
|
|
|
|
| 295 |
},
|
| 296 |
"max_iterations": {"type": "integer", "minimum": 1, "maximum": 100, "default": 15},
|
| 297 |
"timeout_seconds": {"type": "integer", "minimum": 30, "maximum": 3600, "default": 300},
|
| 298 |
+
"read_only_paths": {
|
| 299 |
+
"type": "array",
|
| 300 |
+
"items": {"type": "string"},
|
| 301 |
+
"description": "Absolute paths outside workspace that read_file may access (read-only). Typical use: sibling repos QB needs to inspect without writing.",
|
| 302 |
+
},
|
| 303 |
},
|
| 304 |
},
|
| 305 |
"steps": {
|