Files
ruflo/docs/validation/managed-loop-e2e.json
T
rUvandr db141ba70e feat: managed workflows, unified console runs and verified advisory learning (#4471)
* feat(agent): add bounded managed dynamic workflows and verified lifecycle observation

* feat(plugins): integrate managed workflows with mod policy and capability discovery

* feat(managed): unify console runs and verified advisory learning

* fix(managed): hydrate native recall receipts validated on ruOS

* docs(managed): record authenticated console host blocker

* docs(managed): qualify installed console and compatible native host

* feat(managed): integrate verified cycles and isolate native memory

* fix(managed): enforce offline native models and qualify feedback E2E

* fix(managed): independent security and correctness review findings

- gate managed_agent_interrupt through the managed_agent_control policy; terminate obeys the allowlist and deletes only its own environment when RUFLO_MANAGED_CONTROL=1
- track only events from the acknowledged message so a later poll cannot report the previous turn as finished
- require the canonical base64 verifier signature so one receipt cannot fill the ledger
- register RUFLO_MANAGED_AGENTS_BASE_URL as a trust-boundary env var (env-precedence audit) and key the credential scope marker with a per-process HMAC (CodeQL)
- best-effort local snapshot writes; report messageId when a prompt fails after it was sent
- console: rescheduling is running, budget/action-blocked sessions are active, not finished
- document the remaining known limits in ADR 0004

Co-Authored-By: RuFlo <ruv@ruv.net>

* docs: user guide section for managed cloud agents; correct ruflo-agent README counts

Co-Authored-By: RuFlo <ruv@ruv.net>

* fix(managed): scope marker is a generation number, never a hash of the API key (CodeQL)

Co-Authored-By: RuFlo <ruv@ruv.net>

---------

Co-authored-by: r <r@x>
2026-10-24 22:42:09 -04:00

34 lines
1.9 KiB
JSON

{
"schema": "ruflo.managed-verifier-e2e/v1",
"assertions": 86,
"verifiedSubprocessReceipts": 18,
"cyclePhases": [
"admitted",
"recorded",
"recommended",
"evaluated"
],
"replayedDuplicates": 18,
"deniedCycleWrites": 0,
"training": 6,
"pairedHoldout": 6,
"advisoryEligible": true,
"measuredBaselineP95Ms": 1249,
"measuredCandidateP95Ms": 267,
"defaultsChanged": false,
"costOrigin": "synthetic-fixture",
"limitations": "Real verifier subprocesses, signatures, file persistence, feedback cycle and heldout gates; synthetic workload and cost fixture only. No live provider quality, billing savings, universal safety or native vector backend is claimed.",
"sourceHashes": {
"v3/@claude-flow/cli/src/services/managed-learning.ts": "beb451f5b58d2afb39749e2730c811c6b3b7dc04aa3e636201eb307834abfcae",
"v3/@claude-flow/cli/src/services/managed-learning-loop.ts": "0802c5b54cba703187a47bede6db51db24d16dff964677713f9c20a0e0eea501",
"v3/@claude-flow/cli/src/services/managed-memory-client.ts": "7a47f099f128eedd4b9a55bf18462eae0a6756c2ee5267732dddea73e2d4fa7e",
"v3/@claude-flow/cli/src/services/managed-learning-store.ts": "53ec943484530e9c8c44ead4f8b7f8088b54548d9f262ef4fa041413b8d860a6",
"v3/@claude-flow/cli/src/services/managed-workflows.ts": "513ecb0b0d6fcb7d1504c3c81e78356372066564986234aa18bc157e102e5959",
"v3/@claude-flow/cli/src/services/managed-run-collector.ts": "9ea9862916b43766f93cb4886999457858364101cc36abbfdbecab24badc1257",
"v3/@claude-flow/cli/src/services/managed-run-store.ts": "e75c5f25d9f0537a9560d8f120fe7915aea287d3f01bf2b430a4394608504c02",
"v3/@claude-flow/cli/src/services/managed-memory-worker.ts": "542c929ec1482562964169d3ae083612e1f52fbd4685834c246c07870748d54c",
"scripts/managed-outcome-verifier.mts": "a49cdc043cbbd9733875d07c00200ec24dfc2352258ce6b6310d5581f0382a10",
"scripts/e2e-managed-loop.mts": "6a500b113df5cf4b36f1f0d7f1689a5716e6fdd84b5cb790ff388e43cba4082f"
}
}