jcwalker3 and Claude Opus 4.8
ca5f078d8a
fix(mcp): separate not-connected from Connected-but-unattached (review 637 B2)
...
A required namespace absent from the connected-service inventory was never
counted as missing, because missing_namespaces was populated only while
walking connected_servers. The session therefore reported attachment_healthy
true, discovery_status namespaces_attached and error_type None while holding
no attachment proof for that namespace, and the gate text told the operator
"the host reports Connected" about a service nothing had reported Connected.
assess_connected_namespace_attachment now classifies the two conditions
apart. missing_namespaces keeps its meaning: required, Connected at the host,
absent from the session tool surface -- the actual #708 defect, still typed
mcp_connected_namespaces_missing. Required namespaces absent from the
connected inventory land in the new not_connected_namespaces list, typed
mcp_required_namespaces_not_connected, so a caller is never pointed at an
attachment recovery for a service that never connected. attachment_healthy
is false whenever any required namespace lacks attachment proof under either
condition, error_types reports every condition present so neither hides the
other, and namespace_conditions carries the per-namespace connected/attached
verdict. Evidence that disagrees with itself -- attached in the session yet
absent from the connected inventory -- is reported as contradictory and fails
closed rather than being read as proof.
attachment_gate_from_session states only what the recorded evidence supports:
the Connected wording appears solely when connected is true, the not-connected
wording when it is false, and a neutral refusal when connected status was
never recorded. Review and merge stay fail-closed in all three cases.
_record_live_namespace_attachment consumes the per-namespace verdicts instead
of pinning the session-wide error_type onto every unattached namespace and
instead of deriving health from a missing list that tracked only one of the
two conditions.
The two existing cases in test_issue_708_mcp_namespace_attachment.py declared
no required_namespaces, so they inherited a default set containing a namespace
their connected list omitted. Under the corrected rule that is a false-healthy
assertion, so each now declares the required set it actually means.
Closes #708
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected] >
2026-07-28 17:08:44 -05:00
..
2026-07-02 15:31:56 -05:00
2026-06-21 17:26:18 -04:00
2026-07-25 19:25:23 -04:00
2026-07-15 21:13:21 -04:00
2026-07-15 21:13:21 -04:00
2026-07-19 14:12:04 -04:00
2026-07-23 04:56:58 -04:00
2026-07-20 13:52:39 -05:00
2026-07-19 14:12:04 -04:00
2026-07-20 22:40:39 -04:00
2026-07-25 03:32:24 -04:00
2026-07-07 09:20:50 -04:00
2026-07-07 05:38:32 -04:00
2026-07-12 09:00:45 -04:00
2026-07-13 13:40:38 -04:00
2026-07-22 23:00:24 -05:00
2026-07-15 21:13:21 -04:00
2026-07-17 19:42:52 -04:00
2026-07-21 15:41:24 -04:00
2026-07-24 07:46:34 -04:00
2026-07-24 07:54:07 -04:00
2026-07-05 15:16:36 -04:00
2026-07-08 22:36:10 -04:00
2026-07-24 00:49:52 -04:00
2026-07-13 21:48:28 -04:00
2026-07-08 03:17:38 -04:00
2026-07-08 03:44:58 -04:00
2026-07-07 04:25:02 -04:00
2026-07-02 06:13:26 -04:00
2026-07-05 17:18:48 -04:00
2026-07-15 21:13:21 -04:00
2026-07-25 19:25:23 -04:00
2026-07-15 21:13:21 -04:00
2026-07-05 03:33:12 -04:00
2026-07-25 19:25:23 -04:00
2026-07-08 02:19:37 -04:00
2026-07-04 18:35:45 -04:00
2026-07-15 21:13:21 -04:00
2026-07-08 22:30:21 -04:00
2026-07-24 08:06:45 -04:00
2026-07-09 15:39:54 -04:00
2026-07-18 16:19:04 -04:00
2026-07-20 12:55:40 -05:00
2026-07-15 21:13:21 -04:00
2026-07-15 21:13:21 -04:00
2026-07-06 01:26:33 -04:00
2026-07-18 03:44:28 -04:00
2026-07-23 00:05:35 -04:00
2026-07-17 19:42:52 -04:00
2026-07-23 22:34:35 -05:00
2026-07-24 01:13:50 -04:00
2026-07-25 00:04:17 -04:00
2026-07-05 03:23:40 -04:00
2026-07-07 04:27:02 -04:00
2026-07-09 12:56:12 -04:00
2026-07-07 04:26:58 -04:00
2026-07-13 02:29:46 -04:00
2026-07-07 04:35:34 -04:00
2026-07-07 02:57:45 -04:00
2026-07-10 03:18:54 -04:00
2026-07-12 13:15:58 -04:00
2026-07-20 12:55:40 -05:00
2026-07-24 07:35:26 -04:00
2026-07-21 20:45:17 -05:00
2026-07-24 08:42:20 -04:00
2026-07-25 17:52:08 -05:00
2026-07-24 18:18:10 -04:00
2026-07-12 13:15:58 -04:00
2026-07-17 14:04:45 -04:00
2026-07-25 19:25:23 -04:00
2026-07-13 14:35:15 -04:00
2026-07-13 02:29:46 -04:00
2026-07-13 21:48:28 -04:00
2026-07-13 17:37:13 -04:00
2026-07-13 16:40:58 -04:00
2026-07-13 14:35:15 -04:00
2026-07-17 23:31:39 -04:00
2026-07-18 01:27:26 -04:00
2026-07-28 16:46:09 -04:00
2026-07-28 17:08:44 -05:00
2026-07-28 17:08:44 -05:00
2026-07-15 13:55:06 -04:00
2026-07-15 21:13:21 -04:00
2026-07-17 14:25:08 -04:00
2026-07-16 15:47:52 -04:00
2026-07-19 23:21:54 -04:00
2026-07-17 22:45:18 -04:00
2026-07-18 12:02:31 -04:00
2026-07-18 12:59:51 -04:00
2026-07-18 13:55:46 -04:00
2026-07-18 17:38:54 -04:00
2026-07-18 19:31:55 -04:00
2026-07-20 02:52:29 -05:00
2026-07-19 12:59:08 -04:00
2026-07-22 00:39:51 -04:00
2026-07-22 01:10:48 -04:00
2026-07-19 18:27:34 -04:00
2026-07-20 02:52:29 -05:00
2026-07-22 00:39:51 -04:00
2026-07-21 16:52:23 -04:00
2026-07-21 18:07:21 -04:00
2026-07-22 04:19:48 -04:00
2026-07-22 04:19:48 -04:00
2026-07-24 07:38:57 -04:00
2026-07-22 16:18:00 -05:00
2026-07-22 17:27:49 -05:00
2026-07-23 03:41:28 -04:00
2026-07-24 17:17:05 -04:00
2026-07-24 00:49:52 -04:00
2026-07-23 21:19:32 -04:00
2026-07-24 02:56:57 -04:00
2026-07-24 08:40:19 -04:00
2026-07-25 17:35:11 -04:00
2026-07-25 18:27:18 -05:00
2026-07-25 01:47:35 -04:00
2026-07-28 11:15:00 -05:00
2026-07-26 05:00:09 -05:00
2026-07-27 19:52:27 -04:00
2026-07-27 18:22:07 -04:00
2026-07-27 18:22:07 -04:00
2026-07-28 02:08:21 -04:00
2026-07-28 04:41:26 -04:00
2026-07-08 03:27:37 -04:00
2026-07-07 05:41:33 -04:00
2026-07-15 21:13:21 -04:00
2026-07-15 21:13:21 -04:00
2026-07-15 21:13:21 -04:00
2026-07-07 23:40:12 -05:00
2026-07-07 16:18:42 -04:00
2026-07-23 20:38:47 -05:00
2026-07-08 02:22:54 -04:00
2026-07-15 21:13:21 -04:00
2026-07-10 16:17:31 -04:00
2026-07-15 21:13:21 -04:00
2026-07-10 11:30:53 -04:00
2026-07-07 05:22:08 -04:00
2026-07-07 04:25:02 -04:00
2026-07-15 21:13:21 -04:00
2026-07-08 04:08:07 -04:00
2026-07-15 21:13:21 -04:00
2026-07-10 13:05:27 -04:00
2026-07-22 05:40:15 -05:00
2026-07-25 19:07:10 -04:00
2026-07-13 21:48:28 -04:00
2026-07-06 12:37:04 -04:00
2026-07-19 14:43:10 -04:00
2026-07-09 18:44:04 -04:00
2026-07-08 13:43:39 -04:00
2026-07-25 02:36:41 -04:00
2026-07-25 17:14:14 -04:00
2026-07-24 00:57:33 -04:00
2026-07-17 19:42:52 -04:00
2026-07-08 22:22:34 -04:00
2026-07-25 19:25:23 -04:00
2026-07-13 21:48:28 -04:00
2026-07-05 15:16:55 -04:00
2026-07-23 16:41:27 -04:00
2026-07-17 13:30:52 -04:00
2026-07-15 21:13:21 -04:00
2026-07-18 10:12:49 -04:00
2026-07-12 22:35:14 -04:00
2026-06-21 18:08:53 -04:00
2026-07-20 18:58:40 -05:00
2026-07-17 20:42:25 -04:00
2026-07-07 04:08:27 -04:00
2026-07-20 12:55:40 -05:00
2026-07-09 10:43:42 -04:00
2026-07-15 21:13:21 -04:00
2026-07-15 21:13:21 -04:00
2026-07-15 21:13:21 -04:00
2026-07-09 09:25:08 -04:00
2026-07-07 17:19:37 -04:00
2026-07-18 12:59:51 -04:00
2026-07-09 15:49:14 -04:00
2026-07-15 21:13:21 -04:00
2026-07-24 01:09:39 -05:00
2026-07-08 23:33:51 -04:00
2026-07-08 02:17:58 -04:00
2026-07-17 10:42:53 -04:00
2026-07-23 04:46:30 -04:00
2026-07-12 13:15:58 -04:00
2026-07-17 23:45:44 -04:00
2026-07-08 23:04:44 -04:00
2026-07-07 04:46:48 -04:00
2026-07-05 15:16:55 -04:00
2026-07-10 13:05:27 -04:00
2026-07-07 04:57:50 -04:00
2026-07-07 09:20:50 -04:00
2026-07-09 00:09:47 -04:00
2026-07-07 09:15:13 -04:00
2026-07-19 02:26:58 -04:00
2026-07-12 21:31:00 -04:00
2026-07-09 12:36:50 -04:00
2026-07-07 05:45:51 -04:00
2026-07-07 09:25:55 -04:00
2026-07-07 09:25:55 -04:00
2026-07-25 17:35:11 -04:00
2026-07-02 05:37:41 -04:00
2026-07-15 21:13:21 -04:00
2026-07-07 02:53:25 -04:00
2026-07-19 23:21:54 -04:00
2026-07-24 18:10:22 -04:00
2026-07-24 02:14:27 -04:00
2026-07-13 13:40:38 -04:00
2026-07-09 19:08:28 -04:00
2026-07-08 00:37:54 -04:00
2026-07-09 09:25:08 -04:00
2026-07-07 09:14:29 -04:00
2026-07-05 20:16:04 -04:00
2026-07-13 17:37:13 -04:00
2026-07-08 11:13:43 -04:00
2026-07-08 22:22:34 -04:00
2026-07-07 09:19:33 -04:00
2026-07-07 09:23:50 -04:00
2026-07-07 05:42:08 -04:00
2026-07-07 05:12:01 -04:00
2026-07-07 05:27:24 -04:00
2026-07-08 03:33:31 -04:00
2026-07-07 05:33:12 -04:00
2026-07-07 05:39:43 -04:00
2026-07-07 05:13:30 -04:00
2026-07-07 05:08:53 -04:00
2026-07-07 17:20:01 -04:00
2026-07-07 05:31:24 -04:00
2026-07-18 13:55:46 -04:00
2026-07-07 10:24:54 -04:00
2026-07-07 09:08:38 -04:00
2026-07-07 05:44:18 -04:00
2026-07-07 13:09:58 -04:00
2026-07-07 11:22:00 -04:00
2026-07-07 05:19:22 -04:00
2026-07-07 05:28:19 -04:00
2026-07-07 05:26:37 -04:00
2026-07-06 11:42:14 -04:00
2026-07-15 21:13:21 -04:00
2026-07-15 21:13:21 -04:00
2026-07-11 19:49:16 -04:00
2026-07-07 17:44:22 -04:00
2026-07-25 19:27:12 -04:00
2026-07-21 02:33:51 -05:00
2026-07-20 04:08:52 -05:00
2026-07-12 02:35:47 -04:00
2026-07-09 17:19:29 -04:00
2026-07-10 13:05:27 -04:00
2026-07-06 14:52:12 -04:00
2026-07-11 20:07:40 -04:00
2026-07-11 20:07:40 -04:00
2026-07-16 14:58:43 -05:00
2026-07-20 12:28:07 -04:00
2026-07-08 02:22:54 -04:00
2026-07-17 14:25:08 -04:00
2026-07-08 03:14:32 -04:00
2026-07-13 13:40:38 -04:00
2026-07-07 00:28:32 -04:00
2026-07-07 00:17:26 -04:00
2026-07-23 17:28:23 -04:00
2026-07-21 15:41:24 -04:00
2026-07-13 02:29:46 -04:00
2026-07-08 03:46:25 -04:00
2026-07-07 00:22:28 -04:00
2026-07-07 12:53:55 -04:00
2026-07-24 18:18:10 -04:00
2026-07-22 04:52:21 -05:00
2026-07-24 18:18:10 -04:00
2026-07-09 11:59:23 -04:00
2026-07-24 18:18:10 -04:00
2026-07-25 17:42:49 -04:00
2026-07-24 18:18:10 -04:00
2026-07-24 18:18:10 -04:00
2026-07-25 16:40:07 -04:00
2026-07-24 18:18:10 -04:00
2026-07-24 18:18:10 -04:00
2026-07-24 18:18:10 -04:00
2026-07-25 18:26:46 -04:00
2026-07-25 18:48:36 -04:00
2026-07-24 18:18:10 -04:00
2026-07-24 18:18:10 -04:00
2026-07-24 18:18:10 -04:00
2026-07-25 03:32:24 -04:00
2026-07-25 17:23:52 -04:00
2026-07-24 18:18:10 -04:00
2026-07-24 18:10:22 -04:00
2026-07-25 01:25:28 -04:00
2026-07-24 18:18:10 -04:00
2026-07-24 18:18:10 -04:00
2026-07-24 18:18:10 -04:00
2026-07-24 18:18:10 -04:00
2026-07-24 18:18:10 -04:00
2026-07-24 18:31:28 -04:00
2026-07-22 06:10:34 -05:00
2026-07-24 18:18:10 -04:00
2026-07-06 01:36:10 -04:00
2026-07-06 14:44:41 -04:00
2026-07-19 14:43:10 -04:00
2026-07-15 21:13:21 -04:00
2026-07-24 07:46:34 -04:00
2026-07-07 05:09:44 -04:00
2026-07-23 21:19:32 -04:00
2026-07-07 17:30:35 -04:00
2026-07-24 17:29:16 -04:00