mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-10-20 15:37:27 +08:00
fix(operation-trace): stop false tamper reports and sharpen resource classification
- Chain integrity: the "read newest hash, then insert" pair in record() could be interleaved by concurrent traces (the panel opens a dozen parallel GETs), so two rows linked to the same predecessor and one looked like a broken chain even though nobody edited anything. Serialize the pair with a per-service lock. - Resource classification: generic verbs fell back to resource_type='resource', so almost every read showed up as "View resource / Resource" (pipelines, bots, providers, users, monitoring...). Derive the family from the registered route identity (pipeline, bot, model_provider, llm_model, monitoring, user, workspace, webhook, api_key, system). - Frontend: render the resource family for the new types (8 locales) and keep the resource_id badge added earlier. Verified: backend integration 358 passed, ruff check/format clean; frontend tsc, eslint, prettier and check-i18n all pass.
This commit is contained in:
@@ -2772,6 +2772,16 @@ const enUS = {
|
||||
read: 'Everything',
|
||||
},
|
||||
resourceTypes: {
|
||||
bot: 'Bot',
|
||||
adapter: 'Adapter',
|
||||
model_provider: 'Model provider',
|
||||
llm_model: 'Model',
|
||||
pipeline: 'Pipeline',
|
||||
user: 'User',
|
||||
workspace: 'Workspace',
|
||||
monitoring: 'Monitoring',
|
||||
webhook: 'Webhook',
|
||||
api_key: 'API key',
|
||||
workspace_settings: 'Workspace settings',
|
||||
member: 'Member',
|
||||
member_invitation: 'Member invitation',
|
||||
|
||||
@@ -2827,6 +2827,16 @@ const esES = {
|
||||
read: 'Todo',
|
||||
},
|
||||
resourceTypes: {
|
||||
bot: 'Bot',
|
||||
adapter: 'Adaptador',
|
||||
model_provider: 'Proveedor de modelos',
|
||||
llm_model: 'Modelo',
|
||||
pipeline: 'Pipeline',
|
||||
user: 'Usuario',
|
||||
workspace: 'Espacio de trabajo',
|
||||
monitoring: 'Monitorización',
|
||||
webhook: 'Webhook',
|
||||
api_key: 'Clave de API',
|
||||
workspace_settings: 'Ajustes del espacio de trabajo',
|
||||
member: 'Miembro',
|
||||
member_invitation: 'Invitación de miembro',
|
||||
|
||||
@@ -2790,6 +2790,16 @@ const jaJP = {
|
||||
read: '最上位',
|
||||
},
|
||||
resourceTypes: {
|
||||
bot: 'ボット',
|
||||
adapter: 'アダプター',
|
||||
model_provider: 'モデルプロバイダー',
|
||||
llm_model: 'モデル',
|
||||
pipeline: 'パイプライン',
|
||||
user: 'ユーザー',
|
||||
workspace: 'ワークスペース',
|
||||
monitoring: 'モニタリング',
|
||||
webhook: 'Webhook',
|
||||
api_key: 'API キー',
|
||||
workspace_settings: 'ワークスペース設定',
|
||||
member: 'メンバー',
|
||||
member_invitation: 'メンバー招待',
|
||||
|
||||
@@ -2797,6 +2797,16 @@ const ruRU = {
|
||||
read: 'Всё',
|
||||
},
|
||||
resourceTypes: {
|
||||
bot: 'Бот',
|
||||
adapter: 'Адаптер',
|
||||
model_provider: 'Провайдер моделей',
|
||||
llm_model: 'Модель',
|
||||
pipeline: 'Конвейер',
|
||||
user: 'Пользователь',
|
||||
workspace: 'Рабочее пространство',
|
||||
monitoring: 'Мониторинг',
|
||||
webhook: 'Webhook',
|
||||
api_key: 'API-ключ',
|
||||
workspace_settings: 'Настройки пространства',
|
||||
member: 'Участник',
|
||||
member_invitation: 'Приглашение участника',
|
||||
|
||||
@@ -2724,6 +2724,16 @@ const thTH = {
|
||||
read: 'สูงสุด',
|
||||
},
|
||||
resourceTypes: {
|
||||
bot: 'บอท',
|
||||
adapter: 'อะแดปเตอร์',
|
||||
model_provider: 'ผู้ให้บริการโมเดล',
|
||||
llm_model: 'โมเดล',
|
||||
pipeline: 'ไปป์ไลน์',
|
||||
user: 'ผู้ใช้',
|
||||
workspace: 'เวิร์กสเปซ',
|
||||
monitoring: 'การมอนิเตอร์',
|
||||
webhook: 'Webhook',
|
||||
api_key: 'คีย์ API',
|
||||
workspace_settings: 'การตั้งค่าพื้นที่ทำงาน',
|
||||
member: 'สมาชิก',
|
||||
member_invitation: 'คำเชิญสมาชิก',
|
||||
|
||||
@@ -2759,6 +2759,16 @@ const viVN = {
|
||||
read: 'Cao nhất',
|
||||
},
|
||||
resourceTypes: {
|
||||
bot: 'Bot',
|
||||
adapter: 'Bộ chuyển đổi',
|
||||
model_provider: 'Nhà cung cấp mô hình',
|
||||
llm_model: 'Mô hình',
|
||||
pipeline: 'Đường ống',
|
||||
user: 'Người dùng',
|
||||
workspace: 'Workspace',
|
||||
monitoring: 'Giám sát',
|
||||
webhook: 'Webhook',
|
||||
api_key: 'Khóa API',
|
||||
workspace_settings: 'Cài đặt không gian làm việc',
|
||||
member: 'Thành viên',
|
||||
member_invitation: 'Lời mời thành viên',
|
||||
|
||||
@@ -2622,6 +2622,16 @@ const zhHans = {
|
||||
read: '最高级',
|
||||
},
|
||||
resourceTypes: {
|
||||
bot: '机器人',
|
||||
adapter: '适配器',
|
||||
model_provider: '模型提供商',
|
||||
llm_model: '模型',
|
||||
pipeline: '管道',
|
||||
user: '用户',
|
||||
workspace: '工作区',
|
||||
monitoring: '监控',
|
||||
webhook: 'Webhook',
|
||||
api_key: 'API 密钥',
|
||||
workspace_settings: '工作区设置',
|
||||
member: '成员',
|
||||
member_invitation: '成员邀请',
|
||||
|
||||
@@ -2623,6 +2623,16 @@ const zhHant = {
|
||||
read: '最高級',
|
||||
},
|
||||
resourceTypes: {
|
||||
bot: '機器人',
|
||||
adapter: '適配器',
|
||||
model_provider: '模型提供商',
|
||||
llm_model: '模型',
|
||||
pipeline: '管道',
|
||||
user: '使用者',
|
||||
workspace: '工作區',
|
||||
monitoring: '監控',
|
||||
webhook: 'Webhook',
|
||||
api_key: 'API 金鑰',
|
||||
workspace_settings: '工作區設定',
|
||||
member: '成員',
|
||||
member_invitation: '成員邀請',
|
||||
|
||||
Reference in New Issue
Block a user