Repository navigation
M2-03: Pin reproducible Moss dependency #24
Copy link
Copy link
Closed
Labels
area:moss-integrationMoss integrationMoss integrationarea:securitySecurity controls and boundariesSecurity controls and boundariespriority:P0Critical priorityCritical priorityrisk:trust-boundaryChanges a trust or evidence boundaryChanges a trust or evidence boundarytype:choreRepository maintenanceRepository maintenance
Description
Type: Supply-chain/Dependency Implementation
Priority: P0 / trust boundary
Initial status: Blocked
Owner: Moss Integration
Depends on: accepted M2-01
Blocks: M2-04 through M2-08
Writable: package.json, lock/workspace config, CI, .gitmodules/vendor,
docs/moss-dependency.md
唯一目标
使 fresh clone、CI 和演示机器使用同一份可追溯 Moss Capability/Receipt API,不依赖 Box 在截止前合并或发布。
审核输入
upstream base candidate:
da9b566f9b607c28633b3790a44ae8d49522b269
PR #138 observed head:
d3b169551084c58eda67d9b9716cd48063286bb5
npm 0.1.0:
legacy Plan API; rejected for this integration
默认交付决策
有经验证正式 release -> exact versions + lockfile
否则 -> team-controlled integration fork
+ immutable upstream base
+ minimal reviewed patch list
+ vendor/moss submodule exact integration commit
+ officialRelease=false
必须输出的 MossBuildInfo
type MossBuildInfo = {
sourceMode: "OFFICIAL_RELEASE" | "INTEGRATION_FORK";
upstreamRepository: "https://github.com/nishuzumi/moss";
upstreamCommit: string;
integrationRepository?: string;
integrationCommit?: string;
patchsetDigest?: `sha256:${string}`;
packages: Readonly<Record<string, string>>;
officialRelease: boolean;
};实施步骤
- 记录 npm、upstream、PR #138 当前状态和日期。
- 建团队可控 fork;从固定 upstream base 创建最小 integration branch。
- 复核并选择性携带 #138 exact commit/等价最小 patch。
- 生成 patch list、patchset digest 和许可证归属。
- 以 submodule 固定 exact commit;CI 使用 recursive submodule。
- 写 API fingerprint,证明 action 返回 CapabilityNode、simulator 接收一个 Capability tree。
- clean clone 执行 Moss 与 Mini-Demo 双 workspace Gate。
验收
[ ] 无 floating latest/main/tag
[ ] 不复制 Moss source 到 Mini-Demo 普通目录
[ ] fork 可在无 upstream Maintainer 操作时 fetch
[ ] upstream/integration commit、patches、digest、license 完整
[ ] officialRelease=false 可显示
[ ] required protocol modules 可从 pinned source import
[ ] 不会静默解析到 legacy npm 0.1.0
[ ] source/version/commit 可进入后续 report/UI
[ ] fresh clone 双 workspace 全绿
验证
pnpm -C vendor/moss install --frozen-lockfile
pnpm -C vendor/moss build
pnpm -C vendor/moss test:offline
pnpm install --frozen-lockfile
pnpm build
pnpm check
git submodule status
git diff --check
TMPDIR=$(mktemp -d)
BRANCH=$(git branch --show-current)
git clone --recurse-submodules --branch "$BRANCH" . "$TMPDIR/repo"
cd "$TMPDIR/repo"
corepack enable
pnpm -C vendor/moss install --frozen-lockfile
pnpm -C vendor/moss build
pnpm -C vendor/moss test:offline
pnpm install --frozen-lockfile
pnpm checkCodex 指令
审计 pinned Moss API、许可证和构建,再实现最小可重复依赖。
不要等待 upstream merge,不跟踪 floating branch,不重写 Moss 架构。
输出 upstream/integration SHA、patch list/digest、API fingerprint 和 fresh-clone 证据。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area:moss-integrationMoss integrationMoss integrationarea:securitySecurity controls and boundariesSecurity controls and boundariespriority:P0Critical priorityCritical priorityrisk:trust-boundaryChanges a trust or evidence boundaryChanges a trust or evidence boundarytype:choreRepository maintenanceRepository maintenance
Activity
pillowtalk-Qy commentedon Jul 31, 2026
Dependency gate cleared and dependency audit refresh - 2026-07-31
M2-01 / #22 is Maintainer Accepted and its Node 22 Next/Moss compatibility spike passed. The architecture dependency for #24 is satisfied.
Current external audit:
main:2e7c1dbeb5e6f3b1492455034e3b0348a3c0094d.d3b169551084c58eda67d9b9716cd48063286bb5.v0.1.0/0.1.0at tag commita83434a61f81bdcc253f9b22dac53775cf6f659f.@themoss/core@0.1.0still identifies the legacy Plan model.@themoss/protocol-pancakeswapis not published.Control decision:
Next required action:
This record authorizes dependency implementation, not an unreviewed fork or supply-chain exception.
pillowtalk-Qy commentedon Aug 5, 2026
M2_EXECUTION_SLOT_ASSIGNED
Builder:
pillowtalk-QyPlanning baseline:
origin/main@aae0397da1ba4924422d5a456123e9a4243b1797M1 closure evidence:
Issue #24 is the single active M2 execution slot and is moved to Project In Progress for planning.
The next required evidence is a closed, path-specific Work Plan based on the exact main SHA above. In Progress does not mean SCOPE_CONFIRMED, implementation authorization, QA PASS, Review, Merge Gate, or merge authorization. No branch, worktree, file modification, commit, dependency change, or PR may begin before Maintainer scope confirmation.
Issues #23 and #32 remain Ready and unassigned. Other M2 Issues remain governed by their existing direct dependency gates.
pillowtalk-Qy commentedon Aug 5, 2026
Final Implementation Work Plan - Reproducible Moss Dependency - Awaiting Maintainer Scope Confirmation
1. Planning control
origin/main@aae0397da1ba4924422d5a456123e9a4243b1797.PLANNING_ONLY / AWAITING_MAINTAINER_SCOPE_CONFIRMATION.SCOPE_CONFIRMED / IMPLEMENTATION_AUTHORIZED.2. Current external audit and dependency decision
Audit date: 2026-08-05.
maincurrently resolves to immutable commit1ae6b6322d51fae9104f047efb94e601050b967f.f39560dbcb18e62298f0f75ac7eb020fb1d015480c11b5ee672672d1b381afbabb587ae165805aa1v0.1.0ata83434a61f81bdcc253f9b22dac53775cf6f659f.@themoss/core@0.1.0still exposes the rejected legacy Plan API, and@themoss/protocol-pancakeswap@0.1.0is not published. The registry release path therefore cannot provide the required Capability/Receipt source set.https://github.com/Moss-Mini-Demo/mossdoes not currently exist or is not readable by this Contributor. Creating or exposing that repository is a Maintainer-owned prerequisite; the Builder will not create a fork or change organization permissions.INTEGRATION_FORK, but the current audited upstream already contains PR #138 and the required source packages. The minimal proposal is therefore a zero-patch mirror of the exact upstream commit. No unreviewed patch is authorized.The immutable dependency identity requested for Scope Gate is:
{ "sourceMode": "INTEGRATION_FORK", "upstreamRepository": "https://github.com/nishuzumi/moss", "upstreamCommit": "1ae6b6322d51fae9104f047efb94e601050b967f", "integrationRepository": "https://github.com/Moss-Mini-Demo/moss", "integrationCommit": "1ae6b6322d51fae9104f047efb94e601050b967f", "patchsetDigest": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "packages": { "@themoss/core": "0.1.0", "@themoss/simulator": "0.1.0", "@themoss/protocol-kuru": "0.1.0", "@themoss/protocol-pancakeswap": "0.1.0" }, "officialRelease": false }The package values above are source-tree manifest versions, not proof that equivalent npm artifacts exist. The repository and commit pair is authoritative. The empty patch digest is the SHA-256 of the exact byte stream produced by:
If the integration commit differs from the upstream commit, the zero-patch proposal is invalid. Implementation must stop and return a new exact patch list, diff review, digest, API fingerprint, and Scope Gate request.
3. API and license fingerprint
The selected commit must be verified against these immutable Git blob identities:
packages/core/src/types.tsed6fb07d851a652a826220d6a73520eb58376f3aCapabilityNode,CapabilityResult, andReceiptcontracts exist; no legacy Plan fallbackpackages/simulator/src/index.ts26016966d2588587995892b22f914bc59d6773f7CapabilityNodetreepackages/protocols/kuru/src/index.ts992e51ec2c6f5381230f1241b1c4343e29cf82a0packages/protocols/pancakeswap/src/index.ts60cd62e4fb6c27fe790a699f09144436fee83704LICENSE41416c0feb1e55d569ff759db4eaa34cd40a93a3docs/moss-dependency.mdwill record this fingerprint, the package manifest versions, the source decision, PR #138 state, license attribution, patch digest algorithm, and the exactMossBuildInfovalue. This is dependency provenance only. It is not a runnable adapter, a real Moss/Monad execution, chain evidence, or a safety guarantee.4. Closed writable scope
Only these four Mini-Demo repository paths are requested:
.gitmodules- add the singlevendor/mossmapping to the team-controlled HTTPS repository; nobranchkey and no floating ref.vendor/moss- add one Git submodule gitlink pinned to exact integration commit1ae6b6322d51fae9104f047efb94e601050b967f; no copied source files.docs/moss-dependency.md- add the immutable provenance, build information, API/license fingerprint, verification commands, limitations, and update procedure..github/workflows/quality-gate.yml- retain the job name, triggers, andcontents: readpermission while enabling recursive submodule checkout and adding the pinned Moss offline workspace gate before the unchanged rootpnpm check.No wildcard path is writable. No fifth path may be added during implementation.
The following paths are deliberately excluded:
package.json,pnpm-lock.yaml, andpnpm-workspace.yaml. Moss remains an independent workspace under the submodule, so the root workspace must not absorbvendor/mossand must not silently resolve Moss from npm. Runtime dependency linkage belongs to the latermoss-adapterissue. If a root package, workspace, or lockfile change is found necessary, implementation stops and returnsSCOPE_CHANGES_REQUESTED.The workflow change requires the Contributor credential to have GitHub workflow OAuth scope before the file can be pushed. The Maintainer must explicitly restore/confirm that scope before implementation reaches the workflow edit. The Builder will not request broader repository permissions, alter Actions permissions, or change branch protection or required checks.
5. Maintainer prerequisites
Implementation remains blocked until all of the following are recorded:
https://github.com/Moss-Mini-Demo/moss.1ae6b6322d51fae9104f047efb94e601050b967f; it must not require a floating branch for checkout.MossBuildInforecord for this issue.SCOPE_CONFIRMED / IMPLEMENTATION_AUTHORIZEDon Issue M2-03: Pin reproducible Moss dependency #24.Failure of any prerequisite leaves the issue in planning. The Builder must not substitute a personal fork, direct upstream submodule, npm dependency, copied source, or private credential.
6. Implementation sequence after authorization
origin/main. If Mini-Demo main differs from the planning baseline, record the new exact baseline and verify that the four-path scope still applies before creating any branch.codex/issue-24-reproducible-moss-dependencyfrom that exact main in an isolated worktree.git diff --binaryis empty;.gitmodulesand thevendor/mossgitlink. The URL is HTTPS, no branch is recorded, and the gitlink is the only representation of Moss source in Mini-Demo.docs/moss-dependency.mdwith:MossBuildInfo;officialRelease=false;quality-gateworkflow:quality-gate;permissions: contents: read;22.23.1;11.10.0;test:offlinewithinvendor/moss;11.16.0;pnpm checkentry unchanged.node_modules,dist, store state, or untracked source.chore: pin reproducible Moss dependencywithCloses #24only.quality-gatesuccess, update the Implementation Report, add a Pre-PR QA handoff, freeze the head, and return to independent review. Do not execute Review, Ready, Merge Gate, Merge, Issue closure, Project state, permission, or branch-protection operations.7. Verification contract
Local implementation environment:
Required implementation-worktree checks:
The final clean-clone proof must use the pushed Draft PR branch and the public repository path:
The PR evidence must include command exit results, Moss test counts, Mini-Demo test counts, submodule status, computed digest, exact base/head, and the exact-Head Actions run/job URL.
8. Acceptance criteria
.gitmoduleshas no branch tracking.MossBuildInfo.sourceModeisINTEGRATION_FORK;officialReleaseisfalse.pnpm checkremains the sole project quality-gate entry and passes after the Moss workspace gate.contents: readminimum permission remain unchanged.9. Non-goals
This issue does not implement or modify:
packages/moss-adapter,preflight-core, web/server code, report assembly, orchestration, UI, or Clear402.The dependency pin proves source provenance and reproducible offline build inputs only. It does not prove that Moss is safe, that an application exists, or that any protocol/chain result is real.
10. Risks, stop conditions, and rollback
11.10.0while Mini-Demo records11.16.0. Each workspace must pass with its recorded version in the same Node 22 clean clone. Do not edit either lockfile to conceal incompatibility.test:offlineis accepted.contents: readremains fixed..gitmodulesentry together. The external team repository is not deleted or rewritten. No generated Moss source is retained in Mini-Demo.11. Requested Maintainer Scope Gate
Please record one of:
SCOPE_CONFIRMED / IMPLEMENTATION_AUTHORIZEDfor the exact commit identity, zero-patch decision, four writable paths, workflow prerequisite, and validation contract above; orSCOPE_CHANGES_REQUESTEDwith the exact path/contract change required.Until that record exists, Builder state remains:
pillowtalk-Qy commentedon Aug 5, 2026
MAINTAINER_REVIEW - MAINTAINER_DECISION_REQUIRED
Audit date: 2026-08-05
Mini-Demo baseline:
main@aae0397da1ba4924422d5a456123e9a4243b1797Reviewed Work Plan: #24 (comment)
Independent verification completed
mainis still the reviewed baseline; merged-mainquality-gaterun30941143295is successful.mainresolves to1ae6b6322d51fae9104f047efb94e601050b967f.0c11b5ee672672d1b381afbabb587ae165805aa1; the selected commit is one commit ahead and contains that merge.v0.1.0resolves toa83434a61f81bdcc253f9b22dac53775cf6f659f.@themoss/core@0.1.0exposes the legacyPlancontract;@themoss/protocol-pancakeswap@0.1.0returns registryE404.sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.22.23.1and pnpm11.10.0, a clean detached checkout passed frozen install, build, typecheck, andtest:offline: 30 test files, 249 passed, 14 skipped by the upstream suite. The checkout remained clean.workflowscope. Existing workflow identity,contents: read, and strict requiredquality-gateprotection remain intact.Scope assessment
The immutable upstream commit, zero-patch integration decision, docs-only
MossBuildInfo, four writable Mini-Demo paths, and proposed dual-workspace validation contract are technically acceptable.One prerequisite must be made stricter:
Contributor-readableis insufficient for cross-repository Actions and credential-free fresh-clone reproducibility. The integration repository must be a public, anonymously readable organization fork athttps://github.com/Moss-Mini-Demo/moss. A private repository, personal fork, direct floating upstream reference, copied source, or hidden credential is not accepted.The organization repository does not currently exist. The current user is an active organization admin and can create repositories, so this is a Maintainer action rather than an external blocker.
Decision and assignment
Formal conclusion:
MAINTAINER_DECISION_REQUIRED.Maintainer Qy is the next active role and must:
Moss-Mini-Demo/mossfromnishuzumi/moss.1ae6b6322d51fae9104f047efb94e601050b967fis served by that repository.SCOPE_CONFIRMED / IMPLEMENTATION_AUTHORIZEDif they pass.Builder Qy remains
NO_IMPLEMENTATION_STARTED: do not create a branch/worktree, edit files, add the submodule, change the workflow, commit, push, or open a PR yet.#24 remains the single active M2 slot in planning. #23 and #32 remain Ready and unassigned. #25-#31, #33, and #34 remain blocked by their direct dependency gates.
pillowtalk-Qy commentedon Aug 5, 2026
SCOPE_CONFIRMED / IMPLEMENTATION_AUTHORIZED
Reviewed Work Plan:
#24 (comment)
Mini-Demo planning baseline:
main@aae0397da1ba4924422d5a456123e9a4243b1797Maintainer prerequisite verification
The organization fork has been created and verified:
PUBLICnishuzumi/moss1ae6b6322d51fae9104f047efb94e601050b967f1ae6b6322d51fae9104f047efb94e601050b967fmain:1ae6b6322d51fae9104f047efb94e601050b967fls-remote, clone, and explicit fetch: PASS with GitHub tokens, credential helpers, global Git configuration, terminal prompting, and SSH credentials disabledsha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855The five immutable API/license blobs match the accepted upstream tree exactly:
packages/core/src/types.ts:ed6fb07d851a652a826220d6a73520eb58376f3apackages/simulator/src/index.ts:26016966d2588587995892b22f914bc59d6773f7packages/protocols/kuru/src/index.ts:992e51ec2c6f5381230f1241b1c4343e29cf82a0packages/protocols/pancakeswap/src/index.ts:60cd62e4fb6c27fe790a699f09144436fee83704LICENSE:41416c0feb1e55d569ff759db4eaa34cd40a93a3The authenticated Maintainer session includes GitHub
workflowscope. No Actions permission, branch protection, required-check, Team, or repository permission setting was changed.Authorized implementation contract
The fixed zero-patch
INTEGRATION_FORKdecision and the Final Work Plan are approved.Writable Mini-Demo paths are exactly:
.gitmodulesvendor/mossgitlink pinned to1ae6b6322d51fae9104f047efb94e601050b967fdocs/moss-dependency.md.github/workflows/quality-gate.ymlThe Work Plan requirements for immutable provenance, docs-only
MossBuildInfo,officialRelease=false, recursive submodule checkout, dual pnpm workspace validation, public package/API fingerprint, MIT attribution, offline Moss tests, clean recursive clone, and unchanged rootpnpm checkremain mandatory.No fifth path, Moss source patch, root package/workspace/lockfile change, direct upstream submodule, npm fallback, floating branch/tag, private credential, live-chain behavior, adapter implementation, Schema/Decision Engine change, or product capability is authorized.
Any repository-visibility change, commit drift, non-empty integration diff, blob mismatch, added path, dependency change, or workflow/permission expansion invalidates this authorization and requires a new Scope Gate.
This record is implementation scope authorization only. It is not QA PASS, Review, Ready for review, Merge Gate, merge authorization, M2 Gate completion, or evidence that Moss or the Mini-Demo is safe or operational.
No Builder branch, worktree, file change, commit, push, or PR is created by this Maintainer task. Builder execution remains unstarted until a separate role handoff.
chore: pin reproducible Moss dependency (#70)
pillowtalk-Qy commentedon Aug 5, 2026
POST_MERGE_AUDIT
PR #70 was squash-merged under the exact Maintainer Merge Gate.
ac40e615ffd197abdba1eb4946a3d1fd9d4d677emain@aae0397da1ba4924422d5a456123e9a4243b179793235e5c3ef531075c860beadc6ad2ce6b3dc8a02026-08-05T04:26:53Zaae0397da1ba4924422d5a456123e9a4243b1797No admin bypass or auto-merge was used. No permission, Team, protection, Tag, Release, product, or live-chain operation was changed by this audit.