AI Update: این خاطره رو به صورت عمومی ثبت کن من مدیر هستم و باید توانای
This commit is contained in:
+1
-1
Submodule projects/232801087/myapp updated: ded79a9a9e...a6bf56fafb
Submodule
+1
Submodule projects/78649634/bildirchin added at e109f5d777
Submodule projects/78649634/copykar updated: f8468cdd1a...6e4b7e364d
Submodule projects/78649634/gasemi_tier updated: d27520ec0f...aca18b7229
@@ -1649,15 +1649,19 @@ async def execute_action(
|
||||
created_task,
|
||||
)
|
||||
|
||||
# Map types: 'project' -> project tier, 'user'/'private' -> user tier, 'global' -> rejected/downgraded for AI
|
||||
# Map types: 'project' -> project tier, 'user'/'private' -> user tier, 'global' -> global tier (if admin)
|
||||
is_admin_user = settings.is_admin(chat_id)
|
||||
if raw_type in ("project", "proj"):
|
||||
mem_type = "project"
|
||||
proj_name = req_project
|
||||
elif raw_type == "global":
|
||||
# Global memories are strictly bot-managed by Admin. AI cannot auto-save global memories.
|
||||
logger.info("AI attempted global memory save for user %s; safely converting to user memory.", chat_id)
|
||||
mem_type = "user"
|
||||
proj_name = None
|
||||
if is_admin_user:
|
||||
mem_type = "global"
|
||||
proj_name = None
|
||||
else:
|
||||
logger.info("Non-admin user %s attempted global memory save; converting to user memory.", chat_id)
|
||||
mem_type = "user"
|
||||
proj_name = None
|
||||
else:
|
||||
mem_type = "user"
|
||||
proj_name = None
|
||||
@@ -1667,7 +1671,7 @@ async def execute_action(
|
||||
type_=mem_type,
|
||||
key=key,
|
||||
content=content,
|
||||
user_id=chat_id,
|
||||
user_id=None if mem_type == "global" else chat_id,
|
||||
project_name=proj_name,
|
||||
category=category,
|
||||
importance=importance,
|
||||
@@ -1720,28 +1724,37 @@ async def execute_action(
|
||||
created_task,
|
||||
)
|
||||
|
||||
is_admin_user = settings.is_admin(chat_id)
|
||||
if raw_type in ("project", "proj"):
|
||||
mem_type = "project"
|
||||
proj_name = req_project
|
||||
elif raw_type == "global" and is_admin_user:
|
||||
mem_type = "global"
|
||||
proj_name = None
|
||||
else:
|
||||
mem_type = "user"
|
||||
proj_name = None
|
||||
|
||||
try:
|
||||
existing = memory_manager.get_by_key(type_=mem_type, key=key, user_id=chat_id, project_name=proj_name)
|
||||
existing = memory_manager.get_by_key(type_=mem_type, key=key, user_id=None if mem_type == "global" else chat_id, project_name=proj_name)
|
||||
cat = category or (existing.category if existing else "general")
|
||||
imp = int(importance_raw) if importance_raw and importance_raw.isdigit() else (existing.importance if existing else 1)
|
||||
item, is_created = memory_manager.save_or_update(
|
||||
type_=mem_type,
|
||||
key=key,
|
||||
content=content,
|
||||
user_id=chat_id,
|
||||
user_id=None if mem_type == "global" else chat_id,
|
||||
project_name=proj_name,
|
||||
category=cat,
|
||||
importance=imp,
|
||||
created_by=chat_id,
|
||||
)
|
||||
type_label = f"📁 پروژه (<code>{escape_html(proj_name or '')}</code>)" if item.is_project else "👤 کاربر (سراسری)"
|
||||
if item.is_project:
|
||||
type_label = f"📁 پروژه (<code>{escape_html(proj_name or '')}</code>)"
|
||||
elif item.is_user:
|
||||
type_label = "👤 کاربر (سراسری)"
|
||||
else:
|
||||
type_label = "🌐 عمومی (سیستم)"
|
||||
badge = (
|
||||
f"\n\n🧠 <b>خاطره هوش مصنوعی بهروزرسانی شد:</b>\n"
|
||||
f"• 🏷️ <b>بخش:</b> {type_label}\n"
|
||||
@@ -1768,16 +1781,24 @@ async def execute_action(
|
||||
key = attrs.get("key") or attrs.get("slug") or attrs.get("_default")
|
||||
raw_type = (attrs.get("type") or "user").lower().strip()
|
||||
req_project = attrs.get("project") or attrs.get("proj") or current_project_name
|
||||
is_admin_user = settings.is_admin(chat_id)
|
||||
|
||||
mem_type = "project" if raw_type in ("project", "proj") else "user"
|
||||
proj_name = req_project if mem_type == "project" else None
|
||||
if raw_type in ("project", "proj"):
|
||||
mem_type = "project"
|
||||
proj_name = req_project
|
||||
elif raw_type == "global" and is_admin_user:
|
||||
mem_type = "global"
|
||||
proj_name = None
|
||||
else:
|
||||
mem_type = "user"
|
||||
proj_name = None
|
||||
|
||||
try:
|
||||
if mem_id_raw and mem_id_raw.isdigit():
|
||||
ok = memory_manager.delete_by_id(int(mem_id_raw), user_id=chat_id, is_admin=is_admin)
|
||||
ok = memory_manager.delete_by_id(int(mem_id_raw), user_id=chat_id, is_admin=is_admin_user)
|
||||
elif key:
|
||||
ok = memory_manager.delete_by_key(
|
||||
type_=mem_type, key=key, user_id=chat_id, project_name=proj_name, is_admin=is_admin
|
||||
type_=mem_type, key=key, user_id=None if mem_type == "global" else chat_id, project_name=proj_name, is_admin=is_admin_user
|
||||
)
|
||||
else:
|
||||
return "\n⚠️ لطفاً شناسه یا کلید خاطره جهت حذف را مشخص کنید." if is_fa else "\n⚠️ Please specify memory id or key to delete.", side_effects, created_task
|
||||
|
||||
Binary file not shown.
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user