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
5 changes: 3 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@ on:

jobs:
test:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
node-version: [20, 22]
steps:
- uses: actions/checkout@v4
Expand All @@ -31,7 +32,7 @@ jobs:
run: npm run check

- name: Syntax check
run: node --check lib/index.js && node --check lib/client.js
run: node --check lib/index.js && node --check lib/web-actions.js && node --check lib/client.js

- name: Unit and integration tests
run: node --test
14 changes: 10 additions & 4 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ English · [简体中文](AGENTS_ZH.md)

## Current development

- PR #6 merged the first read-only right-sidebar panel for Issue #1 as **0.3.0**, release point 85fa7d1c4a7e6f7c274d83df242d10c65e319d24. GitHub v0.3.0 is public and its installed entry passed 28 service checks plus real Web acceptance. npm registry availability, installed-package acceptance and latest=next=0.3.0 are confirmed. See docs/release-report-0.3.0.md. Do not overwrite npm 0.2.1 or add GUI writes.
- PR #6 merged the first read-only right-sidebar panel for Issue #1 as **0.3.0**, release point 85fa7d1c4a7e6f7c274d83df242d10c65e319d24. GitHub v0.3.0 is public and its installed entry passed 28 service checks plus real Web acceptance. npm registry availability, installed-package acceptance and latest=next=0.3.0 are confirmed. See docs/release-report-0.3.0.md. Published versions remain immutable. The current explicit goal authorizes completing GUI operations in a new release, then closing Issue #1 after real acceptance.
- Source: `src/index.ts`, `src/web-host.ts`, browser-safe `src/panel-types.ts`, `src/client/`. Build Host declarations/JS and generated `lib/client.js`; keep ESM and existing commands/tools.
- English primary documents and `_ZH.md` counterparts: README, CONTRIBUTING, AGENTS; also paired Web usage documents. Synchronize facts, commands and validation boundaries. README stays a short product page; engineering details belong in CONTRIBUTING/docs and maintenance constraints here. Do not add a skill just for a documentation edit.
- Web evidence: `docs/web-panel-validation.md`. Old release CI does not certify a new development SHA.
Expand All @@ -36,7 +36,7 @@ English · [简体中文](AGENTS_ZH.md)
- Run build/check/test/pack for relevant source changes. Add regressions for actual fixes, not tests that merely mirror implementation.
- Build artifacts with source in the same commit. After a commit, rebuild in a clean checkout and run `git diff --exit-code lib`; normal pre-commit artifact differences are expected.
- Use independent DSH_HOME/profiles and temporary Git repositories. Do not touch daily profiles. Run the exact-host service script when appropriate; mocks do not replace host, Web or model validation.
- Web: authenticate through the official Connection carrier; derive cwd from an existing Session, never request-supplied cwd/root/argv. DSH 0.2.0-rc.2 has one admitted operator, not tenant-specific session ACLs. Refuse unknown Sessions and constrain paths; disable external diff/textconv and keep routes read-only.
- Web: authenticate through the official Connection carrier; derive cwd from an existing Session, never request-supplied cwd/root/argv. DSH 0.2.0-rc.2 has one admitted operator, not tenant-specific session ACLs. Refuse unknown Sessions and constrain paths; disable external diff/textconv. Writes use the separate same-origin JSON prepare/execute confirmation contract, Session/repository snapshot checks and single-use tokens; never expose arbitrary argv.
- Client: generate the loader factory from TSX with a small build; externalize shell-owned React/JSX runtime. Never hand-edit client.js or bundle a second React. Dispose UI, styles, slots, tabs, routes and in-flight requests on disable; ignore stale responses on navigation.
- Report actual type/unit/real-Git/host/Web/model/platform evidence separately, including failed or unexecuted checks.

Expand All @@ -52,8 +52,8 @@ English · [简体中文](AGENTS_ZH.md)

- The 0.3.0 dual channels, bundle registration and read-only panel are released. Market PR #6296 closed unmerged and the 2026-10-02 public catalog has zero exact repository matches; investigate separately before claiming search/install availability.
- P2 / Issue #1 is released: read-only status, diff and history; reuse the sidebar carrier, not turn-based workspace-change summaries. That summary excludes pre-existing edits and is not an index/worktree Git source.
- P3: review stage/commit/branch/stash buttons separately. Turn-bound approval is unresolved for clicks outside an open turn; read authentication is not write authorization.
- Stage prompts: `docs/dsh-tasks/README.md`; 03–05 are complete, 06 has mount-prefix/slow Web cancellation remaining, 07 is write approval/recovery design. Adapt them to actual completed evidence rather than repeating historical instructions. Plan/history documents remain clearly dated.
- P3 / current authorized work: stage/unstage, staged-only commit, branches, stash and backup restore are implemented; finish installed acceptance and publish 0.4.0 before closing the issue. Native approval.request requires an open model turn; explicit operator GUI confirmation is separate, never a fabricated turn or a model-tool grant. See docs/superpowers/specs/2026-10-02-git-actions-design.md.
- Stage prompts: `docs/dsh-tasks/README.md`; 03–05 are complete, 06 has mount-prefix/slow Web cancellation remaining, 07 design is implemented by the current Git actions contract. Adapt them to actual completed evidence rather than repeating historical instructions. Plan/history documents remain clearly dated.
- A successful publish exit/HTTP 202 is acceptance, not installability. Allow official scanning and registry propagation; check actual availability/gitHead/tarball and installed behavior before latest promotion. A successful dist-tag write also requires a confirming tag read; do not repeat publish to address delays.
- Finalize release date before publish. Version/lock/CHANGELOG/source/types/lib and tag/Release/npm gitHead/artifacts identify one release point. Publish each version once to next, verify, then promote with dist-tag. Changed published content needs a new version.
- AGENTS/docs/team state are engineering resources, not npm runtime files. Pack only closed runtime outputs, bilingual READMEs, license, patch and referenced assets; verify actual file list. Published 0.2.0/0.2.1 contents are immutable.
Expand All @@ -65,3 +65,9 @@ English · [简体中文](AGENTS_ZH.md)
- Root screenshots.json references the capability illustration and actual released read-only panel screenshots in docs/images. The banner is an illustration; panel images use isolated fixture repositories. Catalog readiness and catalog inclusion are different states.
- Old manual inserts must migrate to id/config overrides when enabling the bundle. DSH 0.2.0-rc.2 does not automatically add a bundle layer when upgrading an old ordinary dependency.
- Preserve the isolated WSL runtimes `~/dsh-node-runtimes/node-v20.20.2-linux-x64` and `node-v22.23.3-linux-x64` unless removal is specifically requested. System Node 18 was not used for the prior matrix.

## 0.4.0 candidate

- Source commits: 8b9efc1 actions, 293ff98 content previews, 9871360 native Host/Origin seam, da406ac retained controls on refresh. Windows build/check and 55 tests passed before the last UI-only fix; its client test and type check passed. a44650c fixes reviewed rename/stash scope and passed full Windows build/check/57 tests. Run final candidate checks/CI and installed Web before release.
- New Web minimum Git 2.32 is required for stash show --include-untracked; only actual tested versions may be claimed verified. Connection HTTP bridge uses dsh.internal URL; validate mandatory Origin against its trusted Host authority.
- Use a unique development tarball path per SHA; pnpm can cache a repeated filename. Compare installed lib hashes, restart the isolated profile, and never hand-edit installed outputs.
16 changes: 13 additions & 3 deletions AGENTS_ZH.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

## 当前开发任务

- PR #6 已保留历史合并 Issue #1 首版只读面板为 0.3.0,发布点 85fa7d1c4a7e6f7c274d83df242d10c65e319d24;GitHub v0.3.0 已公开,固定 tag 实装的 28 项服务及真实 Web 通过。npm 注册表可见、正式实装及 latest=next=0.3.0 已确认;实际状态见 docs/release-report-0.3.0.md;不覆盖 npm 0.2.1,不混入 GUI 写操作。
- PR #6 已保留历史合并 Issue #1 首版只读面板为 0.3.0,发布点 85fa7d1c4a7e6f7c274d83df242d10c65e319d24;GitHub v0.3.0 已公开,固定 tag 实装的 28 项服务及真实 Web 通过。npm 注册表可见、正式实装及 latest=next=0.3.0 已确认;实际状态见 docs/release-report-0.3.0.md;旧版本不可覆盖;当前明确目标已授权补完整 GUI 操作,正式实装验收后关闭 Issue #1。
- README / CONTRIBUTING / AGENTS 采用英文主文档和 `_ZH.md` 中文对应页;面板使用文档同样配对,修改时同步事实、命令和验收边界。
- 新 Web 证据见 `docs/web-panel-validation.md`;不能将旧发布点的 CI 当作本分支 CI。
- 当前源码为 src/index.ts、src/web-host.ts、src/panel-types.ts 和 src/client/;客户端通过小型构建生成官方 loader 包装,复用宿主 React,不手改 lib/client.js、不捆绑第二份 React。
Expand Down Expand Up @@ -47,7 +47,7 @@

## 后续顺序与发布

- P1:`0.2.1` 双渠道发布、bundle 自动启用、README 展示与市场收录申请已完成;市场 PR #6296 等待上游审查合并及目录同步,之后核验市场搜索与实际安装。GUI 另开阶段。
- P1:`0.2.1` 双渠道发布、bundle 自动启用、README 展示与市场收录申请已完成;市场 PR #6296 已关闭未合并、无说明评论;目录没有本仓库精确匹配,不宣称已收录。GUI 另开阶段。
- P2:[Issue #1](https://github.com/MashedPotato817/dsh-git-plugin/issues/1) 的 Web 只读 Git 面板:状态、diff、历史首期已实现;继续补验及用户验收。
- P3:再考虑 stage/commit/branch/stash 等写操作,核对 DSH 权限与审批及恢复方式。
- 版本文件、CHANGELOG、源码、编译配置、测试和 `lib/` 一起纳入发布提交;确保 tag、Release、npm gitHead 与包内产物对应同一提交。
Expand All @@ -66,7 +66,7 @@

## 后续任务入口(2026-10-01 核查)

- 任务分包见 [docs/dsh-tasks/README.md](docs/dsh-tasks/README.md):03–05 已完成并发布;06 仅余挂载前缀/真实慢 Web 请求取消,07 先设计 GUI 写操作审批和恢复;逐包推进。
- 任务分包见 [docs/dsh-tasks/README.md](docs/dsh-tasks/README.md):03–05 已完成并发布;06 仅余挂载前缀/真实慢 Web 请求取消,07 的审批与恢复设计已由当前 Git 操作契约实现;逐包推进。
- 原候选 feba7b8,定时器修复 922408d,发布点 c83f332;PR/main 当前 SHA CI 均通过,协作文档与模板已进入默认分支。包 02 的 npm、GitHub、latest 推广与双渠道安装均完成;随后 03–05 的只读 Web 已实现为 0.3.0,继续 06/07 的剩余项目。
- Linux Node 20/22 已用**隔离运行时**(WSL2 Ubuntu 24.04,`~/dsh-node-runtimes/node-v20.20.2-linux-x64`、`node-v22.23.3-linux-x64`)完成修复后 build/check/test 复验;修复候选 922408d 的 npm ci/build/产物门/check/语法/test/pack 全部通过。系统 Node 18.19.1 未用于验证。证据见 `docs/validation-report-0.2.0.md`。未推送 SHA 的干净检出从本地主仓库克隆。

Expand All @@ -83,3 +83,13 @@

- 贡献指南见 CONTRIBUTING.md;Issue 表单在 .github/ISSUE_TEMPLATE,PR 使用 .github/pull_request_template.md。报告必须区分本地、真实宿主、模型会话与当前 SHA 的 CI 证据。
- 大任务先明确 Issue 范围与验收条件,拆阶段提交;维护者负责分流、审查与合并/发布。模板需进入默认分支后生效,不宣称标签、分支保护或远端设置已经启用。

## 当前完整目标

按 docs/superpowers/specs/2026-10-02-git-actions-design.md 实施暂存/取消暂存、仅暂存提交、分支、stash 和备份还原。人工 GUI 写确认独立于需要 open turn 的模型审批;同源 JSON、一次性确认、状态复核,不伪造模型回合。完整实装/CI/双渠道发布后回复并关闭 Issue #1,不把只读首期当作完整交付。

## 0.4.0 候选

- 源码提交:8b9efc1 操作,293ff98 内容预览,9871360 原生 Host/Origin,da406ac 刷新保留操作区。最后界面小修前 Windows build/check 和 55 项测试通过;小修后的客户端与类型检查通过。a44650c 修复审查指出的 rename/stash 范围,完整 Windows build/check/57 项通过;发布前须复跑最终候选/CI/正式安装 Web。
- 新 Web 能力要求 Git 2.32(stash show --include-untracked),仅实际测试版本声明已验证。原生 bridge 的 URL 为 dsh.internal,强制 Origin 绑定已受信 Host authority。
- 每个开发 SHA 使用不同 tarball 文件路径,避免 pnpm 同名缓存;比较实际安装 lib 哈希并重启独立 profile,不手改安装产物。
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,25 @@ Actual changes to `dsh-git-plugin`, following [Keep a Changelog](https://keepach

## [Unreleased]

## [0.4.0] - 2026-10-02

### Added

- Complete Web Git workflow for Issue #1: selected/bulk stage and unstage, staged-only commit with hooks, local branches, stash save/apply/drop, and tracked-file restore with a retained stash backup.
- Mandatory operator preview/confirmation with two-minute single-use tokens; Session/root/snapshot rechecks, per-repository mutation locks, same-authority JSON POST and lifecycle cancellation. Model tools remain read-only.
- Real-Git/DOM regressions and an optional installed-Web operation acceptance script.

### Fixed

- Bind Origin to the native carrier Host rather than the bridge's synthetic dsh.internal URL.
- Stash operations omit inherited literal-pathspec mode so native Git cleans saved untracked files.
- Confirmation previews include selected untracked content and chosen stash diffs.

### Notes

- Requires Git >=2.32 for untracked stash previews; tested versions are documented separately. UI labels remain Chinese. External Git processes can race panel snapshots; native hooks are trusted repository code.


## [0.3.0] - 2026-10-01

### Added
Expand Down
19 changes: 19 additions & 0 deletions CHANGELOG_ZH.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,25 @@

## [Unreleased]

## [0.4.0] - 2026-10-02

### 新增

- 完整 Web Git 工作流:单文件/批量暂存及取消暂存、仅提交暂存区并执行钩子、本地分支、stash 保存/应用/删除、保留 stash 备份后还原已跟踪文件。
- 人工预览确认、两分钟一次性凭证、会话/仓库/快照复核、每仓库写锁、受信 Host/Origin JSON POST 与启停取消。模型工具保持只读。
- 真实 Git、DOM 回归及可单独运行的正式安装 Web 操作验收脚本。

### 修复

- Origin 绑定原生载体 Host,避免 dsh.internal 内部地址误拒绝页面点击。
- stash 操作不继承 literal-pathspec 模式,保证 Git 清理已保存的未跟踪文件。
- 确认页展示选定未跟踪文件内容及所选 stash 差异。

### 说明

- 未跟踪 stash 预览需要 Git >=2.32,实际验证版本另行记录。界面仍为中文;外部 Git 进程可能与快照并发,Git 原生钩子属于受信仓库代码。


## [0.3.0] - 2026-10-01

### Added
Expand Down
Loading
Loading