From 8a01c624168e80f7c008b23a2a6349577c9cfca5 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 19 Jul 2026 01:17:02 +0800 Subject: [PATCH] fix(km): reconcile typed knowledge metadata --- apps/api/src/repositories/knowledge_repository.py | 2 ++ apps/api/tests/test_knowledge_repository_read_model.py | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/apps/api/src/repositories/knowledge_repository.py b/apps/api/src/repositories/knowledge_repository.py index 4179184e3..d14a331a7 100644 --- a/apps/api/src/repositories/knowledge_repository.py +++ b/apps/api/src/repositories/knowledge_repository.py @@ -328,9 +328,11 @@ class KnowledgeDBRepository: set_={ "title": data.title, "content": data.content, + "category": data.category, "tags": data.tags, "status": _knowledge_enum_db_value(data.status), "related_approval_id": data.related_approval_id, + "related_playbook_id": data.related_playbook_id, }, ) .returning(KnowledgeEntryRecord.id) diff --git a/apps/api/tests/test_knowledge_repository_read_model.py b/apps/api/tests/test_knowledge_repository_read_model.py index cce63ed27..9b462652b 100644 --- a/apps/api/tests/test_knowledge_repository_read_model.py +++ b/apps/api/tests/test_knowledge_repository_read_model.py @@ -327,6 +327,14 @@ async def test_idempotent_create_reads_back_published_with_enum_safe_projection( ) assert entry.status is EntryStatus.PUBLISHED + upsert_sql = str( + db.statements[0].compile( + dialect=postgresql.dialect(), + ) + ).lower() + update_clause = upsert_sql.split("do update set", 1)[1] + assert "category =" in update_clause + assert "related_playbook_id =" in update_clause readback_sql = str( db.statements[1].compile( dialect=postgresql.dialect(),