feat(devbox): auto-init submodule and add upstream:sync script - #3
Conversation
Add guarded submodule init to devbox init_hook so the pinned deepseek-harness checkout populates automatically on first devbox shell. Add upstream:sync pnpm script as the canonical submodule sync command, reachable with or without devbox. Update AGENTS.md, CONTRIBUTING.md, CONTRIBUTING.en.md, README.md, and README.en.md to reference corepack pnpm run upstream:sync instead of raw git submodule update. Resolves acryldev#2
|
Thanks for the solid contribution, @levonk! I reviewed this at a technical level and everything checks out: ✅ devbox.json — Excellent DX improvement. The guarded init pattern is perfect: ensures submodules populate once on first shell, then stay cheap on subsequent invocations. ✅ upstream:sync abstraction — Clean API design. Wrapping raw git commands in a pnpm script makes this discoverable, maintainable, and sets a pattern for future upstream operations. ✅ Bilingual documentation — All updates consistent. Proper hash tracking in README.i18n.yaml shows you understand the bilingual maintenance contract here. ✅ Zero breaking changes — Backward compatible throughout. Tests pass, verification gates clear. This is exactly the kind of focused, well-executed first contribution that moves the project forward. Approved and merged. Looking forward to more collaboration on ACRYL. Welcome aboard! |
Summary / 摘要
Add a guarded submodule init to the
devbox.jsoninit_hookso the pinneddeepseek-harnesscheckout populates automatically on firstdevbox shell. Add apnpm run upstream:syncscript as the canonical submodule sync command, reachable with or without devbox. UpdateAGENTS.md,CONTRIBUTING.md,CONTRIBUTING.en.md,README.md, andREADME.en.mdto referencecorepack pnpm run upstream:syncinstead of the rawgit submodule update --init --recursivecommand.The
init_hookguard is[ -d deepseek-harness/.git ] || git submodule update --init --recursive— it populates the submodule once on first shell, then skips the git invocation on subsequent shells to keep them cheap. Adevbox run sync-submodulescript delegates topnpm run upstream:syncfor explicit sync-after-pin-move.Related Issues / 关联 Issue
Resolves #2
Type / 类型
Platforms / 影响平台
Verification / 验证
corepack pnpm run check:layout— bilingual-docs verification passes (42 records, 84 documents consistent);README.i18n.yamlhashes updated to match new README blobscorepack pnpm run typecheckcorepack pnpm run testcorepack pnpm run checknode scripts/verify-bilingual-docs.mjspasses;node --test scripts/bilingual-docs.test.mjspasses (4/4)Release Notes / 发布说明
Contributor experience improvement: new
devbox.jsonwith auto-init submodule guard, newpnpm run upstream:syncscript. No user-visible application changes.