feat: converge template identity, runtime contracts, and release state - #400
feat: converge template identity, runtime contracts, and release state#400Sunrisepeak wants to merge 32 commits into
Conversation
|
Checkpoint — exact local-index namespace inheritance (
Next checkpoint will migrate the affected E2E fixtures and validate the previously failing local-index scenarios against this commit. |
|
Checkpoint — exact identity retained through the build resolver ( The first fix covered shared Evidence:
|
|
Checkpoint — ELF loader physics / multi-glibc correctness ( The closure validator was resolving every dependency's This commit now:
Verification:
|
|
Validation checkpoint — local-index exact identity group Against current Draft-PR HEAD
These use isolated fresh sandboxes and the rebuilt PR CLI. No test fixtures needed loosening: the implementation fixes make their existing exact selectors resolve as intended. |
|
Checkpoint — E2E contract migrations ( Three tests were asserting pre-exact-identity or host-capability behavior rather than product regressions:
Local verification with the rebuilt PR CLI: 3/3 passed (100, 123, 204). Diff/privacy checks passed. |
|
Checkpoint — fake xlings fixtures retain truthful SubOS contracts ( E2E 52 and 58 used a fake The fixtures now copy the already inherited native runner's default SubOS contract into the fake home. This keeps the fake focused on install ordering/index transport while preserving truthful platform/runtime facts. Verification: 52 and 58 pass 2/2 with the rebuilt PR CLI. Diff/privacy checks passed; the committed tests contain no host-specific contract or path. |
|
Checkpoint — exact misses retain an unreadable-index cause ( The exact-selector failure path bypassed the existing E2E 185 is green across all three gates:
Diff/privacy checks passed. |
|
Checkpoint 92caaf9 — fixed the Windows-only SelfDependencyInjection fixture cleanup failure. The two manifest input streams now leave scope before remove_all, matching Windows file-lock semantics while preserving the canonical-identity assertions. Evidence: native Windows runner supplied the red case; rebuilt focused test_scaffold and exact GoogleTest case PASS on Linux; diff check and privacy-path scan clean. Fresh Draft-PR CI has been restarted from this commit. |
|
Verification checkpoint at 92caaf9: full local C++ unit/integration suite PASS — 72 test binaries, 0 failures (fresh isolated mcpp home). This includes the rebuilt scaffold, exact selector, runtime, index, and mangling unit coverage. No source change was made by this checkpoint; the Draft PR remains the only delivery channel. |
|
Checkpoint 4e39a8e — codified the requested delivery policy in the implementation plan: every logical change is an independent commit, pushed immediately to the Draft PR with a verification checkpoint; local usernames, absolute workspace paths, and private details are excluded. The ledger and focused design were sanitized, and the former admin/bypass/non-Draft merge wording was replaced with explicit user review plus the normal merge path. Full PR-relative docs scan is clean for local-user/worktree markers; diff check passes. |
|
Native-CI boundary at 4e39a8e: Windows toolchains/regressions failed only while building openxlings/xlings from its current main. The exact selector correctly rejected bare ftxui as mcpplibs.ftxui and pointed to compat.ftxui. This is the already-isolated cross-repository fix in Draft xlings PR #521 (8/8 checks passed), not a new mcpp regression. This CI lane can turn green after #521 is reviewed and normally merged; the bundled-release path additionally needs a new xlings release and explicit mcpp pin update. No bypass will be used. |
|
Checkpoint 0cc6a2a — the full isolated Linux E2E corpus reached 186 pass / 1 fail / 19 capability skips. The sole failure was test 156 reading a private libc from HOME instead of the selected MCPP_HOME, so it poisoned the mcpp process before the nested-tool regression could be exercised. The fixture now honors isolated state; bash syntax and exact E2E 156 PASS. Post-run protection hashes confirm both host xlings configuration and scripts/aur/mcpp-m remain byte-identical. Native Windows workspace-index failure remains a separate active diagnosis; xlings build-chain failures remain isolated to Draft PR #521. |
|
Checkpoint ed4cf64 — addresses the native Windows workspace-member failure from E2E 12. Inherited local index paths are now anchored to the workspace root lexically instead of weakly canonicalized, preserving the manifest-owned path identity across Windows short/case path aliases. Added a focused C++ route test that loads the exact descriptor through a member and hardened the E2E fixture copy/error boundary. Evidence: PmIndexRoute 10/10 PASS, rebuilt release binary, exact E2E 12 PASS, E2E 156 remains PASS, bash syntax/diff/privacy scans clean. Native Windows CI is the acceptance gate for this commit. |
|
Verification checkpoint at ed4cf64: full local C++ unit/integration suite PASS — 72 test binaries, 0 failures. The rebuilt current binary also passes exact E2E 12 and 156. No additional code change was made by this checkpoint; native Windows remains the acceptance authority for the workspace-path repair. |
|
Trace checkpoint: Draft PR summary and boundary are now synchronized with the enforced workflow: separate pushed logical commits, per-commit checkpoint comments, no history rewriting or admin/bypass merge, terminal latest-head checks only, and privacy-safe public text. The body also records mcpp-index #197 merged and xlings #521 as the remaining reviewed cross-repository dependency. |
中文交接 checkpoint已由 完整交接文档: 文档详细记录了:
当前没有宣称可合并:mcpp latest-head CI 仍需重新等待终态;四个构建 xlings 的失败由其裸 |
验证账本 checkpoint已由 本次只更新
该 commit 仅为文档账本更新,没有把 pending/superseded 任务写成 PASS,也没有改变产品代码或 |
PR 正文同步 checkpointPR 正文已由
本次是 PR 元数据更新,没有新代码 commit;最新仓库 HEAD 仍为 |
最新 HEAD / CI checkpoint
当前不把任何 pending job 记为 PASS。后续等待终态,并单独确认 Windows E2E 2/2;构建 xlings 的 job 在 #521 合并并发布前预计仍会报告裸 |
隐私身份 checkpoint已由 问题与根因:完整 PR added-line/privacy 复核发现,AUR reconciler 的提交身份仍硬编码了个人邮箱; RED:新增 public service identity contract 后,测试因 GREEN:
本 commit 和 push 本身也使用 |
文档一致性 checkpoint已由 同步内容:
|
Checkpoint:精确索引路由诊断(
|
Checkpoint:交接与验证账本同步(
|
Draft PR 正文已同步已把 |
中文任务交接(最新单入口)当前交接对象:Draft PR #400,分支 HEAD 完整交接文档: 已做
遇到的问题与当前判断
已有验证
还没有做
接手顺序
强制边界
|
概要
本 Draft PR 实现 #398 冻结的聚焦方案,覆盖包/模板身份、事务式项目创建、根本地运行时、图形栈 provenance、release desired state 和
mcpp-binAUR 恢复。核心产品决策:
[ns.]name[@version][:tname]。ns时严格等于mcpplibsversion、tname可省略--variantdefault = true时,该模板自动成为默认模板mcpp.toml中选择 xlings SubOS。mcpp-bin;mcpp-m文件和发布路径不动。已实现
mcpp new:安全项目名、单次渲染、完整校验、rollback、跨平台 no-replace commitRuntimeSelection和不可变RuntimeBinding,build/run/test/fast path 共用同一快照mcpp why runtime不重新探测 hostmcpp-release.json,最终公开 inventory 重取和 payload checksum 复算mcpp-bin-only AUR reconciler:event/schedule/manual、Arch vercmp、幂等/单调、checksum、fast-forward-only、有界恢复route:诊断:只报告 local index root/pkgs是否存在,不输出本机路径2026.8.9.1、当前稳定 xlings pin2026.8.9.2、英文/中文用户和发布文档验证证据
ed4cf64完整 C++ unit/integration:72/72ed4cf64后精确 E2E fix(pm): de-inline resolver functions to satisfy musl-gcc 15.1 link #12、chore(manifest): use TOML-native namespaced dep for mcpplibs.cmdline #156 和完整 72/72 unit 通过9a47ccf的路由诊断按 TDD 得到 RED;实现后 focusedPmIndexRoute12/12、真实 E2E fix(pm): de-inline resolver functions to satisfy musl-gcc 15.1 link #12 通过v2026.8.8.4payload/sidecar replay 字节稳定,真实 Arch.SRCINFO和非 rootmakepkg --verifysourcedry-run 通过scripts/aur/mcpp-m/**与 host xlings 配置的边界聚合哈希保持不变git diff --check已执行不会把“全量后修复并精确重跑”描述成“最新 HEAD 全量 E2E 全绿”;最新 HEAD 的原生 CI 必须独立达到终态。
原生 CI 当前证据
ed4cf64矩阵终态为 12 success / 5 failure / 1 cancelled:ftxuiexact miss;[indices]中的acmelocal index(run31321961040/ job93266267511);9a47ccf已增加无绝对路径的 route 状态。当前最新 HEAD 等待 Windows 原生 runner 输出root/pkgspresent/absent 后再做最小修复;当前没有宣称该问题已解决。跨仓库状态
mcpplibs.capi.lua@0.0.3payload 不变compat.lua@5.4.7compat.ftxui@6.1.9和测试用compat.gtest@1.15.2四个 xlings 失败不能在 mcpp 中恢复 fallback 掩盖,必须从 xlings #521 和后续 release 正常收口。Windows E2E 2/2 是独立 mcpp 问题,继续在本 Draft PR 内按原生证据修复。
文档
Draft、追踪和合并规则
尚未完成
route:原生证据并修复;同时复核完整矩阵终态v2026.8.9.1,验证所有平台资产、sidecar 和不可变 release manifestmcpp-bin收敛、fresh-home 全生态验证Closes #398.
Related: #380, #392, #396, #397, mcpplibs/mcpp-index#197, openxlings/xlings#521