fix(workspace): `assertOwnsWorkspace` falls back to upload-then-rollback when the server omits `ownerId`
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- typescript
Research direction
Start in packages/opencode/src/altimate/workspace/skill-publish.ts, following publishSkill and assertOwnsWorkspace through the ownership check, upload, attach failure, and cleanup. Review the proposed GET /datamates/{id} and attach-endpoint precheck options, including compatibility with deployed backend versions. Done means ownership is resolved or clearly reported before upload when ownerId is absent, with the existing failure path covered.
Written by the indexing model from the issue text.
Description
publishSkill checks workspace ownership before uploading via assertOwnsWorkspace (packages/opencode/src/altimate/workspace/skill-publish.ts). When the server's workspace listing carries no ownerId (older backend), the check is a no-op and a non-owner's publish uploads the full bundle, fails at the attach step with 404, and is cleaned up with a DELETE. Correct outcome, but check-then-upload degrades to upload-then-rollback for that case, and a failed DELETE would leave an orphaned unattached skill.
Proposed: when ownerId is absent, resolve ownership through GET /datamates/{id} (or the attach endpoint's precheck) before the upload; or surface "ownership unknown, continuing" in the report.
Found during the v0.12.0 release review (CTO persona). Deferred because: depends on which backend versions are still deployed.
🤖 Generated with Claude Code
- Dominant language
- TypeScript
- Stars
- 813
- Forks
- 134
- Avg merge
- 2d 8m
- Merged PRs (30d)
- 65
Getting set up
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 AltimateAI/altimate-code
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
AltimateAI/altimate-code#1359 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
AltimateAI/altimate-code#1323 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
AltimateAI/altimate-code#1288 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
AltimateAI/altimate-code#1285 ·
Maintainers usually reply within 1 day
-
privacy: Altimate Base consent dialog no longer discloses persistent per-installation identifierOpen
Difficulty 1/5 Under an hour Newbie friendliness 88/100
AltimateAI/altimate-code#1284 ·
Maintainers usually reply within 1 day
All issues in AltimateAI/altimate-code
Similar issues
-
check:passed streams:add
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Fission-AI/OpenSpec#1986 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
nestjs/docs.nestjs.com#3554 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
publicodes/publicodes#868 ·
-
namespace operations
Difficulty 1/5 Under an hour Newbie friendliness 78/100
EclipseFdn/open-vsx.org#13488 ·
Maintainers usually reply within 2 days