chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
name: Bug 报告
|
||||
description: 工具本身报错、崩溃、同步结果异常时使用
|
||||
title: "bug: "
|
||||
labels:
|
||||
- bug
|
||||
- needs-info
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
请尽量完整填写。缺少版本、系统、状态输出或日志时,通常无法判断是工具问题、Codex Desktop 问题,还是 encrypted_content / SQLite 损坏等边界情况。
|
||||
- type: input
|
||||
id: version
|
||||
attributes:
|
||||
label: codex-provider-sync 版本
|
||||
description: 例如 v0.2.4。GUI 版本请填写 Release 版本;CLI 版本请填写 `npm list -g codex-provider-sync` 或安装来源。
|
||||
placeholder: v0.2.4
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: entrypoint
|
||||
attributes:
|
||||
label: 使用方式
|
||||
options:
|
||||
- Windows GUI EXE
|
||||
- npm 全局 CLI
|
||||
- 仓库源码运行
|
||||
- 其它
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: os
|
||||
attributes:
|
||||
label: 系统版本
|
||||
placeholder: Windows 11 24H2 / Windows 10 / macOS 15.x
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: codex
|
||||
attributes:
|
||||
label: Codex 使用方式和版本
|
||||
description: 例如 Codex Desktop / Codex CLI,以及版本号或大概更新时间。
|
||||
placeholder: Codex Desktop,版本未知
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: steps
|
||||
attributes:
|
||||
label: 复现步骤
|
||||
description: 从 provider 切换、Refresh、Execute、sync/switch 命令开始写,尽量按时间顺序。
|
||||
placeholder: |
|
||||
1. 关闭 Codex Desktop
|
||||
2. 切换 provider 到 ...
|
||||
3. 打开 CodexProviderSync.exe,点击 Refresh
|
||||
4. 点击 Execute 后出现 ...
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: actual
|
||||
attributes:
|
||||
label: 实际结果
|
||||
description: 报错文本、截图文字、终端输出都可以贴这里。
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected
|
||||
attributes:
|
||||
label: 预期结果
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: diagnostics
|
||||
attributes:
|
||||
label: status / GUI Refresh 诊断文本
|
||||
description: 优先粘贴完整输出。CLI 可运行 `codex-provider status`;GUI 请复制 Refresh 后状态区文本。
|
||||
render: text
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: 日志或错误堆栈
|
||||
description: EXE 启动问题请贴 `%AppData%\codex-provider-sync\startup-error.log`,CLI 问题请贴终端完整输出。
|
||||
render: text
|
||||
validations:
|
||||
required: false
|
||||
- type: checkboxes
|
||||
id: boundary
|
||||
attributes:
|
||||
label: 确认事项
|
||||
options:
|
||||
- label: 我理解本工具只同步可见性 metadata,不处理登录、认证或 auth.json。
|
||||
required: true
|
||||
- label: 我理解含 encrypted_content 的历史会话跨 provider/account 后可能不能继续对话。
|
||||
required: true
|
||||
- label: 我理解本工具不会修改 updated_at,也不会通过改变排序来修复 Desktop 显示。
|
||||
required: true
|
||||
@@ -0,0 +1,8 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: 下载最新版本
|
||||
url: https://github.com/Dailin521/codex-provider-sync/releases/latest
|
||||
about: 先确认你正在使用最新版本。
|
||||
- name: 阅读中文 README
|
||||
url: https://github.com/Dailin521/codex-provider-sync/blob/main/README.md
|
||||
about: 查看 sync / switch / restore 的区别和工具能力边界。
|
||||
@@ -0,0 +1,85 @@
|
||||
name: Desktop 历史会话不显示
|
||||
description: CLI 能看到,但 Codex Desktop 项目侧显示“暂无对话”或历史会话缺失时使用
|
||||
title: "desktop: "
|
||||
labels:
|
||||
- upstream-desktop
|
||||
- needs-info
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
这类问题经常和 Codex Desktop 自身的项目筛选、分页加载、cwd 路径匹配或 SQLite 状态有关。请完整提供诊断文本,不要只贴“暂无对话”截图。
|
||||
- type: input
|
||||
id: version
|
||||
attributes:
|
||||
label: codex-provider-sync 版本
|
||||
placeholder: v0.2.4
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: os
|
||||
attributes:
|
||||
label: 系统版本
|
||||
placeholder: Windows 11 24H2
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: provider
|
||||
attributes:
|
||||
label: 当前 provider
|
||||
description: 填写你希望 Desktop 当前显示历史会话的 provider,例如 openai / dal / apigather。
|
||||
placeholder: dal
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: project_path
|
||||
attributes:
|
||||
label: 不显示历史的项目路径
|
||||
placeholder: D:\GitHubProject\oss-maintainer-hub
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: cli_visible
|
||||
attributes:
|
||||
label: CLI 是否能看到这些历史会话
|
||||
options:
|
||||
- 是,codex resume 能看到
|
||||
- 否,CLI 也看不到
|
||||
- 不确定
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: diagnostics
|
||||
attributes:
|
||||
label: status / GUI Refresh 完整诊断文本
|
||||
description: 必填。需要包含 Current provider、Rollout files、SQLite state、Project visibility diagnostics。
|
||||
render: text
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: screenshot
|
||||
attributes:
|
||||
label: Desktop 截图或现象说明
|
||||
description: 可贴项目侧“暂无对话”、Recent、CLI resume 的截图。
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: sync_steps
|
||||
attributes:
|
||||
label: 你执行过的同步步骤
|
||||
placeholder: |
|
||||
1. 关闭 Codex Desktop
|
||||
2. 切换 provider 到 ...
|
||||
3. 运行 sync / switch ...
|
||||
4. 重启 Desktop 后 ...
|
||||
validations:
|
||||
required: true
|
||||
- type: checkboxes
|
||||
id: boundary
|
||||
attributes:
|
||||
label: 确认事项
|
||||
options:
|
||||
- label: 我理解 CLI 可见但 Desktop 不显示时,可能是 Codex Desktop 上游显示逻辑问题。
|
||||
required: true
|
||||
- label: 我理解本工具不会修改 updated_at,也不会通过改变排序来让旧会话进入前排。
|
||||
required: true
|
||||
@@ -0,0 +1,60 @@
|
||||
name: 使用问题 / 切换咨询
|
||||
description: 不确定该运行 sync、switch、restore,或需要确认工具边界时使用
|
||||
title: "support: "
|
||||
labels:
|
||||
- support
|
||||
- needs-info
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
如果是崩溃、报错或明确 bug,请优先使用 Bug 报告模板。如果是 Codex Desktop 项目侧不显示历史会话,请使用 Desktop 历史会话不显示模板。
|
||||
- type: input
|
||||
id: version
|
||||
attributes:
|
||||
label: codex-provider-sync 版本
|
||||
placeholder: v0.2.4
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: goal
|
||||
attributes:
|
||||
label: 你想做什么
|
||||
options:
|
||||
- 当前 provider 不变,只恢复历史会话可见性
|
||||
- 切换 provider 并同步历史会话
|
||||
- 从备份恢复
|
||||
- 不确定应该怎么选
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: current_provider
|
||||
attributes:
|
||||
label: 当前 provider
|
||||
placeholder: openai / dal / apigather
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: diagnostics
|
||||
attributes:
|
||||
label: status / GUI Refresh 诊断文本
|
||||
description: 有输出请完整粘贴;没有输出请说明卡在哪一步。
|
||||
render: text
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: question
|
||||
attributes:
|
||||
label: 具体问题
|
||||
placeholder: 描述你现在的状态、执行过什么、想达到什么结果。
|
||||
validations:
|
||||
required: true
|
||||
- type: checkboxes
|
||||
id: boundary
|
||||
attributes:
|
||||
label: 确认事项
|
||||
options:
|
||||
- label: 我理解 sync 不会切换登录账号,也不会处理 auth.json。
|
||||
required: true
|
||||
- label: 我理解 encrypted_content 跨 provider/account 后可能不能继续对话。
|
||||
required: true
|
||||
@@ -0,0 +1,25 @@
|
||||
name: ci
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: windows-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
node-version:
|
||||
- "16"
|
||||
- "24"
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: "npm"
|
||||
- run: npm ci
|
||||
- run: npm test
|
||||
@@ -0,0 +1,75 @@
|
||||
name: publish
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- "v*"
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: windows-latest
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "24"
|
||||
cache: npm
|
||||
|
||||
- uses: actions/setup-dotnet@v4
|
||||
with:
|
||||
dotnet-version: "10.0.x"
|
||||
|
||||
- run: npm ci
|
||||
- run: npm test
|
||||
- run: dotnet test desktop/CodexProviderSync.Core.Tests/CodexProviderSync.Core.Tests.csproj
|
||||
|
||||
- name: Build Windows GUI
|
||||
shell: pwsh
|
||||
run: ./scripts/publish-gui.ps1 -Output artifacts/win-x64
|
||||
|
||||
- name: Package release assets
|
||||
shell: pwsh
|
||||
run: |
|
||||
$ErrorActionPreference = "Stop"
|
||||
$version = "${{ github.ref_name }}".TrimStart("v")
|
||||
$assetRoot = "artifacts/release"
|
||||
New-Item -ItemType Directory -Force -Path $assetRoot | Out-Null
|
||||
|
||||
$exe = "artifacts/win-x64/CodexProviderSync.exe"
|
||||
$zip = Join-Path $assetRoot "codex-provider-sync-v$version-win-x64.zip"
|
||||
Compress-Archive -Path "artifacts/win-x64/*" -DestinationPath $zip -Force
|
||||
Copy-Item $exe (Join-Path $assetRoot "CodexProviderSync.exe") -Force
|
||||
|
||||
$assets = Get-ChildItem -File $assetRoot | Sort-Object Name
|
||||
$checksums = foreach ($asset in $assets) {
|
||||
$hash = (Get-FileHash -Algorithm SHA256 -LiteralPath $asset.FullName).Hash.ToLowerInvariant()
|
||||
"$hash $($asset.Name)"
|
||||
Set-Content -LiteralPath "$($asset.FullName).sha256" -Value "$hash $($asset.Name)" -Encoding ASCII
|
||||
}
|
||||
Set-Content -LiteralPath (Join-Path $assetRoot "checksums.txt") -Value $checksums -Encoding ASCII
|
||||
|
||||
- name: Upload release assets
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
files: |
|
||||
artifacts/release/*
|
||||
body: |
|
||||
## Windows SmartScreen 提示
|
||||
当前 Windows GUI 未做代码签名,首次运行时可能提示“发布者未知”或“Windows 已保护你的电脑”。这是未签名 EXE 的常见提示。
|
||||
|
||||
请确认下载来源是本项目 GitHub Releases,并可用随附的 SHA256 文件校验后运行。
|
||||
|
||||
## 安全边界
|
||||
- 不会修改 auth.json
|
||||
- 不会改写对话正文或消息历史
|
||||
- 不会修改 updated_at 来改变排序
|
||||
- 不会重新加密 encrypted_content
|
||||
|
||||
## 回滚
|
||||
可使用 `codex-provider restore <backup-dir>` 恢复本工具创建的备份。
|
||||
|
||||
## 已知事项
|
||||
含 encrypted_content 的历史会话跨 provider/account 后,通常只能恢复列表可见性;继续对话或 compact 仍可能失败。
|
||||
Reference in New Issue
Block a user