mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-10-14 10:52:21 +02:00
feat(runtime): enforce server request authority
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
# Wave 2 final validation
|
||||
|
||||
Worktree: `odysseus-runtime-request-authority`; branch:
|
||||
`feature/runtime-request-authority`.
|
||||
Starting SHA: `d6c3c98c75e03f70c05ebe4058c6fa12e0395f62`.
|
||||
The final SHA is the local commit containing this report, returned in the final
|
||||
implementation report. No rebase, merge, push or PR was performed.
|
||||
|
||||
All results below apply to the final production code. The last production
|
||||
changes addressed internal HTTP request/approval origin and transient untrusted
|
||||
Chat context. Focused, Wave 1.1, broad runtime and full pytest were rerun after
|
||||
those changes. Subsequent edits only recorded results and removed temporary
|
||||
validation logs.
|
||||
|
||||
| Gate | Final result |
|
||||
| --- | --- |
|
||||
| New Wave 2 authority tests | 58 passed, 1 warning; 1.23s |
|
||||
| Relevant contract/policy/approval/capability/Ajax/task/background tests | 1500 passed, 28 skipped, 1 warning; 30.55s |
|
||||
| Wave 1.1 validation script | 2292 passed, 1 warning; 65.75s |
|
||||
| Broad affected runtime suite | 3079 passed, 28 skipped, 1 warning; 92.83s |
|
||||
| Full pytest | 11644 passed, 54 skipped, 2 xfailed, 182 warnings, 6 subtests passed; 444.40s |
|
||||
| Python compileall | Passed |
|
||||
| JS/MJS syntax | Passed for all 361 tracked files |
|
||||
| Git whitespace gate | Passed |
|
||||
| Conflict-marker scan | Passed |
|
||||
|
||||
The existing release smoke hook skipped because `APP_PORT` was unset; no live
|
||||
instance was driven. Full pytest includes its existing skips and expected
|
||||
failures. Warnings are retained in the local raw log. Missing development test
|
||||
dependencies and Playwright Chromium were installed locally, without changing
|
||||
project dependency declarations. No global dotenv-disable override was used.
|
||||
|
||||
## Commands
|
||||
|
||||
```sh
|
||||
ODYSSEUS_TEST_STATIC_PORT=0 .venv/bin/python -m pytest -q tests/test_request_authority.py
|
||||
|
||||
ODYSSEUS_TEST_STATIC_PORT=0 .venv/bin/python -m pytest -q tests/test_request_authority.py tests/test_turn_contract*.py tests/test_tool_policy.py tests/test_tool_approval*.py tests/test_execution_capabilities.py tests/test_ajax*.py tests/test_task_*.py tests/test_bg_*.py
|
||||
|
||||
ODYSSEUS_TEST_PYTHON="$PWD/.venv/bin/python" bash scripts/validate_runtime_wave1.sh
|
||||
|
||||
ODYSSEUS_TEST_STATIC_PORT=0 .venv/bin/python -m pytest -q tests/test_request_authority.py tests/test_agent_*.py tests/test_turn_contract*.py tests/test_tool_policy.py tests/test_tool_approval*.py tests/test_task_*.py tests/test_bg_*.py tests/test_*completion*.py tests/test_foreground_model_routing.py tests/test_client_tool_routing.py tests/test_workspace_confine.py tests/test_product_turn_contract_route.py tests/test_execution_bridge.py tests/test_execution_capabilities.py tests/test_ajax*.py tests/test_external_context_tool_gate.py tests/test_tool_path_confinement.py tests/test_edit_file.py tests/test_runtime_evidence_contract.py tests/test_review_regressions.py tests/test_image_creation_routing.py tests/test_ask_user_tool.py tests/test_update_plan_tool.py tests/test_weather_search_recovery.py tests/test_clean_agent_preview.py tests/test_skill_audit*.py tests/test_preview_execution_evidence.py
|
||||
|
||||
ODYSSEUS_TEST_STATIC_PORT=0 .venv/bin/python -m pytest -q
|
||||
|
||||
.venv/bin/python -m compileall -q -x '(^|/)(\.venv|\.git|node_modules|data|logs|uploads)/' .
|
||||
git ls-files -z '*.js' '*.mjs' | xargs -0 -n 1 node --check
|
||||
git diff --check
|
||||
# Staged whitespace check used --cached --check with all 37 changed paths explicit.
|
||||
git grep --cached -l -E '^(<<<<<<< |=======$|>>>>>>> )' -- '*.py' '*.js' '*.mjs' '*.html' '*.css' '*.json' '*.md' '*.sh'
|
||||
```
|
||||
|
||||
Conflict-marker grep returns exit 1 with no matches on success.
|
||||
The context firewall rejected the unbounded staged whitespace command before
|
||||
execution; the exact-path check passed. No admitted source inspection was
|
||||
blocked by staging.
|
||||
Local raw validation outputs are archived under the ignored
|
||||
`.venv/wave2-validation/` directory; they are not committed.
|
||||
|
||||
## Regression scope and limits
|
||||
|
||||
The 58 authority tests cover schema/handler/model-selection non-authority,
|
||||
narrow media/tasks/browser behavior, exact reads, deterministic grants, hard
|
||||
denials, malformed/missing state, retry and nested inheritance, teacher
|
||||
forwarding, exact approval scope/replay/digest, scheduled input sealing and
|
||||
workspace restoration, detached followups and actual-launch-only sealing,
|
||||
internal HTTP origin, untrusted Chat persistence, and denied-call journal
|
||||
completion evidence. Existing fixture assertions remain intact; standalone
|
||||
dispatch fixtures now provide explicit server authority.
|
||||
|
||||
Remaining limits: class admission uses deterministic request classifiers and
|
||||
can reject unsupported phrasing; legacy task/job snapshots fail closed until
|
||||
trusted resealing; snapshots assume trusted server database/job storage;
|
||||
sidecar retention hardening is deferred. Existing approvals can admit one exact
|
||||
root operation without granting subsequent or nested operations.
|
||||
|
||||
No Wave 3, 3-S, 4, 5 or 6 work was started. No containment, effect/egress,
|
||||
provenance, authority-mode UI, journal or completion-foundation redesign is
|
||||
included. File ownership and the discovery/implementation contract are recorded
|
||||
in [wave-2-request-authority.md](wave-2-request-authority.md).
|
||||
Reference in New Issue
Block a user