Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,6 @@ MANIFEST.in text eol=lf
.gitignore text eol=lf
*.command text eol=lf
*.cmd text eol=crlf
licenses/Unicode-3.0.txt text eol=lf
envscope/vendor/claude_switcher/** -text
envscope/vendor/claude_switcher/VENDOR_MANIFEST.json whitespace=blank-at-eol,blank-at-eof,space-before-tab,cr-at-eol
2 changes: 2 additions & 0 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ jobs:
- run: node --check envscope/web/connection.mjs
- run: node --check envscope/web/desktop.mjs
- run: node --check envscope/web/target.mjs
- run: node --check envscope/web/workflow.mjs
- run: node --check envscope/web/coverage.mjs
- run: node --check envscope/web/process_guard_ui.mjs
- run: node --check envscope/web/components_ui.mjs
Expand Down Expand Up @@ -67,6 +68,7 @@ jobs:
- run: python -m scripts.selection_smoke
- run: python -m scripts.check_preferences_smoke
- run: python -m scripts.region_lookup_smoke
- run: python -m scripts.simple_workflow_smoke
- run: python -m scripts.watchdog_smoke
- run: python -m scripts.process_guard_smoke
- run: python -m scripts.components_smoke
Expand Down
4 changes: 2 additions & 2 deletions README.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

![EnvScope desktop interface, offline demonstration](docs/images/desktop.png)

Current source: **0.23.0 Alpha**, adding reviewed legacy-program quarantine and restore, detached temporary-browser cleanup with restart recovery, and distinct egress-set statistics. Selection/all, explicit effects, preserved account data and manual handling of unknown files are built in. See [program cleanup](docs/LEGACY_SOFTWARE.md), [browser cleanup](docs/BROWSER_SESSIONS.md) and the [complete requirement ledger](docs/FULL_PARITY_AUDIT.md). Native `.csnap`, `.envsnap`, DMG, optional checks, FlClash maintenance and diagnostic ZIPs remain available. Published installers are listed under Releases.
Current source: **0.24.0 Alpha**. The home page now follows one workflow: confirm region/timezone, run checks, review problems and repairs, then enable persistent protection. Every issue and missing required observation stays visible. Reviewed timezone, locale and Code repairs share one confirmation and automatic recheck. Offline presets cover **247 countries/territories and 417 city/timezone entries**, with manual overrides. Accounts, selective checks, tools and history remain under **More functions**. See the [workflow](docs/SIMPLE_WORKFLOW.md) and [complete requirement ledger](docs/FULL_PARITY_AUDIT.md). Published installers are listed under Releases.

Account slots preserve complete independent local profile trees, with normal exit, APFS copy-on-write, verified commits and reviewed recovery after interruption. Recovery preserves displaced copies and never logs in or launches the client. See [account volume scope and tests](docs/ACCOUNT_VOLUMES.md).

Expand Down Expand Up @@ -38,7 +38,7 @@ target, including extra gates when strict TUN protection is selected. The Models
API probe now uses GET; native HTTP probes respect a discovered system HTTP
proxy when HTTPS/ALL proxy environment settings are absent.

This usability release adds a searchable, always-visible 32-check catalog,
The searchable check catalog remains available before measurement,
inline native information panels, desktop account guidance, visible-page
keepalive and explicit disconnected-tab recovery. It preserves the original
macOS detailed readers as separate maintenance actions. See the
Expand Down
19 changes: 10 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

面向 Windows 和 macOS 的极简桌面环境工具。以 [claude-switcher](https://github.com/YOURSJEYO/claude-switcher) 为功能底座,保留原版维护能力,增加独立检测、事务式账号管理、代理诊断和历史对比。

当前源码 **0.23.0 Alpha** 增加可恢复的旧软件清理、临时浏览器独立清理进程与重启恢复,以及 48 小时不同出口集合统计。清理支持单项 / 全选,先预览、再确认,保留账号与凭据;未知文件和进程占用转为红色手动指引。参见 [旧软件清理](docs/LEGACY_SOFTWARE.md)、[临时浏览器](docs/BROWSER_SESSIONS.md) 和 [完整功能对照](docs/FULL_PARITY_AUDIT.md)。原有 `.csnap` / `.envsnap` / DMG、持久可选检查、FlClash、日志与脱敏 ZIP 均保留。公开安装包以 Releases 为准。
当前源码 **0.24.0 Alpha** 将首页简化为“地区与时区 → 一键检测 → 问题和修复 → 持久化守护”。问题逐项可见,缺失的必需证据单独说明;时区、地区格式和 Code 配置合并审核,确认后修复并自动复检。地区预设扩充至 **247 个国家和地区、417 个城市/时区**。账号、全部检查、工具和历史统一放在“更多功能”。参见 [新版操作流程](docs/SIMPLE_WORKFLOW.md) 和 [完整功能对照](docs/FULL_PARITY_AUDIT.md)。公开安装包以 Releases 为准。

**0.23.0 已加入**可恢复的旧软件清理、临时浏览器独立清理进程与重启恢复,以及 48 小时不同出口集合统计。清理支持单项 / 全选,先预览、再确认,保留账号与凭据。参见 [旧软件清理](docs/LEGACY_SOFTWARE.md) 和 [临时浏览器](docs/BROWSER_SESSIONS.md)。

**0.20.0 已加入**旧后台任务的可逆迁移:单项选择或全选、预览访问与配置影响、保存原定义后停用、自动复检,以及恢复原任务。新守护会监测旧任务重新出现,发现冲突时暂停自身操作并留痕。一键流程按新检测结果分阶段生成方案。参见 [旧后台任务迁移](docs/legacy-components.md)。公开安装包以 Releases 为准。

Expand Down Expand Up @@ -32,21 +34,20 @@ Scrapling 仅用于开发前期抓取和核对方案、项目与文档,不属

![EnvScope 桌面界面,离线演示](docs/images/desktop.png)

界面采用黑白配色和固定导航;问题、处理入口与复检结果直接展示。截图来自离线配置修复演示,未运行真实网络检测。设计约定见 [桌面界面](docs/UI_DESIGN.md)。
界面采用黑白配色和单页主流程;问题、处理入口与复检结果直接展示。截图来自离线模拟环境,未运行真实网络检测。设计约定见 [桌面界面](docs/UI_DESIGN.md)。

## 一键检测

Windows 桌面包解压后双击 `EnvScope.exe`。macOS 桌面包的入口为 `EnvScope.app`。程序打开独立窗口,不需要另外启动浏览器或 Python:

[下载 Windows / macOS 桌面包](https://github.com/qudadd/envscope/releases)。macOS 分 Apple Silicon 与 Intel,按处理器选择。Alpha 包未获商业代码签名 / Apple 公证。

1. 首次打开跟着教学选择使用方式;打开平时使用的连接工具,点“一键检测与修复”。
2. 检测后自动生成统一方案;“环境设置”可选择使用范围、是否完善 Code 连接,以及自动或指定本机 HTTP 代理。
3. 审核具体影响,点“确认配置并修复”。写入前再次验证所选代理,失败不写入,也不回退直连。
需要启动 / 修复代理时,先完成这一阶段并自动复检;后续路由、网卡和守护改动会按新结果重新预览,不能提前猜测尚未出现的接口。
4. 自动复检区分已确认消除、仍存在、本次无法核实和新问题。桌面用户可点“复检后打开桌面版”;配置改变后保存工作,再点“保存后复检并重开”。未确认正常退出时不会强制终止。
5. 在自己的 Claude 登录并发一条消息;Code 用户重开常用终端或会话。手动确认收到回复不会改变技术检测结论。仍不能用时,按实际现象获取步骤。
6. 连接正常后,在首页“保持本次设置”预览并启用周期复检;可选保持已验证 Code 配置,同页可停用。独立维护页继续保留。
1. 确认实际使用地区、节点地区和城市。出口 IP 可建议节点地区与时区;不会代填实际所在地。需要时展开用途与连接选项。
2. 点“确认并一键检测”。首页列出不合格项目、缺少的必需证据和下一步;展开对应问题查看原因与手动步骤。
3. 核对修复方案,点“确认修复并复检”。写入前保存恢复记录;代理连接未验证时不会写入。需要先启动客户端时,完成并复检后再审核后续改动。
4. 在“持久化守护”勾选需保持的配置,预览并确认启用;同页可停用。账号、选择检查 / 全选、备份与高级修复从“更多功能”进入。

复检区分已消除、仍存在和仍缺少证据的问题。“详细记录与使用帮助”保留打开 / 正常重开 Claude、实际试用指引和技术证据。Code 配置修改后需要重开会话;实际账号使用仍须在自己的 Claude 中确认。

配置完善优先测试 Code 已有的本机 HTTP 代理,再测试已发现的候选;明确指定地址时不试用其他连接。自定义接口、Bedrock / Vertex / Foundry 和未明确更换的远程代理保留其原路径。只改用户配置文件;项目与组织设置可能覆盖它,实际会话仍需重开确认。完全相同的设置不会仅为排版而重写。复检单列配置文件凭据,不把写入成功或账号手动确认当作隐私通过。

Expand Down
11 changes: 11 additions & 0 deletions THIRD_PARTY_NOTICES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# Third-party origins

## Region and timezone data

`envscope/region_data.py` contains derived data from Unicode CLDR 48, revision
`acd6d88ae493633240e19a87a721076a8a75c310`, under Unicode-3.0.
The complete license is in `licenses/Unicode-3.0.txt`. The generator
`scripts/generate_region_data.py` records each input SHA-256 and uses the official
CLDR Windows timezone mappings, Chinese place names, timezone aliases and likely
language defaults. These are editable configuration suggestions, independent of
Claude's supported-region policy and never evidence of a user's physical location.
Source: https://github.com/unicode-org/cldr/tree/acd6d88ae493633240e19a87a721076a8a75c310

## WireGuard interoperability

The read-only Windows service adapter is EnvScope code using documented Windows
Expand Down
24 changes: 24 additions & 0 deletions docs/SIMPLE_WORKFLOW.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# 简化的一键流程(0.24)

首页只按实际操作顺序展示四个部分,保留黑白、系统字体和桌面宽度。

1. **地区与时区**:填写实际所在地;读取当前出口 IP,建议节点地区及对应城市。选择城市会匹配 Windows / macOS 时区、地区格式和语言目标。手动选择和已保存目标不会被迟到的查询结果覆盖。用途与连接方式按需展开。
2. **一键检测**:完成目标确认后开始。结果说明必需项通过、不合格和待完成的数量;所有问题标题、实际观测与处理方式直接可见。需要权限、缺少证据和本版不支持的检查分别说明,不计为通过。
3. **修复方案**:先列出具体字段、原值与目标或可执行操作。时区、地区格式与 Code 配置合并审核,确认后才执行,随后自动复检。保留备份和恢复入口。需要先启动客户端的操作仍分阶段复检;无法自动处理的项目标红并给出步骤。
4. **持久化守护**:选择周期以及需要保持的时区、地区格式和代理;额外客户端与 Code 选项折叠。预览具体基线并确认启用,同页可停用。后台仅执行已批准的范围并保存结果,未获得权限的修改保留原因。

顶部“更多功能”提供全部检查(选择 / 全选 / 批量处理)、账号资料、工具与备份、守护与高级修复、历史、设置与更新、环境全览。详细测量、帮助和 Claude 启动入口放在首页末尾,不妨碍主流程。

## 地区覆盖

保留原有预设 ID,补充 Unicode CLDR 48 数据,合计 417 个城市 / 时区预设,覆盖 247 个国家和地区;地区名称目录另包含无时区映射的历史或特殊地区,这些地区明确提供自定义入口。城市列表是时区代表地点,不是完整地名库;同一国家的其他城市可选对应时区或手动填写。

数据固定于 CLDR 提交 `acd6d88ae493633240e19a87a721076a8a75c310`,生成器校验源文件 SHA256,随包离线提供。来源、许可和再生成脚本见 [第三方声明](../THIRD_PARTY_NOTICES.md)、[生成器](../scripts/generate_region_data.py)。IP 时区别名可匹配相同国家的预设;部分或失败的查询要求手动选择。

节点地区是出口与配置目标;实际所在地仍单独填写。地区预设不改变 Claude 官方服务支持条件,CN / RU 的现有地区检查继续保留。时区与语言配置本身不保证账号可用或服务端设备判断。

## 验收范围

`scripts.simple_workflow_smoke` 使用一次性配置、模拟 Windows / macOS 系统和替代调度器,检查首次提示、地区选择、问题显示、修复审核、自动复检、权限指引、守护启停及全部导航。1024、1280、1440 桌面宽度检查溢出。Code 测试另覆盖损坏 JSON 与证书设置一次修复、已有字段保留和未选择范围拒绝写入。

以上为隔离验收,不修改测试机器的真实时区、代理、账号或后台任务,也不代表 Claude 实际认证已通过。
58 changes: 22 additions & 36 deletions docs/UI_DESIGN.md
Original file line number Diff line number Diff line change
@@ -1,49 +1,35 @@
# 桌面界面

0.7.1 根据真实操作反馈调整可发现性。保留白、灰、黑六个现有颜色和系统字体;
左侧增加“全部检查”,首页提供同名入口,32 项在测量前也有可搜索的目录。
每行展开用途、结果、下一步和保持方法。环境信息就近显示并获得键盘焦点,
账号页在表格前说明 A/B 的实际含义。页首连接状态及断线恢复入口避免旧页面无反馈。
设计复核:不新增营销横幅、状态卡片或装饰;连接框仅在断线或目录失败时出现。
1024、1280、1440 宽度均检查导航、信息面板、账号、筛选和异常状态。
0.24 将首页收敛为一条流程:确认地区与时区、检测、查看问题与修复方案、启用持久化守护。面向 Windows 和 macOS,暂不适配手机端。

0.7 在实际试用步骤内加入打开与正常重开的入口。启动条件收起展示,结果与具体原因
留在按钮下方;不增加导航、卡片或第二个首页主按钮。打开请求不显示为登录成功。
顶部仅保留 EnvScope、版本、检测与修复、“更多功能”。原有账号、全部检查、工具、历史和高级维护完整保留在菜单中。首页不显示空的结果表;首次使用以简短行内提示引导填写目标,完整教学可从页脚重看。

0.6 使用一个主按钮和一条四步进度线:检测、核对方案、修复复检、日常保持。
环境选项默认收起,开始检测后收起并锁定至本轮完成。自动生成的具体方案成为主内容,
确认按钮与备份撤销保留在当前页。分项状态移入技术记录;同页提供长期保持的预览、
启用与停用。黑白、系统字体、细分隔线不变,不新增卡片或装饰组件。
地区设置默认显示实际使用地区、节点地区、城市 / 时区所在地和目标时区。选择城市自动匹配地区格式与语言;用途、连接方式和其他要求折叠。节点地区依据出口建议,用户手动选择优先,实际所在地独立填写。

0.5 保留黑白、系统字体和窄侧栏,改为任务顺序:首次教学 → 检查 → 处理 → 实际试用 → 日常保持。
教学是正常页面,三步可退回、跳过和重看;使用范围只在开始检测时保存。
首页先展开一项最优先问题;其余问题、14 项白话核对和完整技术记录按需要展开。
白话核对解释查什么、为何影响使用、现在是否要动以及怎样保持,不以术语作为主标题。
手动试用确认、网络探测与后台状态分别显示,重新检测清除旧的本页试用确认。
后台页直接呈现最近执行时间、问题数、恢复受阻原因、方案及事件,不展示原始 JSON。
未注册、等待首轮、超期、失败和已完成不能使用同一种成功提示。
检测后,所有问题标题、观测和处理方式逐项可见。展开一项可查看原因与步骤;缺少必需证据也必须有明确入口。不能自动修复的项目用红色文字说明。技术记录、已通过的观测与帮助默认折叠。

EnvScope 是供普通用户排查 Claude 环境的本机工具。主要任务是启动一次检测、理解需要处理的项目,再进入账号或维护操作。Windows 和 macOS 是本阶段的适配范围。

采用安静的桌面工具布局:固定的窄导航,左对齐的正文,清晰的单个检测按钮。完成后直接呈现具体问题、事实、原因、步骤和入口。审核改动、确认执行和复检留在当前页。原始证据用于导出,不要求用户展开 JSON 自行归因。
修复区先列具体改动,只保留一个确认修复并复检按钮。持久化守护紧随其后:选择间隔与需保持的配置,预览、确认、启停都在同页。后台权限或修复失败必须显示原因,不能仅凭写入成功就显示环境合格。

```text
EnvScope 环境检测 一键检测
版本 检测范围和本次状态

检测 问题概览 一站式处理
账号 本次方案 确认执行
工具 具体问题 / 原因 / 步骤 处理入口
历史 复检结果 撤销修改
设置 检查记录与检测边界 导出
```
EnvScope 版本 检测与修复 更多功能

Claude 环境检查 一键检测
地区与时区 调整目标

视觉变量:纸面白 `#ffffff`,导航灰 `#f7f7f7`,正文黑 `#202020`,辅助文字 `#646464`,分隔线 `#e6e6e6`,当前导航 `#eaeaea`。黑底只用于主要操作;状态同时通过文字与字重区分。无品牌强调色、卡片、阴影、渐变、装饰图标或大号数字。
目标环境结论 全部检查与证据
具体问题 / 当前值与目标 / 处理方式

字体使用操作系统的界面字体,Windows 优先 Segoe UI / Microsoft YaHei UI,macOS 优先系统字体 / PingFang SC;字号 12、13、14、18、26。说明文字的对比度和宽度优先于极小字号。代码与证据才使用等宽字体。
修复方案
具体改动 → 确认修复并复检

持久化守护
周期 / 保持范围 → 预览守护方案

详细记录与使用帮助(按需展开)
```

导航宽 192 像素;正文最大 1104 像素,内边距 40 像素。按钮与输入框用 5 像素圆角表达可操作性。分隔线只用于分组与列表。交互即时,无装饰动画;键盘焦点可见,处理方案和复检完成后定位到对应内容。
视觉使用白、灰、黑及手动处理的红色文字。系统字体、细分隔线、可见键盘焦点;黑底仅用于主要操作。无渐变、阴影、装饰图标、营销标题或状态卡片。正文居中、最大 1040 像素,桌面内边距 40 像素。

复核:拒绝暖色纸面、营销标题、状态卡片和多余编号;调整原界面的过小字体与漫长的等待列表。通过真实页面截图检查初始、检测、账号、工具、历史和设置页面,并在 1024、1280、1440 像素桌面宽度检查溢出。
主流程和菜单在 1024、1280、1440 宽度通过隔离浏览器测试与截图检查;代理、时区和守护均使用一次性模拟数据。截图不能作为真实 Claude 登录或网络可用的证据。详见 [流程与地区覆盖](SIMPLE_WORKFLOW.md)。

设计过程参考已安装的 Anthropic [frontend-design](https://github.com/anthropics/skills/tree/dbd4588f9e1033efb41dad4bef2f7947c8993d44/skills/frontend-design) Skill。它是开发工具,不随 EnvScope 分发,也不属于运行依赖。
设计参考已安装的 Anthropic [frontend-design](https://github.com/anthropics/skills/tree/dbd4588f9e1033efb41dad4bef2f7947c8993d44/skills/frontend-design) Skill。它是开发工具,不随 EnvScope 分发。
Binary file modified docs/images/desktop.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion envscope/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
"""EnvScope: evidence-first environment diagnostics."""

__version__ = "0.23.0"
__version__ = "0.24.0"
__release__ = "v" + __version__ + "-alpha.1"
Loading
Loading