chore: rename entity_type to note_type (#600)

Signed-off-by: phernandez <paul@basicmachines.co>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Paul Hernandez
2026-02-22 20:28:57 -06:00
committed by GitHub
parent e1cccba72d
commit c44291830c
88 changed files with 901 additions and 598 deletions
@@ -89,7 +89,7 @@ class DirectoryService:
permalink=file.permalink,
external_id=file.external_id, # UUID for v2 API
entity_id=file.id,
entity_type=file.entity_type,
note_type=file.note_type,
content_type=file.content_type,
updated_at=_mtime_to_datetime(file),
)
@@ -254,7 +254,7 @@ class DirectoryService:
permalink=file.permalink,
external_id=file.external_id, # UUID for v2 API
entity_id=file.id,
entity_type=file.entity_type,
note_type=file.note_type,
content_type=file.content_type,
updated_at=_mtime_to_datetime(file),
)
+15 -15
View File
@@ -206,14 +206,14 @@ class EntityService(BaseService[EntityModel]):
return self._project_permalink
def _build_frontmatter_markdown(
self, title: str, entity_type: str, permalink: str
self, title: str, note_type: str, permalink: str
) -> EntityMarkdown:
"""Build a minimal EntityMarkdown object for permalink resolution."""
from basic_memory.markdown.schemas import EntityFrontmatter
frontmatter_metadata = {
"title": title,
"type": entity_type,
"type": note_type,
"permalink": permalink,
}
frontmatter_obj = EntityFrontmatter(metadata=frontmatter_metadata)
@@ -257,18 +257,18 @@ class EntityService(BaseService[EntityModel]):
f"file for entity {schema.directory}/{schema.title} already exists: {file_path}"
)
# Parse content frontmatter to check for user-specified permalink and entity_type
# Parse content frontmatter to check for user-specified permalink and note_type
content_markdown = None
if schema.content and has_frontmatter(schema.content):
content_frontmatter = parse_frontmatter(schema.content)
# If content has entity_type/type, use it to override the schema entity_type
# If content has type, use it to override the schema note_type
if "type" in content_frontmatter:
schema.entity_type = content_frontmatter["type"]
schema.note_type = content_frontmatter["type"]
if "permalink" in content_frontmatter:
content_markdown = self._build_frontmatter_markdown(
schema.title, schema.entity_type, content_frontmatter["permalink"]
schema.title, schema.note_type, content_frontmatter["permalink"]
)
# Get unique permalink (prioritizing content frontmatter) unless disabled
@@ -315,18 +315,18 @@ class EntityService(BaseService[EntityModel]):
content=existing_content,
)
# Parse content frontmatter to check for user-specified permalink and entity_type
# Parse content frontmatter to check for user-specified permalink and note_type
content_markdown = None
if schema.content and has_frontmatter(schema.content):
content_frontmatter = parse_frontmatter(schema.content)
# If content has entity_type/type, use it to override the schema entity_type
# If content has type, use it to override the schema note_type
if "type" in content_frontmatter:
schema.entity_type = content_frontmatter["type"]
schema.note_type = content_frontmatter["type"]
if "permalink" in content_frontmatter:
content_markdown = self._build_frontmatter_markdown(
schema.title, schema.entity_type, content_frontmatter["permalink"]
schema.title, schema.note_type, content_frontmatter["permalink"]
)
# Check if we need to update the permalink based on content frontmatter (unless disabled)
@@ -406,11 +406,11 @@ class EntityService(BaseService[EntityModel]):
content_frontmatter = parse_frontmatter(schema.content)
if "type" in content_frontmatter:
schema.entity_type = content_frontmatter["type"]
schema.note_type = content_frontmatter["type"]
if "permalink" in content_frontmatter:
content_markdown = self._build_frontmatter_markdown(
schema.title, schema.entity_type, content_frontmatter["permalink"]
schema.title, schema.note_type, content_frontmatter["permalink"]
)
# --- Permalink Resolution ---
@@ -436,7 +436,7 @@ class EntityService(BaseService[EntityModel]):
entity_metadata = {k: v for k, v in metadata.items() if v is not None}
update_data = {
"title": schema.title,
"entity_type": schema.entity_type,
"note_type": schema.note_type,
"file_path": file_path.as_posix(),
"content_type": schema.content_type,
"entity_metadata": entity_metadata or None,
@@ -488,12 +488,12 @@ class EntityService(BaseService[EntityModel]):
if "title" in content_frontmatter:
update_data["title"] = content_frontmatter["title"]
if "type" in content_frontmatter:
update_data["entity_type"] = content_frontmatter["type"]
update_data["note_type"] = content_frontmatter["type"]
if "permalink" in content_frontmatter:
content_markdown = self._build_frontmatter_markdown(
update_data.get("title", entity.title),
update_data.get("entity_type", entity.entity_type),
update_data.get("note_type", entity.note_type),
content_frontmatter["permalink"],
)
+9 -9
View File
@@ -692,14 +692,14 @@ class ProjectService:
)
total_unresolved = unresolved_count_result.scalar() or 0
# Get entity counts by type
entity_types_result = await self.repository.execute_query(
# Get entity counts by note type
note_types_result = await self.repository.execute_query(
text(
"SELECT entity_type, COUNT(*) FROM entity WHERE project_id = :project_id GROUP BY entity_type"
"SELECT note_type, COUNT(*) FROM entity WHERE project_id = :project_id GROUP BY note_type"
),
{"project_id": project_id},
)
entity_types = {row[0]: row[1] for row in entity_types_result.fetchall()}
note_types = {row[0]: row[1] for row in note_types_result.fetchall()}
# Get observation counts by category
category_result = await self.repository.execute_query(
@@ -761,7 +761,7 @@ class ProjectService:
total_observations=total_observations,
total_relations=total_relations,
total_unresolved_relations=total_unresolved,
entity_types=entity_types,
note_types=note_types,
observation_categories=observation_categories,
relation_types=relation_types,
most_connected_entities=most_connected,
@@ -780,7 +780,7 @@ class ProjectService:
# Get recently created entities (project filtered)
created_result = await self.repository.execute_query(
text("""
SELECT id, title, permalink, entity_type, created_at, file_path
SELECT id, title, permalink, note_type, created_at, file_path
FROM entity
WHERE project_id = :project_id
ORDER BY created_at DESC
@@ -793,7 +793,7 @@ class ProjectService:
"id": row[0],
"title": row[1],
"permalink": row[2],
"entity_type": row[3],
"note_type": row[3],
"created_at": row[4],
"file_path": row[5],
}
@@ -803,7 +803,7 @@ class ProjectService:
# Get recently updated entities (project filtered)
updated_result = await self.repository.execute_query(
text("""
SELECT id, title, permalink, entity_type, updated_at, file_path
SELECT id, title, permalink, note_type, updated_at, file_path
FROM entity
WHERE project_id = :project_id
ORDER BY updated_at DESC
@@ -816,7 +816,7 @@ class ProjectService:
"id": row[0],
"title": row[1],
"permalink": row[2],
"entity_type": row[3],
"note_type": row[3],
"updated_at": row[4],
"file_path": row[5],
}
+4 -4
View File
@@ -178,7 +178,7 @@ class SearchService:
permalink=query.permalink,
permalink_match=query.permalink_match,
title=query.title,
types=query.types,
note_types=query.note_types,
search_item_types=query.entity_types,
after_date=after_date,
metadata_filters=metadata_filters,
@@ -210,7 +210,7 @@ class SearchService:
permalink=query.permalink,
permalink_match=query.permalink_match,
title=query.title,
types=query.types,
note_types=query.note_types,
search_item_types=query.entity_types,
after_date=after_date,
metadata_filters=metadata_filters,
@@ -415,7 +415,7 @@ class SearchService:
permalink=entity.permalink, # Required for Postgres NOT NULL constraint
file_path=entity.file_path,
metadata={
"entity_type": entity.entity_type,
"note_type": entity.note_type,
},
created_at=entity.created_at,
updated_at=_mtime_to_datetime(entity),
@@ -500,7 +500,7 @@ class SearchService:
file_path=entity.file_path,
entity_id=entity.id,
metadata={
"entity_type": entity.entity_type,
"note_type": entity.note_type,
},
created_at=entity.created_at,
updated_at=_mtime_to_datetime(entity),