3de5a1ce91
feat: multi-process architecture with independent backend processes
...
- Extract backend_accounting from llmage cleanupctx to independent process
- Add bin/backend_accounting.py for standalone LLM billing loop
- Rewrite start.sh with two-phase startup:
1. Independent backend programs (run once)
2. Sage Web workers (SO_REUSEPORT on same port)
- Rewrite stop.sh to handle both workers and backend processes
- Add .gitignore for build artifacts and runtime files
Architecture:
- CPU core detection for worker count
- All workers share port 9180 via SO_REUSEPORT
- Backend processes tracked in sage_backend.pid
- Workers tracked in sage.pid
2026-05-17 00:11:53 +08:00
53285aa17e
feat: multi-process worker scaling for Sage web app
...
- Refactor start.sh to launch multiple worker processes based on CPU core count
- Assign dynamic ports to each worker (base_port + offset)
- Update stop.sh to gracefully handle and kill multiple worker PIDs
- Implement PID file management for multi-process tracking
2026-05-16 22:08:52 +08:00
2e86b7a008
feat: add production migration script for llm_catalog_rel
2026-05-16 21:31:50 +08:00
051d15f1af
fix: 添加 .wss 后缀映射到 ws 处理器
2026-05-13 16:12:51 +08:00
fbed69ea35
bugfix
2026-05-13 16:09:08 +08:00
ae43ce2c6c
新增 rbac 模块权限初始化脚本
...
基于角色职责分析的四层权限模型:
1. Public (any): 18个路径 - 登录/注册/认证/静态资源
2. Logined (11角色): 29个路径 - 用户自助服务、API Key CRUD
3. Admin (5角色): 35个路径 - 用户管理、机构管理、供应商/分销商
4. Superuser (1角色): 27个路径 - 角色/权限/机构类型管理
总计: 18 + 29*11 + 35*5 + 27*1 = 592 条权限记录
2026-05-13 14:41:08 +08:00
b1073c6afe
fix: 推理菜单submenu指向正确的harnessed_reasoning菜单
...
之前'推理'菜单的submenu错误指向了/harnessed_agent/menu.ui,
改为/harnessed_reasoning/menu.ui后可以看到:
- 推理控制台
- 推理交互
- 推理会话
- 推理配置
2026-05-13 14:29:35 +08:00
6951ee7ebf
重构权限模型:基于角色职责的四层分级
...
根据角色职责重新设计权限分级:
- owner.superuser: 系统级管理(机构/角色/权限)
- *.admin: 机构级管理(人员/角色分配)
- reseller.operator: 运营(产品/合同/定价)
- reseller.sale: 销售(客户/折扣)
- reseller.accountant: 财务(充值/对账)
- reseller.maintainer: 运维
- customer.customer: 终端客户
权限模型:
1. Public (any): CSS静态资源
2. Logined (所有登录用户10角色): 控制台、数据查看、用户自己的CRUD、推理、执行
3. Admin (superuser+5种admin): 系统级LLM配置管理
4. Superuser (仅owner.superuser): 技能部署等高危操作
2026-05-13 14:27:53 +08:00
6c62313bb9
补充CRUD目录路径权限(无/index.ui后缀)
...
ahserver indexes配置自动匹配index.ui,访问 /harnessed_agent/hermes_memory
时RBAC收到的path为 /harnessed_agent/hermes_memory(不含后缀)
同时注册目录路径和index.ui路径确保两种访问方式都能通过权限检查
- harnessed_agent: 12个CRUD目录各新增1个无后缀路径
- harnessed_reasoning: 3个CRUD目录各新增1个无后缀路径
2026-05-13 13:58:50 +08:00
050dd0b2da
补充CRUD生成路径的权限设置
...
- READ层级: 12个harnessed_agent CRUD目录的index.ui + get_*.dspy
3个harnessed_reasoning CRUD目录的index.ui + get_*.dspy
- ADMIN层级: 12个harnessed_agent CRUD目录的add/update/delete_*.dspy (36文件)
3个harnessed_reasoning CRUD目录的add/update/delete_*.dspy (9文件)
- 基于JSON CRUD alias确定目录结构和文件名
2026-05-13 13:55:02 +08:00
8261f9d309
Add RBAC permission init script for harnessed_agent and harnessed_reasoning modules
...
- Three-tier permission model: public/read/admin
- Public: CSS files for any role
- Read: console UI, data view pages, read-only APIs for logined + admin roles
- Admin: config management, CRUD write ops, execution APIs for admin roles only
- Correct wss path handling (no /wss prefix in RBAC, nginx strips it)
- 420 total permission entries across 8 read roles and 7 admin roles
2026-05-13 13:39:44 +08:00
9d2c89d811
bugfix
2026-05-13 12:52:24 +08:00
65064f0f67
bugfix
2026-05-13 11:00:35 +08:00
a87d34da93
bugfix
2026-05-12 13:32:20 +08:00
818d1ce77e
bugfix
2026-05-12 13:19:58 +08:00
c515824bd9
append api doc in Engine, Japense, and Korenes
2026-05-09 12:43:41 +08:00
74da86f7bf
add api language version
2026-05-08 19:00:53 +08:00
9a473a19bd
bugfix
2026-05-08 18:53:11 +08:00
71afc6c866
bugfix
2026-05-08 18:42:32 +08:00
9815fd1ac8
bugfix
2026-05-06 10:45:02 +08:00
6220e8546a
bugfix
2026-04-29 13:41:44 +08:00
bce3fc1889
bugfic
2026-04-26 12:03:04 +08:00
410a8f34e1
bugfix
2026-04-24 23:39:21 +08:00
2ffc08556c
bugfix
2026-04-24 23:35:00 +08:00
9ffba3112f
bugfix
2026-04-24 18:44:29 +08:00
503537d2f5
bugfix
2026-04-23 17:49:52 +08:00
78a604a399
bugfix
2026-04-23 17:03:21 +08:00
33d8c3e208
bugfix
2026-04-22 15:29:43 +08:00
09a6e212b3
bugfix
2026-04-21 16:11:18 +08:00
1e26de85f5
bugfix
2026-04-21 15:50:40 +08:00
faad6e40b1
bugfix
2026-04-21 14:25:48 +08:00
1262164f49
bugfix
2026-04-17 16:08:03 +08:00
381ac1594c
bugfix
2026-04-16 17:10:00 +08:00
15d0c1e84e
bugfix
2026-04-15 18:08:58 +08:00
a229e4084b
bugfix
2026-04-03 14:46:19 +08:00
822e3b9dca
bugfix
2026-04-02 17:32:22 +08:00
4098648f60
bugfix
2026-04-02 17:30:34 +08:00
eda045c6df
bugfix
2026-04-02 16:57:53 +08:00
fe6e9ea0ec
bugfix
2026-04-02 14:27:18 +08:00
630170a41f
bugfix
2026-04-01 16:12:16 +08:00
680b62b472
bugfix
2026-04-01 16:06:34 +08:00
e52c404330
bugfix
2026-04-01 16:05:08 +08:00
2c8d02427d
bugfix
2026-04-01 16:02:02 +08:00
1e0158ad1f
bugfix
2026-04-01 15:57:53 +08:00
fb2c6383f9
bugfix
2026-04-01 15:55:41 +08:00
2f99a00991
bugfix
2026-04-01 15:15:08 +08:00
b6b07bebba
bugfix
2026-04-01 15:05:52 +08:00
b462f73a8f
bugfix
2026-04-01 15:00:45 +08:00
11621a753b
bugfix
2026-04-01 14:51:23 +08:00
7796b39c16
bugfix
2026-04-01 14:36:08 +08:00