Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion depone/agent_fabric/team_ledger.py
Original file line number Diff line number Diff line change
Expand Up @@ -555,7 +555,7 @@ def _validate_lane(
}
)

return {
lane_result = {
"lane_id": lane_error_id,
"env_kind": lane.get("env_kind"),
"runner_adapter_kind": lane.get("runner_adapter_kind"),
Expand All @@ -576,6 +576,9 @@ def _validate_lane(
"touched_file_count": len(touched_files),
"errors": errors,
}
if state == "blocked":
lane_result["blocked_reason"] = blocked_reason
return lane_result


def _require_non_empty_string(
Expand Down
2 changes: 2 additions & 0 deletions docs/team-dry-run/team-ledger-verdict.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"lane_count": 2,
"lane_results": [
{
"blocked_reason": "dry-run plan only; no lane evidence has been captured and no worker was launched",
"decision": "blocked",
"env_kind": "local",
"errors": [],
Expand Down Expand Up @@ -59,6 +60,7 @@
}
},
{
"blocked_reason": "dry-run plan only; no lane evidence has been captured and no worker was launched",
"decision": "blocked",
"env_kind": "local",
"errors": [],
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "depone"
version = "0.2.8"
version = "0.2.9"
description = "Workflow designer + cross-platform evidence verifier for AI agent orchestration"
license = { text = "MIT" }
readme = "README.md"
Expand Down
5 changes: 5 additions & 0 deletions tests/test_agent_fabric_team_ledger.py
Original file line number Diff line number Diff line change
Expand Up @@ -427,6 +427,7 @@ def test_valid_ledger_passes(self) -> None:
self.assertEqual(verdict["kind"], "depone-team-ledger-verdict")
self.assertEqual(verdict["decision"], "pass")
self.assertEqual(verdict["passed_lane_count"], 1)
self.assertNotIn("blocked_reason", verdict["lane_results"][0])
self.assertFalse(verdict["boundary"]["executes_commands"])
self.assertFalse(verdict["boundary"]["raises_assurance"])

Expand Down Expand Up @@ -610,6 +611,10 @@ def test_blocked_lane_with_reason_fans_in_as_explicit_block(self) -> None:

self.assertEqual(verdict["decision"], "blocked-explicit")
self.assertEqual(verdict["blocked_lane_count"], 1)
self.assertEqual(
verdict["lane_results"][0]["blocked_reason"],
"lane hit a merge conflict",
)
self.assertEqual(verdict["errors"], [])

def test_blocked_lane_allows_planned_missing_worktree_receipt(self) -> None:
Expand Down
Loading