ποΈ 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