feature: `mocactl bundles list` to enumerate caller's live config bundles
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 55/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- typescript
Research direction
Start by reading the existing mocactl bundles delete command and the control plane API it calls, then look at how mocactl promote authenticates and returns bundle metadata. Add a caller-scoped list operation that reports the digest, size, promoted-at time, and server-tracked state in text and JSON output. Done means callers can list their live bundles and identify one to delete; the issue does not name files or tests.
Written by the indexing model from the issue text.
Description
Feature Description
mocactl bundles today exposes only delete DIGEST, keyed by a digest the caller must already hold. There is no way to ask "what bundles do I currently own?"
That gap turns any crash between mocactl promote returning and whatever persists the digest client-side into an unrecoverable orphan. The bundle counts against the caller's budget until TTL, and the caller has no way to find it to mocactl bundles delete it.
Repro
# promote persists the bundle on the server *before* returning the digest to the client
mocactl promote /path/to/bundle --json
# → {"digest":"sha256:335201…","uploaded":true, ...}
#
# If the parent process dies between that response and whatever
# would have written the digest down (a note file, a ledger row,
# MOCA.md), the digest is lost but the bundle lives on the server.
Verified with a probe against the live cluster: promoted a bundle, "forgot" the digest, had to drop to redis-cli KEYS 'config:bundle:*' on the control plane to recover it before mocactl bundles delete could clean up. Cluster-admin surface — defeats the purpose
This is similar to #552
Proposed Solution
Add mocactl bundles list [--json] that calls the control plane scoped to the authenticated caller and prints digest, size, promoted-at, and whatever state the server tracks
Want to contribute?
- I would like to work on this issue.
Additional Context
No response
- Dominant language
- TypeScript
- Stars
- 4
- Forks
- 9
- Avg merge
- 9h 31m
- Merged PRs (30d)
- 139
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from rossoctl/moca
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
rossoctl/moca#421 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
Similar issues
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster no-stale P3
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
openclaw/openclaw#182077 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day
-
aikido high security
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
dequelabs/axe-linter-action#161 ·
-
[Feature Request] Update the DimCode agent icon to the 45:32 brand markPossibly taken @eric8810 claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
lyswhut/lx-music-desktop#3026 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
abhigyanpatwari/GitNexus#3704 ·
Maintainers usually reply within 1 day