AI Update: این خاطره رو به صورت عمومی ثبت کن من مدیر هستم و باید توانای

This commit is contained in:
Antigravity Bot
2026-08-31 01:58:48 +03:30
parent ee474774e1
commit 390b938c05
7 changed files with 106 additions and 46 deletions
Submodule projects/232801087/myapp updated: ded79a9a9e...a6bf56fafb
Submodule projects/78649634/bildirchin added at e109f5d777
Submodule projects/78649634/copykar updated: f8468cdd1a...6e4b7e364d
Submodule projects/78649634/gasemi_tier updated: d27520ec0f...aca18b7229
+34 -13
View File
@@ -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