Skip to content

v0.7.0

Choose a tag to compare

@benvinegar benvinegar released this 22 Jun 18:57
· 123 commits to main since this release

Minor Changes

  • ee75c8d: Embeddable viewer engine — mountViewer(el, host) (new sideshow/viewer-embed export) lets a host app embed the viewer. Self-hosted is unchanged.

  • a4033cf: Embedders can override the empty-board and sidebar-footer regions via named <slot>s. Self-hosted markup is unchanged.

  • 91db9a3: Support deployments mounted below an origin root.

  • 3f45e76: New json and code part kinds for surfaces.

    • json — a JSON value rendered natively as a collapsible tree (objects/arrays expand on click, type-colored primitives). Like image/trace it's data, not markup, so no sandbox is needed.
    • code — source highlighted with shiki in a sandboxed iframe, with line numbers, an optional filename header, and a copy button. lineStart shows original line numbers for excerpts. CLI: sideshow code app.ts --title "app.ts" --line-start 80.

    Also extracts the shared shiki highlighter into viewer/src/highlight.ts.

  • ddbfab2: SIDESHOW_PUBLIC_READ env var for read-only board access — session for unlisted-link sharing, full to expose the whole board.

Patch Changes

  • 5e3f292: Fix invisible markdown/mermaid/diff/terminal surfaces caused by a Chrome field trial that breaks layout measurement in srcdoc iframes. The viewer now retries the srcdoc parse after 2s if still stuck at minimum height.
  • c2e4443: Honor lineStart in code-part gutter numbers — shiki's <pre> markup wasn't matched by the counter-reset injection, so excerpts now number from their original line.
  • 3c56cc1: Deep links to /session/:id/s/:surfaceId now scroll to the target surface card.
  • 84e7057: Reject oversize asset uploads before buffering the body into memory, so a multi-GB upload can't exhaust the heap before the 413 fires.
  • 6962019: Fix cursor lag in waitForComments. lastSeq/agentSeq now derive from the unfiltered comment list, so an agent reply no longer makes every author=user poll re-read it and waste a round-trip.
  • a18f210: Pin surface iframes to the chrome's color scheme so light/dark no longer diverges across the frame boundary (html parts via a mode query param, markdown/code/comment frames via renderSandboxedPart). With no mode passed, the OS media query is kept, preserving self-hosted parity.
  • f0c6cd4: Fix a lost-update race in SqlStore.updateSurface. Concurrent PUT /api/surfaces/:id calls could lose one caller's parts; now uses compare-and-set with retry.
  • db463ce: Improve intro readme.