S00-003: Record blocked task and remediation handoff
Changes: Preserve incomplete work and blocker metadata for S00-003. This checkpoint does not mark implementation accepted. Validation: Session ended with status blocked. Blocker: S00-003 cannot attest parser limits: Stanza 12.22.1 exposes no resource bounds and its persistent WebSocket parser accepts large/deep XML and reassembles incomplete documents across separate input messages. Task: S00-003 Agent: auto-protocol-902594b44429 Role: protocol Action: claim Status: blocked Task title: Проверить XMPP WSS/auth библиотеку
This commit is contained in:
1 parent
1850dbc39f
commit
f556fc0deb
14 files changed
+335
-24
No files matched your search
@@ -5,7 +5,7 @@
|
||||
- Этап: S00
|
||||
- Оператор: protocol
|
||||
- Reviewer: qa
|
||||
- Зависимости: S00-001, S00-002, S00-017
|
||||
- Зависимости: S00-001, S00-002, S00-017, S00-018
|
||||
- Требования: ACC-004, NET-003, NET-004
|
||||
|
||||
## Один результат
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
# S00-018: Validate bounded standalone XML ingress for the XMPP candidate
|
||||
|
||||
- Remediation для: S00-003; root: S00-003; depth: 1
|
||||
|
||||
> Generated from planning/tasks.json; status is in state/tasks.json.
|
||||
|
||||
- Этап: S00
|
||||
- Оператор: protocol
|
||||
- Reviewer: security
|
||||
- Зависимости: S00-001, S00-002, S00-017
|
||||
- Требования: ACC-004, NET-003, NET-004
|
||||
|
||||
## Один результат
|
||||
|
||||
One isolated runnable and independently reviewed ingress experiment enforces explicit finite XML resource limits and standalone text XML per WebSocket message before unsafe accumulation/import, through a supported library integration path.
|
||||
|
||||
## Разрешённые пути
|
||||
|
||||
- `experiments/0002-xmpp-library/parser-validation/**`
|
||||
- `docs/decisions/0002-xmpp-parser-validation.md`
|
||||
|
||||
Не изменять другие modules, shared contracts или spec snapshots без изменения плана. Stem без расширения разрешает принятые stack-specific extensions и focused test рядом.
|
||||
|
||||
## Прочитать
|
||||
|
||||
- docs/WEB_PROFILE.md
|
||||
- docs/ARCHITECTURE.md
|
||||
- docs/CONTRACTS.md
|
||||
- docs/TESTING.md
|
||||
- roles/protocol.md
|
||||
- docs/decisions/README.md
|
||||
- state/blockers/S00-018.md
|
||||
|
||||
## Шаги
|
||||
|
||||
1. Read original blocker evidence, bounded probe, shipped parser/transport APIs and RFC 7395 framing; reproduce the stock failure with finite synthetic input.
|
||||
2. Choose and document a supported ingress integration using vetted existing XML parsing; keep limits experiment-local, do not implement a handwritten security XML parser or patch ignored vendor sources.
|
||||
3. Enforce byte/depth/element/attribute budgets and complete single-document text-message framing before unbounded tree/import work; reject invalid input terminally and clear attempt state.
|
||||
4. Add valid boundary and adversarial fixtures including incomplete messages, multiple roots, oversized tokens/attributes, deep XML, malformed XML and binary messages; verify rejection causes no stanza delivery or retained cross-message state.
|
||||
5. Record exact dependencies/licenses/browser API constraints if adding packages, runnable commands/results and limitations, then submit for independent security review.
|
||||
|
||||
## Приёмка
|
||||
|
||||
1. Explicit finite byte/depth/element/attribute budgets are enforced before uncontrolled accumulation/import; boundary-valid stanza still parses with actual library behavior.
|
||||
2. Each WebSocket message is one complete standalone text XML document; incomplete/multiple-root/binary input is rejected and cannot be revived by a later message.
|
||||
3. Original large/deep/cross-message failure categories are rejected under documented local limits without post-import-only checks, vendor patch or TLS/CORS bypass.
|
||||
4. One supported integration path and cleanup/reset behavior are demonstrated by runnable actual ingress tests; no production shared contract, auth policy or product limit change.
|
||||
|
||||
## Focused checks
|
||||
|
||||
1. Positive boundary-valid framed stanza using the actual candidate registry/parser and ingress integration.
|
||||
2. Original bounded probe categories exceed local budgets or fail framing and produce terminal rejection without stanza emission.
|
||||
3. Malformed/unfinished/multiple-root/binary/oversized-token/attribute/depth/element cases; no cross-message retained state or late revival.
|
||||
4. Fresh attempt/reset accepts valid input; dependency pin/license/API and scope inspection.
|
||||
|
||||
## Блокер и завершение запуска
|
||||
|
||||
Для всех ролей scope — только эта задача. При блокере создать issue JSON по state/ISSUE_TEMPLATE.json, вызвать escalate с текущим ID/role/agent, проверить status=blocked и resolution_task, затем немедленно завершить запуск. Не решать blocker и не выбирать следующую задачу самому. Новый агент назначается runner. Правки metadata через CLI — единственное исключение scope.
|
||||
|
||||
## Передача
|
||||
|
||||
Сохранить evidence/handoff; submit → review и завершить запуск. Reviewer также выполняет только эту задачу, включая обязательное escalate при блокере.
|
||||
Reference in new issue
Block a user