Skip to content

Releases: MarvekG/CPAStickyProxy

v0.1.7

Choose a tag to compare

@MarvekG MarvekG released this 25 Aug 02:27
ee0d510

Release Notes

来源:v0.1.6..HEAD 的 merged PR,commit 用于补充核对。

概览

  • 本次版本包含 2 个已合并 PR,主要修复账号代理页面的分页与操作反馈问题,并增强插件状态文件的完整性保护。
  • 对已有安装,更新后无需迁移配置;插件继续使用 plugins/stickyproxy-state.json

PR 详情

#11 Update README.md

  • 链接:PR #11
  • 作者:MarvekG;合并时间:2026-08-24 20:31:41 UTC
  • 类型:文档
  • 变更内容:更新项目主界面截图的展示尺寸与图片资源。
  • 影响说明:README 中的主界面示例更清晰地反映当前界面;不影响插件行为、配置或 API。

#12 修复账号代理操作可靠性问题

  • 链接:PR #12
  • 作者:MarvekG;合并时间:2026-08-25 02:25:30 UTC
  • 类型:问题修复 / 稳定性改进
  • 变更内容:
    • 统一“已应用代理”和“按代理筛选”的账号列表分页协议,筛选结果超过一页时可继续加载后续账号。
    • 状态文件现在拒绝尾随垃圾内容或第二个 JSON 文档;在文件替换成功后立即同步内存状态,避免后续写入基于过期状态覆盖已提交数据。
    • 写操作成功后,即使紧随其后的页面状态刷新失败,页面仍会保留成功结果;新 Toast 通知也不会被旧计时器提前关闭。
    • 账号表增加异常 items 响应的防御处理;README 更正为同步部分失败时保留已成功账号的变更,并列出失败账号供重试。
  • 影响说明:
    • 管理超过一页的已应用账号或指定代理账号时,可正常翻页、选择和执行后续操作。
    • 短暂网络波动不会再把已提交的保存、应用、清除或删除操作显示为失败。
    • 状态文件损坏或异常拼接将被明确拒绝,降低静默覆盖配置的风险。
  • 验证:
    • cd plugin/web-ui && pnpm run check && pnpm test && pnpm run build
    • cd plugin && go test ./...

分类摘要

问题修复

  • 修复代理相关筛选超过一页时无法继续翻页的问题。
  • 修复成功写操作在后续状态刷新失败时被误报为失败的问题。
  • 修复连续通知时旧 Toast 定时器可能提前关闭新通知的问题。

稳定性改进

  • 强化状态文件解析和保存后的内存一致性,减少损坏状态或底层同步异常导致配置被静默覆盖的风险。

v0.1.6

Choose a tag to compare

@MarvekG MarvekG released this 24 Aug 20:22
9165a01

Release Notes

来源:v0.1.5..HEAD 的 merged PR,commit 用于补充核对。

概览

  • 本次版本包含 1 个已合并 PR,主要改进账号代理状态的可理解性,并自动隔离不兼容的历史状态文件。
  • 用户无需再手动处理旧版 plugins/stickyproxy-state 配置文件,升级后插件会使用新的 JSON 状态文件启动。用户需要迁移plugins/stickyproxy-state的配置到新配置文件(通过webui)。

PR 详情

#10 Simplify proxy states and isolate legacy configuration

  • 链接:PR #10
  • 作者:MarvekG;合并时间:2026-08-24 20:17:46 UTC
  • 类型:改进优化 / 兼容性改进
  • 变更内容:
    • 将账号页面的代理状态收敛为四类:已应用代理未配置账号代理其他账号代理配置异常
    • 将“代理格式无效”和“账号配置不可读”合并为“配置异常”,减少用户需要理解的状态数量。
    • 不再把“无邮箱”和“运行时账号”作为代理状态展示或提供为代理状态筛选项。
    • 移除“当前应用代理”下拉框中的“继承系统代理”选项;该下拉框现在仅列出已保存的代理。
    • 后端仍兼容旧的 proxy_state 筛选值,例如 inherits_system,避免已有保存筛选或外部调用失效。
    • 插件状态文件从 plugins/stickyproxy-state 调整为 plugins/stickyproxy-state.json
  • 影响说明:
    • 账号代理页面的筛选和状态标签更简洁,用户无需面对过多底层实现状态。
    • 如果安装环境中残留旧版、与当前版本不兼容的状态文件,插件不会再因读取该文件失败而无法启动。
    • 升级后会从空的新状态文件开始运行;原有旧文件保留在原路径,不会被自动删除或覆盖。
    • 新状态文件仍以 0600 权限写入,保存的代理基础地址继续受到文件权限保护。
  • 验证:
    • pnpm test
    • pnpm check
    • pnpm build
    • GOCACHE=/tmp/stickyproxy-go-cache GOPATH=/tmp/stickyproxy-gopath go test ./...

分类摘要

重点更新

  • 新版本使用 plugins/stickyproxy-state.json,自动绕开遗留的旧版状态文件。对于旧状态格式不兼容的安装,不再需要用户手动删除或迁移文件才能启动插件。

改进优化

  • 代理状态由多个实现细节收敛为四个面向用户的类别,提升账号代理页面的可读性和筛选效率。
  • “配置异常”集中展示地址格式无效和配置不可读问题,便于排查异常账号。

v0.1.5

Choose a tag to compare

@MarvekG MarvekG released this 24 Aug 19:45
d5e2971

Release Notes

来源:v0.1.4..HEAD(即 0.1.4 到当前 fab143e)的 merged PR,commit 用于补充核对。

概览

  • 本次包含 2 个 merged PR,核心是将 StickyProxy 的资源模型从“代理端点(endpoint)”统一重命名为“代理(proxy)”。
  • 存在破坏性变更:管理 API、前端数据字段和插件状态文件格式均已切换到 proxy 术语;旧状态文件会被明确拒绝,升级后必须重新添加代理并重新应用给账号。
  • 同时将 CPA RPC schema 版本维持为 3,避免因资源模型调整而失去与当前 CPA 宿主的兼容性。

PR 详情

#8 Update registry to v0.1.4

  • 链接:#8
  • 作者:MarvekG;合并时间:2026-08-24 17:02:31 UTC
  • 类型:发布维护
  • 变更内容:更新插件商店的 registry.json 条目,使其指向 StickyProxy v0.1.4 发布版本。
  • 影响说明:通过项目自带插件注册表安装或更新的用户,将获取到对应的 v0.1.4 构建产物及元数据。此 PR 本身不改变代理配置或运行时功能。

#9 refactor: rename proxy resources

  • 链接:#9
  • 作者:MarvekG;合并时间:2026-08-24 19:43:09 UTC
  • 类型:重构 / 破坏性变更
  • 变更内容:
    • 将领域模型、状态文件、管理 API、Web UI、错误消息、测试与文档中的 endpoint 统一更名为 proxy。代理 ID 前缀从 ep_ 改为 px_
    • 管理 API 路由由 /stickyproxy/endpoints* 改为 /stickyproxy/proxies*;请求、响应及筛选字段从 endpoint_idproxy_endpoint_id 切换为 proxy_id;状态接口返回字段从 endpoints 切换为 proxies
    • 状态文件改为保存 proxiesaccount_proxy_mappings。映射以 CPA 的 auth_index 关联 proxy_id,用于明确记录账号最后成功应用的 StickyProxy 代理。
    • 账号列表识别“已应用代理”时,不再通过生成并比对预期最终代理 URL 来反查归属;改为直接查持久化映射。未映射但存在 proxy_url 的账号会显示为“其他账号代理”。
    • 前端的“当前应用代理”筛选新增“继承系统代理”选项;页面不再展示派生的预期最终 URL,只显示实际代理 URL 的脱敏结果。
    • 文档与中英文界面文案同步使用“代理(proxy)”术语,并新增账号代理映射设计说明。
  • 兼容性与迁移:
    • 旧插件状态格式不兼容。 新版本会拒绝旧字段,例如 endpointsaccount_endpoint_mappings,不会静默读取或自动迁移。
    • 升级前应备份 StickyProxy 状态文件;升级后需重新添加所需代理,并将其重新应用到账号。
    • CPA 认证文件中既有的 proxy_url 不会被自动修改或清空;但由于没有新的映射记录,它们将显示为“其他账号代理”,直到操作员重新应用或明确清除。
    • 对接管理 API 的调用方需要同步更新路由、JSON 字段以及 ep_ 形式的旧代理 ID。
    • 状态文件路径: StickyProxy 将状态固定保存在 CPA 工作目录下的 plugins/stickyproxy-state,即相对于 CPA 进程工作目录的路径:<CPA 工作目录>/plugins/stickyproxy-state
    • 升级前请备份该文件;新版本不会读取旧格式状态。升级后保留在 CPA 账号文件中的既有 proxy_url 不会自动清除,但需重新添加代理并重新应用,才能建立新的账号代理映射。
  • 验证:
    • PR 记录显示已执行 Go 测试、前端类型检查与测试,并构建 Linux 插件产物;同时验证插件可加载且 dashboard 返回 HTTP 200。

分类摘要

重点更新

  • StickyProxy 现在以明确持久化的“账号 → 代理”映射管理应用关系,避免通过遍历代理并比对最终 URL 来猜测账号属于哪一条代理。账号与代理数量增加时,按代理筛选与识别逻辑更直接、可预测。

破坏性变更

  • 管理接口从 endpoints 全面切换至 proxies,例如:
    • /stickyproxy/endpoints/stickyproxy/proxies
    • endpoint_idproxy_id
    • proxy_endpoint_idproxy_id
    • 状态响应 endpointsproxies
  • 持久化状态字段切换至 proxiesaccount_proxy_mappings,且不兼容读取旧状态;升级需备份、重新录入代理并重新应用。
  • 代理 ID 从 ep_ 前缀变为 px_ 前缀,外部保存或引用旧 ID 的自动化需更新。

v0.1.4

Choose a tag to compare

@MarvekG MarvekG released this 24 Aug 16:52
eef9996

Release Notes

来源:v0.1.3..HEAD 的 merged PR,commit 用于补充核对。

概览

  • 本次包含 5 个合并 PR,主要加入普通代理平台、持久化账号端点映射,并更新安装与使用文档。
  • 破坏性变更:账号已应用端点不再从 proxy_url 自动反查;升级后需重新应用端点以建立映射。

PR 详情

#7 Persist account endpoint mappings

  • 链接:#7
  • 作者:MarvekG;合并时间:2026-08-24 16:47 UTC
  • 类型:新功能、破坏性变更
  • 变更内容:持久化 auth_index -> endpoint_id 映射;账号端点展示、端点筛选和按端点清除均直接查询该映射,不再遍历端点并比较账号 proxy_url
  • 影响说明:大量账号或端点下的已应用识别与筛选更直接。单个账号写入失败时,其余账号继续处理,只有成功账号更新映射。
  • 迁移要求:旧账号的 proxy_url 不会自动映射到端点。升级后会显示为“其他账号代理”,需对目标账号重新应用端点。

#6 Add generic proxy platform

  • 链接:#6
  • 作者:MarvekG;合并时间:2026-08-24 16:01 UTC
  • 类型:新功能
  • 变更内容:新增 generic 普通代理平台,支持 HTTP、HTTPS 和 SOCKS5 地址;应用时直接写入保存后的基础代理地址,不注入邮箱 hash、session、SID 或 TTL。
  • 影响说明:可管理不需要 StickyProxy 改写认证信息的通用代理。多个账号使用同一普通代理时可能共享上游认证、会话或出口行为,粘滞性和隔离性由上游代理决定。
  • 关联内容:加入前端表单、批量导入、代理列表和中英文文案支持,并补充普通代理与账号端点映射设计文档。

#5 docs: simplify README language

  • 链接:#5
  • 作者:MarvekG;合并时间:2026-08-24 12:15 UTC
  • 类型:文档
  • 变更内容:将 README 改写为更直接的中文说明,并补充 Linux.do 友链。
  • 影响说明:新用户更容易理解插件用途和安装方式;不改变运行行为。

#4 docs: improve README installation guide

  • 链接:#4
  • 作者:MarvekG;合并时间:2026-08-24 12:08 UTC
  • 类型:文档
  • 变更内容:补充项目概览、支持平台、界面截图、Plugin Store 安装步骤、源码构建说明与安全说明。
  • 影响说明:部署者可按 README 直接完成 Plugin Store 或源码安装;不改变运行行为。

#3 Release v0.1.3 metadata

  • 链接:#3
  • 作者:MarvekG;合并时间:2026-08-24 10:50 UTC
  • 类型:发布元数据
  • 变更内容:将 v0.1.3 Plugin Store 元数据合入受保护的 main
  • 影响说明:此 PR 的源 commit 已是 v0.1.3 tag,因此相对 v0.1.3..HEAD 没有新增功能代码或用户行为变化。

分类摘要

重点更新

  • 账号端点关系现在由持久化映射管理,不再依赖 URL 反查。升级后请重新应用所需端点,以建立映射。

新功能

  • 新增 generic 普通代理平台,可将保存后的代理 URL 原样应用到选中账号。

破坏性变更

  • 历史 proxy_url 不会自动迁移为账号端点映射。
  • 端点识别、按端点筛选和按端点清除不再依据 URL 相等性判断。

v0.1.3

Choose a tag to compare

@MarvekG MarvekG released this 24 Aug 10:49

Highlights

  • Add independent account-level proxy application for explicitly selected CLIProxyAPI accounts.
  • Add account selection, filtering, pagination, and proxy-state views for targeted synchronization and clearing.
  • Apply proxy changes through server-side host.auth callbacks with transactional compensation rollback on failure.
  • Preserve unrelated account fields and update Plugin Store metadata to 0.1.3.

Verification

  • Web UI type-check, tests, and production build passed.
  • Go tests and go vet ./... passed.
  • Linux native plugin build with injected version 0.1.3 passed.

Cross-platform Plugin Store archives and checksums.txt are attached automatically by the release workflow.

image image

v0.1.2

Choose a tag to compare

@MarvekG MarvekG released this 24 Aug 05:38

MIT-licensed release with Plugin Store registry metadata and cross-platform native plugin assets.

v0.1.1

Choose a tag to compare

@MarvekG MarvekG released this 24 Aug 05:14

Fix cross-platform dashboard packaging for the native plugin release workflow.