Skip to content

ci(release): publish a self-packaged project-memory server asset (ADR-0011 §3) - #324

Merged
sipemu merged 1 commit into
mainfrom
feat/selfpack-release-asset
Jul 31, 2026
Merged

ci(release): publish a self-packaged project-memory server asset (ADR-0011 §3)#324
sipemu merged 1 commit into
mainfrom
feat/selfpack-release-asset

Conversation

@sipemu

@sipemu sipemu commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Summary

Increment 3 of self-packaging (ADR-0011): each release build folds examples/project-memory into a copy of the staged escurel-server (via the escurel-server pack from #323) and publishes an escurel-<ver>-<target>-project-memory archive next to the plain one — so a download (not just a local pack) boots a populated project-memory tenant.

  • Linux + Windows get the bundled asset. macOS is omitted: appending after EOF invalidates a macOS code signature; the notarisable Mach-O reserved-segment variant is the remaining deferred follow-on (ADR-0011 §3b — it needs a macOS linker + codesign path).
  • CI smoke-tests the bundled variant on each platform: boots it (dev mode, temp data dir, ephemeral ports) and asserts list_skills over /mcp shows the seeded project skill — proving the embedded corpus seeds and serves from the shipped binary.
  • create-release already globs escurel-* archives, so the new asset attaches automatically.

Additive — the existing plain-binary asset and release path are unchanged.

Test plan

release.yml can't run locally, so it's validated by a workflow_dispatch dry-run on this branch (build + smoke + package, no release) before it's relied on for a tag. The underlying pack→run→serve mechanism is already covered by crates/escurel-server/tests/self_packaging.rs (merged in #323).

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

…-0011 §3)

Each release build now folds examples/project-memory into a copy of the
staged escurel-server (via `escurel-server pack`) and publishes an
`escurel-<ver>-<target>-project-memory` archive alongside the plain one —
so a *download* gives the full project-memory experience (boots a
populated tenant), not just a local `pack`.

- Linux + Windows only: appending after EOF invalidates a macOS code
  signature, so the macOS bundled asset is omitted; the notarisable
  reserved-segment variant stays deferred (ADR-0011 §3b).
- CI smoke-tests the bundled variant on each platform: boots it (dev mode,
  temp data dir) and asserts list_skills shows the seeded `project` skill —
  proving the embedded corpus seeds + serves.
- create-release already globs `escurel-*` archives, so the new asset is
  attached automatically.

Additive: the existing plain-binary asset + release path are unchanged.
Validated via a workflow_dispatch dry-run before tagging.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@sipemu
sipemu merged commit 56e49b9 into main Jul 31, 2026
8 checks passed
@sipemu
sipemu deleted the feat/selfpack-release-asset branch July 31, 2026 13:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant