Skip to content

v0.3.0

Latest

Choose a tag to compare

@github-actions github-actions released this 06 Nov 05:01
6821f51

πŸ—οΈ Build Information

Field Value
πŸ“¦ Version 0.3.0
🏷️ npm latest β€” published as @mirrowel/opencode-openshare@0.3.0
🌿 Channel latest
πŸ”— Commit c0fde59
πŸ“… Release date 2026-11-06
⚑ Trigger workflow_dispatch
🧩 Parts changed cli plugin server viewer worker tools

πŸ“₯ Install

opencode plugin @mirrowel/opencode-openshare@latest --global

πŸ“‹ What's Changed

The 0.2.1 viewer already had twelve views, virtualization, scoped
search, live streaming, multi-user accounts, and copy-as-markdown.
0.3.0 is a trust and portability release around that base: shares can
leave the server as offline files, the server gains scoped credentials
and per-share controls, and the project gains a website, an admin
console, and CI-owned releases.

Viewer

  • Thinking panel (classic and conversation): the reasoning body is
    now a capped 26rem scroll panel with drag-to-resize, an open/close
    pour animation, and an end-of-thought mark; closed panels unmount
    their markdown. Plain tool outputs pour open the same way; file
    cards keep the kit's native mount.
  • File cards gained per-theme code palettes, media rendering for
    image/SVG/audio reads and writes, bottom-edge drag-resize, and
    range-language stamping so mid-script reads and edits highlight
    correctly. The existing pierre highlighting, line numbers,
    path-first relative titles, and the 20-line cap remain.
  • Output surfaces: shell, text results, and unregistered tools
    (MCP, ctx_*) share one resizable card with copy, wrap/scroll, a
    clipped-content fade, and a catch-all renderer.
  • Search gained one store behind the palette and every skin
    filter; every prompt of a parallel burst is searchable.
  • Deep links: ctrl+click a message copies #row=<key>; the link
    scrolls to the exact row, expands it, flashes it, and survives
    reloads.
  • Subagent cards link to the exact child prompt they spawned (the
    plugin stamps both sides; a token-alignment ladder resolves old
    shares); per-agent colors and a synced running sweep on active
    cards.
  • Timestamps shown as recorded (UTC), click to convert the whole
    session to your timezone.
  • Transcript menu: copy markdown, export import-ready JSON,
    download a snapshot β€” one header menu.
  • Tool gallery (npm run preview:tools) now covers whole-message
    features as well as every tool state.
  • View picker: classic and conversation flat; reader and the nine
    skins behind "more views".
  • Layout hardening: measurement, disclosure, resize, and
    navigation survive mass expand/collapse, reloads, width changes, and
    session switches.

Server and trust

  • Scoped tokens: full and scoped osk_ credentials; scoped tokens
    create within their limits and reach only their own shares; rotation
    transfers attribution. Revoking the last full token freezes the
    account; per-token freeze; code-lineage kill switch; ask-once
    onboarding (CODELESS_ONBOARDING restores codeless minting).
  • Token management: self-mint, edit, rotation overrides,
    minute/hour/day expiry, and named config sets (Class A server-side,
    Class B suggestions).
  • Per-share settings: general < per-server < per-share for TTL,
    read auth, sticky title, and pause (writes reject 423 while paused,
    backfill on resume).
  • Hours-native TTL: ttlHours everywhere; ttlDays converts Γ—24;
    one-hour floor; legacy rows migrate lazily.
  • Redaction at the enqueue choke point with a consent preflight
    showing counts; custom regex patterns configurable.
  • Private facts: directory/worktree leave the public session item
    (pmeta), served only past the read gate; machine paths rewritten
    session-relative on the wire.
  • Share meta API: owner/admin-only summaries, gates, liveness,
    expiry, provenance; single-share freeze.
  • Config: OPENSHARE_CONFIG_JSON one-env config, JSON urlFile
    lines, share meta labels.

Snapshots and interchange

  • Offline snapshot: one self-contained HTML (~7 MB) from the
    header menu, tools/osh-snapshot.mjs, or straight from
    opencode export; opens from file:// with highlighting, diffs,
    math, and subagent pages; gated shares demand auth; the server
    endpoint is off by default.
  • Session interchange: tools/osh-session.mjs exports, packs, and
    imports sessions between the share envelope, opencode export, and
    opencode import.

TUI and plugin

  • Share dashboard in /share (status, links, per-share settings,
    danger zone); /openshare regrouped into This session / Servers /
    Config / Interface with per-server defaults and effective-value
    tiers.
  • Stderr ladder: all / status / url / off; errors always print.
  • TUI fixes: keyboard-navigable confirm dialogs, no menu clipping;
    plugin version in the settings title; manual-mode detection fixed on
    case-sensitive filesystems.

Embeds and website

  • Per-share OG cards: five styles (aurora default), gated shares
    get a generic card, OG_STYLE selects.
  • Marketing site on GitHub Pages with two curated demo sessions
    rendered by the real viewer.

Pipeline and tooling

  • Release kit: VERSION base record, releases computed and
    stamped in CI with write-back, hollow-publish gating, manual notes
    and dry-run, release artifacts (viewer dist, CI bundle, plugin
    tarball, osh console).
  • Version surfaces: /health, viewer footer, plugin title β€” all
    from shipped manifests.
  • Vendored kit pinned: exact-commit pin in vendor-v2.mjs +
    vendor:check canary + VENDOR.md catalogue.
  • Tests: quick gate in CI on every push; new
    console/pause/pairing/engine/TUI-reactivity suites; full local
    matrix ~258s β†’ ~141s with zero checks deleted.
  • Comparison build: build-legacy.mjs --ref <any> serves any ref
    under /compare.

Breaking changes

  • Zero-config enrollment on public servers no longer creates a user;
    shares go out anonymously until onboarding. Set
    CODELESS_ONBOARDING=1 to restore.
  • TTL is hours-native (ttlDays accepted, converted Γ—24).
  • Comparison builds live under /compare.

πŸ“¦ Release Artifacts

Asset Description
viewer-dist-0.3.0.zip The built share-viewer web app (static dist). Self-hosting: unpack into the worker's assets directory or point the Bun server's VIEWER_DIR at it.
mirrowel-opencode-openshare-0.3.0.tgz The npm plugin tarball, byte-identical to the registry. Offline or air-gapped install: opencode plugin --global.
openshare-ci-0.3.0.js Single-file plugin bundle for GitHub Actions: configured entirely through environment (OPENSHARE_CONFIG_JSON), no install step.
osh-0.3.0.mjs Standalone admin console for any OpenShare server: node osh-0.3.0.mjs (Node 20+).

πŸ”— Useful Links