feat(git): establish Gitoxide repository admission and import - #3561
feat(git): establish Gitoxide repository admission and import#3561zhiiw wants to merge 23 commits into
Conversation
|
Addressed the unsupported-format admission gap at the open-error boundary.
I also tested the adjacent replacement-ref identity hypothesis. With Verification: 4/4 Rust protocol tests pass; ASF header audit and diff check pass. 中文说明已在 repository open-error 边界修复未知 object format 的分类缺口。
同时验证了相邻的 replacement-ref 身份假设:存在 验证结果:Rust 协议测试 4/4 通过,ASF header audit 与 diff check 通过。 |
|
The follow-up Gitoxide validation stack is now complete as three narrowly scoped stacked Drafts:
The combined real-helper contract now covers, on the same Runtime Host path:
The three-platform workflow builds the real Rust helper and runs the artifact, invocation, and admission contracts. These PRs intentionally remain Draft: they do not claim a signed packaged-release trust root, a protected installation root, Desktop/CLI consumption, T1 persistence, source import, projection, candidate, or ref CAS. Those are production integration gates, not hidden assumptions in the helper validation stack. 中文说明Gitoxide 后续验证链已经按三个窄边界完成:
联合真实 helper 合同已经证明:伪造 claim、错误 owner、symlink/junction、admission 后字节变化全部 fail closed;helper 使用固定 argv、最小环境、I/O 上限、超时/取消且不经过 shell;exit 0/1/2 严格对应 SHA-1 observation、稳定 operational failure、unsupported-format policy rejection;裸 path/OID 不能自证 admission;SHA-256 默认拒绝且不签发 capability。 三平台 workflow 会构建真实 Rust helper,并运行 artifact、invocation、admission 合同。这些 PR 仍保持 Draft,因为正式发布签名信任根、受保护安装路径、Desktop/CLI、T1、source import、projection/candidate/ref CAS 尚未接入;这些是后续生产接线门槛,不是当前验证栈里的隐藏假设。 |
98d5106 to
3453011
Compare
3453011 to
28a6b22
Compare
|
I expanded this Draft from the helper-only validation into one complete repository admission/import boundary. The updated head now includes the previously isolated artifact authority, short-lived invocation owner, repository admission capability, and exact source-import data plane. The primary invariant is therefore reviewable end to end: only an admitted helper invocation can establish and import the immutable repository identity used by later managed-workspace work. The branch was rebuilt from the latest main. Git range-diff reports all 12 extracted commits as patch-equivalent to the previously reviewed helper and fork PR #11-#14 slices. Successor publication, projection, packaging/product composition, Write/Edit, and resume remain out of scope. Local Core/Storage/Runtime/Runtime Host builds pass. The dedicated Linux/macOS/Windows helper jobs are now running against the expanded head. 中文说明我已经把这个 Draft 从“只有 helper 的验证切片”扩大成一条完整的 repository admission/import 边界。 当前 head 包含此前拆开的 artifact authority、短生命周期 invocation owner、repository admission capability 和 exact source-import data plane。现在可以端到端审查同一个主要不变量:只有经过 admission 的 helper invocation,才能确定并导入后续 managed workspace 使用的 immutable repository identity。 分支已经基于最新 main 重建。Git range-diff 显示 12 个提取提交与此前评审过的 helper 以及 fork #11-#14 patch 完全等价。Successor publication、projection、packaging/product composition、Write/Edit 和 resume 仍不在本 PR 范围内。 本地 Core、Storage、Runtime、Runtime Host 构建通过;Linux、macOS、Windows 专用 helper CI 正在针对新 head 运行。 |
6485980 to
4e6337f
Compare
4e6337f to
1377437
Compare
|
Thanks for the adversarial review. I addressed the correctness findings in
Regression coverage now includes source==destination, foreign bare/non-bare destinations, parent symlink/junction tampering, unsupported policy versions, helper-identity substitution, operation-specific deadlines, and Rust/TypeScript reason parity. Local Core/Storage/Runtime/Runtime Host builds, focused Node tests, Biome, and diff checks pass. The real Gitoxide workflow is green on macOS and Windows; Ubuntu is currently waiting for a runner. 中文说明感谢这次对抗性审查。
新增回归覆盖 source==destination、foreign bare/non-bare、父路径 symlink/junction、未知 policy、helper identity 替换、operation-specific deadline 和错误协议一致性。 本地四个 workspace build、Node 定向测试、Biome、diff check 均通过。真实 Gitoxide workflow 的 macOS 与 Windows 已绿色;Ubuntu 仍在等待 runner。 |
|
Thanks for the adversarial review. I addressed the findings in
Local CI-planner tests, Runtime Host build, protocol parity, Biome, and diff checks pass. The updated dedicated gate is green on macOS and Windows; Ubuntu is currently waiting for a runner. The general package/test/audit checks are still running or queued. The previously documented later boundaries remain intentionally unchanged: verify-to-spawn replacement resistance needs the packaged-release trust root; destination ownership still needs a state-root lease/capability; and partial artifact receipt/quarantine belongs to the future Storage owner. 中文说明感谢这次对抗性审查。
本地 CI planner、Runtime Host build、错误协议一致性、Biome 和 diff check 均通过。更新后的专用 gate 在 macOS、Windows 已绿色;Ubuntu 正在等待 runner,通用 package/test/audit 仍在运行或排队。 原先明确记录的后续边界保持不变:verify→spawn 的替换抵抗要依赖 packaged-release trust root;destination ownership 要等 state-root lease/capability;partial artifact 的 receipt/quarantine 由未来 Storage owner 负责。 |
|
Addressed the remaining object-identity, graph-walker, portability, protocol, CI, and documentation findings in
Verification at head
The Draft boundary remains unchanged: packaged-release trust, protected installation, state-root destination capability, partial-artifact recovery ownership, and Desktop/CLI/Write/Edit consumers remain follow-up gates. 中文说明已在
当前 head
Draft 的后续边界没有伪装完成:packaged-release trust、受保护安装目录、state-root destination capability、partial artifact recovery owner 以及 Desktop/CLI/Write/Edit consumer 仍属于后续切片。 |
|
Thanks for the detailed re-review. I addressed the remaining import-authority findings in
Regression coverage now includes corrupt blob storage identity, raw noncanonical/zero-padded modes, unsorted raw trees, Unicode fold collisions, lowercase reserved-device paths, and mismatched helper responses. All current checks pass: the fresh Rust helper and real invocation contract on Ubuntu/macOS/Windows, the main CI suite, dependency audit, and the Windows release/update/rollback contract. This PR can now be treated as merge-ready enabling infrastructure rather than product-ready functionality. The absence of a currently activated Desktop/CLI/Write/Edit consumer does not, by itself, require Draft status: the slice proves a complete repository-admission/import invariant, remains inert in production, and has concrete extracted downstream consumers for successor/projection, packaged authority, and Runtime Host composition. Those later slices must still land before managed mode is exposed to users. GitHub currently reports the PR as mergeable, and a merge-tree check against current 中文说明感谢这次细致的复审。本轮剩余问题已经在
新增回归覆盖 corrupt blob storage identity、非 canonical/zero-padded raw mode、未排序 raw tree、Unicode fold collision、小写 reserved-device path 和错配 helper response。当前 Gitoxide 三平台 gate、通用 CI、Dependency audit、Windows release/update/rollback contract 均已通过。 当前 PR 可以视为可合并的 enabling infrastructure,但不能视为已经产品化的功能。没有已经激活的 Desktop/CLI/Write/Edit 消费者,本身不再构成必须保持 Draft 的理由:本切片已经独立证明完整的 repository admission/import 不变量,默认不会激活生产行为,而且 successor/projection、packaged authority 和 Runtime Host composition 都已有明确的下游 extraction slice。只有这些下游能力完成后,managed mode 才能向用户开放。 GitHub 当前报告 PR 可合并,和最新 |
|
Addressed both remaining findings in
The dedicated Gitoxide admission gate is green on Ubuntu, macOS, and Windows, including Rust 1.98 formatting, the new real-helper metadata regression, Runtime Host build, and the invocation/process-tree contract. Dependency audit is also green; the broader CI and Windows package jobs are still running. 中文说明两个剩余问题已在
Gitoxide 专用 gate 已在 Ubuntu、macOS、Windows 全部通过,包含 Rust 1.98 formatting、新增真实 helper metadata 回归、Runtime Host build 与 invocation/process-tree 合同。Dependency audit 也已通过;通用 CI 和 Windows package job 仍在运行。 |
Summary
Establish one owner-bound Gitoxide repository admission and fresh source-import boundary without restoring bundled Git or discovering system Git.
managedTreePolicyVersion: 1for cross-platform materialization;Primary invariant
Only an admitted short-lived Gitoxide helper invocation may establish the immutable repository identity and source graph used by later managed-workspace operations. A claimed Git OID is accepted only when the object bytes recompute to that exact SHA-1. The admission capability prevents later callers from resubmitting the source path, HEAD/tree identity, helper identity, or tree policy.
Source preflight and copy use the same bounded verified graph walker. Policy v1 rejects path components that cannot be safely materialized across Linux, macOS, and Windows, including Windows device names, reserved/control characters, trailing dots/spaces,
.gitaliases, and folded path collisions.Failure and trust boundaries
unknownand fail closed without system-Git fallback.create_dir()destination claim.Verification
git diff --checkpass locally.中文说明
摘要
本 PR 建立一条 owner-bound 的 Gitoxide repository admission 与 fresh source-import 边界,不恢复 bundled Git,也不从系统 PATH 发现 Git。
managedTreePolicyVersion: 1明确定义为跨平台可物化策略;create_dir()领取,并发布确定性的 zero-parent baseline;主要不变量
只有已 admission 的短生命周期 Gitoxide helper 才能建立后续 managed workspace 使用的 immutable repository identity 与 source graph。Git OID 不能自证身份:对象 bytes 必须重新计算得到 exact claimed SHA-1。
source preflight 和 copy 由同一 walker 执行相同的 checksum、资源预算与路径策略。portable policy v1 在所有平台统一拒绝 Windows device names、保留/控制字符、尾部点或空格、
.git别名以及折叠路径冲突,避免“import 已接受但 Windows 无法安全物化”。仍保留的边界
unknown并 fail closed;验证
git diff --check通过。