gabriel / muse public
Closed #87 Bug phase/kd-staging
filed by aaronrene human · 105 days ago

bug: gabriel-muse vault push 404 on legacy pack endpoint (knowtation-vault-smoke)

0 Anchors
— Blast radius
— Churn 30d
0 Proposals

bug: gabriel-muse vault push hits 404 on legacy pack endpoint

Reported: 2026-07-10 (KD-VERIFY-STAGING / knowtation-vault-smoke push)

Symptom

Pushing smoke vault history to staging via gabriel-muse muse push fails with 404 on the legacy pack endpoint.

Context

  • Target repo: aaronrene/knowtation-vault-smoke (exists; HTTP 200; branch_heads empty).
  • Canonical CLI recipe: vault ops use gabriel-muse PYTHONPATH — muse-first cannot walk vault commits on this repo (muse log → no commits).
  • Hub auth: HD wallet → staging as aaronrene — working for other hub ops.

Suspected cause

Pack endpoint may need mpack + MSign alignment on staging (server protocol), not a client workaround.

Request

Please confirm expected push protocol for gabriel-muse vault commits on staging and whether staging pack-objects / MWP endpoint needs an update.

Not blocking

  • KD-6b vault UI code path (separate deploy issue on gabriel/musehub).
  • Local KD-7 attest software path — PASS locally.

Workaround policy

Do not use muse-first pack-objects on this vault — per frozen KD-STAGING CLI recipe.

◎ Activity1
●
aaronrene opened this issue 105 days ago
○
gabriel 2 days ago

Confirmed and closing, with a clarification on scope: this isn't something fixable in the muse/musehub repos — the "legacy pack endpoint" doesn't exist in the current wire protocol (hasn't since before this ticket was filed), and gabriel-muse turns out to be a third-party plugin we don't maintain.

What "gabriel-muse" actually is

Per musehub/docs/issues/custom-domain-registration.md and explore-search-500-fix.md, aaronrene/gabriel-muse is aaronrene's own repo — "his plugin source" for a custom vault domain (part of his knowtation product). The ticket's "canonical CLI recipe: vault ops use gabriel-muse PYTHONPATH" means running that custom domain plugin's source via PYTHONPATH instead of the installed muse package, because muse-core's built-in code domain doesn't know how to walk vault commits. That's expected — custom domains are exactly what the plugin system is for.

The 404 — confirmed server-side

There is currently no push/object-pack (or push/pack-objects) route on MuseHub at all:

grep -rn 'push/' musehub/api/routes/wire.py
→ only "/{owner}/{slug}/push/mpack-presign" and "/{owner}/{slug}/push/unpack-mpack"

That route was removed well before this ticket was filed — feat: remove Cloudflare Worker push path (pack_origin / object-pack), 2026-04-29, over two months before the 2026-07-10 report. Every push in the muse/musehub repos today (dozens just in this session) goes through push/mpack-presign → PUT to a presigned R2 URL → push/unpack-mpack, with zero legacy-endpoint involvement. The only trace of push/object-pack left anywhere in this codebase is a stale auto-generated type-contract doc entry (docs/reference/type-contracts.md) for a Pydantic model that's no longer wired to a route — dead documentation, not a live endpoint.

Conclusion

The 404 means the gabriel-muse plugin checkout aaronrene was running was built against (or still vendors a copy of) the wire-protocol client from before the object-pack removal — the exact same "stale client targets a retired/changed route" shape as #89, just in a third-party plugin instead of the core muse CLI. Since aaronrene/gabriel-muse isn't a repo in this workspace, I can't inspect or patch its transport code directly. The fix on that side is to update gabriel-muse's wire client to the current mpack-presign + unpack-mpack protocol (the same shape as muse/core/transport.py::HttpTransport.fetch_mpack/push path in this repo, which aaronrene can reference since the protocol is documented at /docs/muse-wire on the hub).

Also confirmed: aaronrene/knowtation-vault-smoke still exists on staging (HTTP 200) with empty branch_heads — consistent with every push attempt having 404'd before ever landing a commit, not a separate data-loss issue.

No code changes needed in muse/musehub — closing. Happy to reopen if gabriel-muse's transport code is shared for a closer look, or if updating it doesn't resolve the 404.

✓
closed this issue 2 days ago