feat(release): publish installable memd and reconcile /v1/version (#151) - #216
Conversation
|
CI is green after the Windows npm rerun. I cannot approve or merge: I am the author. Needs @PeterGuy326 or @Bindy-lbb. |
|
请评审合入(作者是我,不能自批)。 把可安装的 需要 @PeterGuy326 或 @Bindy-lbb 批准。不切 tag、不发 npm。 |
PeterGuy326
left a comment
There was a problem hiding this comment.
HOLD: current head 4f6fcd6 is conflicting with main, so this cannot be approved or merged yet. Please update the branch onto the current main, rerun the required CI for that new head, and refresh the still-unverified Go/release validation items in the ledger before requesting CODEOWNER review.
e93b94a to
e42ef06
Compare
平台组 Review(崔泽生,assigned by @冯浩然)一、总体评价将 二、阻塞问题
两处 jq 验证都写的是
release job 的 draft 验证步骤 一定会失败,发布流程走不通。需要将两处 建议:资产清单在 workflow 中硬编码了三处( 三、重要但非阻塞
四、做得好的地方
五、合并阻塞项
六、核心判断核心设计合理,安全模型一致,测试覆盖到位。但 asset count bug 会导致 release 流程失败,必须合并前修复。修复 + rebase 后可进入 CODEOWNER 审批。 |
Rebased onto main. Also fix draft asset count: upload mem-mcp-checksums.txt and require 24 assets so jq matches the inventory. Refs: #151
d1e4791 to
c5679bf
Compare
|
Addressed 崔泽生's blocking review:
Head: |
sun-970
left a comment
There was a problem hiding this comment.
Review — Comment (not approving yet)
Scope: #151 publish installable memd and reconcile /v1/version.
Analysis
-
Server binary publishing ✅ — New
build-serverjob in release workflow builds memd, mem-migrate, mem-healthcheck for linux/darwin amd64/arm64. Binary verification viago version -mchecksvcs.revisionandvcs.modified=false. -
/v1/version endpoint ✅ — Returns
version(semver),revision(40-hex git commit), andcontract(informational). Clean separation: clients can pin by revision or accept a version range. -
Release guards ✅ — Checksum generation, release helper compatibility tests, and Dockerfile VERSION/REVISION injection all present.
-
Documentation ✅ — DEPLOYMENT.md updated with post-install verification steps.
Blocker
Merge conflict with main — PeterGuy326 flagged this in an earlier review. The branch needs to be rebased onto current main before this can be approved. Once rebased and CI re-verified, I will approve.
|
Squash-merged #219. Updating this branch onto current |
|
Post-#219 update-branch CI is green on |
sun-970
left a comment
There was a problem hiding this comment.
Review — Approve
Head caae9ed is mergeable onto current main. Previous blockers are gone:
- Draft asset inventory is 24 in both jq checks,
test_release_guards.sh, and thegh release createupload list (16 server binaries + 6 mcp + 2 checksum manifests). - Branch is no longer conflicting; required CI on this head is green (Go, PostgreSQL, HTTP/CLI/MCP lifecycle, CodeQL, npm, web, worker, deployment profiles).
What I re-checked
build-serverjob buildsmemd/mem-migrate/mem-healthcheck/memfor linux+darwin amd64/arm64, injects version/revision/contract ldflags, and verifiesvcs.revision+vcs.modified=false./v1/versionreturns three distinct fields;TestVersionEndpointExposesAllCoordinatescovers them; CLI still redacts the server URL.- Checksum split (
mem-checksums.txt16 rows,mem-mcp-checksums.txt6 rows) matches the asset sets ingenerate_release_checksums.shand the guard tests. - Release safety model (preflight → build-mcp + build-server → draft → verify → publish) is intact; pattern filter on artifact download was correctly removed so server assets are included.
No tag / npm publish / issue close in this PR, as stated.
Non-blocking (do not hold merge)
- Dockerfile injects VERSION/REVISION/CONTRACT only into memd.
mem/mem-migrate/mem-healthcheck/mem-mcpstill build with-ldflags="-s -w"./v1/versionis served by memd, so this is OK;mem versioninside the image will still printdev. Docs say “the Docker image inject[s] all three at build time” — true for memd only. docs/DEPLOYMENT.mdsays Compose/Helm pass the tag commit asREVISION.deploy/compose/compose.yamlcurrently only passesVERSION. Not a release-path bug.
CODEOWNER still needs to approve for merge (REVIEW_REQUIRED / branch protection). I am not a CODEOWNER.
|
sun-970 approved current head |
Bindy-lbb
left a comment
There was a problem hiding this comment.
Reviewed current head caae9ed.
- Previous release-build blocker is fixed:
go build -buildvcs=trueis now passed as a build flag, separate from-ldflags. - Release asset inventory/checksum guards are consistent.
/v1/versioncoordinates and CLI redaction coverage are present.- Branch is mergeable and all required CI checks are green.
Non-blocking note: Docker injects VERSION/REVISION/CONTRACT into memd only; this is sufficient for the served /v1/version endpoint.
Rebase the identity migration onto current main. Windows installer EPERM lock retry is already on main from #216; this commit only moves package name, version, cache namespace, and matching docs/tests to ByteFolk 0.1.2.
Requirement and scope
Re-lands #157 onto current
mainas an organization branch. #157 was closed because the fork head could not carry CI, not because the work was rejected.Refs #151. Implementation owner on the issue is @waterbro-8; human review owner is @Bindy-lbb. Original implementation: @sun-970.
Changes
memd,mem-migrate,mem-healthcheck, andmemfor linux/darwin amd64/arm64 in addition tomem-mcp.mem-mcp-checksums.txt(6) andmem-checksums.txt(16). The post-fix(release): validate compare links and protect checksum output (successor to #170) #199 output-path protections (no process-substitution find, nowc -l, refuse existing/late output symlinks, private mktemp staging) are kept and applied to both manifests./v1/versionexposes distinctversion/revision/contractfields; CLImem versionprints them and still redacts the server URL.Validation ledger
bash scripts/test_release_checksum_output_safety.shbash scripts/test_release_guards.shbash scripts/test_release_helpers_compat.shgit diff --checkmake test-serverNo tag, GitHub Release, npm publish, merge, or issue closure is performed by this PR.