Skip to content

refactor(storage): rename mesh-storage URIs to studio-storage with back-compat#4627

Merged
viktormarinho merged 1 commit into
mainfrom
chore/demesh-05-storage-uris
Jul 21, 2026
Merged

refactor(storage): rename mesh-storage URIs to studio-storage with back-compat#4627
viktormarinho merged 1 commit into
mainfrom
chore/demesh-05-storage-uris

Conversation

@viktormarinho

@viktormarinho viktormarinho commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Summary

De-mesh task 05: renames the mesh-storage:// URI scheme and its helpers to studio-storage:// equivalents.

  • packages/harness/src/decopilot/mesh-storage-uri.tsstudio-storage-uri.ts: toMeshStorageUritoStudioStorageUri, parseMeshStorageKeyparseStudioStorageKey, meshStorageRegexstudioStorageRegex.
  • Mesh-app re-export renamed (apps/mesh/src/api/routes/decopilot/studio-storage-uri.ts); all call sites updated (file-materializer, portable built-in tools, cluster-research-job, web chat components, prompts/comments).

Persistence analysis

These URIs are persisted: uploadFileParts (file-materializer) stores them in DB thread message parts and in annotation text, and tool results carrying resultUri land in message parts too. Therefore:

Back-compat guarantees

  • Parser accepts the legacy mesh-storage:// scheme indefinitely (parseStudioStorageKey), and studioStorageRegex matches both schemes — old threads keep resolving to presigned URLs.
  • Writers only emit studio-storage:// from now on.
  • No breaking change for stored data; the only observable change is the scheme on newly written URIs (the e2e wire-contract assertion in decopilot-thread-queue.spec.ts was updated accordingly).

Testing

  • New unit tests in packages/harness/src/decopilot/studio-storage-uri.test.ts prove legacy mesh-storage:// URIs still parse to the identical key and the regex captures keys from both schemes.
  • bun run fmt, bun run lint (0 errors), bun run check (all workspaces pass), targeted bun test (11 pass) — full suite has known pre-existing DB-backed failures locally.

🤖 Generated with Claude Code


Summary by cubic

Renamed the storage URI scheme from mesh-storage:// to studio-storage://. Writers now emit studio-storage://, while the parser and regex accept both schemes to keep old threads working.

  • Refactors

    • Replaced mesh-storage-uri.ts with studio-storage-uri.ts in packages/harness/src/decopilot (toStudioStorageUri, parseStudioStorageKey, studioStorageRegex).
    • Updated mesh app re-export to @decocms/harness/decopilot/studio-storage-uri and updated all call sites (file materializer, built-in tools, cluster research, web UI, e2e).
    • Added unit tests to verify legacy mesh-storage:// parsing and regex coverage; updated e2e to expect studio-storage:.
  • Migration

    • No action needed. Existing mesh-storage:// URIs continue to resolve; new writes use studio-storage://.

Written for commit 6e0eca5. Summary will update on new commits.

Review in cubic

…ck-compat

Writers now emit the studio-storage:// scheme; the parser and regex keep
accepting the legacy mesh-storage:// scheme indefinitely because these
URIs are persisted in DB thread message parts and annotation text.

- packages/harness/src/decopilot/mesh-storage-uri.ts -> studio-storage-uri.ts
  (toStudioStorageUri / parseStudioStorageKey / studioStorageRegex)
- mesh app re-export + all call sites updated
- unit tests prove legacy mesh-storage:// URIs still parse identically

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@viktormarinho
viktormarinho merged commit b9b941d into main Jul 21, 2026
15 checks passed
@viktormarinho
viktormarinho deleted the chore/demesh-05-storage-uris branch July 21, 2026 15:22
decocms Bot pushed a commit that referenced this pull request Jul 21, 2026
PR: #4627 refactor(storage): rename mesh-storage URIs to studio-storage with back-compat
Bump type: patch

- decocms (apps/mesh/package.json): 4.83.0 -> 4.83.1
- @decocms/e2e (packages/e2e/package.json): 1.16.0 -> 1.16.1
- @decocms/harness (packages/harness/package.json): 2.6.1 -> 2.6.2

Deploy-Scope: both
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