Skip to content

ARTEX · 终末地主题版 v2.2.2(Windows x64)

Latest

Choose a tag to compare

@TATHPE TATHPE released this 17 Oct 11:57
· 30 commits to endfield-theme since this release

ARTEX · 终末地主题版 v2.2.2(Windows x64)

本仓库是上游 ARTEX 的 fork:上游功能 / API / 数据库结构完全保留,额外实现终末地(Endfield)风格界面与 REA 逆向分析整合。

本次重点

1. 界面偏好终于能跨重启保持(修了三个叠加的 bug)

问题 根因 修复
暗色主题 / 主题预设 / 侧栏样式 重启后回默认 <head> 引导脚本被 Next 序列化进 RSC payload(self.__next_f.push),用 innerHTML 插入的 <script> 永不执行 偏好改为直接从 cookie 读(store 挂载时)
同上(第二层) 只有 theme_mode 有专门的 effect 应用,预设/字体/布局/侧栏从来没人在启动时应用 挂载时把 preset/font/contentLayout/navbarStyle/sidebarVariant/sidebarCollapsible 全部 apply 到 DOM
同上(第三层) Chromium 的 cookie 库是异步加载的,冷启动首帧 document.cookie 可能为空 主进程 loadURL 前预热 cookie 库 + 前端 400ms 后补读一次

验证方式:壳内新增 ARTEX_DEBUG_PREFS=1 诊断,把「渲染进程读到的 cookie」与「<html> 上的 data-*」一起写进 shell.log;修复后 domPreset 与 cookiePreset 首帧即一致。

2. 安全加固(自测 + 修复 + 回归归零)

  • SSRF 收口:POST /api/llm/test、POST /api/llm/models 会按调用方给的 base_url 发外连;现在只允许 http/https、禁 userinfo、拒绝链路本地/未指定/组播与云元数据主机名(169.254.0.0/16、fe80::/10、0.0.0.0、metadata.google.internal…),本机与内网模型服务仍然放行。
  • 安全响应头:全站 CSP + X-Content-Type-Options + X-Frame-Options: DENY + Referrer-Policy: no-referrer;CSP 含 object-src 'none'、frame-src 'none'、worker-src。
  • CORS:去掉无条件 Access-Control-Allow-Origin: *,只在请求带 loopback Origin 时回显。
  • 登录节流:同 IP 连续 5 次失败锁 60s,每再 5 次翻倍(上限 15min),成功即清零,返回 Retry-After。
  • 全局限流:/api/* 600 次/分钟/客户端,响应带 X-RateLimit-Limit / X-RateLimit-Remaining,超限 429。

3. 安装 / 卸载

  • 安装包不再携带运行期密钥:之前的打包源混进了测试期的 config.json 与 jwt.key(会让所有安装共用同一个 JWT 签名密钥),本次已清理,首次启动自行生成。
  • 卸载器现在真的会删文件:原先 Uninstall ARTEX.exe 0.9 秒退出、一个文件不删(模板从注册表取不到 $INSTDIR 后又被重置)。现在卸载流程会:停 PostgreSQL → 备份 pgdata 与 artex-data 到 %LOCALAPPDATA%\ARTEX\uninstall-backup → 交给独立脚本在卸载器退出后删除安装目录。
  • 卸载项写入注册表,控制面板「应用和功能」可见。

4. 界面

  • 侧边栏 ⚙ 弹层全中文(主题预设 / 字体 / 外观模式 / 页面布局 / 导航栏行为 / 侧栏样式 / 侧栏收起方式 / 恢复默认)。
  • 预设名汉化:默认(内置外观)/ 终末地 / 粗野主义 / 柔彩 / 橘子,并注明"默认"就是终末地皮肤。
  • 企鹅水印开关在 ⚙ 弹层(Hide Watermark),写入后端设置,跨重启保持。

5. 稳定性

  • LLM 审批重试:4xx/鉴权类错误不再重试,指数退避 + 抖动。
  • 请求限速增加抖动与并发闸。
  • 卡片高度溢出修复。
  • 关窗时可靠停掉 PostgreSQL(避免下次启动端口漂移导致偏好丢失)。

上游同步(与 ARTEX main 的功能整合)

本版把上游 RuoJi6/ARTEX 的 main 上与本 fork 相关的 3 个提交整合进来(cherry-pick,零冲突),并在同一次推送里让 main 和 endfield-theme 都指向同一提交:

上游提交 内容 本版效果
dc8e25e LLM 请求严格限流 按每个模型配置的配额排队,不再瞬间打满供应商
d64bea4 模型审批可配置重试 审批调用失败按配置重试;4xx / 鉴权类错误直接放弃
c4f2a5b 审批提示卡片高度 长脚本不再把卡片撑破,超出部分滚动

文档也同步到 2.2.2:README.md 补了维护修复一节与 ui.hide_penguin 配置说明,CHANGELOG.md 的 [2.2.2] 列出逐条变更,ENDFIELD-THEME.md 补了企鹅开关与 shell/ 源码位置。

合规前提(REA 逆向分析)

REA 仅用于自有软件、自有资产或获得明确授权的目标。逆向分析页预填了「只读、单文件、不执行、不联网、不利用」的任务模板——可修改、可一键重置(页面上的「重置目标模板」按钮);修改模板即视为自行承担相应责任。

资产

文件 用途
ARTEX-Endfield-Setup-2.2.2.exe 完整安装包(内置 PostgreSQL / Node / REA 运行时)
artex-2.2.2-windows-amd64.zip 页面一键更新用的发布包(含 start.bat 守护脚本与 skills/)
SHA256SUMS 上述两个文件的校验和

安装包未做代码签名,首次运行 Windows SmartScreen 会提示"更多信息 → 仍要运行"。