TermiNexus
|
81ffa0e19f
|
feat(GitMirror): 支持 CloneBaseUrl 直连本地 Gitea,删除本地镜像时清除只读属性
|
2026-10-23 15:57:40 +08:00 |
|
TermiNexus
|
3ba3740624
|
fix(GitMirror): 同步失败时删除本地镜像并排到队尾,大仓强制 HTTP/1.1
|
2026-10-23 15:45:01 +08:00 |
|
TermiNexus
|
c81637dc71
|
chore: 更新完成提示 toast 文案(GitMirror 上线)
|
2026-10-23 15:29:44 +08:00 |
|
TermiNexus
|
d29ed8086f
|
fix(GitMirror): 兼容 Gitea 28 的 webhook events 数组并增强失败重试
|
2026-10-23 15:27:56 +08:00 |
|
TermiNexus
|
14d90591c3
|
fix(GitMirror): 凭据改为 remote 内嵌并仅镜像 heads/tags/notes,避免误删分支与隐藏 ref
|
2026-10-23 15:18:59 +08:00 |
|
TermiNexus
|
5cbbeb0681
|
chore: 更新完成提示 toast 文案(GitMirror PAT 权限诊断)
|
2026-10-23 14:13:00 +08:00 |
|
TermiNexus
|
4fe8033a1a
|
chore: 更新完成提示 toast 文案(GitMirror 服务)
|
2026-10-23 13:48:32 +08:00 |
|
TermiNexus
|
eb4ff5197d
|
feat(GitMirror): 新增 Gitea 到 GitHub 实时镜像服务(webhook+定时兜底+LFS)
|
2026-10-23 13:45:33 +08:00 |
|
TermiNexus
|
0ba3aeee2d
|
chore(部署): 同步幕布描边进一步放慢产物
|
2026-10-20 10:50:55 +08:00 |
|
TermiNexus
|
8998b28529
|
chore(部署): 同步幕布描边放慢产物
|
2026-10-19 23:03:48 +08:00 |
|
TermiNexus
|
e64e949c40
|
chore(部署): 同步幕布节奏与限位速度调整产物
|
2026-10-19 23:01:12 +08:00 |
|
TermiNexus
|
2313efbbfb
|
chore(部署): 同步鼠标光圈跟随速度调整产物
|
2026-10-19 22:56:05 +08:00 |
|
TermiNexus
|
df8f11e168
|
chore(部署): 同步幕布字体绘制节奏调整产物
|
2026-10-19 22:54:21 +08:00 |
|
TermiNexus
|
89ff16488f
|
chore(部署): 同步 Cookie 同意横幅优化产物
|
2026-10-19 22:14:08 +08:00 |
|
TermiNexus
|
7f51bb42fe
|
chore(部署): 同步实心半透明鼠标光圈产物
|
2026-10-19 21:44:22 +08:00 |
|
TermiNexus
|
8b3433ecdd
|
chore(部署): 同步鼠标光圈与首页区块调整产物
|
2026-10-19 19:24:16 +08:00 |
|
TermiNexus
|
1bdc0e3932
|
chore(部署): 同步深色超级菜单修复产物
|
2026-10-19 16:40:36 +08:00 |
|
TermiNexus
|
01721a6b1a
|
chore(备份): 备份当前主页到 TempLate/2 并忽略快照产物
|
2026-10-19 15:34:26 +08:00 |
|
TermiNexus
|
bb70ab0d9b
|
chore(部署): 同步主题切换悬停位移修复产物
|
2026-10-19 15:30:58 +08:00 |
|
TermiNexus
|
490e1f3c9a
|
chore(部署): 同步主题切换横向滑动动画产物
|
2026-10-19 14:58:12 +08:00 |
|
TermiNexus
|
022aa117f7
|
chore(部署): 同步主题切换控件动画修复产物
|
2026-10-19 14:55:42 +08:00 |
|
TermiNexus
|
86736e1585
|
chore(部署): 同步深色头部与翻牌组件修复产物
|
2026-10-18 22:57:39 +08:00 |
|
TermiNexus
|
d8d1b48846
|
chore(部署): 同步 www 官网深浅色主题构建产物
|
2026-10-18 22:39:42 +08:00 |
|
TermiNexus
|
4493d62f29
|
chore: 更新完成提示 toast 文案(头像预压缩 96x96)
|
2026-10-13 19:05:43 +08:00 |
|
TermiNexus
|
68a9c2ca27
|
chore: 修复 toast 脚本重复 BOM 前缀
|
2026-10-13 18:53:59 +08:00 |
|
TermiNexus
|
eb429225b6
|
chore: 更新完成提示 toast 文案(头像上传前端压缩)
|
2026-10-13 18:53:25 +08:00 |
|
TermiNexus
|
9e3ea327d9
|
chore: 更新完成提示 toast 文案(头像上传前端压缩)
|
2026-10-13 18:53:14 +08:00 |
|
TermiNexus
|
79babb9c6a
|
chore: 更新完成提示 toast 文案(批量设置 GERP 用户头像)
|
2026-10-13 18:35:12 +08:00 |
|
TermiNexus
|
6582659072
|
chore: 更新完成提示 toast 文案(Talk 群头像九宫格/自定义)
|
2026-10-13 18:23:18 +08:00 |
|
TermiNexus
|
8abbe1eefc
|
feat(Talk): 群头像支持自定义上传与成员九宫格默认
|
2026-10-13 18:23:17 +08:00 |
|
TermiNexus
|
5707ab0371
|
feat(Talk): 群操作写系统消息并广播会话事件
新增 AppendSystemMessage:改群名/群公告/移出成员/转让群主/设取消管理员时写入 MsgType=3 系统消息,同时回填会话最后消息摘要,使不在会话内的成员通过未读提醒感知(群公告提醒即走此路径)。
新增 BroadcastConversation,向会话广播 talk:conversation 事件(renamed/announcement/role_changed/members_removed/owner_transferred/dissolved),供前端立即同步会话列表与成员。
|
2026-10-13 17:20:27 +08:00 |
|
TermiNexus
|
f608a6f9c0
|
feat(Talk): 新增移出群成员、转让群主与群公告
移出群成员 POST Conversation/Member/Remove:群主可移出任何人(群主除外),群管理员仅可移出普通成员,Talk 管理员不受限;转让群主 POST Conversation/Transfer:仅群主或 Talk 管理员,原群主转为群管理员;群公告 POST Conversation/Announcement:群主/群管理员可编辑(空串清空),TalkConversation 增 Announcement/AnnouncementTime(迁移 0056)。
群主判定改为「成员表 Role=群主 优先,仅无群主行时回退创建人」,避免转让后创建人仍被当作群主;群主退出时优先移交给最早加入的管理员;会话列表返回群公告字段。
|
2026-10-13 16:37:53 +08:00 |
|
TermiNexus
|
90b20f3c94
|
feat(Talk): 群支持最多 10 个管理员,改群名收紧到群主/管理员
成员角色新增 2=管理员(MAX_GROUP_ADMINS=10);新增 POST API/Talk/Conversation/Member/Role 设置/取消管理员(仅群主或 Talk 管理员,不能变更群主);会话列表返回 IsGroupAdmin/MyRole/AdminCount/CanManage 与成员 MemberRole;RenameConversation 增加 IsTalkAdmin 参数并把群聊改名权限收紧到群主/群管理员;Entry 下发 GroupAdminLimit。
|
2026-10-13 16:07:52 +08:00 |
|
TermiNexus
|
aa56281493
|
feat(订阅式软件提供): 按包名详情接口在 README 为空时合成默认 Markdown
新增 _DefaultReadme:由包名、说明、安装命令、依赖表与版本历史合成 README;仅 PackageByNameView(官网数据源)使用,配置页读到的仍是作者原文,避免合成内容被回写。
|
2026-10-07 20:16:08 +08:00 |
|
TermiNexus
|
4bd5697cff
|
feat(订阅式软件提供): 包详情支持依赖列表与 README,打通产品官网数据链路
GVSDServiceServer:VenomPackage 增 Dependencies(JSON)/Readme(Text) 与迁移 0002,新增按包名取详情接口 /api/venom/project/<包名>/,定制页配置新增依赖编辑器与 README 编辑。
gvsds:新增 /API/Venom/Project/<包名> 公开只读接口,按 PublicSiteHost 反查产品并回源提供者;SubscriptionGroup 增 PublicSiteHost 字段(迁移 0055)。
Main.py:venom 子域加 SPA fallback,/project/<包名>/ 回退 index.html。
|
2026-10-07 19:35:46 +08:00 |
|
TermiNexus
|
edecc6435a
|
feat(订阅式软件提供): 远端入口 URL 带内容版本号,免除浏览器旧副本
- ProxyEntryURL 追加 ?v=<SHA256前16位>:内容一变 URL 就变,浏览器/中间缓存旧副本自动作废,提供者重建后无需强制刷新
- 重新声明定制页时清缓存并立即回源预热,使版本号自第一刻起即为新值(返回体新增 WarmError 供排查)
|
2026-10-07 18:05:23 +08:00 |
|
TermiNexus
|
6165df5d78
|
fix(订阅式软件提供): 远端资源改 no-cache 条件校验,且 ETag 按 RFC7232 弱比较
- 浏览器侧 max-age=24h 会把旧产物挡住一天,提供者重建后被浏览器旧副本劫持;改为 no-cache + ETag:每次校验、未变 304,回源仍受主服务 24h TTL 限制
- 实测响应 ETag 被网关降为弱校验(W/ 前缀),严格相等匹配拿不到 304;改为归一化(去 W/ 与引号)后按弱比较命中,实测 304
|
2026-10-07 17:59:59 +08:00 |
|
TermiNexus
|
f812413de5
|
feat(GVSDServiceServer): 新增 Venom 一键重建+重新声明脚本
- rebuild-venom.ps1:npm run build 后自动调 /api/sub/declare-page/,主服务器登记入口同时清空该产品资源缓存,重建产物立即生效(无需等 24h)
- 声明端点支持请求体传 ApiKey/Secret(缺省回落环境变量),便于脚本按次传凭据
|
2026-10-07 17:48:14 +08:00 |
|
TermiNexus
|
8d98abe231
|
feat(订阅式软件提供): 提供者重新声明定制页即失效该产品资源缓存
入口 URL 通常不含内容版本号,24h TTL 内主服务不会回源,重建后的产物要等过期才生效;改为 SetGroupRemotePage 时清空该产品缓存(PurgeRemoteAssets),下次请求立即回源并按 SHA256 只换来真正变化的文件
|
2026-10-07 17:44:29 +08:00 |
|
TermiNexus
|
3e642ca119
|
fix(Venom): 修复 API base 被 Vite 编译成静态资源查找导致请求 undefined 路径
Vite 会把 new URL(动态拼接串, import.meta.url) 编译为 Object.assign({})[key] 资源表查找,运行时取到 undefined(请求变成 .../venom/undefined/packages/);改为正则 + 字符串拼接自行推导同源 RemoteApi 基址
|
2026-10-07 17:39:12 +08:00 |
|
TermiNexus
|
89274ea2bd
|
fix(订阅式软件提供): 远端资源浏览器侧缓存与主服务统一为 24h
Cache-Control 由 max-age=3600 改为 max-age=86400(复用 REMOTE_ASSET_TTL_SECONDS),保留 ETag 条件请求
|
2026-10-07 17:31:09 +08:00 |
|
TermiNexus
|
37413722af
|
refactor(GVSDServiceServer): 移除子服务器 CORS,改由主服务同源代理
- 资源与接口统一经主服务 RemoteAsset/RemoteApi 代理,浏览器不直连子服务器,跨源放行不再需要
- 删除 apps/venom/middleware.py 与其 MIDDLEWARE 注册;VenomRemoteEntryView 去掉 Access-Control-Allow-Origin
|
2026-10-07 17:27:47 +08:00 |
|
TermiNexus
|
eecb4f66e9
|
feat(订阅式软件提供): 主服务缓存代理提供者子服务器资源,浏览器不再直连
- 新增 SubscriptionRemoteAsset 缓存表(迁移 0054):内容落库,TTL 24h,过期回源按 SHA256 判断变更,回源失败降级用旧缓存
- 新增 GET /API/Subscription/RemoteAsset/<GroupUUID>/<Path>(带 ETag/条件请求)与 ANY /API/Subscription/RemoteApi/<GroupUUID>/<Path> 实时接口透传(不缓存、不转发 Cookie)
- ListMySubscriptions 下发的 RemoteEntry 改写为主服务同源代理 URL;venom_ui API base 随之走 RemoteApi 透传
|
2026-10-07 17:22:48 +08:00 |
|
TermiNexus
|
8beb280aad
|
style(Venom): 优化包管理器定制页 UI
- 新增品牌/概览区(软件包数、版本发布数)与工具条,列表改用卡片 + 包头像/说明双行单元格
- 配置视图改为 包信息头 + 配置/发布双栏卡片 + 发布历史卡片,表单改 label 顶置
- 全部配色走 Element Plus CSS 变量,自动适配宿主明/暗主题;引入 @element-plus/icons-vue
|
2026-10-05 18:24:37 +08:00 |
|
TermiNexus
|
993d142bdd
|
fix(订阅式软件提供): venom_ui 产物内联 process.env.NODE_ENV,修复远端加载 process is not defined
lib 模式不自动替换 NODE_ENV,浏览器原生 import 时报错;build.define 强制按 production 常量内联
|
2026-10-05 18:14:52 +08:00 |
|
TermiNexus
|
c50f3f0a55
|
feat(订阅式软件提供): GVSDServiceServer 新增 Venom 包管理器与远端页面子工程
- apps/venom: VenomPackage/VenomPackageRelease 模型 + 0001 迁移,提供包列表/新建(包名全局唯一)/详情/配置保存/发布历史接口,并放行跨源 CORS
- venom_ui: Vite+Vue SFC 子工程,单文件 ES module 产物,支持 mount/unmount 微应用契约,页面含包列表、新建、配置页、发布历史
- sub_server: VenomRemoteEntryView 改由 venom_ui 构建产物托管;remote_pages 占位模块改为 mount/unmount
|
2026-10-05 17:45:33 +08:00 |
|
TermiNexus
|
b078f8e9fe
|
feat(订阅式软件提供): 产品定制页远端入口 + 我的订阅 + GVSDServiceServer
订阅组新增 RemoteEntry/RemoteModule(0053 迁移);新增 Provider/Page/Save(提供者用 ApiKey+密钥换取令牌后声明定制页)与 MySubscriptions(按当前用户查已订阅产品,含定制页入口)接口;清单新增「我的订阅」菜单与 subscriber 虚拟职务;新增提供者子服务器 GVSDServiceServer(仿 ATestCServer:MSYNC 桥接 + 托管 Venom 定制页远端组件 + 用订阅凭据声明定制页)。
|
2026-10-05 17:00:05 +08:00 |
|
TermiNexus
|
2c8dd45206
|
feat(订阅式软件提供): 产品级 API Key/密钥与订阅成员
新增 SubscriptionApiCredential(每产品一对 ApiKey+密钥,密钥仅存 bcrypt 哈希,激活/重置时明文仅返回一次)与 SubscriptionMember(以「部门-员工键」记录订阅,写入时校验部门必须归属该产品消费者公司);manager 增加凭据激活/查看/重置/校验与访问令牌签发、成员列表/批量保存/删除;views/urls 增加管理端凭据与成员接口,以及提供者子服务器 Token(免登录换令牌)与 Ping(Bearer 鉴权);新增 permissions 提供者令牌认证与权限。
|
2026-10-05 11:29:04 +08:00 |
|
TermiNexus
|
229cf2fe92
|
chore: 更新完成提示 toast 文案(订阅允许同公司双身份)
|
2026-10-05 11:04:39 +08:00 |
|
TermiNexus
|
a647508214
|
feat(gerp): 订阅允许同一家公司同时作为提供者与消费者
- SaveGroup / SaveAppParties 去掉两方交集校验(唯一键按 PartyType 区分,同一公司可落两行)
- 保留「同一身份下不可重复出现」校验
- 同步更新 models 文档说明
|
2026-10-05 11:03:13 +08:00 |
|