You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adopt the canonical workspace ▸ session ▸ post ▸ surface model in the viewer
engine. A post is the published artifact (an ordered list of surfaces); a
surface is one block inside a post.
Internal rename only — behavior is unchanged and every wire-bound string is
kept byte-identical: /api/* paths, /s/ nav URLs, the ?part= query key, SSE
event types (surface-created/-updated/-deleted), the comment body { surface }
key and author:"surface" value, and the server-provided surfaceCount field.
The Route type's surfaceId field is also left intact.
- viewer local identifiers/props/signals/functions: artifact surface→post,
block part→surface (focusPost, standalonePost, posts, postLink, postImageLink,
Card/StandaloneView prop post, surfaceFrames).
- component files renamed: ImagePart→ImageSurface, JsonPart→JsonSurface,
TracePart→TraceSurface (prop part→surface).
- CSS classes: .part-unsupported→.surface-unsupported, .imagepart→.image-surface,
.tracepart→.trace-surface, .jsonpart→.json-surface, .tl-surface→.tl-post.
- user-visible strings: "surface"→"post"; onboarding copy reworded off the
retired board/snippet terms.
- host contract: identity.accountSlug→identity.workspaceSlug (embedders must
update) in viewer/src/host.ts and viewer/embed.d.ts.
- server helper: surfaceParts.ts→postSurfaces.ts, coerceSurfaceParts→coerceSurfaces,
validateSurfaceParts→validateSurfaces; importers + mcpHttp coerceParts alias updated.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments