Skip to content

feat(git): read files from accepted trees - #23

Closed
zhiiw wants to merge 4 commits into
codex/gitoxide-projection-data-planefrom
codex/gitoxide-tree-file-data-plane
Closed

feat(git): read files from accepted trees#23
zhiiw wants to merge 4 commits into
codex/gitoxide-projection-data-planefrom
codex/gitoxide-tree-file-data-plane

Conversation

@zhiiw

@zhiiw zhiiw commented Aug 23, 2026

Copy link
Copy Markdown
Owner

Summary

  • add a bounded Gitoxide helper operation that reads one regular UTF-8 blob from an exact accepted commit tree
  • bind repository, commit, and tree identity to the existing owner-issued managed repository capability
  • reject non-canonical paths, symlinks/non-blob entries, non-UTF-8 content, and files above 8 MiB without projection or filesystem fallback
  • document the immutable dependency-manifest input boundary for the upcoming managed dependency product composition

Primary invariant

Dependency manifests and lockfiles are read from the exact immutable accepted Git tree. A caller cannot substitute a repository, commit, tree, or mutable projection path.

Owner: Gitoxide managed-repository admission authority.

Atomicity boundary: one read-only helper invocation against one accepted commit/tree identity; no durable mutation or T1 is involved.

Failure state: any malformed path, missing object, identity mismatch, unsupported entry, encoding violation, or resource-limit violation fails closed.

Rollback: none required because this slice writes no durable state.

Verification

  • npm --workspace @maka/runtime-host run build
  • npx biome check ... for the changed Runtime Host files
  • npm run check:asf-headers
  • git diff --check
  • Rust compile/fmt and real-helper tests are delegated to the three-platform Gitoxide CI because the local Windows checkout has no Rust toolchain

This is a stacked Draft based on codex/gitoxide-projection-data-plane. It has no standalone production consumer; the next M1.3 composition PR consumes it together with the packaged helper and dependency authorities.

中文说明

概要

  • 新增有界的 Gitoxide helper 操作,只从 exact accepted commit tree 读取一个普通 UTF-8 blob;
  • repository、commit、tree 身份全部绑定现有 owner-issued managed repository capability;
  • 非规范路径、symlink/非 blob、非 UTF-8、超过 8 MiB 的文件全部 fail closed,不回退 projection 或文件系统读取;
  • 为后续 M1.3 managed dependency 产品接线明确 immutable manifest/lockfile 输入边界。

主要不变量

依赖 manifest 与 lockfile 必须来自 exact immutable accepted Git tree。caller 不能替换 repository、commit、tree,也不能把 mutable projection 路径冒充权威输入。

Owner:Gitoxide managed-repository admission authority。

原子边界:单次只读 helper invocation 对应唯一 accepted commit/tree;没有 durable mutation,也没有 T1。

失败状态:路径、object、identity、entry kind、编码或资源上限任一不合法都 fail closed。

回滚:本切片不写 durable state,无需回滚。

这是基于 codex/gitoxide-projection-data-plane 的 stacked Draft;它不单独声明生产能力,下一步 M1.3 composition 会把它与 packaged helper、dependency authority 一起接入真实产品入口。

@zhiiw
zhiiw force-pushed the codex/gitoxide-projection-data-plane branch from a841f6f to cf8a9ed Compare August 24, 2026 03:10
@zhiiw
zhiiw force-pushed the codex/gitoxide-tree-file-data-plane branch from 19c985d to ffe4188 Compare August 24, 2026 03:12
@zhiiw
zhiiw force-pushed the codex/gitoxide-projection-data-plane branch from cf8a9ed to b38260c Compare August 24, 2026 03:48
@zhiiw
zhiiw force-pushed the codex/gitoxide-tree-file-data-plane branch from ffe4188 to d7ebe54 Compare August 24, 2026 03:49
@zhiiw
zhiiw force-pushed the codex/gitoxide-projection-data-plane branch from b38260c to 820971f Compare August 24, 2026 03:55
@zhiiw
zhiiw force-pushed the codex/gitoxide-tree-file-data-plane branch from d7ebe54 to 38274ff Compare August 24, 2026 03:55
@zhiiw
zhiiw force-pushed the codex/gitoxide-projection-data-plane branch from 820971f to 59fe107 Compare August 24, 2026 04:05
@zhiiw
zhiiw force-pushed the codex/gitoxide-tree-file-data-plane branch from 38274ff to 575de40 Compare August 24, 2026 04:05
@zhiiw
zhiiw force-pushed the codex/gitoxide-projection-data-plane branch from 59fe107 to 161a9a9 Compare August 24, 2026 04:18
@zhiiw
zhiiw force-pushed the codex/gitoxide-tree-file-data-plane branch from 575de40 to 07cbd69 Compare August 24, 2026 04:19
@zhiiw

zhiiw commented Aug 30, 2026

Copy link
Copy Markdown
Owner Author

Closed as an obsolete extraction/integration slice. The current delivery path is the merged Gitoxide foundation followed by #40 -> #41 -> #42. This PR remains available as design and implementation history.

中文说明

该 PR 属于旧 extraction/integration 栈,现已失去独立合并价值。当前交付路径是已合并的 Gitoxide 基础,然后依次审查 #40#41#42。这里继续保留设计、实现与审查历史。

@zhiiw zhiiw closed this Aug 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant