@@ -137,6 +137,58 @@ async def test_get_entity_by_id(client: AsyncClient, test_graph, v2_project_url,
137137 assert entity .api_version == "v2"
138138
139139
140+ @pytest .mark .asyncio
141+ async def test_get_entity_by_id_allows_long_relation_type (
142+ client : AsyncClient ,
143+ v2_project_url ,
144+ relation_repository ,
145+ ):
146+ """GET entity should not fail when stored relation_type exceeds 200 characters."""
147+ source_response = await client .post (
148+ f"{ v2_project_url } /knowledge/entities" ,
149+ json = {
150+ "title" : "Long Relation Source" ,
151+ "directory" : "test" ,
152+ "content" : "Source entity content" ,
153+ },
154+ )
155+ assert source_response .status_code == 200
156+ source_entity = EntityResponseV2 .model_validate (source_response .json ())
157+
158+ target_response = await client .post (
159+ f"{ v2_project_url } /knowledge/entities" ,
160+ json = {
161+ "title" : "Long Relation Target" ,
162+ "directory" : "test" ,
163+ "content" : "Target entity content" ,
164+ },
165+ )
166+ assert target_response .status_code == 200
167+ target_entity = EntityResponseV2 .model_validate (target_response .json ())
168+
169+ long_relation_type = (
170+ "**Architecture/efficiency concern:** "
171+ "the orchestration prompt expanded a short edge label into a full descriptive note "
172+ "that is much longer than 200 characters but should still serialize cleanly."
173+ )
174+
175+ await relation_repository .create (
176+ {
177+ "from_id" : source_entity .id ,
178+ "to_id" : target_entity .id ,
179+ "to_name" : target_entity .title ,
180+ "relation_type" : long_relation_type ,
181+ }
182+ )
183+
184+ response = await client .get (f"{ v2_project_url } /knowledge/entities/{ source_entity .external_id } " )
185+
186+ assert response .status_code == 200
187+ entity = EntityResponseV2 .model_validate (response .json ())
188+ assert len (entity .relations ) == 1
189+ assert entity .relations [0 ].relation_type == long_relation_type
190+
191+
140192@pytest .mark .asyncio
141193async def test_get_entity_by_id_not_found (client : AsyncClient , v2_project_url ):
142194 """Test getting a non-existent entity by external_id returns 404."""
0 commit comments