fix(projects): full-suite findings — type-guard the visibility gate, bind acting user without breaking send stubs

ws_visible only treats real strings as project links (a test double or
corrupted value means no-project, not private-and-denied), the mgr-path
project_id is coerced likewise, and the HTTP send path binds the acting
user via a getattr-guarded bind_acting_user call inside the fresh-turn
closure instead of a send() kwarg — per-kind session stubs with explicit
send signatures keep working. Row-shape contract tests (interactive +
coordinator twins) grow the intentional project_id key.
This commit is contained in:
Patrick Buckley
2026-07-01 15:59:31 -07:00
parent bf9299de1a
commit 80b8997b88
6 changed files with 29 additions and 9 deletions
+1
View File
@@ -520,6 +520,7 @@ def test_active_list_row_shape_includes_unified_fields(storage):
"kind",
"parent_ws_id",
"user_id",
"project_id",
}
assert row["name"] == "lifted-coord"
assert row["kind"] == "coordinator"